I know I am not Donald Knuth or Linus Torvalds or John Carmack or Woz. I am not a rockstar.
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.