Why are so many coders musicians?
I am currently at the beginning of my career as a developer. I came in ‘through the back door’ so to speak. I’ve been a musician my whole life, and it was through my interest in building music tools that I got into software.
Going from music to code was a gradual transition. It took me some time to make the decision because of my fear of alienation. I didn’t want to turn into a cubicule zombie, typing mindlessly into a computer all day long, detaching from life and art. I have had a couple of corporate jobs before and couldn’t take it. For the creative type, alienated work sucks the marrow out of life. Musicians need creative expression in their work and have low tolerance towards soul crushing jobs.
Even though coding implies staring into a screen for long hours, to my surprise, I found it was not alienating. In it I found a new way of expressing creativity. Just like working in music, either producing, composing, or playing, it didn’t feel like actual work. Why was that? In addition to this, I noticed many developers were musicians. After a few months in the industry, I realized this was not a coincidence.
Finding musicians made me realize my fears were unjustified and it also made me wonder why many coders were musicians. What are the commonalities between the two professions that make this relationship?
Long-term commitment
There seems to be a quality of focus for musicians and for coders. That reserve and focus is needed for people to be able to concentrate and develop skills for the long term. Staying on track and persevering through continuous frustration is a personal trait I find in both disciplines.
Developing musicianship requires long-term commitment and a continuous training of brain plasticity to incorporate fine hand movements in instrumentality, to train the ear to distinguish between notes, chords and timbres, to learn how to read scores, and to transform the theoretical abstraction of harmony, counterpoint and instrumentation into mental representations of sound.
As a beginner coder I’ve found myself in a similar process. Learning the fundamentals and becoming comfortable and creative with them requires a maturity of the concepts that takes a long time. A lot of the concepts in programming are abstractions that you can’t relate to day-to-day experiences, hence, they require a long time to settle in.
This being said, though the nature of the two disciplines requires a similar mindset, it doesn’t mean the skills are the same. I don’t think logic and algorithmic thinking translate directly into music, which requires knowing how to count and having a good ear and coordination. At the same time, I don’t see how these last skills would translate into coding. A lot of musicians can’t code and a lot of coders couldn’t be musicians no matter how hard they tried. Nevertheless, the process by which you gain the skills is similar and rewards the kind of personality that is able to engage in long-term practice and learning.
Material — Abstract duality
Long-term commitment is a personal trait, but it doesn’t relate directly to actual code or music. Is there something in the two activities themselves that puts them together? I think this is turning abstract relationships into material creations.
Music is both material in the physicality of sound and abstract in the relationships between the sounds themselves. The sounds relate to each other through abstract concepts that affect our subjectivity. Amongst these musical abstractions are rhythm, harmony, counterpoint, orchestration and other forms of timbre relationship theory. Similarly, the music creation process is transforming abstract techniques into a musical object (organized sound?) that has relationships we can understand both intellectually and with our bodies.
Code has the same duality in that a developer works with abstractions to create an end product (program or game) that can perform a function and be understood by users. The abstractions of programming are in the form of objects, methods, functions, inheritance and all sorts of relationship models and structures that don’t relate much to the ordinary realm of human existence. The material aspect of it is the existence of the code itself and the program that emerges from it.
Of course, the purpose of most programs is different than music’s. Programs are usually tools that help us create, access information, organize data, or games to entertain us. The end goal of music, if any at all, is non-utilitarian and less straight forward. Its goal could be in part to entertain us, change our subjectivity, arouse out passions, or stimulate out intellect. Whatever it is, its purpose is certainly not of the same kind as a program’s.
Though the end result and purpose is different in both disciplines, they share the process of turning abstract relationships into material creations. In this sense, coding and music share a common creative process that provides a similar intellectual reward to the creator.
Music and code as language?
I’ve heard many people say code and music relate because they are both languages. I think there are certain characteristics of programming and music that may seem similar and map into language, but that these characteristics are too different in nature to be able to explain why many coders are musicians.
One of the main pillars of this idea is the fact that both music and code are written expressions that transform into a creation. In the case of music, this is not true as many musical traditions have been oral for ages and notation is relatively recent in music history. Because of this, music doesn’t require notation to exist.
On the contrary, there is no programming without notation. In programming languages the creation of syntax is prior to the act of programming. More importantly, in coding, all the complexity of the program is defined in the lines of code, which is not the case of musical notes. Scores are a reduction of a much more complex phenomena, more like the map of a terrain than the terrain itself. On the other hand musical syntax is usually a historical process and collective effort, as abstract, predefined, and arbitrary syntax is music only has appeared in very specific musical movements (New Music and Ars Nova perhaps).
The second reason I’m usually careful about treating music as language is because the nature of what it communicates is open to debate. Code establishes a one-way communication between programmer and machine, so that the first can give the second logical instructions. What does music communicate? This question is tricky. I wrote about this subject in the book The Art of Experience and it’s not straightforward. Nevertheless, I do think music ‘communicates’, and in that sense it could be considered a language.
In spite of this, many human endeavours communicate and don’t have this tight relationship between them like music and coding. Are many journalists, linguists, or politicians musicians too? I don’t believe so. With this, music and code could be considered languages because they both share some obvious features of it like notation and communication, and this could be part of the relationship we’re looking into. But I think the nature of this communication and notation is different, so it can’t be a reason that explains the relationship.
Instrumental virtuosity
My first coding teacher said that when he hired developers, the first thing he looked at in a job interview was at the coder’s hands. He would observe if the candidates looked down to the keyboard while typing or whether they needed to slow down to type numbers.
I thought that was weird. Shouldn’t he be checking the quality of the code only? Who cares if a coder types with one finger or with his/her toes if truly able to put out good code and solutions to problems?
After saying this the teacher showed the class a video of a developer he admired giving a live youtube class. The developer in the video would never look at the keyboard and she would just talk explaining everything at the same time she typed code, never making a mistake.
After this video my teacher’s observations made total sense to me — his interest in the hands of the candidate could be compared to music performance appreciation! Or at least it was related to the feeling we experience in a virtuoso performance. This admiration for the effortlessness and ease at which lines of code rolled out the developers hand, in other words with her virtuosity, were clear indicators of her craftsmanship and expertise.
Just as we admire the best performers that can make the music they play seem like the easiest thing in the world, this appreciation exists in coding as well. To the untrained eye this might seem like an irrelevant nuance, but anyone that plays an instrument can recognise the effortlessness of the virtuoso as a sign of his mastery. This is a big part of our enjoyment of music beyond sound. In the same way, the virtuosity of the developer is a sign of his mastery, where the keyboard is the instrument his/her expression.
This admiration for craftsmanship and mastery relates to the feature discussed before — the ability for long-term commitment. The coder enjoys the process of becoming proficient, and at the same time admires that virtuosity in others.
Collaboration
Music is many times performed, enjoyed and created collectively. The lonely composer and listener of music is a relatively new phenomenon. From bands to choirs and orchestras, music has both an individual and a collective dimension. The musician’s practice is usually individual but surrenders to the group when creating music.
This is very similar to the collective culture in software development. From open source communities to teams in companies, software developers understand that what they do is complex and requires many talents, collective effort, and coordination.
The similarities in the process of developing software collaboratively with group music creation and performance is one of the reasons why both activities share a similar process. Even though musicians and coders can have big egos and work a lot of time on their own either with their computers, instruments or scores, there seems to be a common understanding that great endeavors require collective effort. this means surrendering big egos temporarily to collaborate, help others and accept help.
Master — Disciple relationship
Beyond the collaborative aspect of creating music and software, working with others is a part of the learning process in both disciplines as well. This becomes quite clear with mentorships or with a master-disciple relationship.
Many coders have mentors to learn and further develop their skills. The mentor can be a long-term teacher, a senior developer or a more experienced colleague that helps the developer acquire skills and develop good coding practices. At the same time, the mentee acts as a mentor for less experienced developers. The master-student relationship is deeply engrained in software development.
This relationship is at the core of music as well. More than in classrooms, music is learnt in a master-disciple long-term relationship. The maestro doesn’t just provide content, like a regular classroom teacher, but also gives guidance, supervision, and personal council. For example, the composition master reviews the work of the young composer and makes suggestions on a regular basis. Also, the instrumental master coaches and guides the student’s learning process with small corrections of their sound, technique and gestures.
The importance of mentorship in both disciplines comes from the fact that both are skills that require a long time to develop and that both software and music creation are collective efforts.
Final thoughts
For all the reasons explained in this series of blog posts I think music and code are related very closely and in many dimensions. These commonalities explain why so many coders happen to be musicians and vice versa.
With this I don’t imply that there’s some sort of deeper connection between the two or that all coders are potential musicians and all musicians have talent for code. I don’t think this is the case. Nevertheless, both professions have huge overlaps in thinking process, learning dynamics, and community driven development that I think allows people to transition between both professions with relative ease.
Thanks for reading and if you want to help me figure out this puzzle further you can comment on this post or write to my email.
James Brown