There's this place that a programmer goes to at times. Sometimes for a few hours and sometimes for a few days. It's a good place. A place of curiosity. A place of enlightenment. A place to get away from it all for just a brief time. And when it's gone, you miss it. And you never know when it's gonna come back. It's even somewhat stressful being away from it for too long. So today I'm gonna talk about that "place" and what I've learned from being in it for weeks at a time. And what I've learned about how to get back to it.
What is it
Any programmer that spends his days doodling code out looking for that next big challenge, not for work purposes, will tell you about this place. Think outdoors enjoying lemonade on a gorgeous day. Except replace outdoors with 'in front of your work machine' or 'the beast', as I call her, and replace lemonade with black potent coffee. Clouds? Afraid not. Unless they're being programmed. Programmable clouds. A challenge? Perhaps.
Everyone gets it at different times. For me, this comes when I have a new idea. Just the smallest pixel of an idea. Something along the lines of 'Wouldn't it be nice if..', or 'Man, if I had this script..' etc. And then I take out my pen and paper. And I start to just write and draw. And that's a new thing for me. I keep a pen and notebook right next to my laptop now at all times and surprisingly, it gets filled very fast. I cross things out. Take mental notes. Because funny thing about this zone. It's only temporary. You can't live in it I'm afraid. Though many times I wish I could. So I document it, in detail. It looks something like this.
Every page. I don't leave until it's filled and either makes sense, or it doesn't. And that's how it starts. This paper is the spark.
The thing about this zone is once you start, it's like a nervous tick. You can't let it go. You can tell yourself that today is the day you're going to relax and read that good book. But in the back of your mind you know better.
What it feels like
There's no words really. It's like a well oiled machine just doing its thing perpetually forever if the body didn't require sleep. For me this came recently when I was adding a 'click to enlarge' function to a site. And I realized that I do this, alot. And I forget how each and every time ,and end up copy/pasting random snippets. And I hate that. So I thought. What if I had a script, that would handle it automatically for any site, any file, any image. And that was it. That was the spark. The idea.
The next hour was filled with a pen and paper moving uncontrollably. This works. This doesn't. This is insane. Edge case. Edge case. Edge case. Because if I was going to do this, it had to be perfect. Any file, any screen size, any browser. 2 hours later, I had a fully filled notebook sheet with an end product and a roadmap on how to get there. So I immediately opened up notepad and started typing. A fop loop here, a console.log there, just to set things up. And like that, I was there. In that zone. And it was good.
And like that...it's gone
Nothing lasts forever. About 2 days later I had the math figured out. It was tough. Stressful. But it worked. That overwhelming feeling fell over me of having this idea, this pixel if you will. And now it was a full image in high res. Then came that dreadful moment right after. Now what do I do? I have work to do for my company ,sure. But now what do "I" do? What do I create? What do I doodle? And no answers came. So I started to draw and write. And ended up wasting 6 pages on nothing.
2 days later and nothing came. And the script that I had worked so hard for, just sat there. Not being used. Because it wasn't the script that I was after in the end. It was that feeling that's so hard to come by nowadays. That feeling of creation and problem solving and leaping into the unknown.
But it will be back
It normally takes me a few days to calm down from these sessions. And to get back to my "normal" coding. But it does make me appreciate every second that I have in this "zone". That euphoric feeling of being able to create something that didn't exist. And what I learned from this ordeal this time around, is that you can't rush it. Just like coming up with topics for this blog. If I rush it, it shows. It's either not concise, or it's boring, or I feel icky afterwards. And I don't use this blog just to make content. I use it as an inside look into the mind of a guy that loves programming and has spent every day of his life doing for the past decade.
So for now, it's time to get back to the normal world and earn a paycheck. And that's fine too. As I said, you can't stay in this zone. You'll go insane. Sometimes you do need to step out for a bit. Get some sun. Ride a bike. Live life. But personally, I can't wait for that spark to start again.