If you want to be at the top of your game as a developer (like the guy in the picture), you better establish some useful habits that maximize your productivity.
What follows is a compilation of productivity tips (or life hacks, if you will) that helped me overcome some obstacles in the way of elevated productivity. Everybody is different, so not all items on this list will prove to be as useful to you as they’ve been to me. Nevertheless, I’d like to invite you to experiment with them to arrive at your own conclusions.
Get enough sleep
There’s plenty of advice out there about when & how you should sleep. Common recommendations include waking up early or going to sleep and getting up at consistent times each day. I don’t know about you, but my life just doesn’t work that way.
Sure, there are days when I’ll be ready for bed by 10pm. But then there are also those days where I’ll stay up late to meet a deadline. Or I might simply not feel tired come the carefully scheduled bedtime. A strict military-style sleep routine just doesn’t take into account this kind of natural variance in our lives.
Anyway… At the end of the day, it all boils down to this: I’ll listen to my body and give it the rest it asks for, barring an urgent reason to resist fatigue.
Pro tip: Consider getting a sunrise alarm clock to make your wake-up process a more pleasant experience.
First things first in the morning
There is a quote attributed to Mark Twain that says
Eat a live frog first thing in the morning and nothing worse will happen to you the rest of the day.
In other words, you should tackle your most dreaded task first thing in the morning. This is because as willpower decreases over the course of a day, it becomes increasingly harder to commit to what needs to be done (e.g. household chores) vs. what you would like to be doing (e.g. working on a new exciting project or going to the beach).
Try the Pomodoro Technique
It’s probably not the first time you’re hearing about the Pomodoro Technique. In essence, this simple time management method is about breaking your work down into short productive spurts called pomodoros separated by even shorter breaks.*
I try to get in around 15 pomodoros a day and currently use Pomofocus as my timer. In case you’re wondering about what to do during the breaks between your pomodoros, check out this blog post of mine.**
* In case you’re familiar with Agile, it might help to think of each pomodoro as a micro-sprint.
** Basically anything that involves getting up from your desk should be OK.
Listen to functional background music
There is some evidence that listening to music can enhance work performance. But not all types of music are equally suited to support focused work.
On the contrary, many songs are actually designed to grab attention away from what you’re doing. Luckily for us, this is where functional background music comes to the rescue. I recommend you check out Brain.fm.
Note down your line of thoughts
When developing a new feature or especially when debugging a problem, it’s quite easy to get distracted and consequently lose track of the task at hand. By taking notes of your thought process (e.g. in the form of bullet points), you’ll be able to more efficiently backtrack your ideas and continue where you left off.
Know your keyboard shortcuts
Maximizing keyboard usage helps avoid a lot of unnecessary cursor movement. Instead of scanning through nested menus to trigger an action with your mouse, it’s obviously much more efficient to just accomplish the same with a keyboard shortcut. This holds especially true for frequent actions that are triggered dozens, if not hundreds, of times per day.
Brush up your touch typing skills
Mastering your keyboard shortcuts and being an efficient typer obviously go hand in hand. If you type slower than you’d like or frequently make the same mistakes, check out TIPP10 or 10FastFingers.
Pro tip: If at all possible, always use the same keyboard no matter where you are. In most cases, that would be your laptop’s built-in keyboard.
Invest in your workspace(s)
Falling under the category of knowledge workers, developers tend to spend a lot of time in front of their computer screens. Therefore, it’s wise to invest into an ergonomic work desk as well as mobile workspace setup. Check out my upcoming post about simple stationary & mobile workspace setups for some inspiration.
Take 20-minute power naps
To me, one of the major benefits of working from home is that I can take a power nap whenever I feel like it.* The restorative effects of taking a short & sweet nap are well documented. Pro tip: Have a cup of coffee or espresso just before starting the nap.
* I’m aware that some offices and cafés also offer that possibility, but sleeping in a public space is not everyone’s cup of tea.
Sign up for a gym membership
If for some reason you decide to follow only one piece of advice on this list, it should be this one.
If you are like me, you don’t exercise for the sake of exercising. Instead, you exercise to boost your energy levels and maintain long-term health. In other words, you work out because you know you should, not because you find it particularly enjoyable.
For this reason, it’s advisable to include other people in your exercise routine. Having a personal trainer or friend or even both waiting for you at the local gym will certainly increase your chances of working out consistenly.
Also, if you happen to be a bit of a cheapskate like me, not using what you’re paying for will without fail put some additional pressure on us lazy (or, shall we say, efficient) folks.
Take time off the screen
To me, this is admittedly the hardest item on this list. I love to work on all kinds of projects so there is always a next seemingly urgent task to be tackled. This makes it very easy to get lost in an endless stream of work in front of the computer. But even if you don’t mind that, it will ultimately take its toll on your well-being.
So do take some time off to meet familiy & friends, find a new hobby away from the computer, or just relax in a hammock. Pro tip: Dedicate 2 to 3 fixed time slots per week to not doing anything on your machine.