How Producing Electronic Music Helped Me Learn To Write Code
Producing music, just like working with computers and writing code, is an interest and passion that I have maintained on and off for the majority of my life. Creating music and writing code are similar disciplines with a like set of rules: learning and understanding the language, establishing form and structure, and iterating on what you already know. With programming, you have to learn the syntax and idiosyncrasies for the language you are working in, as well as learn established best practices. With music production, you have to learn music theory, arrangement, sound design, and mixing/mastering. With programming, you have to learn the popular libraries and frameworks and how to build with them. With music, you have to learn the tempo range, structure and sound palette for a given genre. Finally, both disciplines rely heavily on the concept of iteration: gradually building upon a base skill set with more advanced topics until “mastery” can be reached. This last concept took me some time to understand, and it is essential to embrace in order to enjoy the process.
When I first started to learn to code as a young teenager, I wanted to create a massive sprite-based RPG. The undertaking was far beyond my ability at the time, and after months of frustration trying to figure out where to even start, I gave up. I was reading any book I could get my hands on: C++, Game Design, Graphics — you name it. Although some of the concepts were over my head at the time, I gained a solid foundation in computer science concepts and how designing a project should work. I later took AP Computer Science in high school, which helped me to solidify some of these ideas. However, my dream of creating something impressive was put on hold.
When the Bass Music scene started to emerge in the mid-2010’s I was again determined to figure out how to create something unique and innovative. I watched countless YouTube tutorials on sound design, arrangement, mixing, and mastering. I read any and every blog post I could find about electronic music production. However, I spent barely any time actually making music. I was convinced that I would retain this information and eventually sit down to write a masterpiece.
And then I finally sat down to write.
As expected, what I was able to create was nothing like what I heard in my head. I was so discouraged and embarrassed with my initial output that I wanted to give up completely. Why wasn’t I instantly great? I had watched practically every tutorial on the internet. Why couldn’t I instantly create at a professional level? I knew deep down that I had the ability to become a great producer. What I did not understand, however, was the process that it took to get there.
As I started to sit down and write more everyday, I started to make progress and overcome the frustration. I tried to divide up my writing sessions into smaller tasks: I would take a day just to experiment and design bass sounds. When I got to a point that I didn’t know how to recreate a specific sound, I would seek out a tutorial and create my own variation on it. I would spend a day just creating build sections, and focus on how to create and release tension. I would watch a tutorial on creating a build and then make my own from scratch. I began to figure out how to piece together all of these smaller tasks, and over the course of a year, finally completed my first track that I was proud of.
The most important takeaway from this experience is that the process of making music taught me how to learn. This sort of “meta-cognition” is — quite arguably — one of the most important skills that you can master. You don’t just sit down one day and create a masterpiece: it’s a long process of learning how to do a lot of little things properly, all of which build on top of each other. Learning how to write code is the exact same process, I have discovered. It is a process of patience, consistency, and actually writing code.
When I recently decided to start learning to code again, I realized that I could transfer my knowledge from producing into programming. My experience made me realize that the most important thing to do was to learn in a structured way and to continually apply what I had just learned. After learning some HTML/CSS and JavaScript, I created this simple web app. I am finding this process to be efficient and enjoyable — instead of becoming frustrated, I have learned to relax and enjoy the ride. I know that if I continue to learn and build, I will eventually reach mastery. Knowing that gives me comfort and the will to keep on keeping on — and I hope that it helps you, too.