Distractions, Deep Work and Flow – a programmer’s take

Since I started working as a Web Developer (and when working on projects at college) I have been fascinated with how I could sometimes work effortlessly and enjoy myself while at it. And the other times when the thought of working made me cringe – I wanted to do everything I could do except work.

This was the time I came across the idea of Flow – a term pioneered by Mihaly Csikszentmihalyi (how to pronounce) which describes a state of mind when you are enjoying and so immersed in what you do that you forget everything else that is going on around you. I am sure you have had moments like this.

Naturally, you would want to increase the times you experience this state of mind as well as decrease the unproductive moments from our lives. Turns out doing this is not as spontaneous as I thought it was – which is good news.

Asking myself how this state of flow can be achieved, I started reading about the work of the psychologist regarding Flow. More importantly I wanted to implement some of the things that would be relevant to me.

Cal Newport’s book ‘Deep Work‘ was a big step forward in this direction as it gave me certain methods this could be practiced. The added benefit is that Newport is a theoretical computer scientist, whose ideas resonated very well in applying them.

Here are some of the ideas that worked and I hope would work for you too.

Say NO to NOtifications

We live in a world of smartphones and social networks – we love to be at the top of everything. However, this is hindering us from our abilities to do truly important work. Ask yourself if you really want to know where your favorite celebrities have been holidaying or how well a company a remotely related to your industry is performing.

Turn off WiFi when you have to. Mute all WhatsApp (or other) groups . Go to airplane mode when you have to.

Define a place and time for your work

You already may know a place/time where you worked very productively. If you have the freedom to choose your place and time, pay note to these moments and try to replicate this. For most creative work, a quiet place with less stimulations is ideal.

Know your task

Although this seems so obvious. there have been multiple instances where I wanted to do work but did not know simply where to start. There was a problem to solve but I did not know what it was or what was the first step to take in order to solve it.

You can get to know your task by discussing with your superior or team lead on what exactly needs to be done. Make sure you have understood it and maybe ask some clarifying questions. Take notes. List down what needs to get done. Once you know what exactly needs to be done, go do it.

Love your task

The aim here is to enjoy your work, so you are better off if you have selected a career that you have an interest in. It’s okay even if you have a remote interest in what you want to do. Because, passion grows with work.

Santiago Gonzalez says: Beautiful code is short and concise so if you were to give that codeto another programmer, they would say, oh, that’s well written code. It’s much like if you’re writing a poem.

How do you get there? It probably starts with loving your task.

Order, routine and discipline

This is a difficult one. To have schedule of what time you will start and when you will finish working, especially if you are a freelancer.

If you do a regular 9 to 5 job, try to fit in your work within this time. Try not to make it a habit to go past the normal finishing hour.

Be responsible and efficient. Easier said than done. Read this.

Eliminate Pseudo Work

What does pseudowork mean? Checking your mail every 10 minutes (or whenever you get a push notification), reading CC’d mail not concerning you and making to-do lists that you are sure you won’t do. Don’t do it. Instead just be.

Try Multiple windows

If you are a Mac or Linux user, you already appreciate how awesome this feature is. However, as a Windows user, this is my favorite feature of the latest iteration of Windows. I use multiple windows so that I can focus and switch focus when needed.

Currently, I have four windows:

  1. Work – This is where Visual Studio Code, the Chrome (with Developer Tools), Git Terminal and other software directly related to work are open
  2. Reading – A bunch of chrome tabs open with my favorite bloggers’ sites.
  3. Learning – Anything that I am currently learning will go here. Maybe sites like Udemy, or simply VLC media player along with a note taking app (sometimes just a notebook would do) and whatever code editor to practice if it relates to programming
  4. Everything else

Use keyboard Shortcuts like a ninja

You don’t want technology – the very thing you are making use of to make you productive – allow you to become less productive. So, this is kinda important.

When we operate the computer with a mouse (or trackpad), we are slower to get things done. If the same thing can be done using keyboard and shortcuts, do it. First of all, learn them.

Receive feedback as you progress

It can be pretty daunting when I code and there is nothing coming out. In such cases, we are better off receiving feedback as often as necessary. When working with JavaScript, write console messages along the way. Similarly for other languages too.

Have a habit of breaking down a large task into small bits. If you use git,  commit your code as soon as something significant enough is achieved. This will give you a boost of achievement as well as a point in time that you can travel back to.

In short: don’t get stuck.

Start with easy tasks – like Hello World!

There probably was a reason we were taught to output ‘Hello World!’ on the screen as we started learning to code. Whatever the reason, it made me more at ease when learning something new – a language, a framework, whatever it was.

This is essential because we have task friction. We get frightened to go out there and do the work because it seems so large and daunting. How do I solve it? Do something, anything really.

Maybe produce an output message saying ‘Hi’ if you have to. But start with a simple task. It does not have to be correct, it does not have to check any boxes on your task. Just as a way to do more work that would eventually matter.

Follow this: make it work, make it right, make it fast.


Don’t judge yourself

I used to do it all the time. Don’t do it.

Will you be able to do all the above? No

Will you be able to do it every time? No

Is it because you are stupid or lazy? No

We make mistakes, we fall short, we need down time. So, if you feel like you are stuck or the solution does not pour out of your head, just take a break.

Value Deep Work

Learning requires intense focus. In the current world, it is not the lack of information that is the problem. In fact we have overwhelming amounts of information that we are drowned in them. It is important to get comfortable with focusing and not get distracted.

The difference between Deep and Shallow work, according to Cal Newport,

Deep Work: Professional activities performed in a state of distraction-free concentration that push your cognitive capabilities to their limit. These efforts create new value, improve your skill and are hard to replicate.

Shallow Work: Non-cognitively demanding, logistical-style tasks, often performed while distracted. These efforts tend not to create much new value in the world and are easy to replicate.

In other words, the difference between creating a product like Facebook and using Facebook.

The ability to perform deep work is becoming increasingly rare at exactly the same time it is becoming increasingly valuable in our economy. As a consequence, the few who cultivate this skill, and then make it the core of their working life, will thrive.

Cal Newport

High-Quality Work Produced = (Time Spent) x (Intensity of Focus)

Deep work leads to flow, and flow leads to happiness.


It is going to be difficult and requires will power – which gets depleted just like the battery on your smartphone.

To learn more about this, take a look at Cal Newport’s book. The things he talks about are valuable for any kind of work that requires focus.

If you have experienced this state, kindly let me know what steps are useful in following to get here.