Linguistic skills. Music is a language, and so is programming. But, they’re both sort of fake languages that are fairly small when compared to a human language. This ability to learn and apply small made up languages gives musicians an edge when learning to code. Programmers will typically learn 4-6 languages during their career, and if they want to stay sharp they might have to learn that many a year. A musician might never learn more than just one notation, but this ability to learn a sort of fake language helps them with learning programming.
I’ve been noticing a high correlation between programmers and music ever since I started coding 2 years back. Besides Zed Shaw, other prominent programmers/musicians:
- Derek Sivers of the CD Baby fame is a self taught programmer
- Adrian Holovaty of the Django fame. Here is him playing Super Mario. His latest startup, Soundslice is really pretty (and useful too)
A cursory search on Google turns up this post: http://skeptics.stackexchange.com/questions/1570/are-programmers-likely-to-be-musicians
I think one of the closest similarities between programming and playing music is instant gratification. You write some code, refresh/compile, and you see the results immediately. Same with music, you play a riff or a chord, you get feedback instantly. The feedback loop is there to see and the more time you spend at it, the better you get. Once you start seeing improvement, you get addicted. It’s the same psychology behind self-efficacy — the feeling that you’re making good use of your time.