Why Professional Programmers Shouldn’t Have Programming Side Projects

Our field is full of companies and individuals who are quick to look down on anyone who doesn’t have any programming/embedded side projects, some even going so far as to consider it a hiring “red flag”.

I wasn’t kidding with this tweet. It was prompted by someone reacting poorly when I said that I don’t program or study engineering in my free time. You might think that after 25,000+ hours invested into the field I’ve shown how dedicated I am. Sadly, the negative impressions don’t seem to be related to one’s experience level.

There are any number of valid reasons why a person would choose to avoid side projects or hobbies related to their career. We might have families, serve as caretakers, volunteer, or work additional jobs. Putting any claims on your non-work time aside, having hobbies and projects outside of your chosen field provides significant professional benefits. Logistically, you just need to take a break and recharge your mind at some point. Just like an athlete, we need to manage our energy and spend time to recover, because working too hard for too long only serves to reduce our effectiveness. But there’s more to it than a simple break: we also gain exposure to new ideas and ways of thinking.

The sum of human knowledge is a vast ocean. Countless generations have devoted their lives to a countless number of fields. The odds are good that for any topic or field you can think of, at least one person has spent a lifetime thinking about it. Since all that an individual can hope to possess is a small bucket full of this vast ocean, a key paradigm, lesson, insight, pattern, or practice from one field may remain locked up, unavailable to those in different fields who might find it extremely valuable.

Progress in human history has often been the result of remixing ideas. Breakthroughs often come from taking an idea in one field and applying it to another. To help these critical ideas spread across fields, we need to serve as cross pollinators. We can only do this if we have experience in other fields. If you remain a one-dimensional person, narrowly focused on only your chosen field, you are hindering yourself. You miss out on all of these opportunities for ideas to cross-pollinate and generate a breakthrough.

Unless I’m completely consumed by a problem, I only think about programming and engineering when I’m working. Most of my non-work time is spent away from the computer: gardening, growing food, cooking, hiking, reading, playing with kids, and playing music. Yet, many of these activities have taught me something valuable that I have applied to my primary work. It seems that at this point, my mind is always running a subprocess that is trying to make connections between disparate fields.

For example, I volunteered at the San Francisco Japanese Tea Garden for three years. I worked with the head gardener, seasoned bonsai devotees, and a master gardener to prune trees, mend fences, beat back bamboo, pull weeds, catch koi fish, and clean ponds. This might not seem like work that is relevant to embedded systems or engineering, but I have learned many lessons that apply to engineering work and managing long-running projects. My experiences pruning trees in the garden have changed how I approach both refactoring and scheduling my daily workload. One of the lessons, “always end the day with something usable,” is about selecting tasks that are small enough to be accomplished in a single day while allowing you to continue having a functioning system. This idea maps neatly onto the agile idea of continuous integration and delivery; it also reminds me to divide tasks into smaller, discrete units instead of large efforts. This is especially important now that I have two small children who frequently derail my projects!

Certainly, some areas of study are easy to draw lessons from, like psychology and leadership. But for the observant student, there are valuable lessons to be found everywhere, whether you are playing sports, working in the kitchen, tending the vegetable garden, or cultivating mushrooms. I’ll be writing about some of the insights that I have gained from other fields in future articles.

Don’t let anyone force you to be a narrow, one-sided person with their expectation that you spend your free time becoming better at your profession. Point out how they are missing the lessons and insights that can be gleaned from other fields. Keep an open mind and look out for anything that might help you reach new heights.

Further Reading

3 Replies to “Why Professional Programmers Shouldn’t Have Programming Side Projects”

    1. Yeah, that was a great video. I came across an interesting article a few days ago while looking at material discussing brain teaser questions. This guy’s hypothesis was that businesses (at least in Silicon Valley) view programmers as low status, and requirements such as “love what you do so much that you do it outside of work” are in place because they want to select people who will do the work no matter the conditions. It was an interesting take that does anecdotally hold water from my experience. Really want to dig further into that idea to see if it holds merit.

  1. I think you’re right. Sometimes I’m tired to write always code, read code, think code and now I remark that I am far from my environnement, if I get an Idea is not to help human in my social environnement but developers and it makes me sad…..

    The other side, as junior dev, I think we need side project to reinforce and upgrade our knowledge….

Share Your Thoughts

This site uses Akismet to reduce spam. Learn how your comment data is processed.