I'm a web developer who doesn't know Javascript. Yes, that's a bit shameful to say, since Javascript is the language of the web. I've basically managed thus far with just backend languages and frameworks and hacking together CSS/Bootstrap/a tiny bit of jQuery, but obviously I need to learn JS.<p>Assuming I have close to zero JS knowledge but know how to program, what's the best learning path for me to become competent in frontend development?<p>One idea I had was<p>1. Read Eloquent Javascript<p>2. Read Javascript--the good parts<p>Work on side projects using this stuff as I read through it<p>3. Read a book on jquery, keep doing side projects<p>And then eventually start learning a framework. Is this a good plan? Any suggestions?
Forget about Bootstrap and jQuery, learn vanilla js.<p>Reading Eloquent JavaScript is a good starting point.
Once you are done with that, build something and join #javascript @ FreenodeIRC and ask for help when you get stuck on something.<p>The good parts is nice but keep in mind that it is very opinionated, still it is worth reading. There are some lectures by Crockford on youtube too (tl;dr)
<a href="https://www.youtube.com/watch?v=JxAXlJEmNMg&list=PL7664379246A246CB" rel="nofollow">https://www.youtube.com/watch?v=JxAXlJEmNMg&list=PL766437924...</a>
Also this on OOP <a href="https://www.youtube.com/watch?v=DwYPG6vreJg" rel="nofollow">https://www.youtube.com/watch?v=DwYPG6vreJg</a><p>Finally you may want to familiarize with the most common JavaScript design patterns (some are not unique to js)
<a href="http://addyosmani.com/resources/essentialjsdesignpatterns/book/" rel="nofollow">http://addyosmani.com/resources/essentialjsdesignpatterns/bo...</a>
I've really never learned anything well by learning a book, maybe you'll have the same luck (or lack-thereof).<p>Id' start building stuff. Follow tutorials, and then starting looking at API docs and experimenting.<p>After that, I'd follow along with 'JavaScript Ninja'[1], straight from John Resig (who designed/wrote? jQuery), which gets into the prototypical inheritance, etc.<p>I've gotten past some fairly well-known Technical interviews through the above approach.<p>Either way, good luck with your journey.<p><a href="http://ejohn.org/apps/learn/" rel="nofollow">http://ejohn.org/apps/learn/</a>
I think you've got a pretty good starting point.<p>Once you get fairly decent with JavaScript, I'd like to recommend 3rd Party JavaScript<p><a href="http://www.amazon.com/Third-Party-JavaScript-Ben-Vinegar/dp/1617290548/ref=sr_1_1?s=books&ie=UTF8&qid=1445985347&sr=1-1&keywords=3rd+party+javascript" rel="nofollow">http://www.amazon.com/Third-Party-JavaScript-Ben-Vinegar/dp/...</a><p>It's a great book that taught me how to create JS widgets (think twitter feed or disqus comment widget).
1. Understand what JavaScript Is and Isn’t 2. Enroll a java script tutorial. 3. Read JavaScript and try coding together with it. 4. See people actually doing it. This video might just help you. <a href="https://www.livecoding.tv/video/javascript-fundamentals-2/" rel="nofollow">https://www.livecoding.tv/video/javascript-fundamentals-2/</a>
I learned Javascript from a desktop app background. I started by just reading the Javascript docs. Memorizing the available functions, and then I focused on learning how to write things javascripty.<p>Personally I find learning more rewarding when I move faster, so I dove into frameworks first instead of learning the low-level javascript (prototypical inheritance, etc).
I have this one[1] and it seems to be extremely well written.<p><a href="http://www.amazon.com/JavaScript-Definitive-Guide-Activate-Guides/dp/0596805527" rel="nofollow">http://www.amazon.com/JavaScript-Definitive-Guide-Activate-G...</a>
<a href="https://www.udemy.com/understand-javascript/" rel="nofollow">https://www.udemy.com/understand-javascript/</a><p>Try this out man, one of the best tutorial ever!
It's not shameful, JS is one of the most complex languages out there. And most web developers just ignore it and go for jQ like it's the new JS.<p>What I did once is I worked on a project only with pure JS, and did some complex ideas there and since then I feel comfortable working with it. I work with it purely only on my personal websites since it's take longer time.