If there's one benefit to working for any tech company, it is that most allow you (the programmers) the freedom to drown out your entire surroundings with music. Some even provide decent headsets for just such an occasion. It's as essential as having a good monitor and a sturdy keyboard.
At my last job the owner of the company even went as far as personally ordering me an expensive (for my taste) headset when he saw that I was using my default "whatever comes with your phone" earbuds. I never did use them, but it was a nice gesture for sure.
Even now as I write this, I'm currently making my way back to 1985 listening to this:
Such a good album. No lyrics. Good melodies. And this 'hi tech - low tech' vibe that makes me feel like I'm making something amazing. I'm not. Not yet anyway.
If you have ever forgotten your earphones at work, then you know that dreadful feeling of having to sit there and just work pretty much. And the one where people assume you're free because you aren't symbolizing 'leave me alone', so a few might waltz over for your daily dose of social contact. You never value what you have, until it's gone. Those were the longest day of my life. When your day consists of sitting in a chair staring at a 1920 x 1080 display with 100 other people going on around you, you tend to pick up on every single conversation in some way.
So today I thought I'd talk about the music that we listen to, while running the code that we write. And whether it has an impact on said code, because I believe that it does. Does listening to Judas Priest for example produce a retro but yet soothingly heavy class? Maybe it does.
A good headset
First off, get a good headset.
Things can get loud in an office environment. And if you don't want to be at '11' on your cheap earbuds, then it will be worth the investment to pick up a decent pair that will last you for years and won't give you permanent hearing damage.
These are my top choice for quality, yet affordable, headset. The Audio Technica MX30's. The sound quality is amazing, and the price point is decent when compared to other brands.
Not getting paid by them. I wish. Just a fan.
These are great for both noise cancellation and delivering some heavy bass that I didn't know music had. They are wired indeed, but that's a good thing as wireless headsets tend to suffer from interference every now and then. And, as I mentioned, they're relatively cheap. You can pick up a pair on Amazon for $59.
Configuration
Most people just play their tunes to whatever default their device has selected. But you normally have much more control than that. If you're using Windows Media Player for example, you have access to the Graphic Equalizer, down below.
And you don't have to be an audiophile to appreciate just the right setting.
Still waiting for the "Year 2050" setting. HowToGeek has a great write-up on the other features of the equalizer. But play around with it and find "your" sound.
Now to programming
For the most part programming is a long process. Could take you 5 minutes to fix something to anywhere from a few hours to a few days. But to build something complex could take you months. And much of that magic happens during uninterrupted moments. During a focus driven, caffeine driven, typing frenzy I like to call "the zone". Just have anyone come up and talk to you for 2 minutes, and it's gone. You might recover eventually, but it'll take you some time.
And that's why music is so important to software developers. Because, for one, it's music. Who doesn't like music. But two, normally we listen to music that we're already familiar with, so our brains don't have to work extra hard to process any new input and ideas. It's like driving. The first few times you're sweating and having a stroke. And eventually, you're on your phone and eating a sandwich in 3 second intervals.
Programming is a solo job. There's pair programming sure, but that hasn't caught on so strongly just yet. And there aren't too many jobs like that, which is why I think employers realize the importance of leaving a programmer be.
Here are a few observations that I've made during the past couple of years as I've headbanged my way through a login page or two.
Lyrics are distracting
The one thing I've noticed is that lyrics, amazing and moving and all, are distracting when you're working on something that requires more than 5 minutes of concentration. You start to sing along, or your brain finally figures out what that one muffled line means, and in the long run, it will slow you down. However, having said that, if you're hearing something that you can sing note for note in the shower, you probably won't notice it as a distraction.
I tend to find that when designing a website, even the tone of the music has an effect on what I produce. Throwing on some As I Lay Dying for example, leads to some serious business development modules. Something about the realness of said music that makes me personally want to push into my field of choice. Business, in my case.
No new songs
I've made this mistake a few times. A band that I like has a new album come out, and I listen to it on repeat for a few days, while attempting to work. No such luck I'm afraid. You either end up too focused on the new sounds, or you keep trying to figure out those new shiny lyrics, which are wrong anyway.
I save my new songs these days for my after-coding time. When I'm done clacking away at the keyboard, I'm enjoying my first meal of the day, and I'm aiming to do anything except think about work. That's when the music really feels right.
Use the music
There's nothing less exciting for me then hearing a heavy swedish metal song, and then sitting there looking for a semicolon. It's a waste of a song. When that heavy song kicks in, it's time for work. It's time to find the bug, or to finish that page. Just try turning off your music for 5 minutes and looking for a bug. You'll fall asleep.
The Soundtrack To My Code
The following is what's on my current normal rotation, as of right now.
A mixture of retro/futurisic (huh), and heavy music, for when the need arises. Some of my best code has been written to Five Finger Death Punch. They even throw in that melodic song or two for when it's time for me to QA my work. It's obviously hard to say how music effects our cognitive abilities. I've heard everything from Mozart makes baby geniuses, to metal heads have some of the highest IQ's. In the end though, I think it's whatever makes you nod your head and puts a smile on your face.
Maybe the guy in the corner listening to his favorite song is going to work more effectively than the guy hearing whatever it is that their project manager decided to blast through his speakers at 100dB. Been there.
Lesson of the day. Don't take your music for granted. Choose it wisely, use it, and more importantly enjoy it.
Happy coding folks.
- Walt