Even though you may be more productive if you code 16 hours a day, it will never be sustainable. Burnout will always come, and in my experience just after a few days. All levels of programmers can be negatively impacted by working too much but drawing from my experience, newly started programmers are more prone to ‘working too much’. Here is a little backstory.
Last summer(2018) I started working as a freelancer building web apps. I had prior experience on personal projects but this was the first time I encountered complex projects that required a lot of code and a lot of research. On writing every other unique route, I had to hook up Celery for background tasks or connect some binary executable to interface with the app. A demanding experience indeed but great for learning and feeding my curiosity and need for experience at building web apps. I began doing 18-hour workdays. My calls, direct messages and emails would go unanswered for days. All I wanted was to learn something new. I haven’t yet reflected to figure out what was driving this obsession with work but I suspect it was that I wanted to catch up with most of my peers who are far more experienced.
After a few days of working on a project nonstop, my efficiency would drop so much that I would take so long to write a few dozen lines of code and I would make silly mistakes that would take a while to identify. As for other activities like engaging in hobbies, I could not find time for them since they were no longer a priority. Personal relationships took a hit due to being unresponsive to messages(rip).
I only realized how bad my immersion to work had been when I wrapped things up in readiness for school in September. I would normally say I wish I knew but I am so glad I went through that and learnt a lot from it. So how do you maintain balance? Here is only a subset of best practices.
- Set a finite amount of time to work on a task. Once the time is over, take a break before moving on to something else.
- Don’t do more than 8 hours of work* in a day, unless it is for brief moments of a high workload. (By work I mean actively writing code/debugging code. Scheduling business meetings and making calls do not really apply since they are not intensive.
- Get lots of sleep. ~7 hours recommended.
- Develop a habit of taking breaks, and even longer breaks for lunch etc. It not only relaxes your mind but helps you to be more focused once you return to work.
- Establish non-negotiable* time slots for friends and family in your calendar. Human beings are social and you need human interaction in some way.
- Never take it personally when you run into a bug. Switch to something else and revisit later.
Alternativelyhave a peer look through your code.
- Focus on efficiency and not total time spent while working. This frees up time to work on hobbies and connect with friends and family.
- Attend meetups to network and learn new concepts and best practices.
- Take care of your eyes by cutting down the time you stare at a screen
- Eat your vegetables (and balanced diet + working out too)
Remember it is a process of becoming better at managing everything in your life. Falling back into poor habits will certainly be a thing, and it is up to you to be self-aware to realize it is happening and to correct.