The highest ranked player in the world is twenty years old. Any local chess club is full of people who have studied the game for years but failed to break 1400. I've taught people who were just incapable of the most rudimentary strategic thinking and people who just naturally saw things that it took me years to learn.
The evidence is clear that there are people in the world who just can't solve FizzBuzz, many of them people with degrees in CS. Some people just seem unable to grok the basic abstraction of programming. What if that isn't a binary state, but just one extreme of a spectrum?
I can run 10k in 40 minutes any day of the week, but I sprint like an asthmatic Samoan. I just have distance genes, nothing I can do to change it. No amount of training would ever make me a competitive sprinter. I've got too little fast twitch fibre, I'm too short, too lean, my heart and lungs are too small. Is it completely implausible to suggest that there are cognitive equivalents that would pertain to programming?
Why couldn't mental stamina be as genetically ingrained as physical stamina? There are obviously natural geniuses in our field, why not natural dunces?
"Why isn't writing software like chess or sport?" ... "There are obviously natural geniuses in our field, why not natural dunces?"
Precisely because 5-standard-deviation-above-average natural talent isn't required for success in our field. There's only one chess champion in the world and a handful of grandmasters, by definition, and those are gonna be the ones with talent and hard work. But to succeed as a programmer requires more work than genetic luck. An average person can probably do it with enough work.
(But I would point out there is, by necessity, a floor of base talent required somewhere. But it isn't necessarily as high as commonly supposed.)
"There's only one chess champion in the world and a handful of grandmasters, by definition, and those are gonna be the ones with talent and hard work."
There are in fact over 1000 grandmasters.[1]
Originally there were just 5, but as you can see, over time the ranks of grandmasters have swelled.
Many in the chess world lament that it's too easy to attain (or even buy) a grandmaster title these days, and that it doesn't mean nearly as much these days as it used to.
In a world of 6 billion people, 1000 is metaphorically a handful, as far as I'm concerned. In the context that we're talking about, there's certainly more than 1000 "good programmers".
Because it is a multidimensional profession rather than rather fixed task?
Programming is hard, harder than anything else you could possibly do. But because it is so hard, an important task for any programmer is to know their limitations and work around their limitations - master the skill of software engineering.
Just consider, the things that "only a few people can do", like playing 2800 chess, are turning out to be what a computer can more easily accomplish. Whereas the things "any idiot can do", like speaking English, are turning out to the things that computers have a really hard time doing.
In this sense, if programming is a "humanistic" field, it seems like many people and kinds of people can achieve excellence in it. But naturally this depends on what an organization cultivates.
"Why couldn't mental stamina be as genetically ingrained as physical stamina? There are obviously natural geniuses in our field, why not natural dunces?"
Are there really natural geniuses? To me a natural genius is someone who from the start performs at a high level, and I don't know of any such programmers. Maybe it's just that some people can move faster on the growth curve than others, but everyone can reach the same high echelons with perseverance?
But isn't 'moving faster on the growth curve' exactly what it means to be a natural genius? Mozart didn't pick up the violin and instantly compose symphonies, but his talent helped him pick it up at an early age.
And aren't you assuming that everyone's rate of improvement is necessarily going to be fast enough, in the long term, for them to reach 'high echelons' (or even a reasonable level of competence) before they die of old age?
The highest ranked player in the world is twenty years old. Any local chess club is full of people who have studied the game for years but failed to break 1400. I've taught people who were just incapable of the most rudimentary strategic thinking and people who just naturally saw things that it took me years to learn.
The evidence is clear that there are people in the world who just can't solve FizzBuzz, many of them people with degrees in CS. Some people just seem unable to grok the basic abstraction of programming. What if that isn't a binary state, but just one extreme of a spectrum?
I can run 10k in 40 minutes any day of the week, but I sprint like an asthmatic Samoan. I just have distance genes, nothing I can do to change it. No amount of training would ever make me a competitive sprinter. I've got too little fast twitch fibre, I'm too short, too lean, my heart and lungs are too small. Is it completely implausible to suggest that there are cognitive equivalents that would pertain to programming?
Why couldn't mental stamina be as genetically ingrained as physical stamina? There are obviously natural geniuses in our field, why not natural dunces?