I'd recommend the book "The Truth About Burnout" [0]. It talks about 6 sources of burnout: work overload, lack of control, insufficient reward, breakdown of community, absence of fairness and conflicting values.
For a long time I had burnout (or only a beginning). After a while, I suspected I might be burned out and it might be because of hard work, I work part-time and go to school too. It don't think it helped now that summer has come and I don't go to school, so I read the book. I think it's because lack of control, absence of fairness, conflicting values and insufficient reward. Note that it doesn't have to be true, it's enough for you to feel unpaid, that you don't have control, etc.
I read the list of burnout symptoms and that makes me think:
maybe this problem could also be considered from the perspective of Reinforcement Learning, as it is applied in AI. In RL, there has to be a balance between exploration and exploitation. Burnout seems to be a condition where exploitation is prioritized too much over exploration.
It is true that in exploration there is no guarantee that a better reward will be found, but unless we explore, it's much harder to get to learn anything new and cut our future options. Our sorely missing downtime is exploration time, random choice time, free of expectations, liberated from the need to always make the greedy choice. We need more of that in order to explore the space of possibilities that exist beyond our experience. When we cut ourselves from randomness we box ourselves into the small space of known strategies, and burnout is just a negative reward signal to let us know we are being suboptimal even as we strive so much to excel.
That's why it is called "tradeoff between exploration and exploitation". Exploration costs resources too, and has a lower chance of generating rewards in the short term. But without it agents can be stuck in a local minima without being able to "jump" to a better local minima.
The way ruby uses instance_eval. I didn't pay attention at first, I just enjoyed the beautiful interfaces. But when I saw how they use instance_eval behind the scene and how simple is, I was in awe.