Overcoming Procrastination as a Developer
The full framework I use to get from laziness and productive work
Hey fellow nerds, welcome back to a new blog post. Here, I'll discuss a problem that all of us experienced at one point or another: procrastination. Using the various tactics I'll discuss here, I can safely say that I've mostly overcome it. With that, I hope by the end of this blog post I can help you do the same!
Why do we procrastinate
To start, it's important to understand the reasons why we would procrastinate in the first place. To me, I'd say that it boils down to two factors: being overwhelmed, and excessive instant dopamine.
Dealing with overwhelming problems
When you're overwhelmed by a problem, it's no wonder why you would struggle to tackle it; that's just our nature. Looking at the huge picture of a sizable problem/job for too long can be demoralizing or daunting. It’s as though someone showed you a mountain in your path you have to climb over to get home. You’ll start anxiously thinking about all the hours it will take to climb and the amount of physical effort you’ll bare. As a developer, I remember a long time ago procrastinating on refactoring a large portion of a side project I was working on. While I understood it was important and would make my code better, I held off on it for quite some time because of how daunting it was to tackle. Eventually, though, I ended up biting the bullet and overcame that procrastination using one or two of the tactics I’ll share later on.
Speaking of refactoring, here’s a side tangent you may find useful as a software developer (feel free to skip it if you only care about the main topic of this article). While you may want to be coding new cool features all the time, sometimes you have to learn to take a step back and look to improve your existing code and refactor it. While it may not be the most interesting work, you’ll thank yourself in the long term for making the code easier to read and thus easier to debug. That way, you don’t just code away all day and eventually end up with complete spaghetti code that you can’t easily debug (trust me, I’m still experiencing this to this day with a side project I’m working on).
Now, let's look at the other side of the picture, excessive instant dopamine. While I’m no expert in hormones or biology, I'll be more or less paraphrasing ideas I've heard before so take this with a grain of salt.
Dopamine acts as a sort of reward mechanism for your body. You do good things (or whatever your body may think is good) and you get that good feeling. So naturally, if you give yourself a lot of dopamine through things like video games, food, social media, etc., you'll already be satisfied and not have the motivation to do things that will make you happier in the long term. I know from personal experience that this can be true. Sometimes I would try having break days where I would only do a few pomodoros of work and try to rest. These days, it was far harder for me to get my work done because I would spend my time being lazy, eating junk food, and playing video games a lot of the day before getting to that work. Through that, I would be jamming my brain with dopamine which would make me feel already satisfied and lazy. As another example, I noticed that if I meditate during my Pomodoro breaks instead of scrolling through Reddit, I would subtly produce more productive work sessions. I suspect here that because I'm not giving myself dopamine during the brief break before my work period, my work becomes more interesting. The instant dopamine from those Reddit posts is more satisfying than the delayed dopamine from work. Thus, I can get my brain into action faster if I meditate instead.
How we can apply this knowledge
Now that I’ve broken down the core areas I believe cause procrastination, let’s see how we can use this knowledge to overcome it.
Overcoming the insurmountable obstacle
Instead of looking at the large size of your task and crying that it will take you forever to achieve, you should break down your task step by step and focus your efforts on the step you are at. If you've been following this blog you would have read that I like to break down my workload into pomodoros. With that, I can just focus on tackling my work a few pomodoros a day, focusing on each of them at a time. Moreover, through this process, I only look at the larger scope of things when I need them for the sake of planning. As an analogy, while it may be overwhelming to think of building a brick wall, if you take it one brick at a time it must be completed eventually. Brick by brick, that wall will eventually be built through patience and following the right process. Moreover, if you can split up your large task into a bunch of smaller, easier to complete and reason about tasks, you can more easily tackle the whole problem. As a reference to computer science, think about a divide and conquer algorithm. With these types of algorithms, you break down your problems into a bunch of small problems, solving the elementary ones and combining them into the final solution. So is the same when you encounter large problems in life or work.
Stop yourself from dopamine overload
Now that you are aware of how excessive dopamine can lower productivity or even stop it altogether, snap out of it! Have a plan to avoid too many of these dopamine sources before you work. That is why I normally like to get my work out of the way first before letting myself rest. I’ve even noticed that if I allow myself to play video games before finishing all my pomodoros, I struggle to find the motivation to complete them.
But John… what if I’m already in that place of laziness from excessive dopamine? How can I get out of it?
Well, I’m glad you asked! From my experience, I have a couple of points of advice to give in that case:
Drink Ice Cold Water
I’m not sure what it is about drinking cold water but this ritual seems to work for me to get out of laziness. I suppose the coldness helps wake me up a bit and maybe the hydration helps too.
Take a Cold (or at least room temperature) shower
I find cold showers help wake me up and act as a quick exercise in getting out of my comfort zone. If you can bear freezing cold water pouring all over you, I’m sure you can bite the bullet and get to work. Look, I know this can be a lot easier said than done especially if you are in that lazy state. In which case, I’d say you should at least try not to take a warm shower and strike a middle ground. I find that for whatever reason warmer showers can make me tired and increase that lazy feeling. Thus, I’ve been trying to take colder showers more often and have gotten more used to it (although admittedly not fully and struggle to or not do so some days). It also has the added benefit of being good for your skin and immune system. It might take a bit to get used to but I would definitely recommend it.
Turn on some music and start that timer
I find that putting on music can help at times when I’m not feeling the motivation to work. I just put on my earbuds, open play my Spotify playlist, and start my Pomodoro timer. Having music on while I work can ease the pain of getting through it that I may be feeling at the time. As well, after committing to the Pomodoro method for so long, my brain is wired to get to focus mode as soon as I click the button to start my timer. Thus, I know that all I need to get to that productivity mode I’m seeking is the touch of a button. Then, as soon as I got that simple 25 minutes of work done, my brain has been warmed up and is more interested in this work and can more easily carry on and do more. The moral of the story here is to give yourself whatever small lifts you need to get something, anything, started and let the momentum carry you. Aside from just this, you can maybe do small chores or a quick workout to get the momentum going.
Make the process a habit
Finally, before I wrap up this blog post I want to give a final word of advice. Make the process of reaching your goals a habit. By turning things into habits, you don’t have to think about whether you should do something or not, you get straight to it! For me, I made working out every day (usually mornings) into a habit by seeing it as a part of my daily routine. Because of this, I’ve had an easy time getting myself to work out every day because it just feels like a normal part of my day like eating or brushing my teeth. As something more relatable to you as programmers or potentially computer science students like me, you can maybe study during your commute, work on Leetcode problems for a couple of Pomodoros each day, or read programming books/articles each day.
With that, I gave you my best advice when it comes to overcoming procrastination as a software developer. You saw that by being overwhelmed by your problems and having excessive dopamine you are putting yourself in an easy spot to procrastinate. From there, I gave my personal experience on how you can get yourself out of this trap and avoid it in the first place. I hope this helps you in your endeavors in becoming the best developer you can be. Do feel free to post your questions and/or comments in the comments section below. Happy coding!
If you like what you read, consider subscribing to my newsletter or following me on Hashnode to be notified of new blog posts. Also, check out my programming tutorials here.