Thursday, August 11, 2005

Better Programmers

I read Joel Spolsky's webpage from time to time. As I've mentioned before, Joel advocates hiring the best programmers possible. In other words, were he to give an honest talk to a computer science department, he'd tell 95% of them that they should seek other majors, except that then it would be terribly obvious who the great programmers (as opposed to researchers are).

What he leaves pretty much unsaid is that he feels programmers are born, not made, and therefore, once they're out of college, that's it. Good programmers are good. Bad programmers are bad. Never the twain shall meet. He never suggests that it's somehow possible to make average programmers good, or good programmers great. To him, it's not worth the time. And yet, in the search for more talent, that would be the next step.

I'd argue that the difference, for some people, between good and great lies in knowing what to do to get to that point. To give an analogy, there are some people, if you throw them out in the wilderness, would manage to live. Their ability to rationalize and survive, or simply their knowledge, gives them the skill to live. However, there's another group, with a modest amount of training, that could probably achieve similar levels.

I understand the counterargument. If you need someone to train you, then you are unwilling to do it yourself, but even if that's the case, there's nothing saying that this isn't worth it to a company. As they say, teach a man to fish and he fishes for a lifetime.

There's something vaguely unsettling about the kind of world Spolsky lives, that basically believes the strongest survive, and the rest can wallow in the mediocre filth that their minds and wills have left them.

What Spolsky has done is to increase the desirability of superstars working at his company. What he hasn't done is to increase the supply of superstars, or in fact, near superstars, which would be another way to deal with the problem. If his company ever gets large, that's what he needs to think about next.

Why do we have so many great basketball players? Because so many kids want to play, that the competition is so great, that there are a lot of great players. Can the same be done for programming?

No comments: