Code Anarchy

Losing Focus (Part 2)

Of course, there’s a problem with this whole “equal access to education means maximized potential and optimal job placement and infinitely better productivity” theory.

In theory, the market pays a premium for excellence. With programming at least, it seems like doing so would pay off. Not just because the productivity difference is much, much greater than the cost difference, either:

The real trouble with using a lot of mediocre programmers instead of a couple of good ones is that no matter how long they work, they never produce something as good as what the great programmers can produce.

Five Antonio Salieris won’t produce Mozart’s Requiem. Ever. Not if they work for 100 years.

The Creative Zen team could spend years refining their ugly iPod knockoffs and never produce as beautiful, satisfying, and elegant a player as the Apple iPod. And they’re not going to make a dent in Apple’s market share because the magical design talent is just not there. They don’t have it.

The mediocre talent just never hits the high notes that the top talent hits all the time. The number of divas who can hit the f6 in Mozart’s Queen of the Night is vanishingly small, and you just can’t perform The Queen of the Night without that famous f6.

So what’s the problem? Certainly the incentive is there to pay good money to hire the tiny percentage of programmers with real talent.

For one, it’s incredibly hard to identify talent in an interview, especially if the interviewer doesn’t have the same talent. Recently, a recruiter e-mailed me about an opening for a C++ developer that looked like it could be interesting. I lost interest quickly (and perhaps a bit unfairly) when I got the first follow-up e-mail. In addition to wanting a resume in Word format (of course), he asked a series of language trivia questions. Nothing I couldn’t answer, but nothing a couple minutes of Google searches couldn’t answer either.

I hate to think I’d be hired simply because I’ve memorized a bunch of facts about a greybeard’s programming language. I really hate to think I’d be working with a bunch of other people hired for the same reason, or because they knew a friendly greybeard willing to help them cheat their way in. But it happens.

Even the grueling interviews, where they have you solve actual problems that require you to demonstrate an understanding of computer science and write code under pressure—the interviews tuned to reject good people rather than let in bad people—even those interviews have a failure rate. I’d suggest that ability to answer interview questions on a whiteboard is a better proxy for talent than ability to memorize language trivia, but it’s still not perfect.

But what else can you do in the space of an interview?