Build
If I could give one piece of advice to anyone learning to program: build.
This advice might be most helpful to beginners. But it’s been valuable to me to revisit at different points in my career. In some ways, this post is for me.
Steve Martin once said the secret to success is to “Be so good they can’t ignore you.” How do you get that good as a programmer? The most direct path I know is to build things.
It’s okay to do a tutorial, watch a few videos, read the official docs. These are training wheels and you want to take them off as soon as possible.
Prioritizing building can be tough advice when you’re new because you’re confronting how much you don’t know. You’ve been using a computer your whole life; how can this be so hard? It’s more fun to do code exercises where you solve a problem and get a badge.
I’ve worked on a few dozen technology projects, but I learned the most on just two. The first, I built a large social media platform with React. I had a partner, but worked solo a lot. It was the first big single-page-application I ever built, and in the beginning, it was hard. The second, I was CTO-ing a greenfield startup. I shipped an MVP with a Rails backend and a React and TypeScript frontend, designing, storycarding, and writing code without any other programmers. Neither application was perfect. But I built them, brick by brick.
It’s hard to build when you’re new because you don’t even know what kinds of problem the tools you’re learning could solve. My suggestion is to try to reverse-engineer a small feature of an app you like, such as Instagram’s ‘heart. Just make something.
If you aren’t doing this at your day job, start throwing yourself in front of the oncoming projects. Be the person who’s always building things.
Almost all the other things I did to try and learn: following tutorials, watching videos, reading HTTP: The Definitive Guide cover-to-cover– are a trap. Every lesson is presented in isolation: here’s a simplified problem and here’s the cookie-cutter solution. Professional programming work isn’t like that.
Recently, I got assigned a significant solo project, building a greenfield app. I don’t know the framework of choice and I feel like I’m sorta plodding along, but it’s objectively going very well. Why? I’ve done it before. Most of what we call talent in this industry is hard-won experience from building.
So: build.