Hey there,
I'll start with the disclaimer, as lately HN comments have tendency of becoming toxic - everything I write is my personal opinion.
With that behind us I can start. I'll try to write this for someone who knows very little about JS, but knows her/his way around basic programming/cs.
Firstly I love JavaScript, I have been writing it for 10 years now, but there are bad parts of it as well.
Let's start with good stuff
* It is evolving in the right direction
* You can do a lot of things with it (web apps, games, mobile apps, server...)
* Materials for learning are everywhere
* It will be easy to find a job
Bad stuff
* It is moving at crazy to follow pace
* There are a lot of different ways of doing same things
* As it is very hip thing to do, there is a lot of bu___hit (beware of the hype train)
Learn plain javascript before moving to frameworks. Focus on ES6 and new stuff as it will make your life way easier.
* Someone already mentioned Dr. Axel Rauschmayer, pick any of his books - http://exploringjs.com/
* Another good one is You Dont Know JS - https://github.com/getify/You-Dont-Know-JS
Try to make small app on your own. You'll get into all sort of problems, but that's the fun part I guess. That will help you to understand what frameworks are trying to solve.
Then you can start learning one of the frameworks. React, Vue, Angular are all solid choices. My pick is React, as I know it best. Apply the same mindset as with learning plain JS. Try to write your own stuff on a small scale before importing huge libraries.
Good example is redux, everybody on the internet are screaming that you should always use it, but even Dan Abramov (author of redux) has great read - You might not need redux https://medium.com/@dan_abramov/you-might-not-need-redux-be4...
Try handling state yourself, then if you see that you need big guns, try redux. Same goes for any big library or technology.
So, buckle up, do it thoroughly and try to find fun in doing javascript. And the most important generic advice - do a real pet project instead of just blindly following tutorials.
This will take some time, and if you just want enough knowledge to lend a job, pick a framework, throw yourself into the deep end and swim your way out. This is something I wouldn't recommend but it works for some people.
Hope this helps, cheers!
S
P.S.
Random JS talks I like
* Wat - Gary Bernhardt, 2012
https://www.destroyallsoftware.com/talks/wat
It never fails to crack me up
* Live React: Hot Reloading with Time Travel - Dan Abramov, 2015
https://www.youtube.com/watch?v=xsSnOQynTHs
Classic nowadays, it is a delight to watch Dan Abramov presenting, only thing missing is a mic drop at the end
* What the heck is the event loop anyway? - Philip Roberts, 2014
https://www.youtube.com/watch?v=8aGhZQkoFbQ
This is a must watch for every js developer
EDIT: Sorry for the formatting, HN doesn't support markdown