With all this buzz around this tech, you probably thought already that you should straight away start your next project with Node.js and React.js, correct? If not, I recommend you to give it a try. Several companies are moving their code to full stack JS, and there's a good reason for that. If you're curious about this shift, you can find more about why we also went from Ruby on Rails to a full stack JS here.
However, if you’re not experienced with any of this new frameworks that keep coming up, there are two things that I recommend you to do first before jumping head on into one of those:
For beginners, this is one of the best starting points. In this course, you will learn about data types, structures, functions and object-oriented programming in the context of ES6. However, to be able to take the most out of this course, a basic level knowledge of HTML and CSS would make some of its parts more meaningful and comprehensible.
Mozilla Developer Network
They don’t give away as much free content as the other resources on this list, but it's still worth giving it a try. Their teaching method is a mix between videos and interactive coding, which is great for more visual and audio learners. Also, if you feel as it's going too slow, you can always speed up the videos. On their JS path, you can find beginner and expert content and if you’re not sure where to start, you can take their skill test and get a recommendation.
Egghead has some of the best resources for JS these days, made by web development professionals and open source contributors. However, Egghead is more focused on advanced content and I would only recommend taking their courses after finishing a couple of the others listed before. The best about their courses is that they are straight to the point. You will find bite-sized videos that pack a lot of information in a fraction of the time.
A few more tips
Build an actual app
It can be a simple to-do app, a mini-Twitter or a personal page, but try to get something done from scratch. That initial struggle with the syntax, going back and forward with new documentation, get pass through configuration errors... All of it will make you improve faster. The sooner you get familiar and comfortable with the language, the better.
Don't panic if it's not perfect
Developers tend to be perfectionists. They always want to deliver the best code with the best practices and patterns. However, when you're learning, don't get too annoyed if you can't do everything the "right away". With experience and further knowledge you'll find yourself finding solutions to those problems naturally and come back later to refactor the code.
Read other developers code
Look into known open source repositories. Reading other people's code is one of the best ways to learn. Check the way experienced developers solved problems similar to yours. By doing that, you'll probably find ways to get past those problems in which you haven't done it "the perfect way" before.
Ask for code reviews
Ask other developers to review your code. Having other people giving you tips is a great way to improve fast. Talking about code with others is a way of absorbing a lot of information in a small amount of time. So, if you have someone with whom you can share code tips between each other, do it as much as you can.
Don't be afraid to make questions. I can't imagine my life as a developer without StackOverflow. It helped me so many times in so many different ways that I have to say that it is one of my greatest teachers. If you need to ask anything, just do it on StackOverflow. In no time, you will have someone from its awesome community answering to your questions.
Similar to what you should do on every new field you're trying to master, just challenge yourself at all times. Roll up your sleeves and start working on it. In no time you'll be building some cool apps in JS. Also, there's a big demand for JS developers out there that companies can't fill up. So believe me, it's worth it!