Explain MVC to a 5 engineers with equal experience and language skills, and 1 might end up finishing your sentences and extrapolating to other domains, while musing about limitations and gotchas, another couple will just sort of follow along, and perhaps one fails to understand and keeps asking you to repeat yourself and explain in different ways. Engineer 1 will go back to their desk and spin out reams of productive code, whereas #5 will make a mess of it and create technical debt. #5 will put many more hours into it than #1, for whom this is effortlessly assimulated. People have differing abilities.
I am really good at programming. I am moved deeply by music, but my interpretations when I play are somewhat pedestrian and/or copied (I play classical guitar & piano). I don't even grok ballet. I don't get how the movements correspond to the music, I don't understand why person A is rated better than B, and so on. It's an alien language, and I could study for 10 years and it still would be. Yes, the greats (in performance and appreciation) worked harder than me at it, but even if I worked that hard I'd still be a ballet doofus (citation needed).
My high school had an introductory programming class. Most students hadn't done any programming before, yet there were a couple of students who quickly understood the concepts and could solve weeks worth of assignments in a single day, whereas the rest of the class struggled. Those students, for whatever reason, were able to learn programming much more quickly than the average student, and I believe those students they'd see a greater return on their investment of hard work.
Here's another anecdote: do you know any experienced engineers who work 12 hours a day and still struggle to do relatively easy jobs? I do. Talent is an important piece of the puzzle. Hard work is also an important part of the puzzle. Both are important.
The NBA players are the top 1-in-1000000 world's best players.
A programmer only has to be 1-in-100 to be competent. The other 99-in-100 should find other careers.
A related concept is "general intelligence," which behavioral genetic research has shown to be highly heritable.
http://en.wikipedia.org/wiki/Fluid_and_crystallized_intellig...
I think the supposition that all that is required is "discipline" is very difficult to accept for anyone who has ever seriously played competitive sports...
As an athlete you end up realizing pretty early that in spite of similar levels of training, practice and dedication, you just don't have the talent (raw or cultivated) for certain levels of performance. It's just not going to happen. For me, I _maybe_ could have made a Division III or Division II team, but there was no way I was going to get accepted at the Division I-level, not to mention Pro-level. It just wasn't going to happen.
But what is perhaps more distressing, is that you it's relatively easy to recognize the individuals that do. The ones that have that the "10x factor". Its the girl or guy that you get benched for so they can go in. They one that the team rallies behind to win. Because they _can_ win the game; they can make the shot, they can focus through the exhaustion, they can make the "play", see the big picture. It's a thing...
I think thats the real distinguishing characteristic of 10X ______ (fill in the blank): they have the ability, within a group of skilled peers, to _create almost unilaterally_. While the rest of us, require the support of the team to accomplish pretty much anything in that environment.
And its easy to ignore/forget about the vast majority; which haven't cultivated the skill/craft to perform any task beyond basic.
Dedicated. These individuals have mastered their domain; they have spent years learning and practicing. They have built knowledge and skills that can be transferred to other domains. I think people need to stop focusing on the label, and start focusing on the process.
I don't believe a person is born a 10X programmer. It's only achieved through discipline.