Editor’s Note: This post was originally published on Seattle 2.0, and imported to GeekWire as part of our acquisition of Seattle 2.0 and its archival content. For more background, see this post.
By Anthony Stevens
Are great programmers born, or made?
My dad, who started programming back when punch cards were still new, often told me about (possibly apocryphal) studies done in the 1960’s that showed that programming ability was rare and, oddly enough, related to native musical ability. As he told it, Boeing hired expert musicians and cross-trained them as programmers. I’m not sure of the results of that particular experiment.
Can a bad programmer learn to become a decent programmer? Can a merely decent programmer become an expert programmer, one of the top in her or his field?
I’ve directly managed hundreds of programmers in my career, and my opinion is that there are innate characteristics that predict success in programming. Further, I believe that these characteristics are resistant to coaching. In my mind, it is very similar to music: one can only be coached so far. Off the top of my head, I would suggest that great programmers exhibit most or all of the following strengths, skills or capabilities:
- Math
- Logic
- Pattern-Matching
- Memory
- Intuition
- Persistence
Steve Yegge would also have you believe that strong typing skills are an essential prerequisite for programming success. Not sure I agree. However, it is a strange list, and I’ve known excellent programmers who lack one or more of these supposed prerequisites. So I’m not sure I’m about to stake my reputation on having to defend this (or any) specific list – but I do remain convinced that what one might call the “career mobility” of a programmer – the ability to significantly improve one’s relative standing vs. peers over time – is limited.
What’s your opinion? Are great programmers born or made? Let us know in the comments!