Slashdot Mirror


Finding the Programming Zone?

SlashDotDashDot asks: "As a developer for 20+ years, I've developed a fairly fine tuned way to find 'The Zone' for optimal programming - a combination of furniture arrangement (PC and chair), lighting and music. I also have a pretty good sense of what time of day is best for working on a particular set of problems. But this is what works for me. My company is growing and I'm needing to mediate working conditions between my clients and consultants. This has me wondering what others have found important for finding 'The Zone' in their programming lives. How fast can you get there? How long does it last? What do you do that helps keep that state? What are the major interrupters?" We also touched on this issue in a similar article, last year. However, many of you may have ways of attaining "the zone" that don't depend on any of the factors listed above. If you have a method that works for you, please share. It may work for others.

8 of 577 comments (clear)

  1. It's all about the chair.. by antis0c · · Score: 4, Interesting

    I can't sit down and program for hours unless I have a good chair.. I have to feel as if I'm sitting on nothing.. Uncomfortable pressure points will surely annoy me the entire time I'm attempting to program. It's the key to getting into the zone entirely.

    Next to that is a good mouse (if you're doing any GUI work or Graphics with the program) and Keyboard that has that great feel. It's different for everyone, I like my keyboards to click where I can feel I've hit a key. I find I have less typos that way.

    And finally, ample supply of drinks and snacks readily available within an arms reach, otherwise I'm forced to break my concentration to get up and to refill my drink or snack. Some good music helps too, with headphones if you aren't alone, it helps you tune out the rest of the world around you.

    --

    ..There's a-dooin's a-transpirin'
  2. No distractions by MiTEG · · Score: 4, Interesting
    As has been mentioned in some of the above posts, one of the most important things (for me, anyway) is avoiding distractions. Things like snack machines, pool tables in the office, etc, may improce employee morale, but they also tend to be a distraction from real work. Once I get focused and start working, temptations such as those really aren't much of a problem.

    Probably my biggest issue is with noise. It could be my farely ADD-type tendencies, but almost any noise beyond what is found in a normal office environment makes it really hard for me to work. Music may be great for the mood, but I just can't work unless the music is classical or something else really light. Also, if I have an office near a window, it could be a problem if the the windows aren't soundproofed enough and I have to listen to the conversations all the smokers have on their breaks.

    --
    The future isn't what it used to be.
    1. Re:No distractions by Darth_Burrito · · Score: 4, Interesting

      Things like snack machines, pool tables in the office, etc, may improce employee morale, but they also tend to be a distraction from real work.

      Yeah they are a distraction, but sometimes that's just what you need in order to get out of a rut and back in the zone. When I've been beating my head on a problem for a while, the best thing is often to stop, turn off the monitor, and go for a 5-10 minute stroll outside. The first half of the walk I don't think about anything. After the halfway point, I start thinking about the problem and I've usually got a good guess on how to solve the problem by the time I get back in the office.

      When I was in college, I used to do the same thing using the pool tables in the dorms. First game clear your head, second game solve the problem. Maybe it's just me, but I'm usually in best form after a break physically away from work.

      The kinds of things which bother me are interruptions, not being able to play my music sans headphones, sharing an office with someone, loud servers/noise, and bad flourescent lighting. The worst for me though, is sitting near a high traffic area where people are constantly talking outside your door or moving by the periphery of your vision.

  3. EXTREME PROGRAMMING! by eVarmint · · Score: 5, Interesting

    When programming alone, I find that the "zone" is an elusive beast that can be found for about an hour or two each day, on average. Some days more, some days less.

    Pair programming, a subset of extreme programming, largely eliminates this problem for me. When I pair up with another developer, I can regularly find the zone each day and stay in it for 4-6 hours. As a project manager, I introduced extreme programming and my team quadrupled their output overnight. And this is with six of us sitting in a garage with cheap office furnature.

  4. Leave Me Alone!!!!! by mo · · Score: 5, Interesting

    Ok, on the whole I like dark lighting, private offices, headphone music (classical). But I'd sell all of this for one thing. Leave me alone. It takes me up to 45 minutes after sitting down to really get into what I'm coding. If I have an interruption every 30 minutes I will get nothing done. Of course it's very diffucult to structure an environment where people can ask questions when they want without bothering all of the other coders who are in the zone. Here's some ways to make this easier:

    * set up an irc server or get everyone on IM. If you have a question, IM it to somebody instead of interrupting them with a phone call or personal visit. If they are in the zone, they can wait until their train of thought winds down to answer.

    * Catered, delivered meals are a diabolical way to squeeze more zone time out of your employees. Nothing is better for me (and the company) when somebody brings in a bag of burritos when I'm in the zone. Delivered dinner is the best way to explioit me for more unpaid work.

    * Good CM and documentation limit the amount of interruptions because people can consult the docs instead of, "Ask Bob, he's the only guy who knows how that works."

    * Let me work funky hours. We've got one guy who gets here at 7:30 AM, another who shows up at noon and stays till 10:00 PM. Why? Because there are large chunks of time where nobody is around to interrupt them. This can wreak havoc at your company if you don't do the above documentation, but it can work out very well if you do.

    Yeah, private offices, screen real-estate and Aeron chairs are cool, but I'd throw them all away for a full day without interruptions.

  5. Re:Here's how I do it. by Tack · · Score: 5, Interesting
    It's interesting to see how much in common a lot of people have, and also how widly varying it can be. Here's what works for me:
    • Most importantly, the problem has to be interesting to me. I can't enter The Zone unless I truly am determined to solve the problem. Sometimes even boring problems can be made interesting once you spend a couple hours tackling them, but typically you'll get better results if the problem is genuinely interesting. (This is why the scratch-the-itch motivation of free software works so well.)
    • I don't hack on coffee; I hack on diet coke. Lots of it.
    • My musical mood changes from hour to hour, so I don't ordinarily set up playlists for more than 45-75 minutes, but I do normally listen to music the whole time I'm in the zone.
    • Agreed: big monitor and many terminal windows are a must. If you can't have at least 6 terms on screen at once, you'll get distracted by toggling between virtual desktops. Sometimes I have up to 12 windows on screen.
    • You just need a fast computer. No one wants to wait long for compiling simple changes.
    • Lighting for me has to be dim, but not dark. I prefer a single, tungsten 60W bulb with a lamp shade on my desk. It provides a nice, cozy warm light and offsets the light from my monitor to prevent eye strain.
    • Everyone has certain things they do when they're thinking about a solution to a particular tough problem (or sub-problem). Maybe you lie down for a few minutes; maybe you pace around the room; maybe you go to the gym and work out. Me? I take a long, hot shower. This yields very excellent results for me. And I have come up with some pretty damn clever solutions under the nearly-scaulding hot water. :)

    How long does this last? This often depends on a few things also:

    • External motivation: do I have others around motivating me? I don't mean a boss squawking at me about deadlines, but rather other hackers I can bounce ideas off of, to help keep the problem into perspective, and help keep me interested. Or, am I getting paid?
    • Running into roadblocks: when the hacking goes smooth and I don't come across any major bugs or roadblocks, I can hack for weeks. But if I hit a serious bug that even a hot shower can't solve, a lot of times I wind up putting the project on the back burner. (Of course, if this is a project that I'm getting paid to do, the motivation keeps me going).
    • Distractions: if I am without uninitiated distractions, I can hack for much longer periods of time. Some distractions are okay, as long as I am the one who initiated them. Sometimes I'll stop hacking to go to the movies, or go out to dinner with some friends. Sure, when I do that, I'm typically mentally detached from what I'm doing, but I usually force myself to have fun. Then when I return to the problem, I often have a fresh perspective that helps me continue.

    When am in The Zone, it is a curse. I can't think of anything else but what I'm hacking on. (This is a problem when I am hacking on a personal project and go to work.) I usually just have to ride it out, keep hacking, until something happens that I put the project aside for a while, and then I usually repeat the whole process again in the future some time.

    So that's how it works for me. :)

    Jason.

  6. Prone Position Please by mccotter · · Score: 4, Interesting

    I work from home and code on the ground. There is something comforting about being close to the earth.

    I don't see how people can code while sitting at a desk for 10 hours straight.

    All I need is a bean bag, a six pack of diet pepsi, and a few exercise 'pep' pills with ephedrine (I ususally code after working out....yes there are bodybuilding geeks out there).

    If you get tired you just mute your computer and plop your head on the laptop. I promise you that it is PURE joy.

    Don't knock it till you try it....

  7. Re:Crystal Meth by G-funk · · Score: 4, Interesting

    Althought the parent was modded funny, I have to add my 2 cents - I like to code, but I'm not a marathon sit-at-the-pooter-for-2-days-straight kinda guy, like a lot of the people here are. Except when I have to, and I get a little speed. A small dose of speed (usually drunk in a shot of water, enough so you barely notice you've taken any) actually works wonders for my productivity. When the deadlines come up, it can often help me work all night at home, then go to work and work all day, and still be doing something useful until 5 o'clock.

    Good stuff really, although we should be thankful it's illegal or we'd all have 25 hour days all the time ;-)

    --
    Send lawyers, guns, and money!