My team and I have made some startling observations about ourselves. Firstly, we are all approximately 5’11”, secondly most of us are musicians or hobbyists of some kind. Both similarities are completely coincidental, though maybe there is something more to the latter one.

One of my colleagues often says that when he’s recruiting, he looks for candidates with art or music backgrounds. His justification is that he feels they are smart and have a certain quality that makes it easy for them to pick things up quickly.

Somehow my department is filled with musicians. It’s not part of our screening process, however we’ve come to realize we have music in common. I think this has to do with the fact that when I recruit I look for the qualities that my fore mentioned colleague sees in most artists and musicians.

I play guitar and I know first hand how hard it is to be a good guitarist. There are certainly some people with natural talent, but I’m unfortunately not one of them. Being good takes practice, and lots of it. That’s a defining difference between musician-type and engineer-type programmers. An engineer-type tends to think that being good is a function of how intelligent she is. A musician-type realizes the critical role that practice plays in her path to perfection. Musicians also tend to understand how in the pursuit of perfection, improvements come in smaller and smaller increments however they are no less significant.

Musicians have some of the same internal struggles that engineers do. Take simplicity for example, when I first started soloing on guitar, I had a tendency to throw every note I could into a single line. I eventually learned how important the space in between the notes is, and how simple phrasing can be so much more interesting than a bunch of notes. As a young engineer I struggled with issues of simplicity and complexity for longer than I did as a musician. This could be related to mindset or maturity, either way I acquired an appreciation for simplicity in music much quicker than I did in programming.

At the 2010 Software Craftsmanship North America (SCNA) conference, my colleagues and I noticed a large number of musicians in attendance. It was somewhat of a theme, though not planned. The talk by Keavy McMinn was about her transition from artist to programmer, and Andy Maleh held a lightening talk on the similarities between playing drums and programming. And of course Chad Fowler mentioned his previous life as a saxophonist during his talk.

I really like the idea that musicians make good programmers. I had been thinking since I first started learning agile years ago, that I had previously been building applications that were far to rigid. That’s because I was building programs like you would build a bridge and I really needed to build them like you would a clay sculpture or the melody of a song.

So why do Musicians become programmers? I’ve seen and heard some reasoning around the mathematical nature of both music and programming as a potential cause. However, the theme from SCNA and my own experience seem to indicate that most of us are people who like to make things. Some of us start out with software, others start in music, art, construction or carpentry. All of these are just mediums to fulfill our desire to make new and interesting things. What makes software so appealing, at least for me is the extremely low barrier to entry. You just need to learn a language and have a computer with internet access and you can immediately get started making a computer do things it didn’t know how to do before. It doesn’t cost a lot of money and it doesn’t take a lot of space, it’s mainly a time investment. Software is a very forgiving and flexible medium that allows the people who love to make things to do what they love with the least amount of friction.

  2 Responses to “Musicians Make Good Programmers”

  1. Hi Matt,

    On a personal level, I really liked this post that you made. I’m both a programmer (I recently graduated from UC Berkeley with a CS degree) and a musician, and I’ve strongly felt a link between my musical and ‘programming’ side. For me, the mindset that I use while programming is similar (if not exactly) the same mindset I use while composing music. As you mentioned, a lot of programming involves laying down foundation, structure (i.e. “building a bridge”) — same thing in music, where you have to create song structure, maintain (or break!) tonality, create driving melodies, etc. Also, the conscious decision of sparseness or denseness in instrumentation/music is parallel to the same notion of cluttered/uncluttered code — however, with the key difference that density in music can be (in certain scenarios) extremely moving, whereas density (as in cluttered) in a code base is unpleasant :P

    Incidentally, I’ve recently been developing my website (which has a WordPress blog), where I’ll be talking mainly about CS, music, and teaching. I happened on here by Googling “simplicity in music, coding” (which will be the topic of my next post, I’ll be sure to link here!), and this was the 2nd hit.

    Thanks, take care!
    - Eric

    • Hi Eric,

      Thanks for the very positive comments. Always glad to hear from another musician/developer. Congrats on graduating and keep practicing (code and music). I’ll keep an eye on your blog.

      Matt (@mattroman)

 Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

 
© 2012 WeRomans Suffusion theme by Sayontan Sinha