Ask HN: Best resources for learning JavaScript in 2017

52 points by petecooper ↗ HN
I'm a front-end web designer that doesn't know JavaScript. I wish to learn the fundamentals over winter (northern hemisphere) and continue to extend my knowledge. I am not on a time limit, I have a budget to purchase materials, and I'm allocating up to three hours a day to learn.

My question: what resources do you recommend for someone learning JavaScript from scratch in 2017?

Thank you.

20 comments

[ 2.0 ms ] story [ 58.4 ms ] thread
w3schools has got lot of examples and decent documentation for javascript.
Look at some of the videos on pluralsight.com – $29 a month will give you access to the whole catalog. You can start from JS basics, and go all the way to courses related to specific frameworks.
I second pluralsight.com. Also look at codeschool, they offer free courses before you decide to buy. Codecademy can be a good tool to get a feel of the language with zero setup.
(comment deleted)
https://javascript30.com/

Do every single one of those. When you're done, do them again without any help from the videos.

100% guarantee that if you make it through that process, you'll be better off than you would've been reading a bunch of O'Reilly books (though many really are excellent).

[EDIT] If that's a bit too advanced of a starting point, you can try something like Codecademy to get you familiar with the basics.

Big fan of https://egghead.io Super high-quality content, but most of it is paid content

A good free online good is Eloquent Javascript http://eloquentjavascript.net/

A couple of years ago, I bought a year subscription to egghead for about $100.

The other day I wanted to refresh a bit my knowledge about react and, when I checked again, it was $200. Maybe the content is really good, but I finally found what I needed in Udemy for less than $30.

Eloquent Javascript is probaby a single good resource I'd recommend if you're starting out. http://eloquentjavascript.net/

Other one if you want to go in a little deep: https://github.com/getify/You-Dont-Know-JS

Working on side projects or sth will be beneficial after these or along with these. I think Codacademy is pretty basic. Look for a bit more advanced problems.

Edit: For some advanced topics or frameworks, frontend masters is a very good resource. https://frontendmasters.com/

Eloquent Javascript[0] is free and online, it starts of with simple concepts but ramps up very fast.

Javascript the Good Parts[1] is very solid, albeit a little more advanced and dry. Probably not a beginner book, but one to read after you've built a couple of medium sized projects. I use it as a reference to brush up on certain topics.

You-Dont-Know-JS [2] is a free online book series that is a great reference for brushing up on more advanced topics.

MDN Reference [3]: this is the best documentation out there. Always have a tab open and try reading the actual documentation on how things work. This will be very hard at first but will allow you to become a very strong developer.

I also recommend you avoid https://www.w3schools.com/. Google often puts W3Schools at the top when searching for what a method does, but often times it is out of date or provides technically incorrect information.

[0]: http://eloquentjavascript.net/

[1]: http://shop.oreilly.com/product/9780596517748.do

[2]: https://github.com/getify/You-Dont-Know-JS

[3]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...

Is there any resource that teaches mixed ES5/ES6 for beginners?

Either I find some ES5 resources, and I have the feeling to spend my time learning stuff I'll never use by myself. Either I find some ES6 resources that need ES5 knowledge as prior requirements.

For example, even some may say I should, I don't wan't to be teached that before, we used "var", and now we use "let". I just want to learn the "let" version.

I'm writing an ES[latest] series of guides at https://www.writesoftware.org on various frontend development topics, all JS-related.

It's not yet on par with the other resources listed in this thread obviously, but I always use arrow functions, const and let, avoid semicolons and in general make use of modern JS across all the examples.

I did video courses once and I find that they are very hard to update once shipped, and they tend to age pretty quickly, so I went all-in with text content.

Personal recommendations:

Egghead [0] if you want to learn JavaScript and some of the most popular / common techniques and frameworks currently used. The videos on this site can help you to get up to speed with frameworks and libraries such as React, Reactive Extensions, Vue, Angular, Redux, Ember and the like pretty quickly (once you get the hang of vanilla JavaScript)

Let's Code: Test-Driven JavaScript [1] if you want to have a great start (and deep dive afterwards) in vanilla JavaScript. I suggest to start with the video tutorials here which will help you to get a solid background not only in JavaScript, but also in application architecture, test driven development and things like build automation. Plus James is a great teacher, with a solid background in all of the above (and more).

[0] https://egghead.io/

[1] http://www.letscodejavascript.com/

I'm an experienced programmer (C++, C#, F#) and would also like to learn JavaScript from materials that present current best practices. Would appreciate pointers to which of the mentioned resources in the thread or which other resources are most suitable for someone coming from that background (e.g. I don't need to learn to code or what a variable or function is but do want to learn current JavaScript idioms and best practices).
I'd just like to add some votes for resources already mentioned:

MDN's documentation is by far the best. A very easy entry would be to use Codecademy, while more in depth video tutorials can be found on Pluralsight and Egghead (though Pluralsight also has some introductory and rapid training courses focused on Javascript). The best book for learning how JS works under the surface is Simpson's series 'You Don't Know JS'.

http://javascript.info/ is an excellent, up-to-date, comprehensive resource for learning JS.

I also really liked getify's course on Frontend Masters, "Deep JavaScript Fundamentals," as well as his book series You Don't Know JS (though it's a bit much for a beginner).

Ex sapientia an optimal learning environment/community for Javascript and computer science related subjects @freecodecamp.org. The reward-system hooks and maximizes cognition while the social fabric prevents the fall down the rabbit hole.