Nice article Quincy.
Rick Stewart

Dude! Same here! 15 years of Java, starting from university, and then JS. Why can they access a var that’s declared in an inner scope? Weird. Why do they call a function and then do something that looks like function redefinition, and apparently works? Incomprehensible. bind, apply? No, thanks.

Then I had to learn React and this wonderful video from Tyler McGinnis explained so many things about JS (he really explains everything), then Dan Abramov explained some more things in his Redux video, then the Speaking JavaScript book covered slight details that I was missing (only functions define a new scope! That’s why! Still weird, but now I understand, and we have let and const).

This is the best moment to learn JS: it’s full of videos, resources and cool people.