Yesterday, I turned 40. I had a lovely meal with my family, I ate some cake and I was given a banjo as a present.
I've played guitar for more than 20 years and, while I don't feel like I'm starting from scratch, it is going to take time to get used to the little differences and the change in style that comes with playing a banjo.
I'm sure there is a good analogy to be made that compares learning a new musical instrument and learning a new framework or programming language but I'll leave that for another day because, in this post, I want to explore a few thoughts about side projects.
My new side project is learning the banjo. I love the sound of bluegrass banjo playing and I hope it will improve aspects of my guitar playing and my musical ability, in general. A change in perspective often works wonders.
A change in perspective. There are many reasons why I might start a new side project; to try out a new technology, to apply a pattern or coding paradigm I am not familiar with or to find a creative outlet not met by other aspects of my life. All of these can help to broaden my perspective. A side project can be a great tool for a developer's own development.
From my experience, most successful coders are successful learners, first and foremost, but sometimes this drive can get a bit obsessive. If you find you are having to use your own spare time for personal development it might be time to ask some questions:
- Is my day job lacking in some way?
- Does my job provide enough time or resources for continuous learning and development?
- Does my job fail to meet some need I might have for creativity or challenge?
Lots of coders like to tinker outside work or treat code as a hobby as well as a form of income. I'm not saying you shouldn't have a side project but it is always worth questioning your motivations especially if that side project starts causing pressure on other parts of your life.
Side projects can be fulfilling but they can become demanding on your time. I've seen a lot of articles recently about open source project maintainers burning out or finding it difficult to manage the demands they are put under by their community.
I've found the danger of burnout is made worse when I feel like I might be letting someone else down. I'm happy to abandon a project that is mine alone. Fail fast and take some learnings. However, when there is someone who needs or expects your help it can be really difficult.
Earlier this year, I started a side project. I found myself in between jobs and I had the opportunity to write a few chapters for a book. I had wanted to do more writing for a long time. It looked like a great opportunity.
The publishers were asking for three chapters from each of the authors. I thought it would take a month and I thought it would be finished before I started my new job. Estimation has never been my strong suit. Underestimating the work involved in a side project can be a real problem.
This project, at times, did feel like it was becoming a bit too much for me to cope with. I underestimated how much time I could afford towards it. I underestimated the cost of context switching between work, family life and writing. I was trying to find small pockets of time to write on a train journey and it felt like I wasn't getting anywhere.
It took longer than expected. At times it felt like I was reliving this wonderful Douglas Adams quote: "I love deadlines. I love the whooshing noise they make as they go by." over and over.
I didn't want to let anyone down. I wanted to get the work done but I also felt it was starting to put pressure on my work and family life. I persevered and it meant asking for a lot of patience and kindness from my family.
I don't have answers to a lot of these problems. My advice would be to choose side projects carefully and realise that your time is finite and ask a lot of questions:
- What happens when a side project becomes a burden to you or to your family?
- Will someone have to take on extra responsibilities for you to be able to complete the side project?
On one hand, it can be difficult to abandon something you have put a lot of effort into. On the other hand, burnout is a very real risk in our industry and your time is a precious thing. Use it wisely.
In this case, the journey has been difficult but the outcome has been a happy one. The book has just been released by Packt. It is called The HTML and CSS Workshop. It is available from Amazon (UK | US) and through Packt as a workshop. It is a beginner-level book about HTML and CSS with lots of practical exercises. I'd love feedback on it if you get a chance to read it. I can even provide some referral links, if anyone is interested let me know in the comments.
As I get older, I do find making space for side projects more and more of a problem. It is often difficult to balance work and life, let alone work, life and a side project. I'm hoping learning the banjo is a side project that better fits into that balance.