I’ve written this guide in response to Eric Elliot’s article JavaScript Training Sucks – which bothered me a lot when I read it. I’ve read several books on JavaScript and watched more than 20 JavaScript courses. I still probably belong in the 99 out of 100 developers category. When I heard the word closure in spoken form, I thought of a programming language rather a key JavaScript concept.
Getting started with JavaScript is easy, but mastering it is hard. There are many reasons for this:
- Part of the problem is JavaScript was originally designed as a beginner friendly alternative to the complexity of Java.
- Another part of it is the naming association with Java leading developers to think that the keywords that are common to both languages must behave in the same way.
- JavaScript is also very under represented in University Computer Science courses. Older languages such as C, Python and especially Java are taught in much more depth. More info here
- But the biggest part of the problem is that there is so much information out there but much of it is either wrong or inadequately explained.
The amazing thing about JavaScript is that it is possible to get work done with it without knowing much about the language, or even knowing much about programming. It is a language with enormous expressive power. It is even better when you know what you’re doing. Programming is difficult business. It should never be undertaken in ignorance.” – Douglas Crockford, JavaScript The Good Parts
JavaScript is most despised because it isn’t some other language” – Douglas Crockford
For applications that are mostly programmed in another server side language (e.g. Java, C# or Python) you might be able to get away without a great understanding of the JavaScript language, as long as you know enough about how to use frameworks such as jQuery that abstract you from a lot of the details (most of the time). However if you writing or considering a serious JavaScript application you will definitely need an in depth understanding of the finer details of the language. So what do you do?
There are a lots of ways to learn JavaScript, both free and paid for:
There are a huge number of blog posts and other online articles. I will be adding links to some of the best ones on an ongoing basis.
There’s a ton of information on Stack Overflow, however it is not curated and not all of it is correct. I recommend only using it for answering specific questions not for learning a whole language.
Books
There are many books, printed or electronic. Addy Osmani has written a couple of good books with free online versions: JavaScript Design Patterns and Backbone Fundamentals
Programming JavaScript Applications by Eric Elliott is available in paperback but also has a
free online version
Kyle Simpson’s You Don’t Know JS book series:
Up and Going
Scope and Closures
this and object prototype
Types and Grammar
Async and Performance
Free Videos
There are many good quality free videos on YouTube. The A-Z of JavaScript contains many of these links.
And there are a number of different companies providing video training in return for a monthly subscription fee. Some of the following providers offer much more than just JavaScript training, but in this post I want to focus on the JavaScript training. So if you are a professional JavaScript developer looking to reach the next level, or a more general developer looking to specialize in JavaScript based development, read on.
The companies are listed in no particular order and I am not going to make any specific recommendation on which provider(s) to go with, but I will give you all the useful information that I can to help you make your decision:
Pluralsight and Digital Tutors
Pluralsight
Monthly cost: From $29 per month
Free stuff: 14 day free trial
Web Forms does modern development Webinar by Paul Sheriff
Webstorm 9 by Shawn Wildermuth
Free clip from Hack Yourself First
160 JavaScript courses, which amount to somewhere in the region of 600-700 hours of material. However most of these are general beginner level courses, or introductory courses to specific JavaScript APIs. If you are interested in learning a number of different frameworks such as Angular, Backbone, Node, Ember, jQuery in fact most of the frameworks listed in my A-Z then you should get a lot out of Pluralsight. But if your main aim is to master the underlying language then there is currently less material on this (although this has significantly improved since I first published this post with courses such as the excellent Frontend Masters course “Advanced JavaScript”).
There are currently 6 courses which Pluralsight have categorised as advanced: http://www.pluralsight.com/tag/javascript?pageSize=48&sort=new&level=Advanced
In reality the line between intermediate and advanced is very subjective and even know if you’ve been coding JavaScript full time for years there will be some things that you’ll learn from at least the majority of these courses.
In general, the most in depth JavaScript Pluralsight branded courses are authored by Joe Eames. John Papa also has a few good ones. They also partner with Front End Masters to include 24 (as at 11th April 2015) of the Front End Masters courses, which are entirely aimed at front end developers and are very good.
I have watched about 22 of these courses all the way through (excluding the Front End Masters ones).
Of these, the ones that I recommend are:
- Front End Web Development: Get Started
- JavaScript Design Patterns
- React Fundamentals
- JavaScript for C# Developers
- Building AngularJS and Node.js Apps with the MEAN Stack
- TypeScript Fundamentals
- Bower Fundamentals
- Bootstrap 3
- Useful jQuery Plugins
- HTML 5 Web Components Fundamentals
- Require JS
- Jquery free JavaScript
- TDD as a design tool
There are also 8 courses available on Digital Tutors. These are:
- Creating a Responsive and Flexible Slideshow in JavaScript
- Leveraging Fluid-Width Principles for Responsive Design in jQuery
- Introduction to jQuery for Designers
- Creating a Cross-Platform Mobile Game in HTML5 and JavaScript
- Quick Start to JavaScript: Volume 1
- Quick Start to JavaScript: Volume 2
- Quick Start to JavaScript: Volume 3
- Creating a Physics-Based Web Game in JavaScript and HTML5
I’ll be updating this page after I have watched some of them.
Front End Masters
Front end masters
Monthly cost: $39 per month
Free stuff: 14 day trial
At the time of writing (11th April) there are 28 courses available which makes 4 courses exclusively available.
I have watched 5 of these courses (the ones available on Pluralsight) which I recommend, which are:
The main downside for me is it is relatively expensive and has fewer courses available than other companies.
However they are interesting and high quality courses and you could probably watch all of the courses that you want to watch in a month or two and then cancel before it gets too expensive. I would love it if they offered a special heavily discounted price for Pluralsight subscribers, as Pluralsight subscribers already get most of the courses for less than the monthly fee at Front End Masters. Check out some of the free previews on the above link.
Code School
Enroll
Monthly cost: $29 per month
Free stuff: 14 day trial
Code School has been been acquired by Pluralsight, but the subscription fees remain separate so it is a different purchasing decision. Code School has a learn by doing philosophy, so if this is how you learn best try out the free 14 day trial. JavaScript is one of the 6 learning paths available.
Treehouse:
Treehouse
Monthly cost: From $25
Free stuff: 14 day trial
Episode 125: Skeleton, AngularJS, The Fold
Watch Me Code
Free episodes
Monthly cost: $14
Free stuff: Derrick Bailey YouTube channel
The cheapest subscription that I have found. Click on the above link for the free episodes.
Let’s Code JavaScript
Let’s Code JavaScript
Monthly cost: $25
Free stuff: Build Automation and Lint
Has over 200 episodes. Teaches test driven JavaScript.
Egghead IO
Monthly cost: $15
Free stuff:Free courses
Leaflet JS
Thank you for this incredible and insightful post. I did a google search to see if anyone had compared frontend masters and pluralsight while also referencing eric elliot’s javascript guide and this was the first link on google. I’ve bookmarked this page for future reference. I come from a Java and C# background myself thanks to my uni and I’ve decided to teach myself javascript. I’ve been able to complete the code school courses on javascript but I still feel shaky there and I’ve been looking for paths that can help me transition to an intermediate or advanced level. While your post has cleared up a lot of questions I had on pluralsight and frontend courses. I was wondering if you could point out what path I should take in order. Should I start with pluralsight, move on to doing the books you’ve mentioned and then finally head to frontend masters to get to an advanced level?
Hi Nida,
Thanks for reading zombie code kill. With regards to learning JavaScript really well, there are many authors I like, probably too many to mention so I’ll just give a couple of names: Dr Axel Rauschmayer is the zombie code kill teacher of the year and has an excellent book on ES6/ES2015. Kyle Simpson has some great front end masters courses and has written the You Don’t Know JS book series.
Take a look at my book and course pairings article. Doesn’t matter much if you read the book or watch the course first although I personally tend to watch a course first and then decide whether to read a book after.
Thank you for this incredible and insightful post. I did a google search to see if anyone had compared frontend masters and pluralsight while also referencing eric elliot’s javascript guide and this was the first link on google. I’ve bookmarked this page for future reference. I come from a Java and C# background myself thanks to my uni and I’ve decided to teach myself javascript. I’ve been able to complete the code school courses on javascript but I still feel shaky there and I’ve been looking for paths that can help me transition to an intermediate or advanced level. While your post has cleared up a lot of questions I had on pluralsight and frontend courses. I was wondering if you could point out what path I should take in order. Should I start with pluralsight, move on to doing the books you’ve mentioned and then finally head to frontend masters to get to an advanced level?