I know I am not Donald Knuth or Linus Torvalds or John Carmack or Woz. I am not a rockstar.
"I’m not a big visionary. I’m a very plodding pedestrian engineer, and I try to keep my eyes firmly on the ground."
I think 10x programmers are what programmer should be. In the end, we should have people with all of "10x programmers" -- which mean all people will eventually end with the same great skill of coding.
Unfortunately, 10x programmers are real. There are real programmers who can do the same job with less time. 10x teams are real, too. It is mentioned by Tom DeMarco in Peopleware book. Personally, they might not be called "Ninja" nor "Rockstar", but the fact is their skill is higher than average.
But well....
I really agree with Dan Kim here. I think programming is a continuous improvement. You may not end up like Torvalds, but if you are really want to self improve yourself (e.g. Knowing your code yesterday is worst than today and really want to know how to make the code better), then it is good enough.
IMHO, to reach this summit ("10x"), it is very-very hard. You can improve your skill by doing one of these way:
* By volume. Just do so much thing in your field and voila, you will mastery that skill. Just like pilot. Or,
* By supervisioned learning. This is what we know by "mentorship". You may don't know "how to start" if you learn by volume. With supervisioned learning, you can make the learning faster and enjoy the outcome earlier.
"We will encourage you to develop the three great virtues of a programmer: laziness, impatience, and hubris" (Larry Wall)
You don't need to be Donald Knuth - or Larry Wall - to be above average :)
IMPATIENCE: The anger you feel when the computer is being lazy. This makes you write programs that don't just react to your needs, but actually anticipate them. Or at least pretend to. Hence, the second great virtue of a programmer.
HUBRIS: Excessive pride, the sort of thing Zeus zaps you for. Also the quality that makes you write (and maintain) programs that other people won't want to say bad things about. Hence, the third great virtue of a programmer.
But it's true, many of these companies are designed to be flipped, technical excellence might be a secondary concern. Ninjas beware.
Probably building something in grad school helps.
Indeed it is.
Seriously though, that's what many of these people /will/ get. Worse, they'll actually believe it was their own talent that got them there. The world is a cruel and unfair place.
My personal hypothesis is I think these labels are just meant to attract and appeal to a certain demographic. The demographic that skews young, male, and single. The demographic that prioritizes work above all other pursuits. The demographic that is naive and easy to manipulate into seeking life fulfillment by staying at the office from 7am-9pm.
This is the sort of employee they are seeking so they do what they can to attract them. They aren't looking for people who "coder ninja" doesn't appeal to. It's by design.
I think it actually works since I'm totally turned off by those job ads.