So you want to learn JavaScript? Congratulations! In 2019, there are more resources available than ever before, in a wide variety of formats for you to get started.

JavaScript Tutorials

While there has truly never been a better time in history to learn a new skill, It’s also never been more confusing if you’re trying to figure out the best way to do so, given the huge amount of available options and the wild variations in quality between these materials.

If you’ve ever been recommended Eloquent JavaScript during the early stages of your coding journey, you know what I’m talking about.

I hope to illuminate a path in this article for a beginner to follow that will start them on the road toward JavaScript competency.

Be sure to drop me a line in 3 months when you’ve sorted everything out and decided on the best course of action (or moved on to something more fruitful).

Step 1: The Complete JavaScript Course: Build a Professional Project

Learn JavaScript by building projects is an incredible resource for learning the basics (and beyond) of web development.

From this point on, I will assume familiarity with HTML and CSS, but if you’re totally new to programming, It has you covered there, too.You Don’t Know JSwhile you continue to work on the curriculum and projects.

Using a friendly, in-browser text-editor, It will first give you a small taste of the popular JavaScript library, jQuery, and then dive right into pure JavaScript syntax, and how to perform various tasks such as Boolean operations, string and array manipulation, loops, and more.

Step 1.2: Reinforcement with Codecademy’s JavaScript track.

If you’re anything like me, you’ll need some reinforcement. Not everything is going to sink in on the first go-around.

One option is to just re-do the exercises, but I prefer using multiple resources to keep things fresh and interesting. It can also be valuable to get someone else’s perspective on the same topic. Codecademy is great for this. You’ll experience many of the same areas and issues from a slightly different angle.

Step 2: Master software engineering in JavaScript

Once you’ve completed everything up through Object-Oriented and Functional Programming modules, and the Codecademy JavaScript track, you’ll hopefully be ready for something a little more in-depth.

Master Software Engineering in JavaScript is an excellent Kickstarter campaign that goes deep into the workings of the language in a very accessible and understandable way. The 4 courses and 48.5 hours of video are jam-packed with practical information that you’ll be able to put to use in your programs.

You’ll learn about scope, closures, prototypal inheritance, first-class functions, and more in this comprehensive series. you can pledge as per your choice.

As with any book or video course, be sure to code along and take your own notes for later reference.

Step 3: Kyle Simpson’s You Don’t Know JS

I’m not sure what I can say about this series that hasn’t been said elsewhere at this point, but it’s incredible. Once you finish Any course, start reading. Simpson is more than deserving of your money, but if you can’t afford to pay, the books are all freely available on his GitHub.

You should at least read the Scope & Closures and This & Object Prototypes volumes. These books will reinforce what you learned and also contradict and challenge that material at times.

This is good! Kyle Simpson is an opinionated guy, and it’s super valuable to get his expert perspective on things, like the usefulness of the object-oriented programming paradigm in a language like JavaScript. Even if some of the issues feel beyond your grasp, there’s value in simply being aware of them.

This series will make you a better developer while also inform your perspective on the various ideological conflicts currently happening in the JavaScript community.

Some notes about struggling, not knowing the answers and perseverance.

There will be many times when you hit a wall — when you don’t know the answer to some problem and feel like you’ll never figure it out. I’d like to share just a few techniques for when this happens.

1. Walk away

Take a break. Step away from the computer. Get some tea or coffee. Think about something else for a little while. It can be valuable to just clear your head for a little while. You’ll be surprised how many times you’ll be able to quickly solve the problem when you return.

2. Ask for help

Don’t be embarrassed or ashamed to ask for help. Sometimes a nudge in the right direction is all you need to get back on track. In my experience, people love helping out others and are more than happy to spend a few minutes on your problem. The freeCodeCamp community on Gitter and the CodeNewbie Slack channel are great for this.

3. Move on to something else

If you really can’t get it, there’s no harm in moving on to another topic. It’s nice to have a couple of projects that you can bounce between when you are feeling stuck on one or the other.

This is just a guide

Learning is highly personal. All the resources I mentioned above have been extremely helpful to me on my journey to become a self-sufficient JavaScript developer.

I wrote this out of the frustration I experienced when trying to choose between the million-and-a-half educational resources out there. It was nice to find a plan that finally worked for me after receiving some well-meaning, but misguided advice (“Eloquent JavaScript is a great book for beginners!”), and tons of starts and stops.

While I’m nowhere near a JavaScript expert, I hope to provide perspective from someone who still remembers what it’s like to be a total beginner. So much instructional material is (rightfully) written by masters of their craft. But many of those masters have forgotten the experience of being a lowly beginner, and expect newcomers to make preposterous connections and leaps in logic. This is why so much instructional material can be wholly unhelpful.