Learn JavaScript!

Let me draw your attention to a certain post (Link).
Take a look at that handsome young man saying he doesn’t want to post about JavaScript learning resources.
Well…

This is a post about JavaScript learning resources.

The second I posted that is the same second I wanted to write about JavaScript learning resources and that’s how we got here.

This isn’t a ‘read this, read that’ and you’re good to go post, it’s a combo of ‘read this’, reviews, what to watch out for, my opinion (A LOT of this) what I think is good or bad and observations on popular JavaScript learning resources (think: books, video course sites, blogs etc.).

Time to learn where to learn JavaScript, let’s get this party started!

The List

Let’s take a look what we’ll be covering:

  • ‘You don’t know JS’ by Kyle Simpson
  • Mozilla Developer Network ( MDN )
  • Stackoverflow
  • Udemy courses
  • Frontend Masters courses
  • Medium

You’ll notice the list is not extensive and I’m 100% sure everyone reading this will think of at least 1 thing that they think should be on this list but isn’t, that’s intentional.
Like I said before, the focus isn’t just on the learning material but also on learning methods and approaches.
I believe that it’s not about the quantity of learning material you go through but the quality and how much you get from each of those.

Effective learning is the name of the game baby!

In this endeavor it’s not only important to learn from good resources but also to avoid and not waste time on subpar material and learning methods.
Onwards through the list…

You don’t know JS by Kyle Simpson ( Link )

This is a must read for every JavaScript developer!

Everyone here at JSGuru (Link) is required to read it.

Read this on every stage of your JavaScript developer career and I guarantee you’ll get something out of it every time.

The reason it’s so good is that it doesn’t run away from all the quirks JavaScript has but seeks to shed some light on them and explain which parts of JavaScript are actually messed up and which parts are just misunderstood.
It gives the JavaScript community something it desperately needs — understanding of the language. Kyle put it best with this line:

Because JavaScript can be used without understanding, the understanding of the language is often never attained.

And here we have the biggest issue plaguing the JavaScript community and the reason why developers from other languages are calling JavaScript developers utter shit.
A very large number of JavaScript developers are writing code they don’t know what the F it does.

You don’t know JS seeks to combat that.
If you haven’t read ‘You don’t know JS do it now, if you have read it go read it again! You’re welcome.

Mozilla Developer Network — MDN ( Link )

To me MDN is the official JavaScript documentation site, it’s always open on my computer so I can jump in any time I need to refresh my memory on what a particular function does exactly or what new tech is ready and supported enough to be used or to verify if a stackoverflow answer makes sense and really is the best possible solution (more on this later).

But it’s so much more than that and you should definitely use it to a greater extent than I do.
It has documentation, tutorials and articles about JavaScripts 2 sidekicks, HTML and CSS. If you’re in to JavaScript it’s almost certain you’ll need to learn a bit of HTML and CSS and MDN can help you with that too.

It has a beginner section with everything you need to get started with developing on the web.

It also has articles on general web development topics so you can get familiar with best practices for security, accessibility and similar.

Stackoverflow ( Link )

And now we’ve arrived at what I ‘affectionally’ call ‘The minefield’ and what I blame for the state of the JavaScript community because it turns out the average JavaScript developer can’t be bothered to look at any other answer other than the accepted one or, god forbid, look at examples from multiple sources, think critically about them, understand the code and apply the best one.

The reason I call it ‘The minefield’ is because one wrong move and everything goes to hell, and there are a lot of wrong moves a JavaScript developer can make on stackoverflow.

When you’re looking at a stackoverflow answer don’t just copy + paste the accepted answer and think you’re done, investigate why that answer is accepted!

Does it have an explanation how the code works?

Did you take a look at some kind of JavaScript documentation (MDN) to verify that the code does what the explanation says it does?

Is the answer fresh and relevant?
I’ve come across accepted answers that are 5 years old and have something like 30 lines of code that ES6 solves with one. Look at the date of the answers!

Applying the questions above safeguards you from wasting time on outdated, irrelevant and flat out wrong answers in addition to helping you better understand the code you’re looking at.

Please, ALWAYS make sure you understand the code you’re using, our reputation as serious, professional software developers depends on it.

Udemy courses (Link)

Disclaimer: I’m not a big fan of video courses and I’m not convinced in their effectiveness but I think different people learn differently and if video courses work for you, by all means learn through video courses.

There are a lot of coding video tutorials and video based learning platforms out there but I picked Udemy (and Frontend Masters) because I have experience with those two and I’ve talked and observed developers that have used them.

I’m not a big fan of Udemy. I signed up because a course that had a 150$ price tag was free and it looked like I could learn something from it… I was wrong.
The dude in the video spent 14 hours installing every npm package known to man, mixing preES6 and ES6 syntax, not using a style guideline, stating things that are incorrect and the list goes on and on…

Talking to a few other developers that use Udemy I’ve heard nothing but praise and how you can learn a lot if you find the right courses but that’s just the thing, they’re experienced enough in software development to know when someone is giving them the right info.
What about the newby who’s trying to learn JavaScript going to Udemy and stumbling upon a total dumpster fire of a course and thinking it’s the right stuff?
Again we’re on ‘The minefield’ one wrong move and you’re screwed!

My advice is to research the course you’re thinking of buying, talk to someone who watched that course and ask them what they think was good and what was bad about the course and make sure the time you’re going to invest in a course is worth it.

Frontend Masters (Link)

Frontend Masters is a safer bet than Udemy, all of their teachers are from proven backgrounds and you always know you’re listening to someone who knows what he’s talking about.

Warning! Digression ahead:

Here’s my problem with video courses, usually they’re hard to digest out of context and consumed in bite-sized chunks, finding what you want in a video is harder than in text based material, you can’t copy + paste boilerplate code.
Personally, I like to just watch and listen to videos and then google things that sound interesting but to learn you need to actually write some code and with videos it gets messy trying to follow the video, write code and maintain a reasonable learning pace.

That being said, if learning through videos and JavaScript is your jam then you should definitely give Frontend Masters a shot, they have really good courses and their teachers are experts in their fields.

Medium ( Link, ha-ha)

The ‘ha-ha’ up there is because you’re reading this on Medium, get it? Do you get the joke? Don’t worry you’ll get it eventually.

This is (currently) my favorite place to find learning resources because it’s easy to find quality content and writers, read on the fly, save for later, usually content is served in bite-sized chunks so it’s easy to consume and looks nice (more important than you’d think).

Find as many good publications and/or writers that you can to follow and form a habit of reading at least a few articles every day. 
It’s almost like cheating, you’re getting better each day and it feels like you’re investing minimal effort. Neat.

To get you going here are my suggestions:

  • Eric Elliott (Eric Elliott) — by far my favorite profile on Medium. I have learned so much from Eric it’s ridiculous, he regularly posts relevant quality JavaScript content and occasionally publishes an article on general software development topics. You should definitely follow him!
  • Hackernoon (Link) — This channel doesn’t focus just on JavaScript but I’ve noticed they often publish articles on JavaScript + they have lots of very interesting tech related articles.
  • freeCodeCamp (Link)— This one is very similar to Hackernoon, lots of tech related articles and Medium filters out the ones about JavaScript for me.
  • DailyJS (Link) — This channel is all about JavaScript, you’ll for sure find something that interests you here. Definitely worth the follow.
  • JSGuru (Link) — Shamelessly advertising the publication I write for! But seriously, we aim to write relevant quality content about JavaScript and software development in general so give us a follow, everyone here is working hard on making it worth your while.

Conclusion

The aim of this article isn’t to just point you towards, what I think, are quality JavaScript learning resources and be done with it but to introduce you to how I approach the ocean of online JavaScript learning resources and, hopefully, help you develop a critical approach to learning material so when you do invest time in a book or video course or whatever, it was worth it.

No matter which path you choose to learn JavaScript (or anything else for that matter) always think critically about it and be protective of your time.
As you saw there are a lot of ‘minefields’ out there that can, not only waste your time but even worse teach you old, irrelevant and flat out wrong JavaScript.

All is not lost! Using the methods and approaches I outlined in this article you’ll easily become a high quality JavaScript developer!
Happy learning!


If you enjoyed this article please recommend and share.