Taking Care of Your Dev Self: A Developer's Guide to Well-Being
I see a lot of developers, many whom I care about, neglect themselves and their health due to artificial, self-imposed deadlines. Today I'd like to share my thoughts on some important aspects of your well-being that I see many developers discredit.
Getting an adequate amount of sleep is important no matter what field you work in. However, I know a few developers who neglect their sleep because "I need to get this project done" or "I can't waste time on anything else".
This is an issue. You need sleep, whether you like it or not. Depriving yourself of sleep will have many negative side effects - but perhaps the most pertinent is it will inhibit your learning. If you are not well-rested, you will find that you are not retaining the things you are trying to learn nearly as well. Additionally, you may find that you are making more mistakes and simple errors that you otherwise would not.
The project you are working on can even take longer than it would if you slept when you needed it, instead of pushing yourself to work longer and later. So take the time to rest and recover, and resume your project with fresh eyes and a clear mind.
It is important to maintain a balance in many areas of life. This is one such area. Many times I see a developer fall into the cycle of
wake.then(code).then(sleep). This cycle leads to a disregard for their other needs, including the very important need to unwind and decompress.
Writing code can be fun (in fact, for me it rarely isn't fun), but take care to spend time on your other interests as well. For myself, I usually spend a couple of hours on a video game to unwind, and read a book for an hour before I sleep. Whatever your preferred method for destressing, take care that you make good use of it - programming is mentally taxing, and you need to give your mind a break too!
A good friend told me today: "I really hate this project. I just want to be done with it". When you're working on a personal project, regardless of your reason for doing so, this should never become your mentality.
I often become frustrated or annoyed throughout my day. When this happens and I cannot get past it, I take a break. Sometimes that break means working on a different project so I am still working on code (and thus still learning). On occasion, I'll call it a day entirely and move on to relaxing activities.
You do not have to spend every waking moment on the same project. It is okay to bounce around to keep things fresh and avoid burning out. It is okay to take a break from a project for some time - if you are working on it as a personal project, regardless of the reason, then you aren't obligated to finish it. You aren't beholden to a client or an employer, and it no longer becomes worth beating at it until you hate it - take breaks as you need them to keep the work enjoyable.
What other concerns do you have for developers' well being, either yours or someone you know? Drop a question in the comments and I'll share my thoughts!