I have a graveyard of side projects. Unfinished apps, abandoned repos, half-baked ideas that never saw the light of day. And honestly? I don't regret a single one.
The Real Value
Every side project teaches you something your day job won't. At work, you operate within constraints — existing codebases, team conventions, established tech stacks. Side projects let you break free from all of that.
Want to try Rust? Build something in Rust. Curious about WebSockets? Build a real-time app. The best way to learn a technology is to use it to solve a problem you actually care about.
Learning by Doing > Tutorials
I've watched countless tutorial videos and read dozens of "Getting Started" guides. They help with the basics, but real understanding comes from hitting errors, debugging weird edge cases, and figuring out why your code doesn't work at 2 AM.
My self-driving car CNN project started as "I wonder if I can make a car drive itself in a simulator." The answer was yes, but getting there meant learning about image preprocessing, data augmentation, neural network architectures, and a whole lot of TensorFlow debugging.
The Portfolio Effect
Here's a practical benefit: side projects are the best thing on your resume when you're early in your career. Anyone can list "React" as a skill. But linking to a project where you actually built something meaningful? That tells a story.
When I interview candidates, I'm way more interested in someone who built a janky but functional app than someone who completed 50 LeetCode problems. Building things demonstrates initiative, problem-solving, and follow-through.
Shipping is Optional
Not every project needs to be finished. Not every project needs users. Some of my most valuable learning experiences came from projects I abandoned after a few weeks. The point isn't the destination — it's what you learn along the way.
That said, finishing things is a skill too. If you can push through the boring middle part and actually ship something, that's worth celebrating.
My Advice
Start small. Pick a problem that annoys you personally. Use a technology you want to learn. Don't worry about making it perfect — just make it work. The rest will follow.