# A day's journey Discuss productivity for developers and how programming can be exhausting. Discuss the myth of always being on as a developer and the need for downtime and rest. ## Riding until dawn Programmers are always trying to find new ways to be productive. Different editors, scripts, compilation tweaks, automation; the list goes on and on for how programmers want to maximize their time coding. We also tend to add that to the rest of our lives, thinking that we should always be on, coding. Any moment not coding is a moment that our projects get behind. And that can lead to other problems: missed deadlines, others getting to market before us, collisions with others work because they made a breaking change before we could smooth it out. We're constantly worrying that we're not doing enough. We've heard the stories: developers waking up at their computers to the strange sound of beeping because the keyboard auto repeat can't handle anymore input with their face resting on the keys. I think there's this tendency that because we work with machines that are tireless and ready for more work that we need to be the same way; we need to constantly utilize these resources. We become like the machine, and the better we get the better we'd better get (because our boss or colleagues will notice that we've completed something and more work will come our way). The problem is that if we feel we always need to be "on" we don't allow ourselves the opportunity to be "off". We create a pattern where we don't allow ourselves the moments to sit and reflect on what it is we're doing. We don't allow our brains to recharge. We don't allow for our minds to sit with what we've learned and sweep that into our long-term storage. Instead we create a feeling of constant panic where we spend most of our time worrying that we're not doing enough while at the same time pushing our minds to exhaustion. It's a vicious feedback loop, and one that can lead to burnout, depression, and a desire to leave programming for good. So how do we balance these feelings of wanting to be on all the time while allowing ourselves to relax and reflect on what we're doing? ## Lights out First we need to acknowledge that we can't be on all the time. You may know this intuitively and think "yes, of course" but acknowledging that you need to have a period where you are not programming, not thinking about programming, and not being a programmer is vital to your well-being. You need to have moments where you can turn off the programmer part of your being. This can be tricky if you constantly feel like you're falling behind in your learning. When are you supposed to learn all of the new things happening daily? When are you supposed to catch up on all of that technical debt you've been accruing over the years? When are you going to have time to learn the ins-and-outs of whatever technology that is no longer part of your day-to-day work but is still interesting to you? This constant feeling that there's more to do and we need to spend every waking moment doing it or we're somehow less of a developer isn't helped by folks who look super-productive; the folks whom you can suggest something in the morning and they have a working prototype in the afternoon while still figuring out their normal work routine. We can acknowledge that we have this feeling; that we feel the constant need to somehow push ourselves to keep learning and doing. We can see ourselves in the moment with the thoughts of "just one more line of code before bed" or "I can read a few more articles or blog posts or [insert favorite way to consume more information here]". We need to see our feelings and understand where they come from.