Side projects are my design school
I never studied design formally. But every side project I've shipped has taught me something a classroom probably wouldn't.
I'm a CS student. My curriculum covers algorithms, data structures, operating systems — the usual. Design is not on the syllabus.
But I've been shipping side projects since high school, and somewhere along the way I realized they were doing something my courses weren't: teaching me how things feel to use, not just how they work.
The gap between "it works" and "it's good"
The first version of anything I build works. It does the thing. You can technically use it.
It's also usually ugly, confusing, and exhausting to navigate. The happy path is clear to me because I built it. Everyone else finds three different ways to get stuck in the first 30 seconds.
That gap — between "it works" and "it's actually good" — is where design lives. You can't close it by reading about it. You close it by shipping something, watching people use it, and feeling the specific shame of watching someone click the wrong button for the fourth time.
What side projects force you to do
When you're building for yourself or a small audience, you wear every hat. You're the PM, the designer, the developer, the support person who gets the confused messages.
That last part is underrated. When someone tells you they don't understand what your product does, you can't blame the requirements doc. There's no PM to escalate to. It's just you, the confused user, and the thing you built.
That feedback loop is fast and humbling in a way that coursework usually isn't.
The specific things I've learned
Typography matters more than I thought. The first time I used a real font pairing instead of system defaults, the whole product felt different. I hadn't changed a single feature.
Spacing is doing a lot of heavy lifting. Early on I treated padding as decoration. Now I think of it as breathing room — without it, everything looks like it's in a hurry.
The default state is the most important screen. Most design work focuses on the happy path after setup. But the empty state — the moment someone first arrives, before they've done anything — sets the tone for everything.
I'm not a designer
I want to be clear: I am not a designer. I still make choices that a trained designer would wince at.
But I know more than I would if I'd only written backend code. And I know it in my hands, not just my head, which is the only way design knowledge actually sticks.
The side project is the curriculum. You just have to ship enough of them.