Preventing burnout for programmers

It’s not rare in the field of programming to burn out and lose passion for your work. Just look at all these questions that arise, and the number of upvotes they get:

These articles act as an evidence that burnout is a real and common phenomenon in IT industry. Having dealt with burnout myself, I wanted to explore this issue deeper and help others deal with it or even prevent it in the first place.

Why burnout happens

Burnout seems to occur amongst the programmers more often than professionals in other fields. I don’t have a definite answer as to why this happens, but I suspect there are four main reasons.

  1. The first one is physical. Sitting at your desk, in front of the computer every day, is unhealthy, making you feel more lethargic. Lethargy may also lead to other not so good habits such as snacking during the day, indulging in stimulants, staying up late and so on. This eventually causes resentment.
  2. The second reason involves the fact that programming is highly cognitively intensive and stressful job, and the mental fatigue can take its toll.
  3. Third, it may be that you are burned out because the work you are doing is, in fact, soul-sucking and unrewarding. The only solution to that would be to take time off and do some soul-searching on what you would like to work on without thinking of money as a factor.
  4. I didn’t come up with the fourth reason myself and instead found it in the Hacker News comments section while doing research for this article. One guy accurately described that “burnout is caused when you repeatedly make large amounts of sacrifice and or effort into high-risk problems that fail. It’s the result of a negative prediction error in the nucleus accumbens. You effectively condition your brain to associate work with failure.”. This rings so true to me. Not a day goes by without failures when creating software.

I have dealt with burnout a couple times myself. None of these times made me quit programming for good, or even for as long as a month, but at the very least it made me doubt if I chose the right profession. Since then I have become more strategic about the way I work in order to stay motivated and productive over long-term. In this article I’ll describe the habits I have developed, and techniques I found to be effective to postpone or even eliminate burnout whatsoever.

Some tips and techniques are basic and apply to all people, and while reading them, you will be saying to yourself “D’oh.”. Others are more specific to programmers.

Let’s start with basics.

  1. Eat well. Don’t think you need to become a Vegan to feel well. Start with small steps such as drinking water over soda; incorporate more slow carbohydrates and vegetables into the diet; eat regularly and do not overeat. These are the basics that will get you a long way.
  2. Sleep well. That includes getting good quality sleep and enough of it. There are many things you can do to create a better sleep environment and wake up more refreshed. One tip specific to programmers in regards to sleep is to reduce blue-light exposure which may keep you up at night. This can be done by installing Flux, which makes the color of your computer’s display adapt to the time of day.
  3. Do not overwork. It has been shown time and time again that productivity, which, in this case, refers to output, decreases sharply after 4 hours of focused work. It’s impossible to stay productive at a highly cognitively intensive job such as programming long-term, with a long number of working hours every day.
  4. Incorporate Pomodoro technique into your work life. It’s a simple but effective strategy for staying productive as a programmer while at the same getting some necessary break between the tasks. Pomodoro technique involves 25 minutes of focused work, and then 5 minutes of rest. It works best when you have a specific goal for each Pomodoro. Ideally the breaks will involve activity away from your computer. A brisk walk, some push-ups or getting a healthy works the best. Also, it’s best to take a longer, perhaps 30-minute break between 3 Pomodoros. I aim for 10 of these babies a day.
  5. Stay active, keep moving. I was going to say — exercise, but many people have a misconception about it, thinking that exercise must involve going to the gym and so on. In reality, staying active by choosing stairs instead of an elevator; parking your car in a corner parking spot in the shopping mall; cycling to work and finding other ways to incorporate movement into your daily life will make you feel better and not feeling like you are stuck in front of the computer all day.

Tips more specific to programmers

  1. Experiment, play, learn, prototype. It’s very profitable and productive in the short run to just do the thing you do best. For example, keep creating websites, in the same way, you always made them. However, over time it gets boring and soul-sucking. Programming is partly engineering and using well-proven techniques for producing software. But it’s also about having fun, experimenting, and trying out new ideas. Deliberately dedicating 20% of your time for goofing around with technology is one of the most effective strategies for avoiding burnout. Goofing around may involve trying out new libraries, creating something fun and not related to work, or investing time in learning something out of your comfort zone such as functional programming.
  2. Attend meetups, conferences and listen to industry podcasts. Programming can get lonely. Meeting other developers, or listening to their experiences on podcasts, helps to stay not only current but also more mindful about your job. No one likes complainers but sharing, or hearing, struggles from other programmers, is somewhat soothing and can be motivating if you hear how others overcame their struggles.
  3. Invest in a good working environment and don’t be cheap on your tools. Thus get the PC that will compile quick and not keep you waiting. Make sure you have a comfortable chair, table and monitors well set-up. If you work in a noisy environment, invest in high-quality headphones that will block away the noise, enabling you to be in silence if needed.
  4. Master your tools. While having good tools makes programming more enjoyable, mastering them will make the work even more efficient and thus gratifying. You already know this, but I will repeat it nevertheless. Knowing all the shortcuts of your tools i.e. editor, OS, command line, will save you a bunch of time each day. Being able to automate mundane tasks allows you to make progress quicker, moving burnout these few steps further way.
  5. Take breaks and allow yourself to indulge in other passions. There are many interesting activities besides programming. Hint: sports, cultural events, sex, reading, Lego, socializing, fishing, beans roasting, photography and so on. If you keep on doing just one thing all the time, such as programming, one you day will inevitably wake up burned out and hating yourself for having no life. Besides, doing something seemingly unrelated to your “actual” work might reignite your passion and spark new ideas, like it did for legendary Nobel Prize winner Richard Feynman while studying wobbles of plates.
  6. Consider changing switching jobs or starting a different project. It may be that you are stuck doing uninteresting, soul-sucking jobs at your current job such as tweaking existing codebase all day long. Or perhaps the project you work on doesn’t align with your interests, or values, anymore. Also, if you discover coding does not excite you anymore, take a look at relevant fields such as Information Architecture, Systems Administration and so on, which may align with your passions more.
  7. Incorporate routine tasks, those that you know you can accomplish, into the daily work. Completing activities such as code testing, writing comments, improving naming of variables, will release endorphins and help restore the act of working. This is a short but very valuable tip since it tricks our monkey brains into feeling more positive about the work we do.

Conclusions

There is no “silver bullet” cure for burnout since everyone’s case is unique. Nevertheless, the things listed above have worked for me, and I hope they will work for you.

Admittedly though, the list of tips in this article is somewhat long and it takes time to develop new habits. And while eating healthy, sleeping well, exercising and taking care of yourself in other ways will help you feel better, perform better at your job and keep the love you once had for programming burning, it comes down to basics for most programmers.

And that requires getting a life. Don’t masturbate yourself mentally thinking you must work 10 hours/day, 6 days/week. It’s scientifically proven that output decreases drastically after certain number of hours of focused work. Thus be focused and effective while you are working by using Pomodoro technique, and then switch off completely after work. Learn to say no and do something you love besides programming. That’s really the tip #1, and will always stay this way.

If you don’t have a life yet, then go the fuck home and get one.

Additional readings:

Discuss here on Reddit.