What is a Rockstar Programmer?
When I think of qualities a good programmer (or developer, engineer, hacker...) should have, I just can't connect these to the characteristics of my image of a rockstar (these are subjective, of course). For example:
A good hacker should be a skillful coder. Which skills does a rockstar need? Does he really have to be that good a musician? Granted, you may have to posess a certain amount of musicality to become a rockstar, but the rockstar business is really not a contest of who can play the guitar the most virtuosly. I personally know several people who are better rock musicians than lots of those who are rockstars. And I wouldn't know how to translate skills like stage performance or a thrilling voice into the programming world.
A good programmer should be passionate about the product he works on. Ok, this would be true for a rockstar too. But not only for a rockstar. This should be true for every person who is a "builder", whether he creates software, essays, a painting or a skyscraper. Passion about his music is not a defining quality of a rockstar.
In fact, the word rockstar does not describe any personal quality whatsoever - the defining attribute of the word is fame. And no rock musician gets famous just for his skill, you have to want to get famous. For what I can tell, this is true for 90% of all famous people. Fame and skill do correlate, but so does fame and PR. Some people even are more famous for their escapades than for their great abilities. Now how should that be important for a good programmer? I would rather consider it harmful if someone has the unstoppable will to outshine everyone including those who are just as skillful und passionate. And being too focussed on one's own reputation can significantly distract the sight to the best solution for a problem, which would be another strength of a good hacker: open-mindness and out-of-the-box thinking.
Or is "rockstar" trying to express something like "extraordinary", "outstanding"? Then say outstanding, that's more precise. Even better would be so say "outstanding in <insert skill here>".
Or "excentrical but genius"? The better term for that would be nerd.
So what is meant by "rockstar programmer"? Maybe there is something I don't get, and I'm happy for every clarification since it would help me understand the conversations and articles better.
13 comments
[ 4.4 ms ] story [ 35.8 ms ] threadThe fact of the matter is that programming is very unglamorous. It's not a job that often entails the sort of creative passion associated with making music or film or literature; even when we're talking just about the kind of programming that's meant to serve that kind of creative function, it's still rarely as visceral as a good rock song. (The only piece of programming that ever moved me like that was We Feel Fine.) So using the term "rock star" serves to inflate the egos of people who might otherwise not feel like their work was important or meaningful.
When I hear a company say they're looking for "rockstar programmers" I usually take it to mean that they're looking to genuinely care about the programmer they're hiring. They don't just want a code monkey, they want somebody awesome and colorful who'll really be a meaningful part of their team. (Whether these companies actually believe that is another question. I'd bet most of the people who use the phrase are full of shit.)
Being egomanic and making a difference for the better is hardly the same.
The main origins of this meme revolve around some studies done many years ago that show there's a productivity difference of 10x to 20x from mediocre programmers and the top performers. It's been noted that the salary range is much smaller, often in the 2x range. So why not hire top performers, paying them twice as much and getting ten times the productivity?
There is and has been ongoing controversy about this on several fronts. The most substantial criticisms have to do with the validity of the studies. The rest of the criticisms seems to revolve around pushback from people because hiring rockstar programmers is difficult and care and feeding of such doesn't fit within the management structure of most companies.
Well, I think I'll have to translate it on the fly whenever it appears, and I will not use it until it hopefully wears off as time goes by - I hate unaccuracy :)
It's just like how maniac teens (or just any 'metal-heads') patronize or look at some favorite rockstar as their icon / model (or something close to this).
To demonstrate my point, I'd say people like Linus Torvalds, Richard M. Stallman, Donald Knuth, Ray Kurzweil,... are RockStars! Even Jeff Atwood could pass for one to some extent :-)
The term started as a marketing tool to get people in the door, and is now overused and loaded with unhappy feelings.
Before the BS, a rock star programmer is what every front end dev aspired to be (or thought they were): the best.