How Do I Learn To Code?

Photo by Chris Ried on Unsplash

Becoming a programmer can sound like a daunting, complicated, and difficult journey if you’re just starting out. Fortunately, we live in a time where the resources to learn for beginner and advanced coders alike have never been more readily available. At the same time, picking a starting point is overwhelmingly convoluted.

When approaching your programmer friend for advice, you’ll typically be pointed in one of three directions:

  1. Study computer science (i.e. take a class)
  2. Learn [my favorite programming language] (i.e. JavaScript)
  3. Check out [my favorite learn to code website] (i.e. Codecademy)

If you were to follow any of these recommendations, you’d be well on your way to learning to code. And each has its merits as the first step in your coding journey.

But I propose a different approach.

Have a clear vision of something you want to build, and start building it.

I know, that sounds absurdly difficult. If you don’t know how to code, how could you even start programming something? Well, and here’s the best part, you get to figure it out. This may even be the most important aspect of programming: learning how to learn.

Let’s compare this to a typical approach when just starting out learning to code:

You’ve signed up for Computer Science 101. Excellent! You’re on your way to being a programmer. You’ll learn all about the fundamentals of programming: loops, conditionals, functions, recursion, inheritance, etc. Any computer science class will serve as a fantastic foundation for a programmer.

But where is the real-world education? How would you make, let’s say, a user registration system? Or a music playing app? Granted, those lessons will come later, but why wait? Even if you’re studying computer science, it will benefit you immensely if you start building something on your own. You’ll be drawing parallels to the lessons you’re learning as you make your own real-world project.

You want to learn JavaScript (or some other language). Cool! JavaScript is super-popular, and can be used for front-end web development, back-end web development, and even compile to native apps with some tooling. You can learn one language and program almost anywhere.

But wait, what’s this React.js thing? Or should I be learning Vue? Do people still use jQuery? Should I just stick with vanilla JavaScript? And if I program on the backend, which Node.js framework should I use? Should I actually be using TypeScript?

The current state of JavaScript is confounding to a beginner. That doesn’t mean you shouldn’t learn JavaScript (or any other specific language). It just means that focusing on the language alone doesn’t get you anywhere. You’ll be stuck with decision paralysis and may never get past it. But if you have something in mind that you want to build, all that doesn’t matter as much anymore, and your end product will guide those decisions.

You’ve decided to start your coding journey on an instructional site. Woohoo! This is exciting because you’ll be building tutorials right out of the gate with real code! These sites are awesome and will get you understanding programming concepts as you write your own code.

But you didn’t want to build a To-Do app. That’s not your idea. Tutorials can help with how to program very specific features. Or they can focus on a programming concept. But you’re still not building what you want to build, and it’s easy to lose interest. These resources are excellent, and you’ll most likely find yourself leaning on some in your coding journey. But don’t rely entirely on these to expand your programming knowledge. Work on your own project and you’ll be less likely to lose interest in the long-run.

So, don’t abandon any of these traditional approaches, since any of them will contribute to your coding education. No matter how you start, I highly recommend building something for yourself. Let’s look at how to learn by doing:

Start Small

You have big ideas. And that’s great. Don’t lose sight of the big picture. But see if you can break it down into smaller projects.

For example, let’s say you want to build a real estate listings site. There are a lot of components that make up a website like that. You’ll need a way for people to register on the site, post their listing, upload photos, search for listings, request a showing, etc. Each one of these features can be separated into its own project.

So instead of focusing on how much work it will take to build the whole thing – pick a small part and focus on completing that. Then, when you’re done, pick the next part to build.

Strive For Immediate Feedback

If possible, try to target a medium with immediate feedback when learning to code. Web technologies are perfect for this. If you can build some components that render HTML and CSS, you can make changes and immediately see those reflected in the browser, and you’ll come to understand the code that much faster. I strongly recommend starting in this area to see exactly how your code affects the end result.

Search, Search, Search

Did you know that professional programmers don’t memorize anything? We’re notoriously lazy. It’s a myth that only beginners need to search for programming solutions. Professionals search constantly to solve code problems.

Searching for programming solutions is a learned skill. One that you’ll improve simply by doing. If you’re building something in the real world, it’s inevitable that you’ll come up against a roadblock— some bug or technical challenge that has you stumped. This will require you to search for a solution. And you’ll soon find what search queries get you what you need. This is learning how to learn. They don’t teach you that in computer science class.

So regardless of how you end up beginning on your coding journey, make sure you’re building something. In my experience, learning by doing is the most effective approach. And in the end, you’ll have something to show for it. Bonus!

Congratulations on taking the first step towards learning to code, and keep on making! 🚀