The hero programmer
The seed that would make me choose to be a programmer was planted one day in the early 2000′s. My slightly older cousin (whom I have mentioned a couple times in this blog) was very exited about Doom 3, and he told me all about John Carmack. A god-like coder whose genius shaped an industry and who consistently and almost single-handedly created technology that was allowing others to create ever more amazing virtual worlds. In those days Moore’s law was still going strong and I was too ignorant to consider that it might end; those were very exiting times. The day I saw the dynamic lighting in Doom 3 was the day I said “I want to be rock star programmer”. I imagine I am one of many who had the passion ignited in the same way.
Today in programming, much like in music, the rock star is dead. There must be at least a handful of people out there, with coding super-powers but without money or fame.
Paul Graham used to talk about great hackers, now he talks about founders and VCs. Fame and money will come to the programmer who creates value for millions of people, and for that, solving hard technical obstacles is not a necessity anymore. This is of course not a bad thing, but I admire the unsong heroes that optimize the Crytek engine much much more than the ivy-league drop-out who wrote a very popular web site. (Yes, I am being hyperbolic).
Millions of dollars, hundreds of developers.
AAA games today cost millions of dollars and are made by armies of artists and programmers. Individual talent matters, but it is no longer possible for the fate of a game studio to reside in the hands of a single genius programmer.
Actually, I can’t think of any branch of the software industry where technical ability can bring money and fame the way it did to the game engine gods of the 90s. It is no longer possible to be a rock star coder who drives Ferraris solely because (s)he can bend the CPU to his/her will.
My brother, Actor? Musician?
I have a little brother with an innate talent for music that I admire. I like to play the guitar, but I have to study music theory to come up with the stuff that pops up naturally to him. When we ask him what he wants to be when he grows up, he says he wants to be a rock star, so we have that in common (actually, sometimes he says wants to be an actor). He likes to fantasize being in front of a huge audience full of people that celebrate and idolize him. Usually I give him a patronizing big-brother look and say “little bro, what you really want is to be famous, not to be an actor”, I give him the standard “you should do what you love” speech and walk away pretty proud of myself.
Luckily enough, one day I gave the same advice to myself. It was around the time that I realized that my dream of being a rock star programmer was impossible; if not because of the reasons I gave above, because I just may not be as good as I like to think.
Meaningless and Worthless
“Genius” is a token people give you. There are plenty of self-proclaimed geniuses, but usually that just means they are douchebags. You are a genius only when someone else says you are a genius. If enough people agree that you are, in fact, a genius, they will mention you in books and tell stories about how you started reading when you were 3 months old or how you see colors in equations.
“Genius” is meaningless.
Let’s assume you are a certified, bona-fide genius. What is your reward? Since this craft is so profitable you most likely already have enough money.
Do you get respect? It seems to me that being tagged as a genius is already a sign of respect. Do you get love? Who the hell knows, but my guess is no.
Everyone knows that all we need is (money, respect and) love. “Genius” doesn’t provide that, it is therefore worthless.
I would like to paraphrase a quote from another genius celebrity, Richard Feynman, and say that recognition, awards, and honors are irrelevant. Programming is its own reward. We should do it for the pleasure of wielding the awesome power of code.