This comes up quite a lot. People think you can’t become a great programmer unless you code in your spare time. This causes a natural tension between wanting to be a great programmer and wanting to be a great parent, partner, carpenter, Frisbee champion, or any other things you might want to be great at in your spare time. You get a fixed number of hours, and having to choose how those hours get burned up is the big personal challenge we all face. I can’t solve that whole problem here, although you can refer to Seneca’s On the Shortness of Life if you want some quality pointers.
So let’s deal with the much simpler problem of whether you should code in your spare time.
The answer to this conundrum is simple. Five or so whys will reveal that it isn’t “writing code in your spare time” that makes you a great programmer; it is “working on a diverse set of problems”. For some people, their day job doesn’t supply a diverse set of problems. They might solve this by doing more interesting and challenging work in their personal time to elevate their skills. For other people, walking into the office each day is like starting a new job. The problems are challenging and they get to increase their skills while being paid to apply those skills to various problems at hand.
it isn’t “writing code in your spare time” that makes you a great programmer; it is “working on a diverse set of problems”
You don’t get to be a great programmer by repeating the same thing every day. If you find yourself stuck in routine programming tasks (maybe working on an application where all you ever do is store some data the user entered, then display it back to them later for edits, and then store it again)… you’ll find it hard to build the skills you need. If you can’t find the opportunity during your work day to get out of the routine, you need to find some work that will help you grow, or use up some personal time to feed and water yourself. The economics here is that an eighty-hour investment of personal time could get you a job you enjoy better… resulting in break-even a few weeks into your new job. If you are more fulfilled in your job, you’ll be a better parent, partner, or Frisbee chucker outside of work too.
If you have a job that is helping you to continuously improve your skills, you can protect your personal time without eventually trapping yourself in a job that doesn’t provide fulfilment.
So stop worrying about whether you should code in your spare time, and instead make conscious choices about whether you are getting fulfilment from your work and what you need to do to grow and improve each day.