Code is not only work for me. It’s also a hobby. It’s a creative outlet. It’s something I do on my free time.
Couple of weeks ago this hobby of mine had, however, taken a bigger role in my life that I would have wanted. I’m going to tell you what happened and how I’m taking back control. This the first part of a two-part series.
Flow state is a double-edged sword
I believe everybody who has achieved fluency with a programming language and written code with it, has experienced the flow state. Maybe you haven’t completely lost your sense of space and time. But you probably have experienced that exciting feeling of concentration and absorption.
The flow state gives you a natural high. But with every high there is a low. When you go up, you eventually come down.
I don’t know about you, but at least for me, an intensive state of flow can end up in a crash. If I don’t manage my way of working, my dopamine levels come down too fast and the exhaustion kicks in.
I’ve found that steady progress works much better for me than intense bursts of productivity and creation.
Yet every now and then I find myself doing the exact opposite. Suddenly I realize that I’m not managing my time. I’m not managing my progress. I’m not taking breaks from the flow state.
Two months ago I started working on a new open-source library. In summary, I was trying to turn HTML files into text-based user interfaces. I had no idea how hard it was going to be. But I was very excited about the idea and the challenges I had to solve.
Initially, I thought I would get the first version of the library done in two weeks. So I didn’t prepare myself for a marathon. I just started running as fast I could.
One month later and no end in sight, I realized that this project was turning into a monster that would devour me if I didn’t pay attention.
I could feel the initial enthusiasm wear off and the exhaustion creep in. I could sense what would happen if I didn’t step back and reassess the project.
My goal for 2018
This is where I’m now. I have taken the much needed break. I have re-evaluated what I want to achieve in terms of my code.
My new goal isn't to finish this one project.
My new goal is to publish and maintain three open-source projects by the end of this year.
I have a reason why I doubled down on my goals instead of dialing it back. I have a strategy for reaching this goal. I will cover the details next week.