Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

1. Stop using IM. Period. Not just when you're working. All the time. You don't need it. There's email, SMS, phone calls, Twitter, and other social messaging services. IM is the most brutally distracting and easiest way to waste time when trying to work.

2. Stop using Growl or equivalent. You're training yourself to constantly be looking for distractions in the periphery. You don't need that information, I promise - even for your fancy CI system that tells you when tests fail. Knock it off.

3. Quit anything remotely interruptive for the duration of your work session: IRC, Campfire, Twitter client, email client. This can be tough if you're working remotely, so let clients and coworkers know when you'll be available online and when you're focusing. As long as you communicate your goals and intentions clearly, they'll understand.

4. Get yourself some noise-cancelling headphones. I like the Bose QC 3. Added bonus: take 'em on plane trips and they help to dull the engine noise.

5. Listen to something engaging but not totally engrossing. Ambient music and noise generators were mentioned in this thread, and I like them, but sometimes you need something with more "oomph" to get you through a dull task. Minimal techno is my staple, as it rarely has distracting vocals and typically maintains a steady, not-too-fast, not-too-slow beat. There are tons of sites out there with free DJ mixes, just search around.

6. A personal preference: work standing. I find that standing helps keep me focused and helps to distinguish work from relaxation.

7. Get a really big monitor and cover it in your code, terminals, documentation, etc. The only thing that should be in view is the material you need to get your task done.

8. Make a list of stuff to do, and do that stuff. Doesn't matter whether that list is in some fancy GTD app, a bug tracker, or on a piece of paper. It's helpful to see the list and know that you get to cross off an item or close a ticket when it's done.

9. Block work time out on your calendar. I refuse meetings after lunch (from 1PM to 6:30PM), and I'll only make exceptions for truly exceptional circumstances (candidate flew across the country to interview, has one day, there's no other time to meet with him/her). This is essentially pg's idea of the "Maker's Schedule", although I'd been doing it for several months before he wrote about it.

10. Meditate. This sort of speaks to the comment in this thread about practice. Meditation is conditioning for your brain. It's really, really hard to do well, and even harder to find the time to do it. I don't do it as often as I should, but when I do, I find it much easier to concentrate on hard problems.

Hope some of the above helps.



For point #5, listening to music, I'd like to emphasize sticking away from vocals. It's weird, but my brain can listen and code just fine to non-lyrical music, or music which has repetitive samples (they meld into the background like another instrument). Once you start adding in someone singing though, it all changes for the worse.

Psychedelic trance, like Infected Mushroom or Psycraft, is my favorite stuff to code to at the moment. In fact most electronic music lacks lyrics and is favorable to coding IMHO (if you haven't heard of it, check out "Ishkur's Guide to Electronic Music" to find some electronic songs/genre's you might like - http://bit.ly/10ZP9). Beastie Boys is ultimate death, unfortunately. Too much damn lyrical style.

Small hack: I've found that you can listen to vocal music without distraction, but only if it's sung in a language you don't understand. But for the life of me, I can't find any songs about Assembler... ;)


I like Podrunner (http://podrunner.com). Intended for runners, but it's got a good beat. Occasional remixed lyrics can be a bit distracting, but much less so than pop (not all tracks have vocals, and they're repetitive so it's easy to tune out). Also, the mixes are an hour which is a great chunk of time to disappear and come up for air later.


"Stop using IM. Period."

+100.

The average RescueTime IM user shifts to an IM window 77 times per day (6.5 hrs computer time).

Also, make commitments to focus (start with 20-30 minute bursts and 5-10 minute break times). Shut the door and/or hang a do not disturb sign somewhere. If distractions online are a problem, try LeechBlock or (our product) RescueTime, which allow you to selectively block the distracting bits for bursts of focus.


For music:

http://trancearoundtheworld.com (2 hour + streamed sets)

http://pandora.com (paid so theres no commercial distractions)

http://thesixtyone.com (streamed songs you don't know about)

http://mugasha.com (good quality well-known streamed sets for free)

Love the streamed sets because they don't interrupt your workflow. It's like being at a coding dance party; for hours.



  10. Meditate. * It's really, really hard to do well * 
A quicker and simpler way to get into a meditative state is to get some binaural beat tracks to listen to. Either buy them from e.g. centerpointe or create your own using http://uazu.net/sbagen/

Edit: I also want to mention http://www.pzizz.com/ which is great for short power naps to get back your focus


If you have an Arduino or equivalent kicking around, it's also pretty easy to rig up an LED to flash at the same frequency as the beats. Mine looks a little ridiculous though. http://burkelibbey.org/brainwave.jpg



Thank you! You're tips are very helpful and I'll be trying them out.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: