Best free resources :
i) https://www.w3schools.com/js/DEFAULT.asp
ii)VIDEO
iii)VIDEO
iv)VIDEO
v)VIDEO
vi)VIDEO
vii)VIDEO
Cheatsheet for Javascript : https://drive.google.com/file/d/1Xc8U1Qy9C2vQdLtDM6mH6Hze5_rpEzLv/view?usp=sharing
B est ever book on Javascript till date : https://amzn.to/3cbFYPL
RoadMap :
Learn how to declare JS variables
Learn basic variable types (number, string, array, and objects)
Learn Control Flow (if/else if/else, switch)
Learn basic loops (while, for)
Learn how to create and call basic functions.
Learn selectors(querySelector/ getElementBy)
Learn a bit more about objects, and start to understand how the DOM is made up of objects. It's important to note that you don't need to know this in depth at this point.
Mess with CSS using JavaScript. This is a great time to learn Javascript timing functions (setTimeout, setInterval)
Pick up JQuery for awhile. Profess that it's easier to learn to all your colleagues, write a bunch of small one off applications using an inordinate and unruly amount of code.
Try to learn how to do JQuery things in pure Javascript. Become frustrated at node methods and learn the difference between node arrays and node lists.
At some point get the hang of Javascript. Write everything in JavaScript, announce to all your colleagues that Javascript is better than JQuery, and then, later, stumble into compatibility issues with older browsers.
Fall back to JQuery for a bit. Then decide to write your own polyfills in JavaScript. Eventually realize this is taking forever and look for minimalistic libraries.
Start to learn intermediate concepts like closures and prototypical inheritance in the DOM.(i mean really understand it, not like when you were messing with css back in the day.)
Realize the importance of, and learn, architectural patterns like modules and event delegation. End up searching through piles of documentation on MVC getting more and more confused on what the latest trend in architectural frameworks is.
Mess around with different frameworks. Find out about this thing called Node and how it makes Javascript server side
Download Node. Follow old tutorials, become super frustrated they don't work because they're two months out of date. Buy a book/somehow find a relevant article.
Work within the confines of the tutorial and book/ get overwhelmed at the differences between node JS and the JS you've been coding for forever.
Before really solidifying your knowledge of node, download 100s of libraries to make a chat program using express and http://socket.IO
Feel super accomplished. Memorize how to make a node server. Start to look into build tools and templating
Realize that the currently trending build tools differ depending on where you look. Try out Grunt/Gulp/Webpack and become annoyed at the incredibly convoluted setup.
Get pissed that you have to download a billion abstract libraries that require other libraries that require other libraries and so on ad infinitum
Get really adept at reading documentation. Realize that MDN (Mozilla Developer Network) has a ton of information about JS methods and properties that you never noticed.
Learn about other DOM prototypal objects including Set and Generators
Read up on the newest EcmaScript version. Try out fat arrows and new variable declarations.
Get mad at Microsoft for Ie and edge
Learn about for of and for in loops.
Get madder at microsoft
Learn about object destructoring
Become irate with Microsoft
Learn about Babel and Transpiling. You may have used it with the build tools, but you probably didn't understand it
Learn about React. Learn about Redux. Learn about data stores and state. Perhaps even delve into the mutation object.
Keep falling down the rabbit hole and realize that however much you learn there will always be new trends in frameworks and architectures and best practices.