I recently finished reading Cal Newport’s excellent book Deep Work. The thrust of the work, for programmers, is that network tools such as social media, email and even web browsing itself are very damaging to work productivity. This issue is a problem for any type of work today, but it is especially so for us programmers, whose tool of choice (computers) also happens to be the ultimate distraction machine. To produce voluminous amounts of creative work, people need to carve out time that is isolated from these distractions.
I’ve been trying to tamp down on this for a long time, and have reached a point where I absolutely never check social media or any of my other favorite sources of distraction during work hours. I block them all via a browser extension and use that to limit the amount of time I spend on them on a daily basis.
While I’m good about avoiding the obvious suspects for distraction (ahem Hacker News), I can’t claim that I never get off track while using the browser. Wikipedia and YouTube are both sites that I can justify allowing access to on the basis that there is sometimes quality documentation on them.
Moreover, email responsiveness is important for my clients, and I sometimes end up on Slack, IRC, or some other instant messaging tool as part of a project.
So I am left wondering whether I should take even more radical steps to carve out time for dedicated programming work. Should I download documentation to my computer and try programming completely offline for X hours a day?
In the meantime, the book inspired me to do something I was meaning to do, which is separate my work and personal emails to a much greater degree, and take steps to reduce compulsive email checking. I opened a Pobox Mailstore account to manage emails at this domain rather than forwarding them to my personal account. Then I set up a notification program to only check that mailbox every 20 minutes during business hours, rather than leaving a tab open to check on it.
I’m hopeful that this will increase my productivity and also make programming more enjoyable in the process.