After 30 years, it feels like I'm finally able to learn programming.
I've loved computers since 1985 when my dad brought home a Vic-20. I wrote some BASIC back then, but when it came to "serious programming," I've always struggled.
When I was ten or eleven years old, I asked for a copy of Turbo Pascal 6 for my birthday. I wanted to make computer games!
But, I just wasn't able to wrap my mind around it. It was the early 90s, I lived in the country, and the web wasn't around yet. I had access to Usenet and BBSes, but I didn't even know where to start. I tried doing some tutorials out of books, but nothing clicked.
"Programming isn't for you."
I was still into making stuff on computers but was exploring other mediums: writing, making videos, making stuff with the Macromedia suite, authoring CD ROMs, making websites.
Occasionally I'd dip back into programming, get confused and frustrated and remind myself: "programming's not for you."
As I got older, it always felt out of reach:
Now, I'm nearly 40 years old. And honestly, not knowing how to code has always bugged me.
But was it too late? Was my brain too old and crusty to learn some programming?
First realization: small steps, every day
Reading something from James Clear gave me the inspiration I needed:
"Every action you take is a vote for the person you want to become."
I realized that if I did a little bit of programming every day, I'd be casting votes for a new identity: "Justin can do some programming."
I didn't have to be doing anything crazy; it could just be little projects.
Second realization: I needed to kill my ego
The main thing that kept me from programming was I was embarrassed. I was a geek who couldn't code!
I was ashamed of all the basics I didn't know:
Every time I demoed something on my computer to a programmer, I felt like the biggest clumsy dufus.
The turning point came when I decided to own it. I am an idiot when it comes to programming. Why hide it?
This changed so much for me. I didn't have to worry about how dumb I appeared because I just admitted it from the beginning:
"Hey, I don't know what I'm doing, but I want to learn."
Owning it has helped me so much. Now, I can ask the dumbest (most obvious) questions in the world, and I'm not embarrassed. I'm not trying to impress anybody; I'm trying to learn.
Third realization: using my superpowers
Brennan Dunn once said to me:
"You have this ability to connect with people. You've got energy and enthusiasm. You like doing livestreams and interacting with people."
This is one my of superpowers. I've been the "social connector" since high school. When I fly into a big city (like New York) I'm messaging everyone I know about meeting up. I love that stuff.
Reflecting on this, I realized: one way to motivate myself to learn programming is just to start livestreaming.
"Going live" solves a bunch of problems for me:
Connecting with other people is what helps me learn. Feeling safe to ask questions and try things has been empowering.
The best part? Programmers are getting something out of it too! Reed recently wrote me this note:
Here are some of the incredible people that have helped me so far: Ben Furfie, Jason Charnes, Dominic St-Pierre, Adam Delong, Jack McDade, Andreas Schantl, Jason Harrison, Holger Frohloff, Taylor Otwell, and so many more!
Adam Wathan has been particularly helpful. Yesterday, he helped me write my first lines of Vue.js and it felt like a revelation:
Fourth realization: it helps to have a project
At the beginning of 2018, I started working on Transistor.fm (a Ruby on Rails app) with Jon. I didn't just want to be a "non-technical co-founder." I wanted to be able to contribute to the app.
Having a project that I own a piece of, that I want to make better, has been a huge motivator to learn more.
Every contribution I make to the Transistor codebase (even when it's small) is incredibly meaningful to me.
Another project that helped me was launching my new website on Statamic. After that, I decided to try building my Statamic theme from scratch. (We're using it now on the new Transistor marketing site).
The other day I wanted to build a tool that lets you preview your podcast artwork alongside other similar podcasts, so I quickly hacked this together.
People have said that "having something you want to build" is helpful. I agree!
It's not too late
I know that feeling. You get into your late 30s, and then your 40s, your 50s, your 60s. And we think:
"Teenagers are doing this stuff at a high level. Who am I kidding about trying to learn it?"
But we've got time! Every day, we can "vote for the kind of person we want to be." We need to practice, but we also need to do it our way. What works for other folks won't work for us!
The traditional advice is to "pick a programming language, and start a tutorial." I've tried that hundreds of times, and it never worked.
For me, the winning combination was:
I don't necessarily want to make programming my "main thing" (at least not yet). But for now, I'm excited to keep learning.
I hope this was helpful!