I have written about burnout before. It is a very nasty problem and I, like many others, have suffered from it — but I think I figured out how to deal with it successfully and I thought about outlining my efforts to that end here.
I believe burnout if first and foremost rooted in an unsubstantiated lack of confidence, almost always a result of a prolonged and intense effort, where one is laser-focused on solving a particular problem, being consumed by it even, and when that is concluded, burnout becomes a very real, looming threat.
When we are hell-bent on solving a problem, especially one that requires extensive research(learning what we don’t yet know or understand), prototyping(figuring out how our newfound knowledge can be used) and then putting it all together, refining as we go, not even knowing with certainty if this is going to work, we don’t understand the toll it has on our wellbeing and how it affects our relationship with others(loved-ones/family, colleagues). It affects our eating habits, it affects our sleep(not getting enough of it), it even often makes us prone to outbursts and irrational behavior.
When this is over, hopefully culminating in success, and you are ready to do something else if that involves working with another codebase you worked on, and you don’t remember much about it, then you are likely going to experience burn out. Crushing down from an intense high to an intense low(“I feel useless”, “I am so dumb I don’t understand any of that”) almost always leads to burnout. This is exaggerated if the code you wrote is either convoluted(“wow, I was smart and now I am so dumb”), or you have no recollection of the specifics(“what does this even do?”).
It’s hard to acknowledge the perils of this intense effort when you are in the proverbial zone, and even if you are able to do so, slowing down on purpose in an effort to reduce the likelihood of impending burnout is a risk — it can impact your stride or even throw you off course.
So it all comes down to reducing the chances of burnout, and how to heal yourself(“snapping out”) from burnout. Sure, you can determine that you will not chance burnouts and therefore only work on “low-risk” problems and challenges, but that may not be possible or desirable.
More than anything else, I think it’s important to always care for your wellbeing — eating properly, getting a good night’s sleep, working out even if for 30 minutes a day, maintaining a healthy relationship with your friends and family. If you don’t feel good about yourself, you are far more likely to suffer from burnout and it will be a far more severe case of burnout too.
It is very important to read about varied topics, i.e not exclusively related to technology or whatever you do every day, and to entertain yourself (watching movies, reading fiction, swimming, playing sports). You may want to continue thinking about work when you return home or tinkering with ideas in your man-cave, but you really shouldn’t be doing that.
Recovering from burnout can be very difficult. It’s a very bad place to be, dark even, a soul-crushing slump. You can regain your productivity though — even if at the time it feels you are doomed and you should just give up on life and go herd cattle or sleep all day because that’s all that’s left for you to do.
I maintain a list of all kinds of different things I want to understand or experiment with, eventually. From ARM assembly to ray-tracing, to fancy new NN topologies, to new Linux kernel APIs — its a very long list and I update it when I come across something “cool” or interesting. I also maintain a list of many papers that I eventually mean to read. Those two lists are essential in my efforts to recover. Here’s how it works:
I pick stuff off the first list and I write small programs in an effort to understand them. It’s important that almost everything I pick from that list has little to nothing to do with whatever I am supposed to be busy with at work. So while I may feel physical pain when I try to be productive at work, working on an entirely different domain(important) from scratch(even more important) is something that I can do. That builds up confidence. I also pick up random papers from the second list(also almost never related to my work) and I learn more things. That also builds confidence.
I also try to find issues in our issues tracker that are trivial and I take care of them. One by one, those also build confidence — but it is important for me that the work(coding) required for that doesn’t make me feel like I am rolling a boulder up a hill. If it does, it means I need more confidence before I can try again. Little by little, my confidence comes back, and along with it, my ability to reason about my problem and eventually I am fine again.
All told, this usually takes 1 to 2 weeks. In the past, when I didn’t know better, this could take maybe even a month. Nowadays, burnout is a very rare occurrence and thankfully I know how to deal with it.
I hope this helps.