Why Side Projects are Good For Me
First let me define what a “Side Project” is. In this case a “Side Project” is something you are not being paid for and something that you have complete control over. It can even be something you are just trying out some new ideas on. The reason it can not be something you are being paid for and ideally something you are fully in charge of is so you're not under any pressure to deliver but you have time to explore, to learn, to try new ideas and overall build confidence.
In this case of “Side Project” is something you are not being paid for something and that you have complete control over.
Otherwise I would say; for me, side projects are the worst thing to do if you are working full time and using them to earn money on the side. Of course I have done many of them, mainly because I had to but at some point when my finances were at a certain place, and my skills needed more than that type of work gave me, it just was not worth my time. This does not include contributing to OpenSource.
So now we have a good idea of what I mean by side project so why is it good for me to have one? I think there are a few reasons.
Switching my mindset so that I can focus on the business details of the daytime job and the business details of the night time job, for me, is very difficult. I believe this is especially true since some of the domain knowledge of the business, that comes with the work, is so important to grasp and sometimes difficult to really understand. And for me switching from say a full time job that has a business domain of sports and a side project that has a business domain of clothing can be too much to do either well.
Then there is the chance to have control. When it's a side project we can control of expectations, goals etc and we can kind of just explore. We can try ideas and not worry about immediate deadlines and not worry about delivering a certain feature a certain way. It is this control that allows us to just be creative and not have to really rush things.
Also if we are in charge of both the item to be delivered and the person who needs to deliver it we get to see both sides of the challenge. And by doing so we can sometimes build empathy for that Project Owner. Then the next time they do not realize till after the feature was built, by me, that it just was not what they wanted, it will not be as frustrating.
Then there is the chance to have control
Then there is repetition. The act of nightly or a few times a week sitting down to create something makes the repetition happen that we need to code well. Maybe you are just building a library or learning how to unit test or acceptance test better. Maybe you're building an API or just going to play around with some API to get data from a website that you like to make a little tool to scratch your own itch. It is the repetition that starts to build the confidence we need to code well.
It is the repetition that starts to build the confidence we need to code well.
All of this goes hand in hand of course with learning from more senior developers, books, videos etc but none of those can make us a better coder as much as doing.
One thing I do during the day to help with my side work is I will post into Wunderlist any ideas that come to mind that I might like to try out later on. And then when the time comes that have I set aside at the end of the day I can find inspirations from that list and just give it a go for an hour or two. And it has been many times in those sessions of coding, without pressure, that I have experienced the moments of why I still find coding so interesting and satisfying.