How I'm learning to program

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.

Around 1993 the Mosaic web browser was released, and once I could write basic HTML, I just gave up on more complicated programming. I didn't even bother learning JavaScript. I'd started telling myself a story: 

"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:

  • In my 20s, I was finishing school, getting a job, and starting a family.
  • In my 30s, I was trying to level-up my career, and so I specialized in Product Management and marketing.

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:

  • Programming conventions
  • Stuff in the command line
  • Keyboard shortcuts
  • Basic syntax
  • Dev tools

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:

  • It motivates me to "just start now." No procrastinating.
  • It forces me to focus on a small problem. I'll typically start a video by saying: "Alright, here's something small I'd like to accomplish today."
  • People show up to help! My audience is filled with incredibly gifted (and thankfully for me, patient) programmers. They interact in the comments, and sometimes will "call in" on Skype to help me out.

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 FurfieJason 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:

Using a tool like Tuple, Adam's ability to draw on my screen, highlight stuff quickly, and even take over and write code if he needs to. This has been really helpful for me in understanding basic concepts. Seriously, if you don't understand Vue.js (or JavaScript at all), watch this video. Even a dummy like me gets it!

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 hoping to use it for 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:

Something I want to build + People that can help + Doing it live

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!
Justin Jackson
@mijustin

Published on June 27th, 2019
Home About Articles Newsletter MegaMaker
Powered by Statamic