Building side projects is the best thing you can do as a developer.
Don’t shy away from sharing your side projects with as many people as you can!
The purpose of doing a side project could be different for each individual. It can range from doing something to show on a resume to building another Apple.
For example, some get motivated enough to work outside their usual hours only if the project has the potential to impact something they care about. But other, work on something completely dumb and useless (a funny project) that they couldn't do during any existing job.
Regardless, a side project exists so that you can learn, have fun, and build up your resume as the by-product.
Let's begin by understanding what are the benefits of doing a side project. I will use different advantages of side projects to convince you of this -
1. The best way of learning
I am all time promoter of learning by doing. Tutorials are good to get introduced to something but they are limited when it comes to practical implementation. When you work on your side project, you implement something from scratch and every iteration of this implementation will make you learn something new.
Working on something gives you a deep understanding of its concepts which are most likely missed otherwise. That’s why I am claiming it to be “the best” way of learning new things.
2. Proof of work
With every new side project you create, you are creating proof of work for your skills. Most of the time, the work you do for your organization (where you are working full-time) is private and there is no way you can show the world how awesome a developer you are. In such cases, your side projects will be your advocates. You claim to know certain technology and you showing off a project built in that technology all by yourself, which one you will prefer?
It’s obvious that these projects are the best way to promote your skills and will help you get your next job or a new freelance gig.
3. End-to-end understanding of working on an idea
Most often, we work on a product in a team or we only know a part of that product. This makes us unaware of so many sides of developing a product. When you create your project from scratch, you are responsible for each and every part of that project. Starting from designing, to deciding features, to testing the edge cases, to deploying it to prod, you are the one looking after everything.
This complete product development life-cycle will make you more aware of all the side effects of small decisions we take and will improve your workflows.
4. Networking
Side projects will help you talk about code in a more real-world sense while you meet fellow developers (or recruiters), rather than in the theoretical sense. Being able to talk about libraries used and wasted time on bugs, unit testing, git feature branches, pull requests, code reviews, etc. is a whole different (and more useful) skill than Leetcode.
5. During Interviews
The side project gives you some hands-on time with tools, the language, etc. Then, in an interview, you can talk about these things because you remember the time you spent, say, 40 hours building something.
GitHub is a good signal to send to employers demonstrating your employability.
Potential employers reach out to ask for code samples or even comment on your GitHub when they see you actively building something. They're not a majority, but it was usually a strong signal that the company had a good hiring process or the hiring person cared.
Being on the other side of the table, hiring managers definitely looked at people's GitHub to get an idea of where they were at. Do they have anything at all? Some old projects? Are they actively contributing to open-source projects?
None of these by itself gave a strong signal about hiring but led hiring managers to ask questions, explore a candidate's strengths and weaknesses, etc.
6. Be relevant with tech
Side projects can also be a fun and practical way to stay up-to-date on your tech skills & knowledge. Every day, there is some new technology and side projects have become one of the ways to stay on track.
If you are still reading, I am pretty sure you are convinced by the thought of doing a side project. But one small and most powerful tip, Don’t shy away from sharing your side projects with as many people as you can! You will get the correct exposure and suggestions about your project only when you share it with people. Share your project with your friends, and colleagues, share it on Twitter or make it openly available on GitHub.
The more you share and promote it, the more improvements you will make. You will get noticed for your work, you will understand the mistakes you might have done or you will get to know other approaches people are choosing.
All this is good and you are convinced, but how to choose a side project? 🤔
A side project can be anything, as small as a small animating card component or as big as a SaaS product. You have to keep your eyes and interest open, and you will see so many ideas floating around you. Whatever interests you most, pick that up and start building.
I have listed some ideas for myself, sharing those with you which might help you think about one -
A chrome extension for the Pomodoro timer.
An expense tracker for yourself.
A habit tracker.
App to collect user feedback.
Different component libraries and the options are limitless.
It doesn’t have to be impactful to the world or even original, the main thing is it should be interesting or useful to you. Even an unoriginal idea that’s heavily personalized to your needs is more motivating to work on than a “potentially profitable” original idea that you have no personal interest in and are unlikely to ever use.