A few years ago, I was having dinner with a colleague in San Francisco who was working for a tech company by day and and freelancing with the local music community at night. Over the course of our conversation, she told me about her experience applying for jobs in the tech sector and how she was able to recast her musical training as marketable skills that made her a competitive hiring prospect. I thought it would be good to revisit a few highlights of this conversation and articulate these interdisciplinary connections in order to reference them while working on my resume, preparing for cultural interviews, etc.
Note: while some of the following observations are specific to a singer’s experience, most of these are generally applicable to all musicians
Linguistics The phrase “reading music” says it all: any genre of music which has been transcribed requires the performers to understand a specialized linguistic system in order to reproduce it. Not unlike today’s programming languages, the standards laid down in Western art music serve as a universal template that allows musicians to accurately reproduce the same piece of music in nearly any setting across the globe.
And yet, each instrument has its own set of instructions to accomodate their unique features and playing styles. Examples include a trombonist sliding between notes, a flutist singing and playing simultaneously, and a violinist choosing whether to bow or pluck their strings in various manners. I may be able read and understand these instrument’s parts because of the commonalities in the language, but there will probably be elements that I won’t recognize or be able to reproduce when singing.
This gives a composer or songwriter a myriad of dialects to choose from, they just have to decide which set of tools will best communicate their vision. In the same way that an application requiring numerical accuracy with complex financial calculations would be better served by a language with a high decimal count, a jazz standard utilizing short-hand for harmonic progressions is far more accessible to a musician trying to improvise than writing out the notes in the chord (nobody wants to be doing on-the-spot theoretical calculations while they’re in the middle of a performance).
The implications for vocal music are even greater when we consider that setting words to music requires several levels of organizational: the literal poetic context, the lyrical (i.e. how the words associate with the musical structure), and, often in the case of classical music, the choice of language and the attached cultural implications inherent in a languages structure. Unpacking these considerations is outside the context of this article; the takeaway is that musicians are already experienced in grappling with the same kind of complex linguistic relationships as programmers.
Scoping Almost every music teacher I know always recommends piano lessons when developing a foundation for musical skills. Often when a student begins with an instrument that can only produce one note at a time, they can fall into the trap of concentrating their attention only on their line. It’s like walking through the Louvre while looking at your shoes; you could have been through the entire museum and not seen a single work because you were too intent on putting one foot in front of the other.
By contrast, a pianist is capable of producing multiple notes simultaneously, which gives them the ability to play more than one line at a time. Whether by harmonizing pop tunes or navigating the contrapuntal texture of a Bach fugue, piano literature forces the student to think vertically as well as horizontally. The player has to consider at each point in time how a particular note fits into the relation of the other notes around it, as well as how that context will change when the next chord is played and - most importantly - why the composer chose to place them together
Just like a pianist, good programmers don’t write their code in one block from start to finish. They understand that concepts like the single-responsibility-principle and OOP allow them to compartmentalize functional elements and make them interact in ways that lend the overall structure of their applications a greater sense of organization and elegance. They also know that this segmentation of their code into units allows other potential collaborators to more easily grasp the inner workings of their applications because they’re able to view each part first in isolation and then in relation to its role within the system.
This deeper structural awareness has much the same impact on how a musician approaches learning and preparing a piece for performance. It’s not uncommon to hear someone isolate and repeat the same phrase over and over again in order to correct an aspect that they’ve identified as problematic, such as a wrong pitch or an incorrectly-counted rhythm. In both cases, fragmentation requires the musician and the programmer to have an understanding of their subject matter from the topmost level to have an image of the desired end product, as well as a lower-level scope in order to correctly identify any issue they need to address.
Interpretation By far the most curious quality of the performing arts is that no two instances of a work will ever be exactly the same. Every musician has the capacity to bring their own interpretation to a piece of music, which can at times result in wildly different renditions of what we still recognize to be the same piece. Shortly after I began to code, I realized that the same was true of programming. There are a plethora of ways to write working solutions to a problem, and it’s up to the writer to decide which version they find to be the most efficient, the most readable, the most elegant. It also gives us as programmers a way of imprinting a personal quality upon our products that speak to our mindset and our values.
It’s worth noting, however, that interpretaion is not solely determined by the individual. Coding and music are both collaborative activities; they require a degree of agreement and compromise between all those involved about how the final product should be shaped especially as the scope of the project balloons. No performance of Mahler’s 8th Symphony (dubbed “Symphony of a Thousand” because it literally calls for a thousand musicians) would be possible unless everyone agreed to give some of their creative license over to the conductor; likewise, a project manager needs to be able to direct the activities of those working under them in order to ensure that all pieces of the team’s application can communicate effectively with one another. The awareness of when one can exert their interpretations versus when a peer’s vision takes precedent is a valuable skill that both disciplines cultivate.