This is a question I hear pretty often. Apparently the only way to become a “great programmer” is to spend a lot of your spare time coding. This isn’t free of course, your spare time is valuable. Maybe there are other pursuits in life you want to be great at. But is coding after a long day’s work just something we all have to do?

So, no, it’s not necessary, and I’ll explain why that is.

Here’s the main point: “Coding in your spare time”, ie “more time programming” isn’t what you what makes you a great programmer, it’s “solving new and different problems”.

Some people do the same thing every day. Meet Bob. After his Christmas break, Bob will head back to work to figure out how to edit, store and view “Entity B” in his company’s system. Last week it was “Entity A” and the week after it will be “Entity C”. Bob has a friend called Alice. For her every day is is like the first day of a new job. At work, she gets to improve her skills whilst getting paid to use them. If you’re like Bob, you have a problem. No-one becomes a great programmer by doing the same thing every day.

I was like Bob. I was in a job that didn’t challenge me and didn’t give me space to grow. I did a lot of coding in my spare time to get the skills I needed. Then I got a better job. Having that better job, and working with new people who had a lot to teach me, taught me a lot more than I could have ever learnt from coding after work on my own. I spent my spare time as part of a calculated effort to get more interesting and challenging work and to become more fulfilled in my work. This was a plan and an investment. Most importantly, it wasn’t a permanent tax I paid so I could become a slightly better programmer at the same time as keeping a “bob-job”.

So stop agonizing about whether or not you did enough work in your spare time. Go do the things that matter. Practice an instrument. Spend time with your kids.

Then come up with a plan to get more fulfillment and growth from your job.