
Why no one is looking for ‘rockstar programmers’ - iktorn
http://blog.netguru.co/post/56860239654/no-one-is-looking-for-rockstar-programmers
======
chewxy
The fundamentals change very little, and very slowly (barring a revolution in
the theory side of things).

I recently decided that my surface-skimming knowledge of lambda calculus was
severely lacking, and so I picked up a few books. One of the better written
books was written in 1981. That was 33 years ago. What changed 5 years ago to
now, is essentially "sugar" on top of the fundamentals.

One thing I did notice, especially with the node.js crowd (essentially where
the "rockstar" programmer meme gained its popularity), is that a lot of old
things are being re-discovered.

While there may be very good arguments for re-implementing things, and re-
learning things (and I do that quite a lot too), I personally do not think
that re-solving the problem in the old way in a new
language/framework/whatever is really worthy to be considered an achievement.

And I think that is essentially what is wrong with the whole "rockstar"
programmer meme. Want to be a rockstar or ninja or guru? Go dust up some old
book on algorithms, and reimplement it in the trendy language of the day.

~~~
jt2190

      > ... especially with the node.js crowd (essentially where 
      > the "rockstar" programmer meme gained its popularity)...
    

The rockstar programmer meme is far, far older than node.js. It crops up any
time the labor market for programmers becomes tight. It's a lazy way to (a)
try to draw attention to your job ad, and (b) a cheap play to the reader's
ego.

    
    
      > I personally do not think that re-solving the problem in 
      > the old way in a new language/framework/whatever is 
      > really worthy to be considered an achievement.
    

Not an achievement for the world at large, perhaps, but for the individual, it
is certainly an achievement.

~~~
yareally
> Not an achievement for the world at large, perhaps, but for the individual,
> it is certainly an achievement.

It's also a good method to learn a new language in a somewhat predictable way.
One of the first things I do when learning a new language is port or use
something I am already familiar with to it. That way I can concentrate on the
language itself and not so much the problem the code solves.

------
jackmaney
From the slides:

"Which technology that is relevant today was relevant 5 years ago? Which
technology that was relevant 5 years ago is relevant today?"

Ruby, Python, Java, C, C++, Windows, Linux, OSX, relational databases, HTML,
CSS, JavaScript, HTTP...and that's just a very short list off the top of my
groggy, pre-coffee-in-the-morning head.

~~~
iktorn
fair enough but I'm fairly sure that if you traveled in time from 5y ago with
a decent developer from that time he would have hard time landing a job today

~~~
nikster
In my experience the opposite is true.

Some people have an easy time programming, and the specifics - libraries,
languages, etc - don't matter at all. They'll pick up that new stuff in their
sleep.

I recently hired a Java guy after talking to him - he had all the right
hallmarks so I was pretty sure he would be good. I gave him a task with a
piece of software I am intimately familiar with. A good developer would have
had to get up to gear for a week (40 hours), then code, test, work around the
little kinks (there are many).

All in all an optimistic assumption of mine would be that this task would take
a brand new guy a month. The dev I hired did it in less than a week!

These people are rare. They are the rockstar programmers. And if you find one,
you want to hold on to them no matter what.

Team players? What if the guy can do twice as much in a week than a "team" of
5 mediocre guys?

To get back to your assertion, he then proceeded to learn Android and put a
functioning app in the Google play store in less than a week.

Granted that's still Java, but the libraries are all different and developing
for mobile is also different.

If I had an iOS job right now, this guy would get it, despite never having
done iOS. He'd learn this in his spare time and then proceed to run circles
around people who've been at it for years.

That's a rockstar programmer for you.

~~~
yogo
The notion of a rockstar is silly. I think it's somewhat common to find
developers that can pickup languages in a short space of time. Once you
understand the concepts of OO/procedural and functional paradigms something
would be wrong if you couldn't pick up a new language in a day (plus some more
time for best practices, patterns, etc.).

Greenfield development is always easier than having to work with 200K LOC
codebase that is crappy for all intents and purposes. Let's see how quickly a
developer can jump on, wrap his/her around everything, then make significant
changes and maybe I'll believe in that nonsense.

Personally I think if a job ad includes the word rockstar, I would expect hot
groupies and coke on the job (2 or 3 times a week to allow some time for
actual work :)).

------
edw519
Nice post, but just a little too much corporatespeak for me. My take:

 _1\. Be an egoless programmer._

I've heard this a million times and always hated it. I lost count of the
number of projects I've witnessed that were saved when someone who knew what
they were doing put their ego on hold. You know what you're talking about: you
have a moral responsibility to speak up and do the right thing, ego or not. I
prefer, "Don't be bashful but be nice."

 _2\. Be a team player._

Oy, this sounds like something my PHB would say. I prefer, "Just do your
fucking job."

 _3\. Be a learner._

Absolutely! But don't restrict your learning to technology. Learn about your
customers' and users' domains. Suffer with them and their problems. You'll
probably get far more milage out of that than more technology.

 _4\. Be a T-shaped person._

I like this, but again, I would add my customers' domain. Being the go-to
person with deep understanding of the technology who knows how to apply it to
the problem at hand is a deadly combination.

 _5\. Be relentlessly resourceful._

What does this even mean? I prefer, "The answer is always 'yes'. Sometimes,
'yes but', but always 'yes'".

~~~
kubaf
"what does this even mean?" great explanation here:
[http://www.paulgraham.com/relres.html](http://www.paulgraham.com/relres.html)

~~~
Shorel
And that's the reason these two words in the article are treated just like
another buzzword, taking away all value from them, and by extension, from the
article itself.

By definition, someone who fits the 'relentlessly resourceful' mold, is a
rockstar programmer.

------
terabytest
The whole idea of a rockstar programmer is a weird one in my opinion. People
who call themselves a "rockstar" give off a very arrogant vibe (at least to
me). Even if they might be very humble when you get to know them (or open to
feedback or what have you), I think the way they describe themselves still
utterly trashes first impressions. This goes to say that I don't really see a
point in acting like you're the best in class, if anything it puts you into
more trouble when some people falsely assume they can expect big things from
you.

If you know your craft, just let your work speak for itself.

~~~
dbecker
I've never heard anyone describe themself as a rockstar programmer. I just see
a lot of ads for them.

------
RutZap
I would say that ego is something that every good programmer should have. It's
not about being a rockstar or not. It's all about the code. This is what
mainly defines programmers/coders/developers/makers.

It is always about the code and it's never not about the code. Having the ego
to believe that your code is the best makes you a good programmer; because,
inevitably, somebody will come and point out that there's a bug, a flaw in
your beloved creation. That's when you get annoyed, your ego is crushed... you
accept it and the next time you won't mess up again. That's how you improve
your skills and that's how you get to be a better developer.

You shouldn't care if you're called a rockstar or not, and most certainly you
shouldn't call yourself one; saying that you're a programmer should be enough!
We should live in the shadows and let our code to do the talking.

PS: I have the feeling that "rockstar" programmer is starting to replace the
beloved "guru" as the word that makes up for one's lack of coding skills

~~~
Cakez0r
You don't have to have your pride crushed to learn. Just accept that there are
other smart(er) people around you and seek advice rather than incite it.

~~~
hga
They don't even have to be smarter, they just happen to notice errors you
make. Often that comes from you being too close to the code, akin to the
"obvious" errors others find when you ask them to double check some prose you
just wrote.

I handle this by accepting that I'm a fallible human being and that the
artifacts that we're constructing are way too complicated to always get right
the first time. So errors in my work, as long as they're reasonably small in
number, are just a reflection of that fallibility and complexity (if the
number is too big that's a signal something is seriously wrong).

------
duncanwilcox
A single good programmer does the job of 5, and you can pay her 2x. That's not
magic, it's just a very refined skill set, focus and no communication barrier
of multiple people.

So depending on the project, small team can be replaced by a single good
programmer, or the project is just too large and you need many many people and
communication infrastructure.

The "rockstar" connotation is just SEO.

------
MetaCosm
Wow, the author mixes good points with absolute crap... which make him seem
less reliable and less worth listening to and sucks the wind out of his good
points. I think the fundamental implication was that rockstars are
primadonnas.

\- Why no one is looking for ‘rockstar programmers’ ... they are looking, lots
of shops are looking for the 'rockstar' or carry or lead developers. These
developers while being very talented can be humble, kind, and great to work
with.

\- Egoless isn't what you want, you want separation. Ego (pride) is good, it
drives you to improve. Separation is what lets you pitch an idea then allow it
to be mercilessly ripped apart by your fellow developers (and even yourself).

\+ Team Player ... yes, you want team players.

\+ (then -) Always Be Learning ... great idea... and then he goes and backs it
up with one of the stupidest points I have seen recently, the 5 year argument.
Any develop worth his salt would have a long list of answers to both points.

\+ T-shaped ... it is a generally accepted good thing ... you know some
T-shaped developers might be _gasp_ rockstars

\+ Relentlessly Resourceful ... sure, absolutely...

------
izietto
On HN job offerings expressions like "rockstar", "ninja", "guru", and other
pompous expressions are used very often.

I find it childish; I would never attempt to consider an offer expressed in
this way.

Being italian, I always considered my disgust due to a cultural difference:
United States people tend to use a more "sensationalist" language. What do you
think about it?

------
kubaf
being "egoless" is a good advice for different professions, not programmers
only

~~~
lazyjones
Why am I thinking of the fabulous career of Steve Jobs now?

~~~
kubaf
let him speak:
[https://www.youtube.com/watch?v=f60dheI4ARg&list=TLtV01K1czg...](https://www.youtube.com/watch?v=f60dheI4ARg&list=TLtV01K1czgo4)

------
ArekDymalski
The advice is nice, but in case of a truly constructive, non--judgemental
feedback it's really hard to implement due to our communication habits. The OP
himself illustrated it perfectly on the slide #8. We see a great suggestion to
critique the code not the person. But in prev line we see something exactly
opposite. Instead of saying "there's always someone writing code worse than
yours" we see a clear judgement of the person. Yeah, feedback is hard :)

------
lnanek2
I'm constantly asked for that sort of thing. A lot of friends are at the place
in life where they are higher people to work on their own personal projects,
but 75% of the contractors they hire manage to make more work then they
actually accomplish and somehow never finish or get anything working good.
There's just huge frustration in the run of the mill programmer and people
just learn to hire as good as they can. Article title doesn't make much sense.

------
floor_
Terrible advice from a "web programmer".

------
beagle3
Well, I would never hire a programmer who introduces themselves as a
"rockstar", but I personally know two who refer to themselves as "stunt
programmers" who I'd hire in an instant if they were available (or I did
something interesting enough to them that they would consider switching).

------
asloobq
I think the title is a misnomer. When I think of 'rockstar programmer' it
automatically brings to mind the qualities 2-5 mentioned by the author.

2.Be a team player. 3.Be a learner. 4.Be a T-shaped person. 5.Be relentlessly
resourceful.

------
codesuela
title is not correct, just a few days ago I saw an ad for rockstar
programmers:

[https://bitcointalk.org/index.php?topic=262775.0;topicseen](https://bitcointalk.org/index.php?topic=262775.0;topicseen)

~~~
jt2190
Quite frequently, what someone _says_ does not exactly match what they _mean_.

When presented with with a "fact" that is very easy to contradict, like this
one is, it's an indication that the author has made a poor choice of words,
_not_ that their point is without merit. In that case -- in _all_ cases
actually -- it's best to read for _intent_.

(edit: In this case, Schmidt is arguing that although the ad might say
"rockstar programmer" that that's not what they're _really_ looking for.)

------
pushkargaikwad
From my personal experience, You don't need rockstar programmers to build
great software. I also believes you need to hire people with character over
skills, as skills can be build in 6 months, character can not.

------
robotic
Thankfully I have never heard someone call themselves a rockstar programmer.

~~~
coldcode
What if you wrote code for an actual rockstar?

------
JamesCRR
My experience of working with rockstar programmers tends to be woeful, they
spend far too much time dousing themselves in cocaine and hooking up with
groupies, their code is shambolic and occasionally they smash a computer for
the hell of it.

However my experience of programmer rockstars is just as bad, their stage
presence is pitiful. Instead of cutting it with wild guitar solos they tend to
spend to much time StackOverflowin', when we're wailing out a tune they often
grimace and put on their sound cancelling headphones.

Please, everyone stick to your profession.

------
tomgruner
sit down, behave, program, you are a cog. I thought HN was about the desire DO
something different. Create something new. Maybe this is good advice before
you take that corporate job - but doesn't have much to do with hacking.
T-shaped person? That term is just as nauseating as the rest of the corporate
jargon that flies around in most offices.

~~~
minimax
The T-shaped person thing is from Valve's hiring guidelines.

[http://www.valvesoftware.com/company/Valve_Handbook_LowRes.p...](http://www.valvesoftware.com/company/Valve_Handbook_LowRes.pdf)

------
v0land
In case of sysadmins, those five points can be boiled down to just two:
ability to learn and ethics.

------
sanxiyn
Why is "it was like this before my changes" a thing you should never say?

------
dschiptsov
Just one word - nginx.

~~~
v0lta
Why? Just curious.

~~~
dschiptsov
Because the whole thing was made by one rock star programmer (and then
polished by community).

All the talk about collectivism and social responsibility in a creative
process is naive nonsense. Imagine pg with rtm instead of doing whatever they
think is the right thing to do with viaweb, would rather ask _how_ other
windows developers around feel about it or trying to not hurt anyone by being
superior.)

I don't know, it is so obvious. Van Gogh or Gaudi doesn't not care how others
feel or what they think. There is just a tiny nuance - you must be above
average in what you do in the first place. Mediocre who is sure he is a Steve
Jobs is a very common and ridiculous situation.

No works of arts were created by a crowd. Only massive construction projects.
Meetings are ruining the novel views and designs. Using ones own mind,
ignoring what slogans others are changing is essential. Otherwise you will end
up with Java, Windows, PHP and other popular crap.

------
static_typed
Avoid Brogrammers, rock stars, and anyone who advocates rails as the solution
to the business problem at hand.

The good programmer asks questions first. The bad one runs off and builds
stuff at a whim.

The good programmer gets stuff done. The bad programmer wastes time on the
latest and greatest, bikesheds on whether they should rewrite everything in
ruby today and go tomorrow.

Avoid the bad programmers.

~~~
theorique
Why are brogrammers, rock stars, and rails users automatically "bad
programmers"?

It's possible to drink like a fratboy on the weekend and crush code from M-F.

~~~
michaelochurch
_It 's possible to drink like a fratboy on the weekend and crush code from
M-F._

You know what this is? This is my new fuckin' REPL. You know what that means?
I'm writin' some fuckin' code tonight.

~~~
theorique
FUCK YEAH BRO!

------
michaelochurch
Egoless "team players" are pretty easy to manage, and they do a lot of the
junk work without asking for much in return, but they're pretty poor strategic
thinkers and they don't age well. I might not use the word "ego", but it takes
a certain self-preservation instinct to keep growing a skill base in a world
that doesn't give jack about your career or future. _You_ have to take
responsibility for that, and "team players" often get loaded with grunt work
they don't learn much from.

Obviously, there's a middle ground that's optimal. People who can't work with
others at all aren't good hires, but neither are the Clueless "team player"
types who top out at middle management (because people with strategic talent
avoid getting stuck doing someone else's grunt work).

~~~
hga
Ah, but it's clear the author knows his stuff and is using the term "egoless
programmer" as defined by Jerry Weinberg in his 1971 _The Psychology of
Computer Programming_
([http://en.wikipedia.org/wiki/Egoless_programming](http://en.wikipedia.org/wiki/Egoless_programming)).
It has nothing to do with being "easy to mange", it means _exactly_ what he
said, and is the opposite of at least the connotations of "rockstar".

Similarly, the iffiness of "rockstars" in working well in teams is legendary.

I really doubt the OP has a hidden agenda of making things easier for
managers.

------
sounds
"No one is looking for" ... sorry, I beg to differ.

I just got the following in my inbox a few days ago.

\---

Hello ____,

I stumbled across your profile on LinkedIn and was impressed by your
background with (company) as their (tech title). I would love to chat with you
about what we are building here at (startup).

I am the CTO and one of the co-founders of (startup) - we are a startup with
an office in (location) and we are very successful in changing the way
companies do business with each other. Our customers are companies like (big
companies) and many more. We are looking for help from people like you to
scale our product while we grow in terms of data, processing, customers and
users.

Our infrastructure runs on AWS using Cassandra, MySQL, ActiveMQ, Tomcat and
other technologies/services. Most of our code is in Groovy and Java leveraging
Jersey, Grails, Spring, Hibernate, .... On the front-end, JQuery, Mootools and
other libs and frameworks.

In short: We are a fast growing startup that solves real-world business
problems for huge companies with an awesome, committed and agile engineering
team.

If that sounds like something worth talking about I would love to get a few
minutes of your time when it fits you best.

Hope to hear from you.

Cheers,

(somebody I've never met)

\---

He doesn't say "rockstar programmer" in there but he should have. It would
have at least brought a smile to my face. Companies _are_ still trying to
sucker young kids into this kind of stuff with words like "rockstar," "ninja,"
"awesome," ...

I know how hard it is to find talented people. I suppose an email like that
has been finely honed to net the most applicants possible. But if you want
_those_ kind of applicants, you're already behind.

