Think about the last time you wanted to learn something new. Maybe you always work with React and want to give Vue a spin. Maybe you've never used CSS grid before and want to try it out. Whatever it was, hopefully you were applying those new skills to something practical as you were learning them. Otherwise, things may not have completely "clicked".
Whether you are actually learning a new skill, exercising your coding muscles, or building an Instagram clone just for fun, having a side project is valuable. This post will describe the benefits I've experienced from building lots of side projects. Hopefully they'll apply to you too.
I'm using the term "side project" loosely in this article. Some people might call them sample apps, pet projects, personal projects, hobby projects, prototypes, etc.
The first question you're probably asking yourself is "what should I build"? Well, you don't have to reinvent the wheel. Having a unique idea isn't really what's important: you can just as easily choose to build a clone of your favorite website or app, even just focusing on a specific part of it if you want to.
Also, finding an API to work with can help inspire a lot of good ideas too. Take these for example:
All of these APIs provide solid data to use for your project and are pretty generous with request limits. Plus you don't have to worry about building any endpoints yourself.
Once you have an idea for your project, only build the most basic variation of it, and don't worry about including every feature to begin with. Starting off too ambitious can feel overwhelming and kill the vibe. This is, after all, meant to be fun and not anxiety inducing.
The biggest hurdle to get over is to get started. No matter how small or silly you think your project is, it will help reinforce your skills, and can even inspire other ideas later on.
Learn by Building
Usually the excitement of building a new thing is the only motivator you actually need. There is just so much freedom and possibility starting on a greenfield project and you are really only limited by your own creativity. Not to mention you get a mental break from your usual work, which can be refreshing.
Side projects inherently bring opportunities to solve new types of problems you may not have experienced before. In fact, you should purposely seek those out, as long as they sound interesting to you.
For example, let's say you currently work for an agency that only builds sports websites. You've noticed that your favorite podcast player is missing some features that you think would be really useful. You haven't really worked with audio APIs before, but that's OK. What a great opportunity for you to try building your own podcast player.
This one may not always apply, or be of interest to everyone, but it should be considered. You can definitely use your project as an opportunity to collaborate with new people. It doesn't necessarily need to be an open source project on Github for this to be true, either. There are plenty of ways to find people to team up with, like Indie Hackers, Reddit or just word of mouth. A coworker or friend would probably be happy to help you build something cool.
Share the knowledge
What you learn from your side project is ultimately going to make its way back to your day job and increase your overall engineering experience. Your team will have a larger, more diverse pool of knowledge to draw from now, and everyone wins! You'll be the one with new skills and tools at your disposal for the future. If your team has weekly or monthly meetings, you could even present what you learned to them.
All of this comes with a few (hopefully obvious) caveats. As exciting as your side project may be, it's easy to go all-in too fast and burn yourself out. After all, unless you plan on this becoming your full time job, you are going to need to maintain some balance and it should never take importance over your current day to day responsibilities.
Finding the time to work on a side project can also be difficult for a lot people, and the amount of time you are realistically able to dedicate will vary. If you're able to start small, even half an hour a day of progress will help, and for some people that's enough. Others may take a whole weekend and make a hackathon out of it, and that's great too!
Through building side projects, I've learned so many things I otherwise never would have, and it's helped me tremendously throughout my career. Most of mine never even end up getting released! For me that's alright because each one had a specific purpose to help me learn something. And that was the point: learning was more important than shipping.