I've got a little experience with Python, and I like how the simplistic syntax works. I'm keen to develop JS code, but I'm confused by the current JS ecosystem. Is it best to learn normal JS, or some compiles-to-JS language (like coffeescript etc). And is there anywhere I can learn about the apparently huge number of JS tools and workflows out there?
Start with pure JS. No JQuery, no React, no Angular. Just pure JS.<p>Once you get a grip on what the language is capable of and how to use it, then you can understand how the frameworks work and why they save time / make life easier (or harder).<p>I once worked with a programmer that learned Laravel without actually learning PHP. That's great - he could jump into Laravel projects, but when it came time for him to help on anything custom or WP sites; he was completely lost. He also had no idea how or why Laravel worked; just that he memorized x snippets of code and they produced a result.<p>It'll make you a better programmer in the long run.
A good place to start is MDN (Mozilla Developer Network): <a href="https://developer.mozilla.org/en-US/" rel="nofollow">https://developer.mozilla.org/en-US/</a><p>MDN Javascript resources: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript" rel="nofollow">https://developer.mozilla.org/en-US/docs/Web/JavaScript</a><p>Before starting the tutorials, take some time to learn what's available in the Firefox developer tools. You won't need most of them at first, but knowing what's available will help as you gain experience.<p>The two developer tools you'll probably use most when leaning are the Scratchpad (<a href="https://developer.mozilla.org/en-US/docs/Tools/Scratchpad" rel="nofollow">https://developer.mozilla.org/en-US/docs/Tools/Scratchpad</a>) and Console (<a href="https://developer.mozilla.org/en-US/docs/Tools/Web_Console" rel="nofollow">https://developer.mozilla.org/en-US/docs/Tools/Web_Console</a>)<p><a href="https://jsfiddle.net/" rel="nofollow">https://jsfiddle.net/</a> & <a href="http://jshint.com/" rel="nofollow">http://jshint.com/</a> will also be very useful while learning JS<p>I haven't taken any but Udacity has some javascript courses (<a href="https://www.udacity.com/courses/all" rel="nofollow">https://www.udacity.com/courses/all</a>), just tick the "Javascript" checkbox under "Technology" in the left menu<p>Some additional resources:<p><a href="https://developer.chrome.com/devtools" rel="nofollow">https://developer.chrome.com/devtools</a><p><a href="https://msdn.microsoft.com/library/bg182326(v=vs.85)" rel="nofollow">https://msdn.microsoft.com/library/bg182326(v=vs.85)</a><p><a href="https://msdn.microsoft.com/en-us/library/d1et7k7c(v=vs.94).aspx" rel="nofollow">https://msdn.microsoft.com/en-us/library/d1et7k7c(v=vs.94).a...</a><p><a href="http://www.ecma-international.org/ecma-262/6.0/index.html" rel="nofollow">http://www.ecma-international.org/ecma-262/6.0/index.html</a><p><a href="https://github.com/getify/You-Dont-Know-JS" rel="nofollow">https://github.com/getify/You-Dont-Know-JS</a><p><a href="https://addyosmani.com/resources/essentialjsdesignpatterns/book/" rel="nofollow">https://addyosmani.com/resources/essentialjsdesignpatterns/b...</a><p>Dated but still worth watching:<p><a href="https://www.youtube.com/watch?v=hQVTIJBZook" rel="nofollow">https://www.youtube.com/watch?v=hQVTIJBZook</a><p><a href="https://www.youtube.com/watch?v=bo36MrBfTk4" rel="nofollow">https://www.youtube.com/watch?v=bo36MrBfTk4</a><p>edit: added addl. resources