Fortunately, there have been some fantastic resources become available over the past few years.
Just Getting Started?
If your just starting down the path of learning the language, it would be difficult to do better than the following:
More than the Basics
Once you’ve got the basics down and are feeling pretty confident in the language, it becomes time to learn to put that language to best use via design patterns and good architecture:
Intermediate and Beyond
Developing for the web puts us in an amazing position thanks to all modern browsers now being ‘Evergreen’, so when ES6 lands officially, users will be able to run our ES6 code as soon as the browser auto-updates (with some features in current browsers already!) – a stark contrast to the transition from ES3 to ES5 back in the day when Internet Explorer was king of the web.
There are many online guided tutorials (Codecademy, CodeSchool, Treehouse etc), and while they are very good – you have to be the type of person that can learn from this approach of building an app that should be almost identical to their reference app – personally, it doesn’t work for me – I much prefer short, concise video snippets that explain a particular issue clearly – Watch Me Code, EggHead, EmberCasts.
Learn the Concepts not the Code