How to use Deep Work to learn programming more quickly
The ability to focus deeply is one of the most important skills a programmer can learn.
|Victor Cassone||Jun 16|| 4|
Due to a recent spike in subscribers, I’m reposting this article for everyone who might’ve missed it. This article was previously published in freeCodeCamp’s online publication.
I believe one of the biggest differences between a good programmer and a great programmer is the ability to focus deeply over long stretches of time.
The ability to focus is crucial to the life of a programmer because we are constantly learning new things and solving complex problems. Developing good focus habits helps us do both things more effectively.
In our current society, cultivating long stretches of distraction-free focus is becoming increasingly rare. The constant draw of digital life is making it harder and harder to go deep when learning new things. We end up spending our days in a state of shallow focus jumping from notification to notification.
If we want to reach our true potential as a programmer (or anything else really), we need to start taking our focus habits more seriously.
Deep focus is the key to producing our best work and it will unlock a level of ability you didn’t know existed.
In this article, I will discuss why good focus habits are important and provide you with some tips/tricks you can use in your daily life.
Cal Newport, in his book Deep Work: Rules for Focused Success in a Distracted World, defines the ability to focus without distraction on a cognitively demanding task, you guessed it, Deep Work. As Newport defines it:
“It[Deep Work] is a skill that allows you to quickly master complicated information and produce better results in less time. Deep work will make you better at what you do and provide the sense of true fulfillment that comes from craftsmanship.”
Stated simply, Deep Work is the ability to shut out the world and focus solely on the task at hand.
Deep Work is a skill that can add huge benefits to our personal and professional lives. Newport equates it to a superpower that will help you get more done in a shorter amount of time and produce higher quality work.
Newport also points out that Deep Work will help you stay valuable in our ever-changing economy.
“To remain valuable in our economy… you must master the art of quickly learning complicated things. This task requires Deep Work. If you don’t cultivate this ability, you’re likely to fall behind as technology advances.”
Unfortunately, in our highly distracting world, Deep Work is becoming a lost art. It’s becoming increasingly important but our ability to cultivate it is quickly diminishing.
So how can we start cultivating more Deep Work into our lives as programmers?
Let’s start with understanding why it’s so hard to stay focused in the first place.
The Root Cause
Everything we do throughout our day involves goals. Whether it’s driving a car, making lunch, or reading this article, we subconsciously (or consciously) set micro-goals for the tasks we want to complete. Our day is essentially a series of micro-goals.
A distraction is simply an internal or external event that interrupts one of our goals.
In the book The Distracted Mind: Ancient Brains in a High-Tech World, authors Adam Gazzaley and Larry Rosen point out that humans are very good at setting goals and very susceptible to goal interruptions, and for good reason.
To our hunter-gatherer ancestors, responding to new information and interrupting our goals was one of the most valuable tools in our survival toolkit.
If we were trying to collect fruit and we heard a rustle in a nearby bush, we would interrupt our goal, react to the new information and set a new micro-goal. Maybe it was the wind, or maybe it was a tiger.
The information we gathered about our environment was often just as valuable as the food we were collecting.
New information about our environment allowed us to set better goals and decrease our chances of being attacked by a predator. We slowly became information foraging animals and started treating the need for information in a similar way as the need for food.
This psychological evolution served us well on the savanna but it doesn’t serve us as nicely in the modern world.
Our immense desire for information still exists because our subconscious still thinks we’re in a primitive environment where there’s a scarcity of information, rather than an abundance.
Our brains aren’t designed for a world of screens and notifications.
Why are distractions harmful?
In a way, the cards are stacked against us. But there’s still hope!
Fighting back distractions and cultivating Deep Work is a skill just like anything else.
Anders Ericsson, a leading researcher on expert performers, points out that a major difference between elite performers and novices is their ability to maintain intense focus over long periods of time. As Cal Newport points out in Deep Work:
“Ericsson notes that for a novice, somewhere around an hour a day of intense concentration seems to be a limit, while for experts this number can expand to as many as four hours — but rarely more.”
These experts aren’t born with the ability of intense concentration. It’s a skill they’ve developed over time. Elite performers understand the importance of undistracted focus and have put effort into training their mental muscles.
The moral of the story is that our minds can be conditioned to thrive in a distraction-free environment.
It starts with an understanding that even small distractions can have a big impact on our performance.
A quick glance to your phone might seem harmless, however, there are consequences that come along with it. As Adam Gazzaley pointed out in an interview with NPR:
“When we switch between tasks, we suffer a degradation of performance that then could impact every aspect of our cognition from our emotional regulation to our decision making to our learning process, as well as real-world activities like school and work and safety on the road.”
When we are constantly switching tasks, we’re activating and deactivating different parts of our brain. The problem is our brains don’t work like light switches. They take time to boot up.
It’s impossible to put our full brainpower towards a problem if we are constantly switching tasks. What ends up happening is we spend more time than necessary learning something new or solving a problem.
Creating good focus habits is crucial to activating your full brainpower.
Take control of your attention
We find ourselves in a predicament.
We need undistracted focus to learn/perform more effectively. However, our psychology makes us susceptible to distractions and we live in a world that’s constantly trying to grab our attention.
What can we do?
In the Distracted Mind, the authors outlined four scientifically proven ways to help us avoid distractions. They include decreasing anxiety, decreasing boredom, decreasing accessibility to information, and increasing our meta-cognition about the harms of distractions.
Let’s go through each of these categories and provide some real tactics you can use.
Programming can be an anxiety-inducing job. Many people feel some degree of imposter syndrome for a large chunk of their careers. Fixing bugs and adding new features to a production application can put gray hairs on just about anyone’s head.
Reducing anxiety is tricky. Every person has different reasons to be anxious and our bodies all have slightly different responses.
I’m not a trained psychologist (and I don’t play one on TV), so I won’t give you any medical advice. However, here are a few techniques I’ve found helpful when I find myself frequently turning to distractions to avoid anxiety.
Take a few deep breaths — Deep breaths are a proven way to lower your blood pressure and recenter your mind. It’s probably the simplest and most effective tactic you can use.
Schedule a time to confront whatever’s on your mind — There are things in your control and there are things out of your control. Find time to think through the things that are actually in your control. Come up with a plan and do everything you can to handle the things that you can actually control. Once handled, you’ll feel more comfortable letting the cards fall where they may.
Write out your worries — Writing out what’s on your mind is a simple way to clear your mind. You can use a notebook or a text editor. When you feel anxious, stop working for a minute and quickly write down whatever’s on your mind. I use this technique frequently and it has been a big anxiety reducer for me.
It’s true, software development can be boring sometimes. It’s not all sunshine and rainbows.
Writing boilerplate code or doing design tweaks aren’t the most entertaining activities. However, it’s a reality of the job and it’s mostly unavoidable.
So, how can you make the boring parts of the job interesting?
Here are a few techniques I’ve found effective:
Make your code beautiful — Do everything you can to make your code as beautiful as possible. Try to make it flawless. Try to knock the socks off the next person who comes across your work.
Compete against yourself — I sometimes set up mini competitions with myself. I will try to squeeze a bunch of work into a small time frame. Competing against yourself is an easy way to add more flavor to your workday. Warning: don’t use this as an excuse to write poor code.
Sneak in some extra learning — When you find yourself writing code that’s not challenging, find ways to learn something new. If you writing some CSS code, maybe take a minute or two to actually figure out what overflow: hidden does. I sometimes put Post-it notes on my laptop with text-editor key commands. This gives me something to focus on and it improves my text editor skills.
It’s important to understand why being distracted can be harmful and maintaining high levels of focus is beneficial.
This article is a good start but I’d encourage you to continue researching the topic. I’d also encourage you to observe yourself and see the benefits of Deep Work first hand.
Having awareness of the importance of Deep Work will add extra motivation to change course when you find yourself getting distracted. It will also help you recognize when you’ve fallen off the wagon.
Here are a few of my favorite books on the topics if you’re looking to do more research.
Also, consider some sort of mindful practice and/or an exercise routine. Both have been scientifically proven to increase your self-control. Adam Gazzaley, the author of Distracted Mind, highly recommends both.
This concept is relatively simple. The harder it is to get to a distraction, the less likely you’re going to give into it.
Distractions can come from two places: internally or externally.
Internal distractions come from inside of you. They are the random desires you have to check Twitter or go look at the news.
External distractions come from your environment. They are the co-worker coming up to talk to you or the person having a loud conversation behind you.
Luckily, external and internal distractions can be (mostly) managed. Here are a few things you can do to help reign them in:
Self-Control (Mac OS X 10.5+) — a Mac app that completely blocks websites for a set amount of time. Be warned, there’s no way to stop the timer once it’s started.
FocusFilter (Chrome Extension) — I built this Chrome Extension to help me stay focused. FocusFilter puts a passphrase between you and distracting websites. It also provides other random tools to help you spend less time on distracting websites.
BlockSite (Chrome Extension) — This is a great tool that completely blocks websites.
Airplane mode + put your phone away — Phones are designed to distract you. Every app on your phone wants you to use it (why else would they exist?). When I really need to buckle down, I put my phone in airplane mode and put it out of sight. It’s important you do both. Unless you are waiting for some important news, the outside world can probably wait a few hours for you to respond.
Put Deep Work time slots on your calendar — mark your public calendar or put up a Do Not Disturb Sign so others can know not the interrupt you when you’re trying to go deep. This helps set expectations with the people around you.
Craft your environment — Your work location has a huge impact on focus. Open workplaces are great for a lot of things, focus isn’t one of them. If possible, try to find a quiet location for a few hours that’s away from people or other distractions. If you can’t get away, headphones and a long playlist works. The key is to set up your environment in a way that decreases the chances of some sort of external distraction.
I truly believe that developing good focus habits will help you at any stage of your programming journey.
The better you become at cultivating Deep Work, the more you’ll surprise yourself with your new-found abilities. You will find yourself enjoying the learning process more and making progress you didn’t think was possible.
I can’t say I’m perfect at integrating Deep Work into my life. It’s a constant battle and it’s too easy to fall prey to the distracting world of digital life.
However, it’s worth the attempt because the benefits are just too great to ignore.