First published 2010. I stand by this observation although I’d love to learn more about the neuro-chemical mechanisms that might support it.
Studying poker has helped me crack a long-standing (maybe 20-year-old) puzzle for me: why are so many programmers musicians? I’ve sang and played guitar and various other stringed instruments since I was 8 and I started programming at 13, so I’ve lived this dual life for a long time, but I’ve never understood it. I’ve heard explanations like “music is mathematical and programming is mathematical”, but I was never satisfied with them because they didn’t match my experience. I don’t think “mathlich” when I’m programming. Here are the three threads–programming, music, and poker–and how they came together for me.
Programming
One of the transformative experiences of my young life came in high school when Mr. Burishkin (hi Dave! [ed: RIP]) got mad at our algebra class (this was fairly common) and assigned us all 40 trig identities in the book. Usually we’d get half or a third of the exercises in a given set. Here was a big pile of work I couldn’t get out of easily.
For once I did the right thing and decided I would just plow through the whole stack. The first few were hard. I had to sweat to figure out how solve them. Each one posed unique challenges. At this rate the assignment was going to take me hours. Somewhere around half way through the assignment, though, a door opened in my mind. I’d look at a problem and see it in terms of the problems I’d already solved–I can split this in two, transform part 1 into this and part 2 into that and I’m done. I blew through the rest of the assignment in minutes, eager to solve more.
Not only could I solve the problems quickly but I enjoyed the process. Every time I transformed the chaos of the original problem into a pattern I knew how to handle, it was intensely satisfying.
I have the same feeling of satisfaction with many programming-related tasks–when I see a big refactoring in terms of a succession of smaller refactorings, when I see a big task in terms of independently verifiable sub-tasks, when I see a big feature in terms of a succession of features each of which delivers value–at all these times I feel good.
Music
For thirty years I’ve played off and on with my musical partner Curtis Wright. We play American folk music. While I’ve enjoyed playing with many people, Curtis and I share a deeper level of musical communication than I’ve experienced with anyone else.
We don’t plan song endings. We end every song differently every time. Here’s how it works. When we’re really “on”, I will hear him play some interesting phrase somewhere in the middle of a song and something will click in my mind. There’s no explicit communication at that moment though–no nod, no eye contact, nothing. When we get to the end of the song, I will play that phrase as a tag and he will too, in perfect time. It is the most exhilarating feeling because we’re so completely at risk. If we chose different phrases to play, it would sound terrible and we’d look like fools. When we re-invent the ending and pull it off, though, it’s absolutely electric, both to play and to hear.
This is the most extreme example I have of matching patterns in music, but music is full of patterns–what makes a phrase, what makes a chord, what rhythm or rhythms are going on, what style should this piece be played in, backing up an unfamiliar tune by ear, and on and on. I enjoy music because I enjoy those moments of discovering the patterns in a piece. When I see a pattern, I feel satisfied. Woodshedding (practicing physical skills) is necessary to be able to take advantage of patterns when I see them, but I don’t enjoy it the way some people do. Experiencing music, for me, is experiencing patterns.
Poker
When I started studying poker I didn’t have any particular expectations, I was just interested. One of the basic problems in poker is having a more accurate belief about your opponent’s hand than they have about your hand. Their patterns of betting give you clues. At some point you say, “He must have just gotten a second queen,” because how he is playing doesn’t make sense otherwise. When I’ve guessed right, I noticed that I have a moment of the same kind of emotional pattern matching satisfaction that I have when I’m playing music or programming. That’s when I made the connection–this feeling is familiar, it happens when I program and when I play music.
There’s my answer: talent for music and programming occur together because accomplishment in each relies on enjoying seeing patterns. See a pattern, feel good, look for more patterns.
The bigger the stakes and the bigger the pattern, the greater the satisfaction. I won’t play poker for much money because I’m not any good at it. However, I experience more satisfaction when I see big patterns in programs (what some people call “architecture”) or big patterns in music (the so-called “long phrase”).
I suspect that my chaotic early life left me with a brain wired to crave moments of order and feel good when I find them. That and the innate ability to see patterns led me to activities where I got frequent mental rewards. I’ve just identified this connection, so I haven’t done any background studies into the neuro-science of pattern matching. From my experience I would guess that the same kind of dopamine release that accompanies other pleasurable activities happens in my brain when I match a pattern, musical or programmatical. I’d also like to see an fMRI to understand the neural activation patterns at such times and see if programming, music, and poker all really have similar physical neurostructures.
My daughter Lindsey is also a pattern matcher, but she matches patterns of human behavior. She has a good sense of what people are thinking or feeling based on cues that are totally invisible to me. I wonder if there are any studies correlating skill at reading people with skill at music. Are psychologists musicians the way programmers are musicians, or are musical and programming pattern matching similar in a way that musical and social pattern matching aren’t?
Another question this brings up for me is the evolutionary psychology of this kind of pattern matching. What is the evolutionary advantage of being able to match abstract patterns? Assuming it increases evolutionary fitness, what is the cost of it that kept it from becoming universal (I suppose my kids could provide a long list in answer to this question)?
This is fantastic, I had exactly the same experience. Going to share my philosophical thoughts here as I also started with music at the age of 7 and programming at 14.
Curiously, I often pondered over the reasons behind this dual passion. It was during my study of physics that I began to comprehend nature's inclination towards increasing entropy. Essentially, this tendency involves the creation of an abstract configuration within a system, which subsequently materializes into very specific configurations upon the application of an energy source. At this point, discernible patterns begin to emerge alongside symmetries, essential for minimizing information storage and conserving of energy. These phenomena are mirrored in our DNA, which orchestrates the construction of our biological systems using patterns and symmetries. This process continues as we construct systems such as cities, computer programs, music compositions, and companies – all of which serve as expressions of our genetic makeup, reflecting nature's organizational principles under the influence of energy sources.
And now if you want to listen to our free music ;-)
https://soundcloud.com/wearecambio
https://open.spotify.com/artist/14hAdljKM4CrT1uTfPOeKL
Music and programming are similar on some additional levels as well, and just like there are different archetypes of musicians, I find that there are their parallels in programming too. I wonder if the types match up, for any given musician/programmer.
For instance, as a guitar player I only studied musical theory and composition later in my life and while these days I'm perfectly capable of sitting down and constructing a musical piece, I get so much more out of improvisation, repeating a phrase, mutating it and shaping it differently with each repetition. Getting input from the musicians around me and conversing through our discoveries. That's where I find my true joy and am the most creative.
I also never properly studied Computer Science. I picked things up along the way until one day I was a software engineer (or could properly mimic the mechanics of one). To this day, I much prefer 'designing' in the IDE, refactoring again and again, rather than in a word processor like some of my colleagues. Their method is certainly the most predictable and easily digestible by various XFNs, but it's just not how my brain works. While the musician in me can deeply appreciate Classical Music, I personally prefer playing and listening to Jazz*.
* well actually Blues, but Jazz better serves the analogy, I suppose