There is almost no difference between a preening, tattooed rock star and a Star Trek worshipping, Cheetos-eating computer geek.
Ok, maybe I’m overstating that just a tad. I’m an executive at a software company. I started out as a software engineer and I still consider myself a software engineer (of course as soon as one moves into a management role, former colleagues snicker behind your back when you continue to refer to yourself as a “software engineer”). I have worked in the software industry for 27 years. With all the seismic changes that have occurred over that time, from green screen terminals, to PCs, to networks, to desktop supercomputers, to the Internet and mobile computing, one fact has remained constant; an inordinate percentage of software engineers are also amateur or semi-professional musicians.
I have personally observed this phenomenon through the years. I can’t count the number of times that I have been out to dinner with new acquaintances who work in the software industry. The talk turns to music, and inevitably a majority of the group actively plays an instrument. One colleague of mine recently quoted a study (I have no idea if this is true) which showed that 85% of IT workers were also musicians.
The question is; why should this be so? Believe me; my friends and I have batted around a number of theories. There are some obvious similarities; the stereotypical rock star exists on Jack Daniels and cocaine, the software engineer on Twinkies and Jolt cola. Rock stars rebel against bureaucracy and the “suits” at the big companies (or at least they used to when the music was more important than commercial success). Software engineers do the same (that’s why so many good ones opt to work at small companies and open source projects). Rock stars have their band. Software engineers have their team. Both choose jobs that don’t require a dress code (just turn out good tunes or good code) and have more flexible hours (or just more hours). Rock stars work towards the CD release, software engineers the product release. Just as many software engineers are amateur musicians, many musicians are amateur computer geeks.
I have a theory that I think neatly explains the significant overlap in interest and skill between these two groups. Like most good theories, this one is forehead-slappingly obvious once you hear it. In a nutshell, software engineers and musicians do virtually the same thing. Allow me to explain. Most people who do not work in the high-tech industry assume that software engineering is mathematical in nature. Ask any teenager why he or she is uninterested in programming and I’ll bet you that most will say “I’m not good at math”. There is a perception that programming is a mathematically based calculation, probably because the parallel idea persists that computers are nothing more than giant, blindingly fast calculators. But the truth is that programming is not a mathematical exercise, it is a creative exercise. Programmers are given a language syntax, programming interfaces, and a toolset which together form a structured framework. Within that framework they can be inventive, creative, and imaginative. Truly great programmers create elegant, almost beautiful solutions to complex problems. Peer recognition of their creativity and expertise is a large part of their reward. Sound familiar? Musicians are also given a “language syntax” and a set of rules that form a structured framework. Within that very structured framework they are also called upon to be inventive, creative, and imaginative. A software engineer hones the same skills that are required of the musician. If he or she also happen to have a good ear, why not pick up an instrument and leverage those skills in a different and equally interesting realm? All that is required is that he or she learn another language and a different structure.
I have no idea how one would go about attempting to prove whether my theory is correct, but I will admit to having a hidden agenda. My hope is that the next time the reader meets a software engineer, the first thought that comes to mind will not be “computer geek”. It will be “artist”.