The Value of Side Projects
I originally wrote the below post almost 4 years ago - August 2018, and now I believe it rings even more true.
I have used side projects to demonstrate in interviews, to test out new libraries, and to play around with tools like RabbitMQ and MindsDB.
But more importantly, I found that having ownership over my own projects, codebases, and product direction has been very important to my own mental health and motivation.
I hope you find this post motivating in your own way.
I just completed a hackday at work. The hardest part I found was not necessarily where to start idea-wise, and not where to start code-wise (thanks create-react-app!), but somewhere in the middle of the beginning of the project.
I have been on a kick lately to start more small side projects. Not necessarily to profit from them (although that would be nice), but to get a better understanding of all different areas of running an application. (Still trying to figure out the best place and way to deploy them. I always get tripped up by where to store the data... that's for a different post though).
There are many different reasons to start a side project. As mentioned above, it could be a way to make a little money on the side (a.k.a. a side hustle). I've also noticed that it could be useful in the job search process - having something that you are intimately involved with in almost every aspect to talk about in interviews is really nice, both for you and the interviewer. But it's also a great way to be a well-rounded developer.
If you are a developer by profession, how many times do you get to make choices on libraries or tools? And once a decision is made, how often do you get to switch from that decision? It's not likely to happen often. From the start of a project you may get to do this a lot, but as the project grows, and more users or developers pile on, the harder it is to make changes.
Side projects help alleviate this sense of concreteness. You get to start from scratch. You get to make the decisions. You drive the direction of the project and the tools you use for it. You get to create your own Kanban board (or not), and you get decide what language it's written in, and you get to decide how and where it's deployed. It can be really empowering, albeit possibly fatiguing. You also get to fix the bugs, and deal with the frustrations ;). But you will be so proud.
Even better, after making these choices, and playing with tools, and creating something from scratch, you now have experience that you can take back to your projects at work. Maybe you found that a certain library that would make things much easier or more organized. Maybe you found that GraphQL would fix everything! Heck, maybe you just realized how awesome VSCode is to work in.
The point is that it opens up the box that you may be in. It opens up your mind, and exercises your development chops. So take some time, start small, and get to it.