I am here to tell you stop coding.
Take a break and close the laptop.
Have a beer or cup of coffee.
Go hug your significant other.
Sit and watch TV for a bit.
Take the dog for a walk.
Grab a snack.
Go to bed.
Do something other than stare at your code editor. I promise VS Code and the algorithm you are perfecting will still be there when you come back. And you'll be a better developer for it.
I will start off by stating that I love to code. I wouldn't be writing this if I didn't. I love my profession and the work I do. After spending a decade as an educator, I found a career that I have a true passion for.
I know there will be tons of critics on this subject because I have been a part of the discussions whenever the topic comes up. The chorus of "Real developers never stop," or "Who is coding all weekend?" ring throughout the comments of any Twitter thread about coding in your time off. But I can honestly say that the best thing I have learned in the previous year or so, is that when my work day is done, it is best to close my laptop, and leave the world of code behind.
Too often as developers we place our self worth on the number of lines of code that we write, the number of commits to GitHub, or the number of hours spent in front of the chair. It is not uncommon to hear bragging about the all night code sessions, wearing that time as a badge of honor. But in the long run, this is not sustainable. You only hurt yourself by doing so.
Developers are often asked in interviews what they code in their free time, or for personal projects. We don't ask surgeons what kind of surgery they perform in their time off. So why is it acceptable, or even standard, to expect developers to do so. Coding is one of my main interests. It is truly a job that I enjoy and I love to learn more about it, but I am more than my code and the number of hours that I spend crafting it.
Most chefs don't go home and cook a four course meal after a day spent in the kitchen. After eight plus hours coding, it is not what I want to spend my limited free time doing, or should be expected to do. I have a family, other interests, or I just simply want to zone out on the couch and watch tv like any other tired human being. Not coding in your free time should not be seen as a mark against a developer. We all don't have the time, resources, or will to code all of our waking hours.
To me this would be a warning sign in an interview, especially for an experienced developer. I understand side projects are your main way in as new developer. You can still have a passion and drive for your craft without doing it on the side.
One of the common retorts to this topic is that they are spending their time learning for work, or to get their foot in the door as a developer.
If it is the latter, I see no problem with this. I went the bootcamp route to become a developer. I was working full-time as the sole breadwinner while coding 30+ hours a week for nine months, with a wife who was pregnant for most of that time. I wouldn't take it back at all, because I do have a career that I love. You have to work hard to get what you want.
However, for the former, learning for work, this is detrimental to your standing as an employee, and can lead to you being taken advantage of if not careful. If you are learning for work it is most likely one of two cases, you are new to the industry, or it is new technology that you are not familiar with.
A good employer should understand that if you are new to the industry, you should be given time to learn on the job and foster an environment where you can learn the necessary skills and thrive. Being expected to learn outside of work adds to the already insane pressure that someone who is new to this industry is already feeling.
The same goes for learning new skills, or new tech, even for experienced devs. When introducing new tech, an lengthened time frame is to be expected, and estimates should be made accordingly. The burden should not fall on the dev to work outside of work to catch up. Too often employers use these excuses to get free work out of employees, and it is detrimental to the industry as a whole.
Our lives are so much more than work. We already spend a majority of our waking hours at work, so the little free time that we do have should be just that, free.
Being a good developer is so much more than just writing code. A good coder has the ability to solve puzzles, communicate, and gather information to name a few. Branching out beyond the world of development is a way to give yourself a variety of tools that will help you in the long run to be a better developer and better overall human.
Reading allows you to become better at combing through documentation. Writing, or blogging will help you to be a better communicator on your team. Playing video games and puzzles will help you to look at problems in a new way and from different angles.
The other day while playing with my son, I was able to see the grid structure that was giving me issues while playing with blocks. I see code everywhere, even if I am not coding.
I built a homemade fermentation chamber for homebrewing. This required me to read schematics and search through various blogs and put together something that fit my needs, because no off-the-shelf model would fit my needs. If this doesn't sound like what a developer does on a daily basis, then I don't know what does. It doesn't have to be code to hone your skills as a developer.
Also there are other ways to absorb code. I will typically browse programming Twitter or Reddit on my phone while I ignore the TV in the background. This is just as valuable as coding as you are exposing yourself to new ideas and methods without actually going through the rigors of developing.
Being a more well-rounded individual will make you better at your job, and a more valuable member of your team.
I wasn't the most dedicated student during my first few college years. (It is true that youth is wasted on the young.) In order to pass the time in class I used to do the crossword puzzle in the daily newspaper. Usually in the morning class, I would get about halfway through and then get stuck. Later on in the day I would pull it out again, and usually finish it in a matter of moments. I needed to get my brain unstuck from looking at the same problem in the same way. It needed a reset.
Our brains get caught in these lanes and it is difficult to get out. Taking a break, especially when stuck on a problem, can be key. I think most of my "Aha" moments come in the shower, or while on a hike during lunch.
The same goes for talking to a coworker about the issue. How often have you gone over to a coworkers desk to go over an issue and found the problem within seconds? Having a different point of view is good. Variety is the spice of life.
Burnout is real. It happens to us all, so there is no reason to bring it's onset faster than necessary. Throwing more hours at a problem is not always going to bring the solution. In the long run it can be detrimental to your mental wellbeing.
Coding is something that I love, but it is also something that I can walk away from. We all need to take breaks in order to center ourselves. A bug in your code should not be a reason to stay up all hours of the night or neglect a meal. I have the luxury of taking a hike at a local trail on my lunch break, which helps me to refocus and get out to be a part of nature and reset my mind.
The current stresses of a Covid world are already too great. Combine that with the regular pressures of adulthood that we all face and it compounds quickly. Don't be afraid to say that you need a break. An gray space in your GitHub profile isn't going to be the make or break of your career, or self-worth.
I remember reading one of those AskReddit threads where the topic was along the lines of "What do you as Europeans find strange about Americans. One answer that struck me was the response about asking people what they do for a living. We often place too much of our worth on our career, when it should not be your defining characteristic.
I'm a developer but I love to cook, brew beer, travel, and watch sports whenever I can. My limited free time is reserved for my family and being the best father and husband I can be. I am more than just where my paycheck comes from.
The above image is my Github profile for the past six months. I am proud of my green space on this one. I go hard during the week. My office hours leave me to work that code editor hard. I love to code and learn. I lose track of time during the work day, earning a living at a craft I am passionate about. Fingers moving and code committing.
But my weekends are for my family and hobbies. Free to enjoy the other things that life has to offer. Life is too short to just be a developer. Step away and take a breath. You'll be a better developer for it.