I am a Software Engineer by profession. I love both music and programming. One thing I realized about being a programmer who is also in a band is that both worlds seem to have a lot of things in common.
Parametrization - is the process of deciding and defining the parameters necessary for a complete or relevant specification
The ideas and/or energy you feed your bandmates will ultimately affect the outcome of a song or a jam. I can’t tell you how many times I’ve played wherein I was so down or unfocused but when my bandmates started to jam, I forget my problems and focus my energy on playing/performing.
Collaboration - developing software requires people getting together, brainstorming and designing the best way to achieve a solution or a specification
Music is not about the “me” principle. It’s more of the “we” principle. Though some talented folks standout, being in a band requires people to give and take constantly. Realizing another person’s strengths and weaknesses will help in forming a sound and will also dictate how a song will go about. Everyone has something to offer in a song. I’ve played in different situations wherein trying to make others play better made me play better. Believe in the people you play with and everything will turn out good.
Abstraction - formed by reducing the information content of a concept or an observable phenomenon, typically to retain only information which is relevant for a particular purpose.
Music is an art. In the end, it’s not about HOW YOU PLAYED IT… BUT HOW YOU EXPRESSED IT. A lot of musicians today are stuck in an “olympics” mindset of technique and complex ideas. They may be able to play you a face melting lick that will make your girlfriend wish you had those fingers but can they write a song? Most people who will listen to your music do not know what a 13/7 Myxolidian lick played with strict alternate picking is. You can’t explain to an audience how complex or advanced the technique you used is. And if you’re saying “Well, I’m doing this for myself. I don’t care about what people think about me.” then why play publicly then? People like to be taken on a journey when listening to music. How you achieve that is all up to you. Ultimately, the song should come first. The idea/emotion of the song should be expressed.
Software development life cycle- is a process of creating or altering information systems, and the models and methodologies that people use to develop these systems.
Bands are different from one another. How one band operates may not necessarily be applicable to another. This also applies to how people make songs. Every “way of doing things” has it’s pros and cons. In music.. the old adage of “If it works, don’t fix it.” applies. I’ve played with different people and the one thing I learned with playing with them is that there is no “one way” of doing things. Some people like to start with a beat. Some like to start with lyrics. Some start of with a riff. Some jam for hours until they stumble upon somthing. Some come in with a whole song already mapped out. All of these are okay if it will lead to writing a great song.
Syntax - is the set of rules that define the combinations of symbols that are considered to be correctly structured programs in that language.
There are a lot of ways to make a song. Just like there are different languages in programming to make a system. The goal is to express the idea. How you express it, the tools you use, the techniques you use are all part of a bigger picture… which is the song.
Learning by doing - programming concepts are better understood when applied because you can see the results and compare these concept from one another.
Learning is key in music. YOU CAN”T STOP LEARNING. Putting yourself in different situations will lead you to explore different ideas and will result in different outputs. People will get stuck in a rut once in a while but listening to different songs or learning a new technique can kickstart you in getting out of that rut.
I can go on and on about the similarities of software development and music but will stop here because a longer list might bore you. I hope this made sense to some of you. I love both music and programming… and I am happy that I am still doing both.