I’ve started playing guitar again, at the behest of my church who wanted me to start playing offertories again. This usually means I’m trying to bang my way through some song written by Bach, for a completely different instrument (lute, cello, violin, etc), in some manner of hand-cramp-inducing positions. But that isn’t the story here.
Carl Franklin likes to talk about how musicians make the best programmers. Often. I’m a programmer, I play instruments, apparently I’m good at programming. I guess I have very little room to argue. But I’ve been more interested in why. And, for the record, I know plenty of musicians who can’t program a lick, so don’t argue the deficiencies, I know all about them.
Note: I am not calling myself a musician here. While I can play an instrument (a few of them actually), I can only play what I have memorized or have music for. Writing music is excruciating for me, and I cannot play by ear. Because of that, I just say that I play music. Musicians are other people.
My feeling is that it isn’t the music that makes these guys better programmers. It is the practice. For me to play a piece of music in front of 300 people (and this is before the pastor puts them to sleep with a sermon), take hours upon hours of practice. And for every other person I’ve ever met who is very good at music, it is the same. There is sweat equity involved here.
I was listening to It Only a Game on NPR this weekend as well. They were talking to former New York Yankee turned guitarist Bernie Williams who is now out with a new CD. The host asked how different it was getting ready for baseball versus music. Bernie’s answer: about the same. Both take endless hours of practice. You are never done. In baseball they constantly practice hitting, running, fielding, etc. With guitar you are constantly practicing scales, arpeggios, and slurs.
Guess what: this applies to programming. While I don’t spend time creating bubble sorts. I do refine my practice with Refactoring, Design Patterns, and constant study. I read something almost every night – even if it is just MSDN Magazine.
You see, I don’t actually follow what Carl Franklin says, that musicians make the best programmers. The notion is too specific. I believe that people who are accustom to practice, whether via sports, martial arts, music, woodcraft, dance, art, or anything else; those people have a better shot at becoming a very good developer. Why just a better shot? You have to leave some room for aptitude.