In the ever moving world of Web development, it's not uncommon for programmers to experience burnout. With the constant need to stay updated with new libraries and frameworks, maintain high productivity, and meet deadlines, a developer's well-being can often take a backseat. However, ignoring the signs of burnout can have detrimental effects on both your mental health and your career. In this blog post, we will explore strategies and tools you can use to conquer burnout, find balance and maintain your well-being as a successful developer.
I've been seeing quite a few tweets and youtube videos
about burnout recently on the web. As a developer in this current environment where things are seemingly moving so fast I can really see the dangers of this. Most developers get into this profession because they genuine love to build things and discover how things work. However, once you step into the pond and start swimming around you start realising how deep and vast this pond really is. It's a case of the more you know, the more you realise you don't know
This has consequences and if you are not prepared or ready to handle this situation then it can have far reaching consequences. People that came into this game full of enthusiasm and passion end up leaving burnout, dejected, unhealthy and ultimately unhappy.
I am just getting into my 40s now so I am fully aware of the temporary fragileness of both body and mind and have built systems and habits into my daily, weekly, yearly routines to mitigate this potential to burnout. I love coding and love building stuff and I want to continue doing this for a long time. Burning out is a real fear of mine and I have and will continue to take practical steps against it. Hopefully this blog post can give you some ideas or at least bring to your attentions so simple practices that can keep you doing what you love for the long term.
1. Have specific times when you work and stick to them
It's very easy these days to work from anywhere and have access to articles, videos, resources etc whenever you want. Therefore it's up to you to put in boundaries. You are human and you have limited time and limited energy. Therefore you need to distribute it sensibly.
I code Monday to Friday from 8:30 - 5:30 everyday. I never turn on my computer before 8:30am and I am never on my computer in the evening.
For me this looks like this:
- I code Monday to Friday from 8:30 - 5:30 everyday. I never turn on my computer before 8:30am and I am never on my computer in the evening. No exception.
- I usually wake up at 6:00am and I exercise, wash and prepare breakfast etc. I then walk the kids to school and come home for breakfast. I work remotely so I have the luxury of eating breakfast at home. However, my point is I am purposely doing things outside of coding, development and getting outside and moving in the morning. By 8:30am after breakfast I am looking forward to getting into some work.
- From 8:30 - 5:30 I am coding/working. I work for a company and I do mainly Frontend development. However, during this time I am just working. I am not browsing the internet, I am not doing stuff around the house, I am not taking naps. I am working steadily because I know at 5:30 it finishes and I won't be able to code again till the next day. It may sound strange to you but I thrive in this self discipline and it gives me structure and focus that I need.
- At 5:30 I turn my computer off and go downstairs. For the rest of the day I am with my family or out with friends or doing something else that doesn't involve a computer and code. To be honest by 5:30 I am pretty fried from being by the computer all day so happy to get away from it. It's sometimes tempting to carry on in the evening but I never do because it's a slippery slope.
2. Take one day completely off a week
For me this day is Sunday. Sunday is my rest day. If you are an athlete or follow any sport you know athletes need rest days for their bodies to recover. I think it's the same for developers. We use our minds pretty intensely all week and it deserves and NEEDS at least a day off just to recover and prepare for the next week. Society is still setup to have Sunday as the most obvious rest day. Old habits die hard even for societies. What does this actually mean though:
- No computer whatsoever. Even to the point of if I just wanted to browse the internet.
- No reading emails on my phone.
- No articles or videos or tutorials on my phone or television that relate to coding.
- Try to avoid youtube but this one is hard for me. It depends on the season as well. In the spring and summer it's much easier to avoid as I would likely be outside.
- Do something outside ideally to totally get away from what I am doing 5 days a week.
The whole idea here is to take a complete break away from development. It has many benefits including allowing your mind to unwind, having the opportunity to try different things and being fresh and eager to get back to it come Monday morning.
We use our minds pretty intensely all week and it deserves and NEEDS at least a day off just to recover and prepare for the next week.
3. Get some sleep
Ever since Matthew Walker
released his book Why we sleep
it seems society's opinion on sleep has changed. It's now socially acceptable to prioritise sleep. Prior to this there was a 'sleep when I'm dead'
mentality and 'just push through it'
This was (and still is to a degree sadly) pervasive in the software industry where you would see Pull Requests getting opened at 2am and developers slurping down their Red Bulls whilst hunched over their computers until the twilight hours.
For me this is a ludicrous approach and I have never seen the sense in it. Developers are mental athletes. Their values comes from their ability to think and tackle complex problems and provide elegant solutions in the form of code. In order to do this, a well functioning brain is needed. There is now a tonne of research to show that sleep is one of the best things you can do to protect and recharge your brain. Sure, you can use caffeine and will power to get you through a short burst maybe but if you have any serious intentions of staying in this game for the long run then look after your number one asset - your brain.
I personally follow Andrew Huberman's approach when it comes to getting the best night's sleep. There is a whole lot to it including what you do first thing in the morning, what temperature your room is at, light, screens, food etc. Listen to this podcast with Rich Roll and Andrew Huberman
if you are serious about getting a good nights sleep. It will be well worth your time. By getting adequate sleep and looking after your brain, your general mood will be better, your work will be better and your whole approach to development will be better.
4. Move your body
This is something I ignored for years and when I discovered it, it had a massive influence on my overall health and well being and also on my ability to produce good work.
If you are reading this, you have a body and that body regardless of its shape and size, was born to move. The body rejoices when it moves and afterwards feels great for a long time. As developers we tend to be static for large parts of the day. It's a occupational necessity. If you want to write code you need to be in one place and move your fingers quite a bit.
You don't have to be lifting big weights or cycling hundreds of kilometers, you just have to move it regularly. Walking is absolutely fine. You want to be doing things that get your heart rate up and ideally gets your outside.
However, the more important part is what is going on up top and that's your brain. Everything you do as a developer requires your brain so you need it to be working optimally if you want to perform well and not burnout. But the brain is connected to the body so if the body doesn't feel good then the brain is not going to be performing well. Unfortunately (or fortunately) there is not much that can be done about that so you need to look after your body. And one of the best ways to do that is to move it.
You don't have to be lifting big weights or cycling hundreds of kilometers, you just have to move it regularly. Walking is absolutely fine. You want to be doing things that get your heart rate up and ideally gets your outside. 30 minutes a day of brisk walking outside in the sunshine will do your wonders. Obviously more is better and if you can do some running, cycling, tennis, football (the list is endless) then so much the better. According to Peter Attia
exercise if the best bang for you buck. It's so good for you and a little can go a long way.
If you are serious about not burning out as a developer and want to consistently produce good work then make sure you have exercise incorporated into your daily routine.
5. Pick hobbies that don't involve a computer and get you outside
Developers spend large parts of their day sat in front of screens. If you want to write code you need a computer with a screen and you have to dedicate large chunks of your day staring at that screen. It comes with the package of being a developer.
Therefore, in your free time it's very important to find something that you enjoy doing that doesn't involve a screen and ideally gets you outside. I know many developers who love to code in their free time too and thats fine in moderation. However, this article is about burnout and that is a more subtle danger that builds up over time and then hits you hard and leaves you on the floor. To avoid this, it's critical to break away from your standard routine and hobbies are a perfect way to do this. Picking a hobby that gets you outside into fresh air and moving is even better.
Amongst my developer friends, hiking and going for long walks are very popular. I can understand this as these activities get the body out moving in nature and allows the mind to unwind in the flow of the activity.
The brain seems to flourish when focusing on one thing for a time and then throwing it something completely different. It's like the change in scenery gives it a burst of energy on which it can thrive. Once again, this is about looking after your number one asset and keeping it fresh and healthy over the long run.
6. You are what you eat and drink
There is so much information online nowadays about what is the best diet, what you should eat and what you shouldn't eat, that it can become quickly overwhelming.
Regardless if you are a vegan, carnivore, pescatarian, fruitarian - something that can be agreed on by all is unprocessed foods are best.
I won't go into any specifics here but I will say this. If you eat highly processed, highly sugary foods you are going to feel like crap pretty quickly and if you feel like crap I don't believe you can produce quality work. Your body will also struggle over time to function well on this type of diet and if the body starts to feel bad the mind will quickly follow.
Therefore I recommend you eat unprocessed foods as much as possible. Regardless if you are a vegan, carnivore, pescatarian, fruitarian - something that can be agreed on by all is unprocessed foods are best. You don't have to be a saint in this regard but the less processed food you have in your diet the better.
It all boils down to the fact you are restricted to your one body and one mind so you need to look after it and the fuel you put into the body is quite an important part. If you put in good fuel, your body will feel good, your general mood will be good and the work you produce will be good and probability wise, you are likely to be in the game longer.
7. Play the long game
This one is one of the most important for me personally. I used to suffer quite a bit from FOMO (Fear of missing out) on all the latest technologies that were coming out in the Web Development world. There are literally new libraries and frameworks coming out on a weekly basis. I really felt I had to at least have good knowledge of each of them so I could make an informed decision. Then the anxiety would start building because when would I find the time to do this between a full time job, a home with three kids and all the other things in life you have to take care of?!
I have all the time in the world because I have decided deep down that this occupation is what I want to do and continue to do.
Then I had a realisation. It hit me when running one day. I realised that I love what I do and I plan on being a developer for a long time. I've tried other occupations (Customer Service, working in a Cinema, working in a Kitchen) and none of them have brought me anything like the pleasure and satisfaction that coding does. So I have time. I have a loooooooong time to get to these things. This is a marathon I am in. I am on the journey already and will continue on the journey for a long while yet so lets just enjoy the ride.
I am constantly learning things everyday and there is so much to learn but I have time. It's ok. There is no rush. I am not doing some crucial final exam next week. I have all the time in the world because I have decided deep down that this occupation is what I want to do and continue to do. Once I had made this decision and realised I had made this decision the anxiety just floated away.
8. No social media on your phones
Being able to disconnect is key to avoiding burnout for any developer so when away from our computers we should do all that we can to actually be disconnected.
Smart Phones are amazing but also dangerous. They are dangerous because it's very easy to check things on them and hence it can be very hard to disconnect. Being able to disconnect is key to avoiding burnout for any developer so when away from our computers we should do all that we can to actually be disconnected.
However, throwing away the whole smart phone would be a little drastic. After all it has so many useful features in everyday life: maps, music, exercise apps, messaging apps... the list is endless. So how to have a phone but not have it as a temptation to look up some software development latest trends?
My learning has been to delete all social media apps from my phone. I am a big fan of twitter
and I think it's great for keeping up with trends and community in the Web Development space. But when I had it on my phone I would find myself endlessly scrolling
whilst sitting on the sofa in the evening or when I had a spare minute when out and about. This isn't good because it immediately takes you headspace back into the Web Development world and suddenly you are connected.
Social media apps are designed by very smart people to make you stay on them for as long as possible. That's their business model. Don't fool yourself by thinking you are smarter and better than these people and you can resist these temptations to look. Because you can't resist. It's all a question of time.
Avoid the temptation altogether and delete all your social media apps on your phone.
9. Learn concepts
In the Web Development space new libraries and frameworks come and go like the wind. If you were try to learn them all you would fail miserably, you wouldn't get any work done and I am pretty sure you would soon quit Web Development completely.
Therefore, instead of trying to learn the latest library that just appeared on the market, it's better to learn underlying concepts and principles. These have a tendency to stick around for much longer thus making the effort spent to learn it much more worthwhile. Also they tend to give you context in which these libraries and frameworks play their part and thus give you a more informed way to make decisions.
Take for example http requests
Therefore, instead of trying to learn the latest library that just appeared on the market, it's better to learn underlying concepts and principles. These have a tendency to stick around for much longer thus making the effort spent to learn it much more worthwhile.
Next time you come to learning something, ask yourself if you are learning this because it's the latest trend or if you learning this to give yourself a more thorough and deeper understanding of the ecosystem in which you work.
10. Choose projects that excite you
Last but not least, if you are a developer and have been doing this for any time, then you certainly must have a passion for it even if it has dwindled over the years. Like anything in life, sometimes you have to throw in a little spark to get things reignited again. This is where personal projects can play a major role.
Many people fall into the trap where they think they need to learn the latest algorithms or learn the latest framework that just came out just in case someone asks them about it. But you don't have to!
In your personal time (when not moving your body outside in the beautiful fresh air!), if you decide to do a project, at least make it fun! So many people fall into the trap where they think they need to learn the latest algorithms or learn the latest framework that just came out just in case someone asks them about it. But you don't have to!
Personal projects are a wonderful opportunity to jump into your curiosity and try something that excites and intrigues you. Like a new programming language or some fancy animation library you have wanted to try out for ages. I have been following this technique for a little while now and it's been so liberating to just do what I want in my personal time. Ironically I have actually learnt things that just so happen help me make a bigger impact at work but this was not the intention.
The intention was to just code for fun for a few hours. Follow my curiosity and see where it takes me. Remember why you got into programming in the first place.
Burnout is a real thing and I believe it is becoming more and more prevalent in our society as the choice to disconnect becomes harder and harder. With all the devices and technology that has been invented in the last 30 years or so, it seems we wanted to design a system where we can be plugged in 24 hours a day, 7 days a week. We are however human beings living in organic bodies and these are not built to thrive in this type of system. Therefore it falls on you to take the responsibility and make good choices day to day which will enable you to not only survive in this system but thrive in it and continue what you love doing for as long as possible.