Last time we looked at some reasons why music and coding might be a good mix for you (if you’ll excuse the pun). This time we’re going to look at what kinds of music might be best to listen to.
First up, a disclaimer: everybody is different, has a unique taste in music, and different emotional responses to music. There is no genre or track list which is universally the best for programming to – there’s only what works for you. This is also why I’m focusing on music for use in general situations, not getting your head in the right place to be productive.
All of that said, there are definitely some interesting trends and ideas to discuss.
Almost everyone I’ve spoken to finds words, whether in the form of podcasts or songs with lyrics, can completely knock them off focus when coding. I find being particularly familiar with a track can stop this from being a problem. A few of us here at IDR also listen to tracks with lyrics in languages we don’t understand.
This opens the field up to include Anime soundtracks, latin jazz/hip hop, or even music with lyrics in a language without meaning like much of Sigur Rós’s catalogue. (The rest being mostly in Icelandic will probably be equally unproblematic for most readers!)
There’s plenty of instrumental music out there too, though. Classical, electronic, jazz and soundtracks are all areas where a lot of great instrumental music can be found. Speaking of which –
Soundtracks offer something unique in the world of music to programmers.
They are usually written specifically to avoid distracting viewers from what’s happening on the screen, which means it’s often good not distracting you from your code, too. (Less so during emotionally or physically intense scenes since the music often has less chance of overpowering the action.) You’ll probably notice that it’s fairly rare to hear vocals on soundtracks specifically to avoid distracting the audience.
The main benefit of soundtracks is that they all tend to have non-intrusive tracks while also offering a range of genres – from Thomas Newman’s quirky minimalist score for American Beauty to Daft Punk’s operatic electronic score to Tron Legacy. Don’t forget games and TV also have some great soundtracks!
A number of people I talked to mentioned they find it easier to work with music they already know well. Knowing roughly what’s ahead means you’re much less likely to lose focus. As mentioned last time, if they’re familiar primarily from working they could even help you get into the right frame of mind faster.
This is no excuse not to experiment, though – it probably just means you should try things out during easier work. It also means some things which won’t work for most people will work for you.
These guys have developed a whole aesthetic for what they think works best for programmers to listen to, and created a whole bunch of playlists to try out. Here’s the elements they think help:
Drones Noise Fuzz Field recordings Vagueness (Hypnagogia) Textures without rhythm Minor complex chords Early music (Baroque, lute, harpsichord) Very few drums or vocals Synth arpeggios Awesome Walls of reverb
This set of things does mostly lead them to extensively use electronic music, which I’m sure isn’t for everyone (although you might be surprised…). Their manifesto – though, as it warns, a little pretentious – is definitely well worth a read.
Something MusicForProgramming don’t mention in their aesthetic but do use heavily is repetition. I think this can probably have a similar effect to familiarity of avoiding sudden changes from breaking your flow. In case electronic music isn’t your thing, this kind of thing can also be found in minimalist music like Steve Reich and even jazz/hip hop like Nujabes.
Like I said in the disclaimer at the start, there is no genre or track list which is universally the best for programming to – there’s only what works for you. The only way to find that out is to experiment. Hopefully we’ve given you a few ideas.
Let us know in the comments what works for you!
IDRsolutions develop a Java PDF library, a PDF forms to HTML5 converter, a PDF to HTML5 or SVG converter and a Java Image Library that doubles as an ImageIO replacement. On the blog our team post about anything interesting they learn about.