
Ask HN: Best resources for learning JavaScript in 2017 - petecooper
I&#x27;m a front-end web designer that doesn&#x27;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&#x27;m allocating up to three hours a day to learn.<p>My question: what resources do you recommend for someone learning JavaScript from scratch in 2017?<p>Thank you.
======
mileycyrusXOXO
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/](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/](http://eloquentjavascript.net/)

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

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

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

~~~
bluewalt
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.

~~~
writesoftware
I'm writing an ES[latest] series of guides at
[https://www.writesoftware.org](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.

------
kevincennis
[https://javascript30.com/](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.

------
juvoni
Big fan of [https://egghead.io](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/](http://eloquentjavascript.net/)

~~~
6t6t6t6
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.

------
mtphil
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'.

------
mindcrash
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/](https://egghead.io/)

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

------
pixelperfect
[http://javascript.info/](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).

------
theshadowmonkey
Eloquent Javascript is probaby a single good resource I'd recommend if you're
starting out. [http://eloquentjavascript.net/](http://eloquentjavascript.net/)

Other one if you want to go in a little deep: [https://github.com/getify/You-
Dont-Know-JS](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/](https://frontendmasters.com/)

------
perryh2
[https://developer.mozilla.org/en-
US/docs/Web/JavaScript](https://developer.mozilla.org/en-
US/docs/Web/JavaScript)

------
mattnewport
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).

------
bryanrasmussen
You can get a trial oreilly membership for safari
[https://www.safaribooksonline.com](https://www.safaribooksonline.com) then
they have pretty good tutorials, other than that use mdn
[https://developer.mozilla.org/en-US/](https://developer.mozilla.org/en-US/)
instead of w3schools.

------
franze
Best Tool: Chrome Developer Console

Best Docs: Mdn

Best Approach: [https://javascript30.com](https://javascript30.com)

------
e4jtropy
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.

------
atonse
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.

~~~
yjv
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.

------
4restm
codeschool and codeacademy are great intros to the language and some
frameworks. The following are excellent free books,
[http://eloquentjavascript.net/](http://eloquentjavascript.net/) and
[https://github.com/getify/You-Dont-Know-JS](https://github.com/getify/You-
Dont-Know-JS)

------
orangecart
w3schools has got lot of examples and decent documentation for javascript.

