Musician Skills that Translate to Coding

JoAnna Park
5 min readSep 24, 2020

or pretty much anything

First off, shout out to Jeff for the blog post idea.

I don’t know if it’s just because at least 50% of the people I know are musicians or if I’m just hearing it more because it’s relevant to me, but I have definitely noticed that a lot of software engineers have music-related backgrounds. It’s definitely popular right now within the musician community to be either self-teaching code or attending a coding bootcamp with gigs being non-existent due to COVID-19. Even within my circle of friends, there are three of us, all female violinists, going through a bootcamp. So it totally feels right to be writing a blog about some skills I’ve gained from 10 years of being a professional musician that can help me navigate through the world of coding.

When I was a middle school orchestra and choir director, I was surprised over and over again when parents would not want their child to enroll in the music program because their kid had to do an after-school STEM program or even because of sports. I had to give a lot of presentations on why learning to play an instrument or being musically trained was beneficial to students. In these presentations, I talked about how there are numerous studies on the relationship between musical abilities and higher-level cognitive skills and that these studies show that musically trained individuals have a higher aptitude for executive functions such as remembering and following instructions, formulating a plan, focusing on the task at hand, and juggling multiple tasks. Basically, skills that would be useful as a software engineer or in pretty much any field.

I really don’t want to get into the scientific stuff at this moment as I am using 99% of my daily energy learning Javascript and also sleep-deprived.. so I will just get into some of the basic skills you naturally acquire as a musician that might help out in the coding world.

  1. You know how to breakdown difficult problems into digestible or approachable pieces.

If you are a violinist, you have probably learned or attempted to learn Beethoven’s Violin Concerto, and this piece is 45 minutes long. And you know that this 45 minute piece is going to take you at least a couple months (or even years) to really master it to the level of being able to perform it with good intonation, sound, musicality, and then on top of that from memory. To learn this kind of a piece, a musician has to break down the process into smaller, approachable pieces.

I feel like this is also true for projects within web development. Having worked on two projects so far in the bootcamp, I felt that a huge part of the work was planning the smaller steps and being able to divide up the time to complete the planned tasks. This skill is probably utilized by software engineers who work on large-scale, labor-intensive projects. They have to be able to break the project down into multiple small tasks and organize all those tasks within a timeline.

2. You are accustomed to visualizing the various components of a complete work.

This skill is utilized in all different kinds of ways for musicians. Both music and playing an instrument has so many layers involved in its execution. Taking that Beethoven Violin Concerto as an example, when a violinist is performing this piece, they are obviously thinking about the notes that make up the piece, but they are also thinking about the exact timbre they want in each note, which involves having to plan how they use the bow, what kind of vibrato to use, and even how they move their body. These are different components musicians acquire overtime, and they must be able to incorporate the skills when performing a piece.

I feel like it works the same way in coding. You can not just focus on one line of code at a time or even just one concept. You need to be able to gather the concepts you are learning and then organize them into a complex project or application. These projects will consist of different layers and components, and you have to be able to know when to use what skill or concept in the right place.

3. You are conditioned to spend long hours practicing and repeating something way too many times.

I’m sure you have heard that 10,000 hours practicing something will make you an expert(not true btw). As a musician, you probably exceeded the 10,000 and are heading towards 20,000 now, and you still might not feel like you have mastered your instrument. But you know that practicing and repetition is the only way you will ever get close full mastery.

Coding, or learning anything, is basically the same routine. Get a running knowledge of the concept, practice that concept by solving code challenges or by building something, then repeat. You already know the routine.

4. You know that uncomfortable feeling of not being good at something and wanting to learn and get better.

This one is my personal favorite because I can relate to it much more than my other bullet points. As a musician, you know how it felt either when you first picked up an instrument or when playing through a piece for the first time. You have no clue what you’re doing or what’s going on, and it’s the worst feeling ever. I hate that feeling of not being good at something, like hate it with a passion. But that hate doesn’t make me run away from the thing, it motivates me to keep trying. And I weirdly enjoy the struggles that I experience when trying to learn something. Like even right now, I’m really discouraged and stressed out because I don’t understand Javascript, but I have acknowledged that it’s part of the process and that the only way out of this is to keep studying and learning. Just as how you ended up perfecting that piece, or now you can play the heck out of your guitar, if you are persistent in your learning and have a desire to continue to learn, you will be successful in learning to code.

--

--