30 Mar '15 5 Tips for becoming a Productive Programmer

5 Tips for becoming a Productive Programmer

Have we not all been there? You’re struggling to concentrate, the task you are working on is either too boring or too tricky, and you just can’t seem to go ahead. All you want, after all, is to finish this stuff and move on to the next task.

Our job is very much brain-dependent. We rarely find ourselves just doing mechanical stuff which doesn’t really require us to put any thought into it. Usually, what we do requires us to do things like pre-analysis, tracing down the cause of an issue, keeping up with several trains of thought at the same time, etc.

This is both a blessing and a curse. On one hand, it is amazingly challenging and stimulating to be able to use our brains to solve problems, and develop solutions. On the other hand, our brains can be so easily affected by our psycho-physical status, that we easily find ourselves having seemingly unproductive days. Even though just a few days before, we were feeling like we could have designed Google from scratch in a couple of hours!

This is a theme that’s important to me, as I myself am the type of person that can be easily distracted and pretty much spend an entire day on a single task without ever really focussing on what I am doing. Then, the next day, I will brilliantly solve 45 different issues and at end of my day I won’t even feel tired!

How do we overcome this? How do we make sure our productivity level keeps being consistent?

I think it’s wise to recognise that, as humans, we are susceptible to such ups and downs. If all we were doing in life were working, it might have been easier. But that is not the case. We have lives, issues, passions, hobbies, families outside of the workplace. Which is all fine, by the way, it is what makes us so unique and valuable.

And so, instead of being too hard on ourselves when our brains just can’t seem to connect to our work, it can be useful to relax and develop a discipline that will help us deliver quality work even on our worst days.

Here are some simple steps I follow in order to make sure my brain understands that I am intentional about being a productive programmer today:

  1. Wake up early Ok, this is harsh, I know. I love sleeping. My whole life, since I was a kid, I’ve always gotten out of bed at the very last minute. This is so counter-productive! The average successful person wakes up very early, like 4-5 am. I’ve started waking up about two hours before I need to be at work. That means that, by the time I get to work, my brain is already active and ready to go. Besides, this has finally solved my life-long problem of never having time for anything else aside from work! I now have enough time to consistently read, write on my blog, work on side-projects, study German (!), etc.

  2. Morning is for the hard stuff: as far as I can, I avoid anything distracting in the morning. I do not read my emails (yes, I am one of those who is obsessed by always having a clean inbox!), and I have stopped reading the news and stuff like that first thing. I have developed a routine of: turning on my laptop, going to Spotify to choose some music (see point 3), opening my Code Editor and my browser and starting to work. Everything else is a distraction, and the morning is too precious to waste it with anything else. I know I don’t have the same level of concentration in the afternoon.

  3. Not all music is the same. I love music. As a musician myself, it’s too easy for me to get involved into what I am listening! It is ok for 10-15 minutes to listen to your favourite songs. But, ideally, and especially in the morning, I go on the Moods section of Spotify and I select one of the playlists under Focus. This is a way of reminding my brain that now it’s time to work. This type of music really helps me to concentrate.

  4. Focus on one small task at a time. The key here is to put myself under a little bit of healthy pressure. The thing is, when you are working on one big task, and your expected time of delivery is days ahead, it’s too easy to lose track, and not to make good use of the time you have. It is way better to focus on one little task at a time, with a delivery time expected in hours, not days.

  5. Separate things. “There is a time for everything,” said King Solomon. In other words, multitasking doesn’t really work, if you are trying to be productive. Science proved it as well. There is nothing like dedicating your focus and attention on one thing at a time. Quality makes the difference, in this type of thing. Do what you have to do with absolute focus, finish earlier than expected, and then move on. This practically means things like: not having too many tabs open on my browser, not being involved in 10 different chats with my friends, not checking my phone every 5 minutes, etc

While doing all of the above things is undoubtedly a challenge, and it is not rare for me to break one or more of these rules, I use them as a blueprint and point of reference, and I get back to them every time I feel I’m getting less productive than I should.

And you? What are your tips and tricks for working with greater focus and delivering higher quality work?