The One Thing Programmers and Musicians Have In Common
codinghorror.com
codinghorror.com
1. Everybody likes music
2. Music making is very accessible (offhand, I can't think of any condition which would prevent one from playing music at all)
3. If you have the dedication to get good at making programs, you also have the drive to get at least half-decent at making music
Result: good programmers tend to be musicians. Alan Kay was once a professional jazz guitarist; I don't find this coincidental.
The problem I have with music-anything analogies is that "music" covers such gigantic scope that you can make all kinds of generalizations about it, and they'll be true for some kind of music. Individualistic? Collaborative? High-tech? Low-tech? Intricate and exact? Improvised and free-form? Notated? Oral tradition? Hey, we've got that, too! My field is just like music!
I'm going to speculate that it has something to do with musical composition being akin to software design.
Paul Hudak is another noteworthy person in the field who pursues music and makes it part of his research. His book "The Haskell School of Expression" teaches aspects of Haskell using music composition. As an aside, he also was involved in a new program at Yale called "Computing and the Arts" which looks like a heck of a program for developers with artistic leanings.
When I am playing an instrument, I typically lose any connection with thought or the rest of my body not directly involved in playing. My mouth sorta drops down and I begin to almost drool. Something my girlfriend loves to remind me of. I am literally lost in the music.
When coding, I am almost hyper aware of the thought process. I am surely focused on only what is happening relating to the code, but the disconnect from myself never happens.
I think the connection is the desire to create something and an inborn understanding of modularity and the flow of ideas/actions. People with these qualities are often drawn to both.
In college, I was in a 1 credit small jazz combo that met every Friday from 3-4. After the instructor left at 4, we'd whip out songs we wrote and would start jamming. Often it was 7 before I looked at the time.
I read an interview with a famous Chen Tai Chi stylist a few years ago. He recalled practicing 12 hours daily for a few years in his youth. He didn't talk about it like work, he just got a thrill out of every moment.
I play a bit of guitar and I can think up of all sorts of seemingly valid comparisons, but I don't if they're just too general to draw any conclusions from. After all, many of these are just as applicable to something like photography (another thing that seems common amongst programmer types)
One thing I can say for sure is that true or not, you can use these musician/programmer analogies to impress girls, who'll start to think of you as the "creative type" many say they like ;)
From what i know about music, and other creative activities, i can say that programming has some similarities with the other creative arts, but it an entirely different art of its own. We can draw connections between all the arts, painting is like music, programing is like dancing, i can write a blog post on all of those, but they are still different arts.
Maybe knowing how to play doesn't make you a better programmer directly, maybe it does it indirectly by making you more creative in general. Those are my thoughts on the topic.
The only thing I can find in common with musicians is that both are incurable gadget nerds.
The parallels are really much closer to the arts than they are to the service sector.