It’s the Discipline.
When I started learning programming and studying languages, I kept running into people who would tell me, “Yeah, musicians actually make good programmers.” At first, I thought it was just some attempt at encouraging me, and not based in reality, but I kept hearing this response and claim over and over again.
I started to wonder if there might be something to it, so I searched the web for articles about this topic, and did find more people claiming that musicians make for excellent programmers. Take this article published in the Huffington Post, for instance. Or this article from Medium.com.
I particularly enjoyed reading this quote from the Huffington Post article, having grown up near Cleveland and being a huge fan of the Cleveland Orchestra.
“Tech Elevator student Drew Sullivan—who has performed with the world-class Cleveland Orchestra and was only the second doctoral-level clarinetist student ever at the renowned Cleveland Institute of Music—agrees that analytical-minded musicians are well-suited to coding. “Musicians enjoy the ‘why’ and ‘how’ of music,” he says. “Musicians can learn, as I am, to ask the computer the same types of analytical questions we’ve been asking ourselves of the music for years.”
I have always had a love for complex and formally structured music, such as the music of Bach, Mozart and Brahms. There is something about the logical structures and mathematical features inherent in some of the works by these composers that I have always found compelling, not only on an intellectual level, but an emotional one as well. I think this combination of engaging the creative right part of the brain, as well as the analytical left side of the brain simultaneously also has something to do with why musicians might make good programmers. I believe that the utility of the stimulation and use of the brain in this way by musicians translates to the process of analyzing problems and creating solutions in coding.
The process of learning an instrument and developing the skill of performing on it to a high degree also translates well to the process of learning how to code. Namely, it involves breaking down a large problem (how to get your body and mind to work together to execute a complex phrase or piece of music) into small achievable steps to reach the goal. The solution, or steps to take to achieve this goal often require logical thinking, ingenuity and creativity to come up with. This is analogous to having a goal in a program or website build in mind, and breaking down the logical steps necessary and assembling creative solutions to make that goal a reality. The process of learning an instrument also requires an immense amount of practice and persistence to develop and improve. I’ve realized that what has helped me so much in learning programming languages are the good habits of self-discipline, persistence, creative step based problem solving, attention to detail and focused concentration over a long period of time that I developed learning how to play an instrument (drums and percussion, by the way).
In other words, learning to play an instrument well is extremely difficult and requires constant focused attention, effort and years of study (contrary to popular belief, that most musicians are just “talented” and don’t have to work very hard at it).
In my formative years, I would practice for 8+ hours a day, intensely focused every single day on getting better at my craft and thinking about it day and night. I find myself revisiting that mindset and routine now and understand the process and work that is required to achieve a high level of competence in a given skill. Sitting in front of a computer trying to solve a problem and debug a program for hours on end is really not that different in my mind than sitting in a room working on a musical phrase or piece for hours to get it just right.
Another skill that is very useful to have in all fields is the ability to work in a team and with others to complete a common goal. Playing in many different bands and working with all sorts of people and personalities has taught me how to get along with others and make whatever situation you all are in as good as it can possibly be. Maybe the sound isn’t quite right, or one of the other members in the band is not quite as strong a player. You smile, support each other and do what it takes to get the job done and be professional. This professional attitude is called for (and tested) all the time in the music business if you want to be successful. This transfers very well to being able to work on a team with other developers towards the common goal of completing a project and ensuring that interaction is harmonious and drama-free.
I had no idea that my background as a musician would translate so well to programming. I thought, ‘how could playing drums possibly help with creating websites and web applications?’ and ‘why are all these people telling me that musicians make good programmers?’ Upon further reflection and thought on the matter, I understand now why that seems to be the case. What I’m really interested now is exploring how deep and manifold the connections between coding and music actually are.
If you’re interested in my musical background, you can check out my artist website at https://sites.google.com/site/brentmarquez/.