It would be interesting to question, that what is about music and ability to play some instrument that goes so well along side programming and hacking.
Then I decided I really wanted to make video games, so I got a master's degree in CS and now I'm moving to Seattle to make video games. I'm pretty much only playing guitar now, which is a much easier to play casually than the trumpet.
Programming and music (especially jazz improvisation) seem to involve very similar kinds of problem solving. Both of them require thinking about a problem at many different layers of abstraction simultaneously, and both are fundamentally about recognizing and manipulating abstract patterns. Also, both require a pretty focusued mindset--I learned that hours and hours in the practice room can pay off musically, and now I'm spending hours and hours at the computer in order to make games. Both are passions that, from the outside, might seem like they require a lot more work than they give back in payoff. But if you enjoy the process, it doesn't feel like work at all.
Electronic music production is alot like web design/development in that you start with a completely blank canvas, and then you tweak and change tiny paramaters over and over again until you get a product you're satisfied with. Overall I think the major personality trait that lends itself to both web development and music production is being comfortable with long periods of isolation/introversion, blocking out the world to see what your mind is really capable of. An interesting look into this is ReGeneration (on hulu) where you really see Pretty Lights buckle down and do some work on a track with only a laptop and a pair of headphones. He's alone, in a corner, really tapping into his inner self, which is what I think alot of hackers really are doing when you get down to the root of it.
It's definitely tough to do. There are so many parameters that you have to tinker with, both in designing your sounds and beats and then the (ugh) mixing/mastering process. It could indeed be compared to web design in a number of ways.
I always thought that classical music was extremely mathematical and, to me, made the most sense. However, I'm interested to hear how many of you are able to play jazz (or anything with improv). I studied under a jazz pianist in college and, although I had a decent grasp on the theories and chord structures, fell flat on my face during any form of improv.
I play a lot of guitar as well, but the above remains true -- more rhythm guitar and "messing around with chords" and no "lead guitar" improv.
I guess I'd equate that to the ability to write in specific languages (PHP, Python, ASP, Javascript, C) and the ability to read other languages (Perl, Ruby).
I've no doubt that being able to effectively and efficiently learn at one (coding or playing) is incredibly helpful when learning the other one.
I guess a programmer is like a composer, the program is the score and the computer the performer and the running program the performance and the user the audience.
My CS interest is Model Based Software Engineering. In music, the score is a notation and a model for what will be reified - performed. Much of music is abstract and the playing the instrument is a learned automatic response to reading the score.
Keeping layers and variations according to the music in the mind equate to layers in code.. loops and conditionals... which can be improvised too. Also setting up a context environment in music can be like setting up a context with code... blah.
Here's one of my compositions, with myself on electric piano and other folks on everything else: https://dl.dropbox.com/u/1204208/amh.mp3
What I found very interesting was that my kung-fu teacher plays the guitar too, and very well.
If anyone is interested, some of my works across a number of genres are available on my SoundCloud: http://soundcloud.com/magnus-rose
Aw, yeah.