All experienced programmers have probably felt the flow: being completely immersed in the code. You have some feature completely laid out in your brain and you let the code just flow through you into the computer. No distractions and everything works like a breeze. Hours past without realizing it.
It’s highly addictive and at the same time elusive. Many athletes hunt it more than anything. To feel that oneness with the environment, be it running at the 20km mark or that magical game of tennis where all you know is the ball.
When enough time passes without feeling it I start to feel bad. Programming sucks. Computers suck. Everything sucks. So how do I get a sip of that sweet code flow nectar?
When it comes to programming, I’ve found one way: Program something very familiar. The more familiar the better. Here is the plan:
- If you are a passionate programmer you have a “I should implement this” tucked away somewhere. Pick the easiest item from the list.
- Minimize the amount of unknowns. There’s always a huge temptation to pick up new to learn new technologies, but this is not the time for learning new things. You don’t want to spend your time banging your head figuring out why the tutorial examples don’t work.
- Compile a small list of features that you can get finished in a couple of hours. Maybe just one.
- Start coding.
You just might get things done at breakneck speed and get into the flow in an instant. Spending most of the time making the features instead of trying to figure out why that security foobar header isn’t passed on that new shiny acmeJS that was released yesterday is pure brain candy for me.
To me the current stack for web applications is probably Spring Boot for the back end, and Angular for the front. On mobile it is Kotlin on Android. Even on these I need to constrain myself to use older versions and not use the latest and greatest.