What it feels like to be in the zone as a programmer
The phrase “in the zone” is defined as a period of intense productivity. When a basketball player is in the zone, they make more shots because the hoop appears larger to them. They steal more passes because time feels slower to them. They outrun opponents because their body feels lighter to them.
Programmers get in the zone too. And when we’re under this spell, we’re just as unstoppable. We’re able to move quick and knock out a lot of code. Seemingly tough problems break down instantly. It’s like turning on a cheat code in a video game—everything becomes effortless.
This is what I experience when I’m in the zone as a programmer:
I’m asocial
I don’t want to talk to anyone. If I do find myself in a conversation, I’m not able to function correctly because I can’t. That part of my brain is disabled. Words will try to come out but won’t. I’ll mostly listen and patiently wait until I can return to the code. To the other person, I probably appear like I’m somewhere else. It’s because I am.
I’m ridiculously productive
I’m moving from feature to feature with my fingers dancing along the way. When I’m not in the zone, my usual rhythm is: think -> develop -> test. When I’m in the zone, thinking and developing happen simultaneously. I have a background thread in my head that is performing the design and staying one step ahead. I have a foreground thread that is translating that design to code and then that code into keystrokes. I’d estimate my rate of output to be ~3x of what it normally is.
I’m very focused
That itch I get to check my email? Gone. That desire to take a break and talk to a colleague in the office? Gone. My body telling me it wants more food? It can wait until I DoorDash something in. My singular goal when I’m in the zone is cranking out code. Anything (or anyone) who inhibits that gets put on the side. There are some tough consequences to being so focused. I get easily irritated which might make people think I’m hard to deal with. I also lose track of time and “wake up” to a stream of messages from loved ones asking where I’ve been.
I’m one with the code
In its most basic form, software is a structure of interconnected components. Each of these components do some kind of work and then pass on the result to some other component until it hits us, the (end)user. When I’m in the zone, I have a detailed mental model of this structure. This means I can traverse the chain of components very quickly and isolate (1) where I need to insert code and (2) where I need to route the output of that code. This is the closest programming gets to being in the Matrix.
I’m emotionally neutral
I’m not feeling happy or sad when I’m in the zone. In fact, that part of my brain is pretty much turned off; I’m fully operating on logic, ration, and reason. After I “wake up” out of the zone, I feel very happy because I have accomplished a lot of tasks over a short amount of time. I experience a high at this moment.
HN discussion here