The Importance Of Side Projects3 min read
I don’t know where to start this post. I just know that side projects are really important. Underrated even. I do them whenever I’m curious or when I want to strengthen my knowledge in one area. I’ve taken them for granted.
Many engineers I’ve spoken with don’t really invest in side projects. Whenever I show them something cool that I did, they ask “Where did you learn that?” Side projects.
If you’re hoping to learn everything you need on the job, keep hoping. Companies need you to get things done, not to spend time learning. Learning is definitely a bonus. If you’re lucky enough to work at a company that emphasizes learning, congratulations. For everyone else, you need side projects.
Side projects range from courses and books to full applications that you may intend to offer as a service. Whether your goal is to make money or just to learn, your side project will stretch you in ways you never thought possible.
Below I will list some of the many advantages of side projects.
- Learning and relearning. There are so many engineering principles that we don’t practice regularly. A recent side project I worked on reminded me of the importance of specifications and ensuring the components you select meet the minimum criteria.
- Practice. Struggling to learn a tool or technique? Build a side project that forces you to practice this repeatedly.
- Sharing and teaching others. If someone asks you, “How do I work with XYZ?” it be great to reply, “Checkout this side projects I have on GitHub.”
- Getting better at your job. As I mentioned previously, many of the skills I have are from practicing on side projects, where I have time and the outcome doesn’t really matter.
- Provide insights and tools for your job. At every company I’ve worked at, I’ve added at least one tool that improves the workflow of many people. These all started as side projects I was curious about.
- Satisfaction of completing something, even if no one uses it. As engineers, we should strive to build things which give us a sense of accomplishment, even if that only happens outside of work hours.
- Faster feedback. Lessons that take six months to learn on the job can take six days to learn in a side project.
Now that you know some of the advantages, you might be thinking, “How do I get started?” You probably don’t want to build another boring “TODO App” right? Here’s a short list of meaningful side projects.
- Rewrite exiting internal code. Take a module or project from your company and try to rewrite it in your own way. Of course, be careful not to leak intellectual property.
- Rewrite exiting external code. System Design courses and books often ask you design Rate Limiters, Instant Messaging, Video Streaming, etc. You might focus on the high level design or just a single module.
- Build a new tool. Tired of Jira admin for your Merge Requests? Build a workflow CLI and share it with your friends.
- Build a new app. One the first apps I built and rebuilt many times is Qwiz Notes, a social network for students to study. This is long before the AI explosion but this app taught me how to build whole projects by myself.
These are just some of the examples and advantages of side projects. I understand that this may seem overwhelming but you don’t need more than 10 hours a week to get the benefits. You just have to be disciplined and remember why you’re doing this. If you don’t have discipline or a goal, then none of the above matters.
Remember to keep it fun and engaging. Feed your inner child with playfulness and curiosity. These 2 things will take you further than you can imagine.
The opinions expressed here are my own and do not reflect any individual or organization from my past or present.