How I Teach Myself to Code

An autodidactic’s guide to learning while having fun

Published Apr 5, 2022

Recently, someone asked me on Twitter how I taught myself to code. In my 9 years of coding, I’ve been continuously refining my process to make it as painless as possible. This has taken me further than I could have ever imagined at the start.

Depending on where you are in your own coding adventure, these may already be things that you do. Observing how some of my friends approach learning made me think it could be done faster and in a more fun way. This article details my favorite two methods. I will note, this only works when you’ve learned the basic syntax of whatever language you’re pursuing. Note that this is just what works for me, and there are other valid ways to learn.

Projects, projects, projects!

The first method is to do projects. Look for something that interests you or could benefit others around you. If you find something that you want to complete and share with the world, you're on to something. Motivation is one of the greatest powers at your disposal.

Tutorials and courses do not apply here. You may be motivated to complete them, but at the end you won’t end up with a concrete thing, except for a certificate of course. That’s not to say courses are not good for diving deep into specific things. Don't just do courses.

Don't waste too much time trying to do it in a perfect way. If you're trying out a new framework, only learn what you find necessary to achieve your goals at that time. You can always return to it later and improve as you learn new things. Also, make sure you’re not trying to learn too much at once. You’ll get stuck. A little bit at a time consistently becomes more effective in the long term.

Passive learning

Let’s face it, you need a break! All that coding is tiring. Still, you want to learn. Can these two be combined? The second method is about the breaks. Surround yourself with content that keeps you learning. Even if you're not actively coding.

For a moment, consider a young football player. They might practice a lot. But they probably also keep up with the latest games and their favorite players on TV. Lawyers keep up as laws change. Marketers know what’s trendy. Politicians watch the news to see what other politicians do.

Developers can keep up with what happens in the developer world! Luckily, there is lots of awesome content:

  • On YouTube, there are tons of recorded conferences and tutorials. Also, check out Twitch streamers focused on coding.
  • For audio, there are many podcasts about code. That explains or takes on interesting guests.
  • Perhaps at the greatest volume — is written content. Check out platforms like Twitter, Dev.to, Hashnode and Hacker News. Find which of them you like. There are also countless terrific personal blogs.

I won’t mention specific people here, since this field is so broad and I only know about a small part of it. But you can search like this: programming language / platform / technology + conference / tutorial / blog / guide / news / podcast.

Approach passive learning, no expectation of remembering. In the back of your mind, some random things will undoubtedly stick. You’ll find use for those bits of memory in the future, in unexpected places. Read, watch and listen, but don't put too much pressure on yourself to remember. Don’t code along. Don't even finish the article/video/podcast if you don't find it fun. Move on in that case. The goal here is to consume it as entertainment, not work.

It doesn’t even have to be in the same category as what you’re working on. I regularly consume content about Rust, Android and game development — even though I currently use neither.

You do not need to know or keep up with everything and every new release of everything. Only follow what sparks your interest.

How this has worked out for me

I got into coding because I wanted to play Minecraft with my friends. How are these connected, you might ask?

Well, I realized I needed a server, so I bought an old computer and started hosting. Now, every "cool" server I encountered online had their own website. Of course, I also needed one. Before I knew it, I was doing HTML and learning to use the terminal. From there, it snowballed. My goal of having a website kept me learning whatever I needed. I also realized how much I liked to code. The website was my project, the learning was a side effect.

Then what about passive learning? A few years ago, I read some blogs and noticed a curious pattern. This thing called React started popping up more and more often. So I checked it out and figured it would fit wonderfully for the project I had at the time. A few months later, I got an interview offer. They wanted a React developer.

For me, it’s been a huge confidence boost to be familiar with a bunch of tech. I haven’t even tried to use most of the things I encounter. Still, I take my time to learn what they’re about and how they fit in the ecosystem. That way, you can catch up more quickly when you need to learn to use something new.

Of course, everyone is unique and learns in a different way, but I encourage you to try these methods. See if they work for you. I'd love to hear what you do to learn here. With that, good luck on your journey!