I am continually seeking to up my game as a programmer and maximize my work hours so that I can get more done in less time but also produce better quality and more thoughtful output. Time is precious and yet so easy to waste when you are in front of a computer all day.

I’d like to share five tips that have really helped me to be more productive and get the most out of my work day. None of these are new or revolutionary but they have made a real difference in how I get things done.

Here are the bullet points:

  1. Eliminate distractions
  2. Invest in your tools
  3. Set aside time to learn
  4. Practice mindful coding
  5. Make time for exercise

I’d like to dive deeper into each of these and share some examples of how I’ve put them into practice. This list has worked for me but it is fairly personal and so I don’t expect it to fit your life exactly. Rather, I hope it can give you a few ideas of things to try as you go ahead with your work day.

Let me know if you other strategies and tips and let’s learn from each other.

1. Eliminate distractions

I think the most important thing I have done recently to improve my productivity is to make a concerted effort to eliminate distractions. I’m sure this will look different for everyone but in my case I took some specific actions just over a year ago and so far I’ve not regretted any of them:

  • deleting my Facebook account
  • scaling back my Twitter and YouTube usage
  • unsubscribing from dozens of e-mail newsletters
  • turning off all notifications on my computer and phone
  • while coding, closing any unrelated apps and/or browser tabs (such as email or news sites)

Of all the items on this list I put this at the top because I believe it has made the most significant positive difference in my life. And not just in my work either, it has helped me to be more present in moments outside work and ultimately to be a better husband, father and friend.

So my challenge to you is to identify those things that distract you throughout the day and make an actionable plan on how you will reduce or eliminate them.

2. Invest in your tools

As a programmer my main tool is my text editor and I probably enter thousands of keystrokes into it each day. If I can become more productive with my editor then the impact on my day-to-day productivity is potentially massive. I personally use a combination of Vim and Tmux and while I am quite proficient at both, I continue to look for ways to improve my workflow and cut down on unnecessary keystokes.

Another group of tools that I use daily are the programming languages and frameworks that I develop in. I’m always seeking to get a deeper knowledge of how they work and look for ways to write code that is more elegant and more efficient.

My suggestion is to identify the main tools you use everyday and make it a priority to invest time into getting to know them better and becoming more proficient.

3. Set aside time to learn

I have found that continual learning is just a part of being a responsible software developer. Unless you are only working on legacy systems there is always something new to learn. In my experience the rate of change seems to be increasing each year. Finding time to stay on top of the change has been critical for my career. One practice that I have found helpful is to set aside a specific time every day or every couple days which is devoted to learning. For me this usually happens in the morning and I have even made it a practice to wake up a bit earlier and use that time first thing in the morning to learn.

In the field of programming and software development if you’re not actively seeking to learn and grow you’re actually moving backwards. So think about some of the things you want to learn and block out some time each week devoted to study. One of my favourite resources for learning is The Pragmatic Bookshelf, I highly recommend their books.

4. Practice mindful coding

When it comes to coding there are those times when it is helpful to just spike something quickly in code and get that immediate feedback. However, I don’t want that to be my default practice. Rather, I find it rarely hurts to take a bit of time before starting to code to sketch out a rough design and/or plan for what I want to accomplish. I can’t begin to count the amount of time that I’ve ultimately saved by just taking a few minutes to think through what I am trying to do before blindly jumping in.

Mindful coding isn’t just for writing new code either. Sometimes if I am stuck on a problem I find it helpful to just step away from the computer for a few minutes and go for a walk. I find this helps to gain some fresh perspective and many times when I come back to the computer the solution is already apparently. It’s not a magic bullet but it has helped me time and time again.

So to sum up this tip try to think first and code second.

5. Make time for exercise

In recent years I’ve been reading more and more research into the connection between our minds and our bodies. For me it has been so important to take a holistic view of myself and realize that in order to be at my best mentally I can’t ignore my physical health. As such exercise has been a big part of my work/life balance.

My perferred exercise is long distance running. I find that nothing helps me better at improving my creativity, helping me to think through difficult problems and de-stress than going for a nice long run. I know running isn’t for everyone and so find what works for you. Not only does exercise help you to feel better but I really do think it helps you to think better too.

Final thoughts

I’m certainly no productivity guru but I hope that something here has been helpful or encouraging. Whatever you do, never stop being curious.