The importance (and potential dangers) of side projects and the need for balance.
I started working as a full time software developer (doing mainly .NET web development) for just over half a year ago, it was only a couple of days after I finished my bachelors degree in electronics engineering and embedded systems (was able to put some web development courses in there as well though). Though I’m fairly confident that I wouldn’t have had the slightest chance to get hired if it wasn’t for all the side projects I’ve spent time on during my spare time.
When I was perhaps 10 or 11 years old I started teaching myself basic front end web design (which wasn’t that easy with quite bad English skills and no one available to ask) and shortly after I also began fiddling with tools like Game Maker as well as I started looking at C++ and other programming languages. Growing up in a very small village in the Swedish Lapland I had nothing more than the internet and maybe a few books to learn from. So I wasn’t really learning and improving very fast, but there still was a steady progression driven by curiosity and the strong desire to understand why and how electronics/digital devices and software was working.
At the age of 16 (or maybe closer to 17, my memory is lacking) I started a sole proprietorship in order to be able to offer web development to get some extra income and boost my learning. To be honest my programming skills was far from good at this point, but by targeting individuals and small companies I managed to get a few clients with projects that suited my programming skills of that time. It also made me even more encouraged to keep learning and exploring new technologies, frameworks and languages. Besides the few projects I were working on in my business I put time on many personal side projects. Which has been incredibly valuable as I believe that quantity is very important in order to achieve quality when learning new things (not only programming). Because with quantity you get important experience of the many different ways it’s possible to make things work, and of course the endless number of ways to fail.
Programming courses at the universities can of course be very good and give you lots of useful knowledge. But my personal experience is that they’re often way to narrow and include too few hours of practical work and experimentation to give the students a more complete picture of the subject and all the different possible ways of attacking a problem. This is why I’ve found my side projects to be so important.
Now you might be thinking: “So what you are saying is that side projects is extremely important, make sure to have time for them and don’t stop doing them?”
Well that’s kind of what I keep hearing most of the time and it’s true to a certain degree. I’d like to say that it’s only one half of the story though. As Joe points out it’s very important to find that balance. I found that earlier when I was studying I really benefited a lot from all of my side projects. Because I’ve mostly needed to spend quite little time to keep up with my studies and there has often been plenty of room over for other projects. Which means that even if I put a couple of hours on a side project every day I would have time over to relax and dedicate time for my other interests and hobbies.
Since i started my current employment my view has begun to change slightly though. I’ve realized that if I’m doing 8 hours of programming at work and then keep going for a couple of hours after I get home I don’t really keep improving the the way I used to do earlier. Sure, I still get the work done and I enjoy what I’m doing. But I’ve started to realize that I am having the same issues as Joe Birch discusses:
To begin with, there was no time for reflection. How could I improve myself or my work if I was always busy creating and not thinking? Taking a step back and distancing yourself from something allows you to reflect on what you’ve done, improving it for next time around.
Without this headspace in place, you never really get the time to look back on your mistakes because you’re too tied up in the work you’re doing.
This often caused lost time for both reflection on project features and the way in which they were built, as well as a project as a whole.
Now you might remember that I mentioned the importance of quantity in order to achieve quality? Well I still believe that it’s important, but only as long as you’re able to find that balance. Otherwise it might do more harm than good.
I also share Joe’s opinion about the importance of variety. I’ve got a lot of interests and hobbies, and while I sometimes might feel bad after deciding to go practice with my choir or spend some time playing games with friends when I could have used the time to improve my working skills I suspect that I might do both myself, my co-workers and my fiancée a bigger favor in the long run if I decide to put some more variety in my life. It think it will make it easier for me to focus on the things that is most important at the specific moment and also to see things from different perspective.
Of course it’s still important to point out that we all function differently. There are probably individuals out there who can stay productive and healthful working 14 hours a day six or seven days a week, but I do believe that is a very small group of people. I think that most of us regular mortals would benefit from taking a few minutes of our precious time to critically review the way we live and whether we are trying to fool ourselves into a potentially unhealthy and stressful lifestyle; driven by unsubstantiated ideas of how to make best use of our time and stay ahead of competition.