Hacker News new | past | comments | ask | show | jobs | submit login
Living in the zone (jacquesmattheij.com)
289 points by swombat on Apr 15, 2011 | hide | past | favorite | 83 comments

Very, very good post.

Some other thoughts -

If you notice some habitual thing you do when feeling initial frustration (surf to a website, turn on the TV, whatever) - then try changing your environment slightly to make it harder. If you use Google Chrome, delete or move a site you go to habitually. This can help a lot for not bailing out during that first 15-30 minutes of warmup when working on something a little frustrating and a little beyond current skill level.

Silence is good, but if you have a hard time finding it, try to find music that drowns out the outside world for you. Electronic music helps me - a nice mix of Benny Benassi, David Guetta, or John Digweed and I can ignore background noise. Also, if lyrics distract you and you like electronic, maybe try looking up some "minimal techno" - it's kind of weird, but very cerebral. I work very well to it, it's zone-getting-into music for me.

Silence or kill your phone entirely.

Make very clear to people when you're about to work on something important and don't want your concentration broken, let them know you're going to be an angry cave bear woken up from hibernation if they bother you, and let them know exactly what to bother you on - "Don't disturb me from working unless something is on fire, and maybe not even then" tends to get the point across.

Also, you've kind of got to regular your caffeine/sugar/food a little bit so you don't totally spike and crash. It takes a while to get this down, but there's very few things that are as much of a bummer as having your blood sugar crash, caffeine withdrawl, and hunger kick in all at the same time when you were doing good work. Knowing your own rhythms and eating/drinking/caffeinating intelligently during your work helps a lot.

A great trick I've found w/r/t your first tip (going to unproductive websites when feeling initial frustration) is to stop using the "Keep me logged in" option on those sites. If I hit a problem and habitually go to Facebook or Gmail, having that buffer layer of needing to log in makes me stop and think "Wait, I should really focus on the problem I've avoided by coming here."

Good one. Randall Munroe trained himself to turn off his computer whenever he switched tasks, so that the handful of seconds worth of power down, and then boot up, would break his habitual distraction. http://blog.xkcd.com/2011/02/18/distraction-affliction-corre...

I agree completely with your caffeine recommendation.  I used to be mostly a coffee drinker, but then I would crash sometime late afternoon (and crash hard on a three day weekend where I wouldn't drink any coffee).  I've since switched to a green tea, and that seems to have mostly alleviated the crash.  I was simply getting too much caffeine too fast. 

As for music: I've lately found that Digitally Imported radio is awesome when my personal electronic/techno library gets stale or repetitive.  There's always something different there.  

A bonus of limiting your caffeine intake is the quality of sleep you get.

I get a solid 8 hours since quitting caffeine, and it's really good sleep, too. I'm almost 100% ready to go as soon as I wake up.

And I get a lot less of the "you look tired" comments from my partner.

Ever listen to Ricardo Villalobos? It's some of my favorite background/work music, it's very minimal. I often find listening to long mixes (Fabric CD's or something similar) works really well for helping me concentrate.

When I sit down to do work, it's usually around 7pm and it's homework. I don't like homework, but I dislike spending too much time on it even more. Often I'll go to check Facebook or HN after typing out a sentence or so, because it feels like a reward. It took me a while to realize how miserable it made the whole process.

Now if I want to get stuff done I'll remove distractions. No computer if possible---if I do have to use it I'll turn off Internet or edit my hosts file, which is usually a big enough roadblock to send me back to work. I turn off my phone. I also find that Tea helps me tremendously, in addition to tasting delicious :)

Good stuff I found recently is electronic composer Maximillien Mathevon. He does music for documentaries mostly I think but also releases albums of good chillout music. 'A Pause In Your Life' is a good album/collection

'Moving Immobility' :


I deleted my reddit account a few days ago and added reddit.com to hosts, but I've found its effectiveness very sporadic. Firefox and Opera can't connect, but Chrome and Safari can. I'm confused as to why " reddit.com" works for some browsers but not for others.

Are some browsers going straight to www.reddit.com, perhaps?

I totally agree on the music part. I tried a lot of different genres and silence, of course, but voice-less style electronic music has the biggest success rate for me. My personal recommendation is progressive trance.

I use a variation on pg's laptop-across-the-room-plus-no internet-on-dev-machine trick.

I need internet for what I do, but I keep all of my bookmarks (especially RSS feeds) on my laptop in the next room. The laptop is also at bar height, with only a hard plastic stool in front of it. So procrastinating for too long is uncomfortable.

I can still go to various distracting sites (I'm doing it now), but it's a decent speedbump (and noprocrast is your friend).

Minimal techno is very good for concentration, yes. In that vein I recommend checking out Monolake.

I've recently started using VMs to help get me into my zone faster and keep me there longer. I keep a separate VM for each project I'm working on, and I keep all other activities (browsing, music, chat, etc.) out of them. I've found a few advantages:

1) Easier to get into my work. When I restore a VM, it's still in the exact state it was in the last time I worked on that project. Terminals open, commands still partially typed in, working files open, notes typed to myself, docs/references still open, etc.

2) Easier to avoid distractions. The logical sandboxing of work and play has really been helpful for me - once that VM opens up, everything else gets hidden and drowned out. There is no temptation to "just peak at HN" - I'm either completely in my work VM or completely out of it. When the divide between work and play is blurry, I err, but this keeps that divide very crystal clear.

3) It's easy to recover from distractions when they do occur (and they are inevitable). I just minimize the entire VM I'm working in, and all of my work is kept in its exact state: positioning of windows, files open, etc.

I think the same idea applies to creating multiple user accounts or working on a computer you don't own.

The extra bit of effort separating doing your work from consuming Internet junk food is significant. I've noticed this myself when I'm coding for school projects. I tend to be much more productive on a frozen system* in a public/private lab, rather than on my own laptop at home.

*For the unfamiliar -- DeepFreeze removes any changes made to a disk from the frozen state at each restart requiring you to save work on a flash drive, Dropbox, etc.

I use GNU screen sessions for that.

Also, I use Textmate as 'mate .' in a terminal to open projects, with a global configuration making my TM workflow/workspace stateless (no tab bar, heavy use of cmd+T).

There is a psychological term for that state of mind, which I'm sure most of the readers here know already. It's been investigated thoroughly by the psychologist Mihaly Csikszentmihalyi (try saying that 3 times fast).

It's called Flow (http://en.wikipedia.org/wiki/Flow_%28psychology%29) and to me is a really interesting topic, as well as a mental state I'm sure most programmers are experiencing regularly. At least unless they are sitting in a hectic environment, like say, a home office with 3 cats and a frequently insisting girlfriend (theoretical example).

Totally agree. When I read Flow a couple of years ago, it's like a bulb lighted in my head. I then told my wife she should read this book to really understand me in some situations.

Interruptions collapsing the mental model into fragments reminds me of a pg quote about interruptions that has always chimed with me.

But the time quantum for hacking is very long: it might take an hour just to load a problem into your head. So the cost of having someone from personnel call you about a form you forgot to fill out can be huge.

This is why hackers give you such a baleful stare as they turn from their screen to answer your question. Inside their heads a giant house of cards is tottering.


It really is like someone tripping over your brain's power cord.

"An interruption - no matter how short or slight - collapses that whole mental model in fragments on the floor. I literally have to re-build it before I can continue to work and that typically takes anywhere from 15 minutes to over an hour."

One thing that helps me with this is to "sketch out" my plan in comments before I start. That way, if I get interrupted, I have comments to jog my memory of what I was doing.

This also helps when I have to chase a rabbit trail. Maybe my comment for a particular step just says "capture the substring and replace it with foo," but to actually do that, I have to look up the method documentation. When I finish with that detail, I don't want to have to say "now where was I?" My next comment helps me get back on track.

Some research has indicated that there are only a few slots for short term working memory, like people can only hold 6 to 7 items in their working memory. Being in the flow is like using all the slots in the working memory. Interruptions flush your short term working memory to use them to handle the interruption. It takes time to re-construct the working memory again. It is very annoying.

I have this, and I'm not a coder. I started life as a designer, working on mobile campaigns and the similar. When I came out of this "constantly sit in Photoshop" mode, I found it really hard to work. In a management role its impossible to have a "zone" thats comparable to my Photoshop days.

I beat myself up because sometimes I don't feel like I'm working hard enough, whereas what I actually think is happening is my brain has associated "working hard" with being in "the zone" - something I find hard to do with this type of work.

I'm currently sitting in Photoshop doing some logo resizing for our homepage, and its nice being "back in the zone"!

As a writer, I have the same experience. There are days I can't type fast enough. They're rare, but they happen.

The corollary to this is that you can't wait on the zone to do your job. Muses have no respect for deadlines.

"Muses have no respect for deadlines"

This phrase is wonderful.

The reverse is also true (deadlines have no respect for Muses).

> my brain has associated "working hard" with being in "the zone"

This is a problem for me. I try to remember that the company has entrusted me with a lot of details about how stuff works, and providing access to that is a legitimate part of my job, but I feel much better when I can see some commits when I'm done for the day.

Two golden oldies by Joel Spolsky:

Where do These People Get Their (Unoriginal) Ideas?

- http://www.joelonsoftware.com/articles/fog0000000068.html

Human Task Switches Considered Harmful

- http://www.joelonsoftware.com/articles/fog0000000022.html

+1 to "Flow" by Csikszentmihalyi

I almost missed my train stop yesterday because of this. I think the train works particularly well for me because:

  - It's a routine, so I can plan a difficult job to work on
    as I'm walking to the station
  - There's no internet, so no HN/other distractions
  - It's normally quiet
One thing I've noticed is that I can only get into the zone if I've got a hard enough problem to work on. I don't seem to be able to do lots of easy problems as efficiently as one large one.

I'll raise you one: yesterday I headed out to the local library for a change of scene and to get some work done. I was going to plan the refactoring of my web app, so I was already thinking about it on the way there. Now here's the thing, I didn't go straight to the library, I walked on autopilot to the newsagents instead. Missing your stop is one thing, actually walking to the wrong destination and not realizing until you're literally there is considerably worse!

My zone is best found between 7pm to 5am, usually on the couch with the laptop, and some easy to zone out tv series playing in the background. I think I've played through the Highlander and 4400 series several times just writing code. Its easier if you've already seen it, so its not really an interruption, but rather a way to keep from burning out on just staring at the computer screen.

I do something like that, but I like to put one of the Matrix movies on. I've seen them all enough times now that I know what's happening, and I don't feel compelled to actually watch... but there's something going on that I can pay attention to briefly, when my mind needs a break from whatever I'm doing. It seems counter-intuitive, but it works well for me.

Once you realize this you try to replicate the conditions that lead to is.

"Replicating conditions" rarely works for me. No matter how much I stage the room, the lighting, the time of day, my mood, etc., it doesn't seem to matter. Why? Because I'm focusing on byproducts, not the real thing. The only way I can get back into the zone is to work on "zone appropriate" work that is "zone ready". Call it whatever you want: the most important thing, the critical path, the lowest building block, etc. It needs to be ready to be worked on (all the prerequisites done) and I need to be ready to work on it. Necessary and sufficient conditions.

One thing that struck me the other day is that when I'm interrupted by a living human being when in the zone I'm probably not the nicest person to be around.

That's OK, because you're not yourself anyway. You're some other persona living in the body you share. Sometimes I think I have multiple personality disorder, my personalities are "me in the zone" and "me not in the zone". We both know each other exists, we respect each other, but we have never met.

Total immersion is a powerful tool, it makes it possible to achieve things that are normally at or just beyond what I could do in a regular work setting.

I'll take it a step further: it's the only way to get some things done. Sometimes I look at some work that I did and I can't believe I did it. (Worse, I wonder how I'll ever do something at that level again.) Then I realize that I was in the zone when I did it and all I have to do is return to the zone and trust that my other persona takes over. You don't have to be able to build something right now, you just have to believe that it's possible for you to build it when you're in the zone.

Nice post, Jacques. A few other things that may be helping:

  - I do all my work in my private home office.
  - no land line
  - only 6 people have my cell phone number for emergencies only
  - no texting
  - no chat
  - I only check email in batches
  - I only check Hacker News in batches
  - L-shaped desk, single 19" monitor
  - great office chair
  - 3 kinds of light: natural, overhead, and task
  - green & black full screen Textpad editor
  - alt-tab to full screen test session
  - windows open all year round (in winter it gets cold)
  - sweat suit in winter, gym clothes in summer
  - I work on only one thing: the most important.
  - When I'm stuck, I go away from the computer.
  - I always have pen & pad nearby.  Always.
  - Certain foods & drink help - this changes and is tricky.
  - I face the door.
  - I face southwest in every desk I've ever had. (I don't know why.)
  - Cats remind me I'm not alone, but don't interrupt (much).
  - SO knows: If I'm typing & looking at screen: don't interrupt!

Re: multiple personalities, you should try reading http://www.amazon.co.uk/Multiplicity-Science-Personality-Rit...

Worth bearing in mind, however, that "multiple personalities" can be an explanation for how you behave the way you do, but they are by no means an excuse. The danger in this book is that some people will take it as an excuse to do whatever they want and blame it on their "other personalities".. that would be bad.

Still, the book is very interesting and even useful, as it includes tips for mapping your personalities and getting them talking to each other so that "they" are in agreement about which personality should come out in what situation (for example, you don't want your aggressive zone personality to come out when meeting a client for the first time).

Funny yours should be the top voted reply - when I read the blog I thought of one of the entries I read in your scribd preview the other day. The one that said you code for 6 or 7 hours a day, then print out the stuff and review it before you go to bed (in order to achieve the attention to detail required). I thought, 'omg, this guy must live in the zone.'

I discovered my own little productivity-hack/zone-portal recently. If it's still working after a few weeks maybe I'll blog about it.

Sometimes I think I have multiple personality disorder, my personalities are "me in the zone" and "me not in the zone". We both know each other exists, we respect each other, but we have never met.


Being in the zone is more acute and recognizable when one plays an outdoor sport for a moderate period of time. I used to play tennis competitively and I could clearly tell when I was in the zone. It would be amazing, I would feel like I could take on anything my opponent would throw at me and without even breaking a sweat. I would expend very little effort but still end up playing the best tennis of my life.

In programming, I doubt if it's as easily discernible. I've been programming for a few years and had a few productive stretches coding 8-10 hours at a time(with small breaks in between of course), but never felt like I was in the zone even once.

Easily discernible for me. Its an awful lot like your tennis analogy though.

"I could take on anything my opponent would throw at me and without even breaking a sweat"

If I'm 'in the zone' as it were, you could replace 'opponent' with 'bugs' and it would be very similar to my experience. Not so sure about 'expending very little effort' though. While it doesn't feel like hard work while I'm coding 'in the zone' I end up completely mentally exhausted by the end.

I started running recently and noticed the zone dawning upon me already. I run around the same path every time (a 3km trail) and try to enhance my performance while evening my pace, so I'm pushing myself. Yet there's a long straightaway where I often start to feel it come in as some sort of positive dizziness creeps in my body and mind (I feel 'lined up' with myself like every part of me is focused together), and the next thing I know I'm 1km later, with a much faster pace than I could expect and a feeling of smoothness and easiness.

I can assure you that it is just as discernible in programming, but I suppose different people experience it with different intensity on the same activities.

The zone is something I'm very familiar with and have been aware of for a long time, even before programming. To me, the zone is a product, not only of complex problem-solving, but also, high creativity (but perhaps these are one and the same). By day, I'm an architect (as in physical buildings), and I often find myself in the zone particularly in early design, when thinking very big picture and developing new concepts; asking myself questions like.. - what are the different components of hte project - how do they relate to each other - how do they fit into the existing infrastructure - how does it change the existing - what is the experience of each type of user - how do these experience differ from expectation (good or bad) - how do these new relationships and interactiosn affect the business model

just to name a few... So these are a lot of questions to handle all at once. I find myself asking suprisingly similar questions now that I'm coding/designing. The basic principles of physical space don't differ much from web space. My analogy for this sort of juggling is an image of a person standing one-legged on a ball with a stack of plates on his head and juggling an array of different objects.

When I'm in the zone, my mind is hyper-extended and I tune everything else out. I often won't even answer someone who comes up to speak to me. In college, my mother would call me and I wouldn't answer for hours. She'd get angry and say.. you couldn't spare 5 minutes? 5 minutes means having to drop all the things I'm juggling, fall off the ball and break the stack of plates on my head.

In the most extreme cases, when in the zone for extended periods of time, I've forgone eating and sleeping (no caffeine needed in the zone), without any ill effects until snapping out of zone, which ends in a crash.

It's interesting that you mention multiple monitors. Despite all cases made for programmer productivity and screen real-estate, I find that having a browser window up, starting at me in my second monitor while I try to code on my main screen is incredibly distracting. I've yet to figure out how to use the browser purely for work related stuff without hopping on YC / Reddit to see what's happening, so I'm just going with single monitor for now.

What do you code? I have plenty of things to have open in a second monitor and none of them are distractions. If I have a browser open it's because I'm coding a page or I'm looking up documentation on some library I'm using. Otherwise I might have a terminal open to start/stop services or edit a second file. I might be doing SQL queries (or performing Redis commands, etc). I find the 2nd monitor to be a huge boom to productivity.

Mostly it's just the Android / iOS docs or stackoverflow up to help me out. But the urge to hit Cmd-T is just too bad.

If it's just documentation, try reading it in w3m in the terminal or inside Emacs. The improved keyboard control is a nice bonus too.

The most important use case that I've found for multiple monitors is for debugging (code on one screen, app on the other). This makes debugging much much faster. Also, having one monitor dedicated to server stats/logs etc is useful.

I use multiple Firefox profiles to help with this: personal, work stuff (non-dev), API docs, and dev. I have different add-ons for each--e.g., NoScript in the personal profile and Firebug in the dev profile.

I'm never tempted to open Reddit/HN/email/etc in my work-related profiles because I hate the idea of polluting my browser history.

The other key to this, for me, is virtual desktops that roughly correspond to the FF profiles. There's at least a little effort involved in switching desktops, but sometimes I need to shut down the personal FF instance, too.

Let me add that it must be a desktop computer. I don't want a laptop with its wide screen, its trackpad, or its keyboard that I have to adjust to rather than it adjusting to me.

A second monitor will make me 10% more productive but I can live without it if I have to. Give me a laptop and my productivity falls to a crawl.

For me the zone happens somewhat randomly. If I tell myself that I'm going on a programming binge after work I'm probably not. I'll find some excuse, pick up a 6 pack and watch a baseball game or something. But if I read about some new library or a new technique, I'll often pop open a text editor and play around with it. Next thing I know I've decided to use it instead of some other library than I previously was working with, and have completely replaced the code in a couple of hours.

I don't know if any of y'all picked it up, but I personally find I'm way more productive when I was at school than when I'm working. I think this can be attributed to work environments tend not to afford you the luxury of a quiet environment.

I think one of problems with the work environment is that they don't know how much they leave on the table because of the environment, and without a cost, there can be no cost/benefit and no impetus to change.

I'd argue it is also because school tasks tend to get more and more challenging. It is not necessarily the case in a work environment. And I find it harder to get into the zone on trivial/repetitive problems.

The book "Pragmatic Thinking and Learning", by Andy Hunt of the Pragmatic Programmers, talks at length about managing focus. It also includes techniques for improving learning, gaining experience and even meditation techniques.


My process of getting into the zone is completely different. I absolutely need my environment to be chaotic and random. I'm always on the hunt for my "coding mojo".

This usually means changing the desk I work at every few weeks, possibly going to a sofa for a few days. Today I even went to work at a coffee shop despite having a readily available office. It's just too boring there.

Another thing I seem to need is enough low-grade internet to quickly refresh my mind when I get stuck on a problem. It lets me delegate whatever I'm thinking to the back of my mind while I mindlessly surf the internets until the problem is suddenly solved and I can get back to work.

Same here for the most part. External interruptions still ruin it for me though.

With the internet, you're still deciding when to up to you when to take a quick break. When others who are unaware decide for you, it can be a pretty big setback, like he describes.

When I have been zoning for 4+ hours, I often dream about vim and data structures. Same thing with chess, not joking.

Quite the same happened to me once : after a day immerged in the zone, I had dreams where I had computer-programming "powers" like cloning things, extending what I could do by "creating" extensions to my body, jumping much higher because I could modify the logics of my environment... all this in a very similar reasoning than when you create code. That dream was an amazing experience!

Regarding "the zone" and "uninterruptability": I often wonder whether programming attracts people whose modus operandi is what it is, and "other people" would, for instance, have no problem with being interrupted, or whether programming is an activity which forces people to tackle problems in this way.

stands up

Hi. I'm a programmer who's never been in the zone (as I understand it). This is in spite of being engaged in my work, and vigorous efforts to improve my practice.

I wonder how many of us there are.

Many. At work I'm one of the few that have to get in the zone to do any meaningful amount of work. They mostly seem not to require much effort to start working on anything. Also, multitasking does not seem to make such a hit on their productivity as it does for me. Maybe they have a sort of zone too, only much less pronounced and thus not noticeable to them.

When I'm not in the zone it seems like I'm grinding compared to them, like I'm walking in a swamp. Yet when I'm in, I work at what seems like stratospheric speeds.

Sometimes the zone happens when collaborating on solving a complex but rewarding problem, or an involved yet insightful discussion. When this happens, I feel 'offseted', like I'm on a different flow of time. My brain churns away, evaluating solutions, and I can almost hear the colleagues mind slowly ticking. I seem to have computed how every path of the conversation tree will unfold, which questions they will come up with and which conclusion they will reach. It's terrible because in that case I can subtly nudge their thought flow in one direction or another, making them reach a given conclusion faster. Everytime I feel like performing some dirty Jedi mind trick. Most of the time I refrain from doing so and adopt a maieutic approach to let them reach their solution by themselves, only cutting dead branches around.

The zone is a wonderful, timeless moment when experienced alone, but every time third parties are involved it's a frightening experience. It's also a bane of sorts, because I'm utterly improductive without it.

I found Jason Fried's analogy in "Rework" useful. Paraphrasing: "Going to work" is like going to sleep. If someone keeps interrupting you every few minutes, you're never going to fall asleep. It takes uninterrupted time to get there.

I've tried to use this analogy with my wife. Still working on it.

I find that the hard part comes from not knowing what to do next. For me I have a notebook that I call my planning notebook. I write in the notebook the outline of what I'm trying to accomplish -

Who it's for What it should do When I think it'll be done Where it needs to happen Why I'm doing it How much it will cost

This frames the project for me. Then after that I come up with what I think the next thing I need to accomplish on the project is and write it down. Later when I site down at my computer, I have no questions about what to do next and so I can hit the zone really fast.

The closest I have come to this ideal is when playing sports. For me, mental preparation was absolutely key.

I imagine high performing athletes are able to achieve this feeling of being in the "zone" quite often.

Came here to say this. Additionally, when I'm "zoned" I feel like I develop by intuition or instinct, which is really just me relying on experience -- similar to muscle memory or situational memory earned from athletic training.

What does your mental preparation consist of?

I'm glad to hear this voiced in the communities I've attended. Honestly, I'm having extreme bouts of difficulty explaining this to the folks I collaborate with. They are genuinely wonderful folks, but I just can't seem to get across the severity of even minor interruptions.

Sometimes, I will deliberately engage in nothing but research until everyone is out of the office. Then, I start coding. Not an optimal resolution, by any means, but until articulating this amicably is possible, it's what I've got.

I moved to a new laptop and it's really helped me get back into the zone more frequently and easier. The reason is that I haven't set up my Bookmark Toolbar in Firefox, so going to Reddit/HN/SomethingAwful isn't just a click a way and it's not always visible. Throw in an F11 with multiple desktops to tab between (first has a full screen shell, second is my editor, third is my browser) and it makes for an incredibly productive environment.

I've realised that lately I don't really code in the zone anymore. My workflow is completely tied to testing. Spec, red, code, green and the code just grows and adapts. All consuming flow is now very hard to achieve, there's simply too much time waiting for the computer to run tests, it's the stuttered conversation of a satellite phone. On the other hand it's far easier to return to work. Distractions used to feel like being forced to stop whilst cycling up a steep hill. Now the pace feels slower but it's steadier and more controlled.

I miss those old sessions. Lost in my own world, code flying out for hours at a time sometimes straying far from the next compile but certain that if I just kept hacking there would be a glorious moment when it burst into life. I wouldn't go back now though, the red, green has me. I'll just have to wait for that cloud editor I'm longing for, the one that'll run tests instantly as I type.

Maybe it is because I'm not a real coder, but whenever I'm working on some project (usually front-end web design) I find myself checking resources and other code examples often.

How do you guys deal with these while 'in the zone'? Got a book or notes lying around? Or are visiting the web/irc to get unstuck?

> I find myself checking resources and other code examples often.

Being in the zone does not exclude research tasks. Being in the zone is simply a state of hyper focus.

It's very possible to be in the zone and constantly switching back and forth between the IDE and API reference, the point is that even though you are switching windows you aren't switching tasks. You've got this clear model or objective you're working towards and you're just referencing details plugging them in as you go along.

> to get unstuck?

The definition of the zone, what makes it so amazing, is that you aren't stuck--you're in constant motion towards the solution. The only way to get from stuck to the zone, is simply to stop being stuck. In other words, take the first step towards the solution do something, anything to address the problem set. That may mean, doing research, checking out code samples, etc. Just because you aren't typing characters into an IDE doesn't mean you haven't started coding. The research is helping you build a model, understand the scope and structure of the thing and eventually leads to describing it in the editor.

I go and check (IRC, or other resources)!

Why do you think people on IRC are often so snappy and aggressive? They're in the zone.

headphones in, volume up, only vim open.

could be in the middle of a war zone, or my office that frequently mimics such, as long as I am interested in the problem at hand I can get in the zone.

Related reading for those living with us nerds: http://viewtext.org/article?url=http%3A%2F%2Frandsinrepose.c...

I like to participate in day long hackathons for this reason. Mentally, I know that I've blocked that time off for coding, and socially, all my friends know that I have too.

paul graham has some interesting things to say on working environments and distractions, quote: "a working environment is supposed to be something to work in, not despite [of]".

listen to: http://itc.conversationsnetwork.org/shows/detail188.html http://itc.conversationsnetwork.org/shows/detail657.html

Shh! He's wired in.

Music is what does it for me. Just put on a headphone and code away.

I find that it is much easier to tell when you're in the zone when listening to music, and I only realize I'm in the zone because after a while I don't even notice I have music playing, then I think about the music and I lose my "zone."

Hardest factor that keeps me away from the "zone" is: the task-at-hand being uninteresting and grungy, which is typically the case at regular jobs. Any tips on how folks overcome this factor? Other than to go built my own startup.

With anything uninteresting, try and come up with a solution that challenges yourself to think. Say, instead of using that plugin you frequently rely on, come up with a solution of your own (of course, keeping time constraints in mind.)

Give yourself a hard deadline. Its the only way I can get myself into the 'zone' for some of the less interesting pieces of uni coursework.

What he describes seems to be the same as flow ...the mental state of operation in which a person in an activity is fully immersed in a feeling of energized focus, full involvement, and success in the process of the activity.

For tips on how to create the zone that OP is talking about, read the wikipedia article [1]. The book Flow by Mihály Csíkszentmihályi [2] is also highly recommended.

1: http://en.wikipedia.org/wiki/Flow_(psychology)#Components_of...

2: http://www.amazon.com/Flow-Psychology-Experience-Mihaly-Csik...

I was thinking exactly the same thing (as others seem to have done). As a competitive gamer, what the post describes certainly sounds like flow. Unfortunately, as others have mentioned, it's not always easy to replicate. The best I can do is turn on music and let my fingers do the rest.

I don't think flow is some sacred state that requires specific conditions for most people, and I don't think it's broken by bathroom breaks, fetching coffee, or even short, rote social pleasantries. Most people can achieve it.

As for flow, I think it's like sleep in its onset. You can't force yourself into the state, but if you make the conditions right, it'll usually start in 10 minutes and fully set in within 40-60.

What makes flow impossible in most work environments is arrogant, short-sighted managers (there, I said it) who ask for detailed, impromptu status reports several times a day. They're so used to email clients and web services that can be checked 33 times per day, with no degradation in performance, that they think they can pull that shit off on the people working for them, and it's not that way. Establish a sane, regular reporting schedule and fucking stick to it.

Or sites like Reddit and Hacker News that people love too spend to much time on instead of actually working.

> It was the very first time that I used 'structured programming', a technique a friend of mine had shown to me.

Huh? How old is this guy? I thought structured programming was something that came out in the 30's or something.

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