Learning to Code? Here’s How to Learn Fast

January 31, 2021

This advice will be controversial and seem counter-intuitive, I know.

Tutorials are a bad way to learn real coding skills.

Don’t get me wrong, tutorials are a great way to learn syntax and common patterns. However, they only show you one way to solve a problem.

Tutorials don’t teach you how to invent solutions to new problems.

Problem solving is the ultimate goal of coding. And there’s no tutorial that will teach you everything you need to know for every situation you encounter in a software development project.

To become a great developer, you need to learn to solve problems when you don’t already know the answer.

That’s what this article is about — striving to become an adaptable, resilient developer who can take on the unknown.

Don’t Know the Basics? Don’t Worry.

You have to learn syntax and the fundamentals somewhere and tutorials are great for that!

In fact, I help people with the basics of Python and Django all the time:

Once you have the basics, though, watching tutorial after tutorial won’t get you to the next level.

The Common Trap: Tutorial Purgatory

If you’re learning to code, you’ve probably encountered or heard of the plateau you hit shortly after mastering the basics. You know enough code to be dangerous, but not enough to actually build and deploy a useful application to the internet.

At this phase, it’s tempting to think that you need more learning. “Another tutorial will help me get over the hump, right?”

So you try another tutorial. It teaches you a specific set of steps to achieve some result. Say you learn how to build a REST API or start using Vue. Cool — you learned a new tool and it really feels like you’ve added something to your toolbelt.

However, when it comes time to stitch those tools together into a useful application, you get lost again. The tutorials didn’t cover your exact use case or didn’t do things the way your other tutorials explained!

So, you keep searching for new tutorials, and the process starts again. You end up in an endless loop of tutorials to learn new tools that the other tutorials didn’t cover. All the while, you haven’t built anything that you can share with the world.

Like what you’ve read here?

I share my best content with my email list for free.

Join 500 other developers currently in my email series.

Tutorials Aren’t Bad; They’re Just Not Real

The problem is that tutorials are like recipes. They lay out a specific set of steps to achieve a specific end goal. That’s okay if you want to dabble and be a home cook, always following someone else’s prescriptions.

But you’re trying to become a chef! You want to be able to create your own recipes!

In order to become a creative chef you have to learn the basics of cooking, yes. However, you also need to learn the skill of combining techniques and ingredients in creative (and delicious) ways.

Software development is similar. If you’re always following someone else’s instructions, you’ll never be truly creative. You won’t be able to innovate or problem solve on the fly.

This is the hardest part of learning to code — the tools and techniques of creating new solutions in any context.

Uncertainty, Doubt, & Complexity

To really learn software development, you need to get comfortable with complexity and the feeling of uncertainty.

As a professional software developer, it’s rare that I feel certain about the solution to a given problem. I spend a lot of time researching, thinking, looking through old code, and generally feeling confused.

And it turns out: that’s what software development feels like!

Every developer I know has this experience. They all spend a lot of time wondering “why the hell isn’t it working” and “how are we gonna get this to work?”

If you can’t tolerate that feeling for extended periods of time, then maybe software development isn’t for you…

But if you get super excited from solving a puzzle that has stumped you for hours or days, then welcome to the club! We’re happy to have you!

Building Something Real Is the Key

So, how do you get comfortable with complexity and uncertainty?

Simple:

  1. Build something.
  2. Then, when you’re done, build something else.
  3. Or, add onto the thing you already built.
  4. Once you’ve built something, deploy it to the world.
  5. Optional: Write about it so you internalize and save the lessons you learned

By building something real and deploying it, you’ll learn more practical skills than all the tutorials in the world could teach you.

You’ll learn how to combine the tools and skills you’ve learned into a working application. Stitching together pieces of an application will show you the valuable heuristics it takes to join pieces of code and make data flow between them.

Inevitably, you’ll have to revisit code you wrote days, weeks, or months ago. You’ll learn the practical skill of refreshing your understanding and modifying existing code.

In deploying, you’ll see how cloud services work to support your code, and you’ll learn valuable skills in making websites available.

The Fastest Way to Learn to Code

This is the fastest way I know to learn how to code. In brief:

  1. Learn the basics: syntax, methods, common libraries
  2. Immediately build something — even before you think you’re ready
  3. Share it with the world (deploy it or put it on GitHub)
  4. Write about it
  5. Go back to step 2 with something more complex

Developer Career Advice: Start Before You’re Ready _The most successful people in the world all have something in common. They jump into projects, ventures, relationships…_medium.com

In my experience, you’ll learn much more quickly from solving your own problems and trying to actually deploy something real. You’ll also gain practical skills and reflexes for how software development actually works.

Those reflexes and intuition are the most valuable assets you can cultivate, whether you’re an experienced developer or just starting out.

About Bennett

I’m a web developer building things with Python and JavaScript.

Want my best content on web development and becoming a better programmer?

I share my favorite advice with my email list — no spam, nothing sales-y, just useful content.

Join 500 other developers currently in my email series.


Profile picture

I write something new every day for 2k software developers. You should sign up for the daily email.

© 2024