The Pomodoro Technique became pretty popular in the productivity area and it is a great tool to beat procrastination and get work done. For anyone who doesn’t know what the Pomodoro Technique is: It is a time management strategy where you work in 25 minute sprints followed by a short 5 minute break. After 4 Pomodoros you break for 20-30 minutes. Rinse and repeat. I encourage everyone to give it a try if you haven’t yet. Here is a book if you want to learn more about it.
However, while it is very useful for a lot of tasks, i barely use it for programming. And the reason for that is “Flow”.
“Flow” is a state of mind that was made popular by a psychologist named Mihály Csíkszentmihályi. And yea, i totally copy pasted his name.
It describes the state of being completely immersed in your task. That state when time just flies by, you become hyper productive and feel great at the same time. When you don’t even notice that you didn’t eat or take a break in hours.
There are tasks that are more prone to bring you into Flow (also called “the Zone”) than others. And there are tasks that can’t get you into this state at all.
Because to reach that state, difficulty and skill level have to match. If you want to know the details about that, you should read Csíkszentmihályi’s book “Flow” or google it a bit. In short, the reason why you don’t notice your bodily needs, any worries or negative thoughts is, that when challenge == skill, there is simply no brain capacity for anything of that left.
If the task is too easy, you will get bored and won’t enter the Flow state. If it’s too hard, you become too stressed and won’t enter it either. But if the difficulty is just right AND you don’t get distracted (meaning no other people interrupting you, no push notifications etc…), you will eventually get into this Zone. Oh and also you have to get some sort of immediate feedback about the progress towards your goal.
The problem with the Pomodoro Technique is, that entering the Flow state takes a while. I dont know how long exactly, but the 25 minute Pomodoro sprint would interrupt you probably around the time you enter that state.
The name of this blog and my Youtube channel is no coincidence. Coding in Flow is what i like most about programming. Because it is one of those tasks that gets you into that state pretty often and quickly. Of course it depends on what exactly you do and there are boring programming tasks, but trying to solve a coding problem, hammering text into the editor and seeing progress through the compiler or the emulator is pretty immersive and intrinsically rewarding. You have a clear goal in mind and steadily progress towards that. And the Pomodoro breaks unnecessarily interrupt that.
Flow is not just “something nice”. Its highly valuable because you perform at your best and feel amazing at the same time. It’s actually considered the most desirable state of all by some psychologists.
If you have to do a boring task, that you know won’t match your skill level, then go ahead – use the Pomodoro Technique. But if your task is immersive, challenging and you can do it without any big interruptions, then just sit down and don’t set a timer for it. Don’t plan your break at all. Just put a bottle of water on your side and go for it. You don’t need breaks every 1 or 2 hours, especially not in the morning when you’re still fresh and you won’t die if you eat half the day (it won’t even hurt you).
Try to immerse yourself in your programming task with razor-sharp focus and enjoy your time in the Zone.
I use these Bluetooth in-ear headphones with some relaxing music, to isolate myself from the world around me.