How Music Made me a Better Software Engineer
I have always been an enthusiastic earthling when it comes to trying different things. After all, life would be pretty boring without them. There are many fascinating hobbies to explore, from scuba-diving to coding, even a lifetime wouldn’t be enough to try them all. Each of these hobbies opens up a new world for you which helps you find your true self, make you a happier person in general. Hobbies make you feel, “triumphant”.
“Today is life-the only life you are sure of. Make the most of today. Get interested in something. Shake yourself awake. Develop a hobby. Let the winds of enthusiasm sweep through you. Live today with gusto.”
- Dale Carnagie
There is one hobby though, which I unconsciously delayed since my childhood. Maybe it was because I couldn’t afford it, as in time or financial perspective. Maybe I thought, it was a “rich” people’s hobby. After graduating from college, I decided to give it a try and eventually, started taking drumming lessons. Yes you heard right, drumming was always something I felt passionate about. After one and a half year, today, I am realizing that drumming has been contributing notable value to my life in every aspect. But, I will be focusing on drumming’s effect on my Software Engineering career in this story.
Note: To be honest, I don’t like the question “Do you have a hobby?”. You don’t have hobbies, hobbies are who you are. In my opinion, “What would you like to do on your free time?” is a much better question. But, of course we need a word for this concept.
1-) Breaking Large into Small
One of the most important skills a software engineer has, is breaking complex problems and systems into modular pieces. This practice helps with better understanding of problems and makes you arrive at a cleaner and more scalable solution. Also helps with building a better relation with your boss and securing your job so, yeah. But man, how does this relate to drumming, you may ask.
As you know, drummers split their brain into four while playing drums, maybe even more. Pretty amazing to be honest. Okey, for the right handed folks, the combination at the most basic level is, right hand for the hi-hat cymbal, left hand for the snare drum, right foot for the bass drum, left foot for the hi-hat pedal.
Watch this amazing performance by Aric Improta.
To achieve this “groove” feeling, harmony; a drummer needs limb independence first. Let me tell you this, it’s pain in the bum. To make it easier to cope with the pain and attain, my instructor has his own techniques.
First of all, he told me that I’m going to learn drumming step-by-step. By that, he meant getting proficient with hand technique first, then drum stroke, then combining right hand and left hand with the previous techniques to build independence. You get the idea. When I struggled with something, let’s say I’m having hard time playing a beat where I combine all my limbs, he told me to stop, forget about anything and just focus on right hand and left hand part.
What he was doing actually, is breaking down that complex system, beat in this case, into snippets and making me understand the beat one at a time beforehand. I realized, these two concepts, software engineering and drumming are actually very similar. We are both using “divide and conquer” style paradigm in our careers.
Damn! It felt amazing when I became aware of this fact. Adopting this D&C paradigm with my hobby, also have broaden my horizon with my software engineering career.
My instructor is a wise, wise gentleman. Kudos to you Burak Taşdemir!
2-) Harmony of Components
I want to take this to a whole other level. I think, there is a huge similarity between software systems and bands. How? Let’s discuss.
If you want a software system to have quality and to run effectively, each service of the system needs to work smoothly, together in a harmony. Let’s suppose that we have a software system architecture where microservices, databases, scheduled events running on top of AWS, a relatively complex structure. The system’s main goal is to provide a reliable health care service for customers. What if the authentication server times out occasionally when a customer tries to log in? What if the database doesn’t execute queries properly and data isn’t being represented accurately? What if the UI/UX designs are so bad, customers close the page in milliseconds after they saw the mess? The customer satisfaction would drop drastically right?
Same thing applies to bands. In order a band to make you feel the music, each musician needs to play stunningly and the group needs to have a harmony. That way the listeners won’t say “Not quite my tempo!” instead they will tell “Mmmh, merveilleux!”
3-) Meeting People
Drumming also made me a more social earthling. From “Throw me in a social situation and watch me not knowing anything about what to do” point to “Hey, I accidentally overhear you talking about going to a studio, I can join you as a drummer if you would like to get your ears explode in a good way!” in my company’s campus.
This is actually very useful, since software engineers like me generally have hard time socializing. Let’s face it, we are not social individuals. At least it still scares me that people aren’t made of 0’s and 1’s. YOU CAN’T PREDICT WHAT IS GOING TO HAPPEN!
TL;DR
Do something you are passionate about on your free time and enjoy its benefits in every aspect!