How to be productive
Productivity tips and hacks for developers and writers
I have a recurring question in my email inbox.
The question is, how can you be that productive?
And that question was really weird at first because I don’t really consider myself like a productive person.
But after all, looking back, in the last 9 months I created 6 free technical ebooks, published one blog post every day (this is going on since 400+ days), and created 4 online courses. On top of that I get about 80 personal emails every day (meaning non-bulk emails) and I try to reply to everyone - unsuccessfully. Looks like a good amount of productivity.
For some time my default answer was that I was organising my time productively, or just being focused.
The more I thought about it, in the back of the mind, the more I think there is something everyone can benefit from how I think about working.
Maybe there is some specific actionable tip you can apply to your work.
Learn to say NO
Decide a big goal. It can be writing a novel, building an app, starting a blog, making your first sale in your service-based business. Anything.
Once you decide that, take a step back and think about all the activities that are against this goal.
Your day job. Evenings out with friends. Your football team matches. Your family. Your weekend trips. Meetings. Video games. People asking for your time. Any kind of social activities.
Anything that involves you being present with your body or your mind.
Say NO to the non essential.
Everything you say YES to is taking your time away from your roadmap to finally reach your goal.
You can’t say NO to everything on that list, of course. I don’t do that, too.
However I am very, VERY selective about what I say yes to.
I say NO to going to conferences. I say NO to business opportunities that take away time from my goals. I say NO to mentoring people individually, although I have requests every day to do so.
Eliminate distractions
Television. Netflix. YouTube. Instagram. Facebook. Reddit. Hacker News. Whatsapp or Telegram groups. Games. Email. The news.
We are literally bombarded with interruptions. Every hour. Every minute. As a species, we have a global addiction to notifications. As soon as there is any amount of time “free” we take out the phone from our pockets and we check Facebook, Instagram, Email to see if there’s something new that needs our attention. I stumble on this every day, especially with email but I am trying to get better.
First thing of course is to disable all notifications. Any kind of notification from your phone, computer or anything. Don’t give those devices any chance of picking up your attention. We are slaves to those devices. Well, not to the devices - to the companies that engineer their way to our attention. They do employ every single psychological tactic they could find to keep you hooked to their product so they could sell more advertising and get more profits for their investors. Once you realise this, you might think differently when you enter the underground or take a bus and everyone is looking at their phone.
I live in a pretty rural place, and I was shocked when I went to the nearby big city, and everywhere I looked everyone was looking at their phone.
Second, don’t check your phone first thing in the morning. Avoid the news. They were built to give us something to worry about. If some big, shocking news shows up, you’ll hear about it.
The information diet, which I first read about on the Four Hour Work Week book, is something I really urge anyone to do.
I open my email only in the afternoon, and this gives me the amazing opportunity of having the whole morning exclusively dedicated to working.
It’s 4 to 5 hours depending on the day. I won’t advocate waking up earlier to have more time, since I find that without a good amount of sleep I can’t really perform correctly, so I just wake up when I feel like (and this is one of the benefits of working from home).
Track your time and use a blocker
Do yourself a favour and use a tracking application. The iPhone and iPad now have this built-in. RescueTime on the desktop is great. It gives you a nice idea, every day, or how much time you are wasting.
Use a blocker. I use Block Site. Very nice. I also use SelfControl, it is even more powerful since you can’t disable it until the counter goes off.
Don’t waste energy
All this tracking and blocking should give you more time, simply because you are not wasting it any more.
You are not wasting time, and energy. Energy is what makes you do your best work, and if you consume it looking at Instagram and thinking about the lives of other people, you are going to do that for a lot of time because you’ll never achieve anything for yourself.
Say YES to being productive
There’s various levels of productivity. Avoid those things that seem to be productive. Email is one of those. Work chat rooms like Slack are another.
Spending a couple hours on Hacker News surely seems productive. You are keeping up with the industry. Or are you arguing and trying to win an argument?
I have two big goals at the moment. I write the main goal every day in Momentum the dashboard that shows up every time I open a new tab in the browser.
Every day I wake up to that. I also printed it on 2 A4 sheets and put it on the wall behind the monitor.
And on my whiteboard.
There’s no escape.
Organise your day
One trick I use is to already know what I will do tomorrow. We all know the story that if you prepare your running shoes by the bed, there’s a higher chance you will go running in the morning. If you have to find your gear first, chances are you’ll sleep in.
The same goes for my work. The computer is ready, nicely cleaned up, I already know what to do, as I wrote it on the whiteboard, and there’s no question.
Perform the most important job first.
I used to start with a lightweight task first, but now I switched to tackling the most important thing, head first.
This lets me give my best energy and focus at the beginning of the day. I leave the less important tasks for the afternoon when I have less energy due to having just eat.
I don’t really organise the day by the hour. Every day is different for me, but it’s important to know at least how I will start it.
Say YES to spending time outside
This is very, very important for our profession as programmers. We are sitting at our desks for hours at a time.
I do regularly take half-days off to wonder in nature. I highly recommend you to do so.
It’s not time lost, from the perspective of productivity: thanks to podcasts and Audible, it’s the perfect time to learn something while grabbing energy from plants and just from the act of walking (or cycling, or whatever).
But just taking time off will do marvels for you - every time I go outside for a walk I come back and I am more clear about the work I need to do.
As a programmer I’m constantly solving problems. The nice thing about the mind is that it works without our full consciousness and it can solve problems without us even thinking about it. It just needs time, and the best solutions to problems come when you are not focusing on that problem.
Ever experienced the famous awesome idea while taking a shower? Ideas don’t come while you work. They come while you do something else.
I also like to take vocal notes while going around. Then I listen to them after some time, and they are 90% awful ideas. 10% great ideas.
Use consistency
Consistency is a very powerful mental trigger. Once we start doing something, and we took a conscious decision to keep doing that - like writing 1000 words per day, for example - there’s a system inside us that gives us pressure to be consistent.
Imagine you have been writing 1000 words per day, every day, for the last 30 days. At some point, you became the person that writes 1000 words per day. You just do that. It takes no effort whatsoever.
This is how I wrote 400+ blog posts in a row, every day. I am the person that writes one blog post per day. There’s no decision to take, it’s just how things work.
One very important things is do not break the chain.
Once you reach a certain threshold it’s almost impossible to break the chain. You just don’t want to break it. But before you reach that, which might be 10 days or 30, keep going.
This is why I recommend for bloggers that start out to have a list of posts already scheduled, and even though they are already written to schedule them ahead of time. This gives a first bit of consistency right out of the start. Once you have scheduled 4 weeks worth of content, you just keep adding content to the queue to avoid running out of posts. This is how I started, by the way.
You can use this technique and start out small to build up consistency, then scale up your effort. Say you want to become a programmer. You can start waking up at 6AM and doing 1 hour of online courses on programming. After some time, you just become the person that does that, and there’s no effort required. At some point you can start scaling and add one more hour, to really speed up the process. Then maybe add one hour in the evening. But starting small makes the initial, hardest steps smoother. You put a foot in the door.
Use commitment
Once you decide on a thing you want to become better at, or something you want to do, write it down.
As I mentioned already, every day I write the main thing I want to accomplish inside Momentum, a nice dashboard that shows up every time I open a new tab in Firefox. It’s a gentle reminder to avoid distractions.
Every time I look up above my computer monitor I see the words “CSS BOOK” printed on 2 sheets, sticked to the wall. A nice reminder I need to work on that book.
The act of writing down a task is very powerful.
Something even more powerful is when you write something to the public to see. If you create a blog post saying you are going to write a novel, or a tweet or a Facebook post, it’s going to do a nice job for you.
The more people see that, the more shame you will build up internally just at the thought of not being able to commit to it. You set some expectations, after all. Not just for yourself. You are at risk of becoming a person that does not complete what they decided to start, if you don’t continue your effort.
This is a very powerful technique I often hear mentioned in podcasts that talk about productivity in general.
Just work
After all these tips there’s just one thing I can suggest: just do the work.
At some point the suggestions and hacks end and you are at your desk typing out code or writing things down.
Don’t think too much about it.
If you don’t feel like working, don’t stress out. Tomorrow it will be a better day.
Closing words
Of course in this post I am talking about work you do independently, or side projects.
If you have to respond to an employer / boss, you just have to work, things are different.
Motivation plays a big factor in all of this.
I think everyone has different levels of productivity and while some people can focus 12 hours a day on something, and then burn out after a few months, others can focus 1 hour a day and continue for years, getting better than the ones that run faster at first. Pick your choice.
That said, I am certainly not a monster of productivity and I sometimes ignore my own advice. We are not robots and we must have unproductive, leisure time every once in a while, right?
→ I wrote 17 books to help you become a better developer, download them all at $0 cost by joining my newsletter
→ JOIN MY CODING BOOTCAMP, an amazing cohort course that will be a huge step up in your coding career - covering React, Next.js - next edition February 2025