Published: March 16, 2022 • Updated: March 20, 2024 • 2 min read
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? Build.
It 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 print out a Fibonacci sequence 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 problems you could solve. My suggestion is to try to reverse-engineer a small feature of an app you like, such as Instagram’s ‘heart’ or dark mode. Just make stuff.
If you aren’t doing this at your dev 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 contrived 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 talent in this industry is just experience.
What are your thoughts on this? Let me know!
Join 100+ engineers who subscribe for advice, commentary, and technical deep-dives into the world of software.