How to learn JavaScript

Since I mentioned that I learned JavaScript, people have asked me how and what I recommend. So here’s my experience and best advice for 2024.

Learn plain JavaScript

First, it’s important to learn plain JavaScript.

Don’t depend on a library of shortcuts. JavaScript will be around for many years, while libraries and frameworks come and go every year.

How to begin

Don’t just learn from little bits of tutorials, tips, or tricks online. Instead, you want a real foundation and solid understanding. Then all your future learning will be so much faster.

Start with the book: “Eloquent JavaScript”. It’s free to read there on his website. It’s deep and thorough. A great start-to-finish JavaScript tutorial. Relax. Focus. Do it in order. You’ll know more than most once you get to the end.

Do Free Code Camp. Someone who had 600 JavaScript learners said Free Code Camp had the best results. Do it at the same time as you’re reading books and articles. Learning sticks better when coming through different senses.

Make it stick

I highly recommend you write down every new thing you learn, ideally into a flashcard program, like this. It’s a lot to digest, so you’ll have to remind yourself of what you’ve learned, or you’ll immediately forget.

Avoid the shortcuts

When solving a problem, everyone will point you to some pre-made solution. “Use jQuery! Use React! Use this library and save yourself some typing!”

But no! Not yet! Do it the hard way. Solve everything yourself with plain JavaScript. It’s the best way to learn.

What next?

If you had a web app in mind, start building it now. After you wrestle with using plain “vanilla” JavaScript, then learn React to see the shortcuts it gives you.

If you want a good-paying job, you can get hired almost anywhere. Since you know the real JavaScript foundations more than most people, you’re very valuable. You can quickly learn whatever framework they’re using.

Any other suggestions? What worked for you?

Please share any other suggestions or experiences, here:

Your thoughts?
Please leave a reply:


Comments

  1. am (2013-03-25)

    Hi Derek,
    Thank you for sharing your path :) "JavaScript: The Good Parts" is really good, but I agree with you as it may not be a good start. There is one more recommendation I would like to add:
    - http://bonsaiden.github.com/JavaScript-Garden/

    Maybe this should be read after the "good parts"...
    ;)

  2. kahfei (2013-03-25)

    Great advice, and great recommendation of learning resources as well.

    While I am trying to pick up ember.js now needing to work on something, but should get to the mother of all these libraries, frameworks right after this.

  3. Fred (2013-03-25)

    I also started with Javascript: The Good Parts, and felt it gave great pointers for people who already were comfortable with basic JS concepts. I wouldn't recommend it to anyone learning JS from the ground up!

    +1 on Eloquent Javascript.. great book to start with!

    I'm currently reading Effective Javascript by David Herman. It's another great book for for those comfortable with JS and want/need reminders on good practices.

  4. Chelfyn Baxter (2013-03-25)

    Have you tried http://www.codecademy.com ? Interactive lessons and really well-thought out course. I started it a while back, and was progressing nicely, but a deluge of work put this on the backburner. It was very good though, worth a look.
    Yep. They're great. I just like books. smile — Derek

  5. Jenn Ashton (2013-03-25)

    For me I also needed the feedback of instructors and the team work of classmates, so I went through CS at Harvard on Edx - it was an intense 6 months, complete with exams and projects, but having begun with zero experience, I can say I now have good understanding of everything from C all the way up to JS and JQ (plus html, http, php, etc etc etc). I am looking forward to reading the books you mention above though - more, more, gimme more!! haha

  6. Benny (2013-03-25)

    Awesome post -- mainly because this is the exact thinking I had when approaching the language.

    I took a route to learning JavaScript very similar to yours, and although I write jQuery and am in a Backbone application almost daily, I still prefer plain, unadulterated, pure and beautiful JavaScript with my side projects. I love it like I admire C.

    One thing I'd add (if I may) which I find extremely important in learning JavaScript for most practical uses is to familiarize oneself with the W3C DOM API, and also to be able to distinguish between CSS2 vs CSS3 implementations (at least for WebKit initially); and on the JavaScript side, be able to distinguish between ECMAScript 4 vs ECMAScript 5 implementations. Doing this will equip most front-end developers with the knowledge of what's viable in most mobile and/or modern browsers, and how to handle legacy browser JavaScript.

    I come from a strong visual design background, so I came into learning JavaScript with a pretty good grasp of CSS already, and a very front-end focused mindset, but I was happy to read of your experiences; it certainly reminded me of mine!

    I've been at JavaScript a bit longer, but don't have nearly the programming experience that you do. I'm interested to know what your favorite programming language is?

    As always, awesome post. Love reading your insights!
    Very cool. Thanks for the tips, Benny. — Derek

  7. Alistair MacLeod (2013-03-25)

    I think it is important to have a pet project which you can use to try out new things you learn. Rather than making notes on what you read, try using it. If you can't remember something, you probably will after trying to use it and looking up what you didn't know.

    I started writing Conway's Game of Life many years ago to learn javascript. More recently I updated it to use new features of HTML5. It's a good project to have to try new things with.

    http://mm0hai.net/life/life.html

    The code is on github, if anyone is interested
    github.com/anm/HTML5-Game-of-Life

  8. Alan Mulhall (2013-03-25)

    100% agree with your path to learning Javascript. Professional JavaScript for Web Developers is by far the best book on Javascript i've read. I would also recommend reading JavaScript Patterns by Stoyan Stefanov after the Pro book and for jQuery - jQuery Fundamentals is a great website for a deep dive into jQuery.

  9. Daniel Walton (2013-03-25)

    Eloquent Javascript, a complete online book. Thanks for the link! I'll share this with others looking to learn JavaScript.

    JavaScript is becoming more important every year. Web apps are displacing desktop apps and I think in the next few years we'll start to see a significant shift from native mobile apps to JavaScript mobile apps.

    Now the hot new thing is to do JavaScript on the server side as well and I can share from experience, it's nice.

    For those of you out there who don't know JavaScript, there has never been a better time to learn. JavaScript's future is bright.

  10. Nathan (2013-03-25)

    I love that you ended with 'put down the books and go use it'. As a seasoned software engineer and a learn-by-doing kind of person I think the real magic begins once you're applying the theory to something practical like a personal project (or, 'scratching your itch' as 37signals puts it).

  11. june (2013-03-25)

    for me http://www.codecademy.com/ is a pleasure learning experiment

  12. brad (2013-03-25)

    i believe we are leaving one era of js development and entering another. with the advent of coffeescript asm.js, typescript, and dart, it would appear that a compilation phase (so to speak) will soon be not only acceptable, but as optimizations kick in, irrefutable. it may be that these efforts will render es6 itself a footnote...given stable methods for compilation, the language that code is written in will merely become a matter of fashion.

    by this i mean to say that as of now (or very soon), it will be acceptable for someone to learn typescript or dart first and maybe never even bother with js itself (within reason and applicability). the primary reason someone would want to do this, is, imho, the terrible disaster of libraries for js. SDKs are better with a little dictatorial oversight from the top...an organic organization of weirdly-named libraries overlapping both idioms and functionality hasn't produced better outcomes for js coders.
    Good point, Brad. For right now, for 2013, I think it's best to study the one thing that Coffeescript, Typescript, and the rest have in common. (Plain old JavaScript itself.) Also see Sean Smith's comment #35, below... — Derek

  13. Fikri Rasyid (2013-03-25)

    I have planned to re-learn Javascript myself (so far i'm quite familiar with jQuery but not that familiar with the javascript itself) after i finished my final paper at university. Now my paper have been submitted and approved, then boom! this kind of "how i learned it" post from someone whom i respected is published. It feels like halfway dream (which is the guide to achieve the goal) comes true :))

    Thanks for sharing this Derek. It is really helpful :)

  14. Scott Weisman (2013-03-25)

    I've stopped and started leaning JS a bunch if times and had many of the same experiences. I agree that Javascript: The Good Parts is not a good place for beginners to start.

    Jquery Fundamentals is a great place to start for jQuery http://jqfundamentals.com/

  15. Alexander Bach Borius (2013-03-25)

    Great article, Derek! I'm going to send it to my girlfriend :)

    I would suggest lodash.js as a replacement for underscore.js - it has some much needed features like deep cloning for instance

    I would also suggest AngularJS - it's a really cool framework for rapidly building CRUD web apps using mostly declarative syntax and it does all kinds of traditional model-view updating automatically for you

    Bunch of Angular tutorials: http://egghead.io/

  16. Anthon (2013-03-25)

    Derek, that's great, thank you!

    It'd be also nice to know, whether you have tried and collected something thorough like this about up to date html/css layout and markup.
    For that, I recommend Head First HTML and CSS, 2nd Edition and Head First HTML5 Programming. Those Head First books are great. — Derek

  17. John Adrian (2013-03-25)

    Nice. I learn Javascript like the way you learned it. After "Javascript, The good parts" by Douglas Crockford, I read "Javascript Patterns" by Stoyan Stefanov it solidifies what youve learned on Javascript The Good Parts. After that, I try to learn Backbone.js and you can see javascript patterns there. :)

  18. Thomas Schranz (2013-03-25)

    I also found Eloquent JavaScript to be an incredible book to learn JavaScript but programming (+ different concepts) in general. I love how it also covers functional programming.

    That said I would really recommend looking into Dart (http://www.dartlang.org/) which is a new language that you can use everywhere JavaScript works (it compiles to JavaScript) and is really easy to reason about.

    Also if you've ever been bitten by 'x is undefined' in JavaScript because the language is perfectly happy with working with 'undefined' for a long time instead of throwing an exception it might save you a lot of pain and suffering :)

    Enjoy your journey :)

  19. Tarlach (2013-03-25)

    Thank you Derek, I was just looking for the best way into learning Java Script. You have really helped me out here. Good on you.

  20. Uģis Ozols (2013-03-25)

    I'm currently slowly progressing through http://javascriptissexy.com/how-to-learn-javascript-properly/ and am really happy with it. I like that it provides concrete steps on what to read/do so I can focus on relevant stuff instead of reading gazillion blog posts vaguely covering random JS topics.

    I also recently purchased Effective JavaScript book (it gets recommend very often) but I probably won't dive into until I finish reading Professional JavaScript for Web Developers.

  21. Daler (2013-03-25)

    Hi Derek, and thanks for a very helpful advice!
    What's your take on http://meteor.com vs. backbone.js
    and http://lodash.com/ vs. jQuery ?

    Also this might be useful:
    http://bonsaiden.github.com/JavaScript-Garden/
    Meteor looks fun, and is unlike anything else - not a replacement. LoDash is more of a replacement for Underscore.js, but learn Underscore first from the link above, because the source is so well annotated, then switch to LoDash if Underscore is giving you problems. Then just learn jQuery, no matter what, because so many projects require it. smile — Derek

  22. C. (2013-03-25)

    Damnit ... That piece of meta-advice is so precious. Thank you so much for sharing. Please put some kind of Ad on your website so that we can click & thank you.
    Cheers.

  23. Rodrigo Alves Vieira (2013-03-25)

    Nice. Your guide seems fairly reasonable but I'd also add the JavaScript Garden [1] to the list, which I've been using for a couple years. Also, the JavaScript: the Definitive Guide book by David Flanagan [2] for more specific information about the language's features and also the WTFJS website [3], so you can avoid more common JS pitfalls while laughing at the same time.

    [1]: http://bonsaiden.github.com/JavaScript-Garden/
    [2]: http://www.amazon.com/JavaScript-Definitive-Guide-Activate-Guides/dp/0596805527/ref=sr_1_1?ie=UTF8&qid=1364209106&sr=8-1&keywords=javascript+definitive+guide
    [3]: http://wtfjs.com/

  24. Mike Cane (2013-03-25)

    Thank you for this! I have an interest in learning and have been wanting someone to produce a guide like this one.

  25. Paul (2013-03-25)

    Thanks for the guide. I have tried reading Javascript The Good Parts and for sure it is not a nice read for a beginner.

  26. Hoang Doan (2013-03-25)

    Thanks for your advices! :)

  27. Patty (2013-03-25)

    I am not a programmer but "technical" enough. My 11 year old son wants to learn programming and has become extremely discouraged. I told him I would learn Java with him, spending 45 minutes per day. Given that backdrop and what you just leaned, would you think I am about to just frustrate him more? Is it possible to learn if you are diligent - even with no code background?

  28. htt (2013-03-25)

    Hello!I want to know how long does it take to learn Professional JavaScript for Web Developers, 3rd Edition - by Nicholas Zakas?
    It's a very big book. Almost 1000 pages. I spent a few hours a day on it, and it took three weeks. — Derek

  29. Sean Smith (2013-03-25)

    @Derek: Great article. I've read most of those resources you listed before and agree 100%. 'JS: The Good Parts' is not the first JS book people should turn to but it is a fantastic resource once you more than a 'newbie' level of JS knowledge.

    @Brad, Comment #16:

    I think you should be careful jumping to the conclusion that Dart, typescript or some other language is going to replace Javascript. Don't forget that one of the main 'wins' for Dart is that you can run it today and compile it to Javascript.

    You can't seriously be suggesting that someone program in a language they don't know?

    In the end, you have it slightly backwards IMO. We are moving to an era where JS will not be the end of what you need to know for client-side scripting. You'll be able to learn JS, and then use that knowledge to transition to using Coffeescript, Dart, Typescript, or whatever other JS-ish language you like.

    The cross-browser compatibility story for these up-and-coming languages is largely based around compiling to JS. In other words, if you want cross-platform browser support for Dart, you're going to be compiling to JS for the foreseeable future.

    Perhaps in a few years we'll get to a point where client-side scripting is language agnostic, personally this is where I'd like to see the browsers go but I think we are further away from that than you think.

    Have a good one.
    Well-put. Thanks Sean. — Derek

  30. Ico Dimchev (2013-03-25)

    Hi;

    I came from Flash background ( five years AS2/AS3 programming ) and the best resource to learn JS was developer.mozilla.org/en-US/docs/JavaScript/Reference . It should be great for other flash developers to get the little tricks that makes JS different

  31. Ryan Deussing (2013-03-25)

    I've been using Anki for a couple months, and just figured out how to use code snippets with syntax-highlighing via this extension:

    ankiweb.net/shared/info/491274358

    In a nutshell, pressing the button this extension adds to Anki either pastes the contents of your clipboard as syntax-highlighted code, or applies syntax-highlighting to the text you have selected.

    This makes code much, much easier to parse, especially when using Anki on a mobile device.

  32. Brian (2013-03-25)

    Larry Ullman may be the best technical author out there. His writing has really helped me.

    http://www.larryullman.com/books/modern-javascript-develop-and-design/

    Also,as others have mentioned, the codecademy courses are a good way to learn basics or practice. For me, I really like physical books, but like to have a digital copy too for reference on the road and for quick searching!

    http://www.codecademy.com/learn/

  33. Heather (2013-03-25)

    Thanks for this! I'm struggling to learn JavaScript right now and I'm hoping this will help.

  34. James White (2013-03-25)

    Great timing with this post - I've been tinkering with JS for a few weeks and just started getting more serious. One thing I found very helpful: search on Meetup.com and look to see if there are any study groups or code-learning meetups happening near you. Learning is always easier in groups.

  35. Tony (2013-03-25)

    wow, these are such great resources. I'm a print graphic designer trying to transition to the web and have hit a road block with javascript but I think I'll do much better now thanks to your advice!

  36. David (2013-03-26)

    I'd like to throw in Addy Osmani's Learning JavaScript Design Patterns

    http://addyosmani.com/resources/essentialjsdesignpatterns/book/

    I can write JavaScript well. Organizing it and making it modular is something with which I continually struggle.

  37. Johan (2013-03-26)

    Agree with resources and approach. If add Object Oriented JavaScript by Stoyan Stefanov as my favorite JS book.

    I would encourage everyone to consider an MVC/MVVC framework for any noon-trivial app.

    My favorite is AngularJS - you can write great spots with very little JavaScript and JQuery.

    There are others including Backbone, Knockout, Ember etc. But I'm confident most people will amazed by what you can do with very little code using AngularJS.

  38. James A. (2013-03-26)

    Great post and I went and bought Professional JavaScript. I've recently finished learning with your recommendations, so I'm guessing that book will also be awesome.

    A friend which is an experienced JavaScript developer recommended me another book Effective JavaScript: 68 Specific Ways to Harness the Power of JavaScript
    Effective JavaScript is a great book to get *after* you've been programming in JavaScript for many months or years. It's not as much a tutorial as a list of tips for experienced JavaScript programmers. — Derek

  39. Gaurav C (2013-03-27)

    I always start out to learn languages with something I want to build. This could be a music review app or a tell your friends what music you like app, and so on. Something that keeps me motivated. Everything else about the language learning will fall into place. As for understanding top level architectures, if you have built and shipped our first few apps, you kind of start getting the picture!

  40. Race Knower (2013-03-27)

    Free advice and guidance on how to learn JavaScript? Yipee!!What a Good Samaritan you are to share your time and take the trouble to guide the not so knowledgeable on a confident path to access the knowledge they are after rather than take chances with the bewildering array of books on the subject that one would have to otherwise take a chance with and wind up achieving little or nothing in return. So thank you, you are KIND SOUL INDEED:-)

  41. eric (2013-03-27)

    Hi Derek,
    Thank you for sharing this with us!
    Quick question, have you read "Object Oriented Javascript" by Stoyan Stefanov. What do you think about it? I'm js beginner and I found it interesting as there're so many exercises.
    Keep it up!
    Haven't tried that one yet, no. I also hear great things about it. — Derek

  42. tom (2013-03-31)

    I agree with Alexander Bach Borius that Lo-Dash as an upgrade from underscore.js. The source code is very well commented, & could be a good advanced JS learning tool: github.com/bestiejs/lodash/blob/master/dist/lodash.js

  43. Matt (2013-04-01)

    Appreciate the recommendations Derek! Thanks!

  44. Kendall Giles (2013-04-03)

    Hi Derek,

    Ever since you posted this, this article has been stuck in my head. I just realized why.

    I'm trying to do what you did, but in reverse.

    I've got a background in engineering and computer science, but am trying to understand music. Not quick tricks, not tablature, not "Play 'Stairway to Heaven' in Three Easy Chords". I want to play an instrument, and I want to be able to express myself on that instrument.

    As a writer, I write what I want to write, so I don't just want to memorize a song and say I'm a musician.

    Learning what I want to learn has been difficult, since most resources I find are of the "here, play these three chords" variety.

    But you did it, so I have some hope of doing something similar, just in reverse.

    At least, that's my goal.

    So, thanks!

  45. Chenchen (2013-04-11)

    I just translated this article into Chinese. I wish I can help more pre-programmers learn JavaScript from you and your experience. http://www.ccforward.net/2013/04/learning_javascript_my_experience_and_advice.html
    Awesome! Thank you! — Derek

  46. Ryan McKallister (2013-04-16)

    Do you have any thoughts on server side javascript? I've heard good things but only from people who are .js nerds ;)
    Yeah. It's awesome. Learn Node.js and Meteor. Very worth the effort. — Derek

  47. Ashley Hoober (2013-04-27)

    I've always wanted to learn but have been wanting to know from someone the easiest way to learn it. Thanks a lot, I'm picking up the books tomorrow.

    Ash

  48. Shane Stanford (2013-05-25)

    I have found JavaScript difficult also, I am determined to grasp it!!

  49. Kurosato (2013-06-19)

    Thanks! Just a plain good 'ol Thanks! I bought The good parts too, mostly because it's appraised everywhere. I'm currently using Codecademy.com and codeschool.com (full membership) which helps me learning the tricks as well. I like the seeing+doing approach :-) I bought the book by Nicholas Zakas on my ereader and I can't wait to read it, cheers!

  50. Wang Yuan (2013-06-25)

    thank you very much for information provided!! I have tried to learn js for sometime, and got distracted by other programming languages like common-lisp, vbscript.. I want to get back to what I started, and I can see you pointed out a brilliant path. Thank you!

  51. Sam Holguin (2013-06-28)

    Hi Derek. Thank you for your insight, I'm just starting out with coding and took the JS plunge yesterday!! It's good to hear there is hope as it looks like a minefield to begin with!!! Thanks again.

  52. andy (2013-07-20)

    Derek, I just read Anything You Want today. REALLY GREAT BOOK! I used your ruby Anki deck, it was awesome. I've been working through the javascript deck too. I really appreciate your work. Thanks for sharing. I've had this idea for years to build a service to help farmers sell their food to restaurants. Do you think that idea could work?
    Thanks,
    -Andy

  53. Rod Castello (2013-07-29)

    Hi Derek,
    Thanks for this information. I've decided that this is the time to really learn it. This info is very helpful.
    Rod

  54. Rehan (2013-08-17)

    You write really well. Awesome writer! Thanks for the post.

  55. Jiaming (2013-08-27)

    Thanks a lot.I am a uni student working on the web development paper.This article helps me a lot.I found the article on a Chinese website.And then i found that you live in New Zealand now.Cool. I am studying in New Zealand too.I am kind of excited.I have to leave a comment right here.lol.

  56. Sachin Palewar (2013-09-09)

    Thanks a lot for writing this post. Real time-saver and immensely useful. Just starting my JS Journey. Ya! Too late I know, but I plan to make up for all the lost years soon. Lets see.

  57. jcomey (2013-11-02)

    hi boy ,very cool~!

  58. Ravi (2013-11-12)

    Thanks for your awesome post on Javascript Derek. It was succinct and highly informative. I hope to use your plan to gain admittance into a code camp and and change careers. Wishing you the best in your future endeavors.

    Best,

    Ravi Balsa RN

  59. Christine (2013-11-13)

    ThinkBIG also has a wonderful 2 day JavaScript training course which you can take in person or online live. It will give you the full understanding in a short amount of time! http://thinkbiglearnsmart.com/javascript-programming-training-classes/

  60. Zac Crawford (2013-12-15)

    Thanks for saving me a lot of wasted time and money. Your article along with many insightful comments has helped point me in the right direction. Thanks so much again!

  61. Jaime Inofuentes (2013-12-23)

    Thank you very much for your write up. It is very helpful. I have a question. I was looking to find the best way to learn javascript for my grandson who is 12 years old. He is very interested on learning javascript. Would you say that Eloquent JavaScript - by Marijn Haverbeke is a book appropriate for his age?. Maybe you have other suggestions for his age? Thanks.

  62. Steve (2014-01-19)

    Many thanks, lots of people put up recommended lists without a understandable reason for their choices. I am a 54 year old ex (returning) professional photographer who used to dabble with building websites. I have now decided to concentrate on really learning to become a fully functioning Web Developer as a career, and your explanations of your learning aims and reasons for your choices have reassured me that your advice can be trusted and followed.
    I will be starting with "Eloquent Javascript" and then "Professional Javascript for Web Developers", also signing up to Lynda.com as I find Video tutorials very helpful as well.
    Once again, Many Thanks.

  63. Dave Woodall (2014-01-23)

    Hey Derek,

    Man, we INTJ's think so alike! haha. I just did this same process over the past 4 months, so it's fun to see this post now.

    I had the same experience with 'Good parts' and codeacademy.com as they were to short to start without the context.

    The two beginner books recommended were Professional JS, and Definitive Guide to JS. I opted for Definitive guide and read that twice.

    I laugh with my wife that these really thick books are the easy ones and the small ones like 'Good parts' or Metz "POODR" are the real challenges.

    The best JQuery book I found was PACKT's Learning JQuery. I just started Coffeescript this week b/c of work and reading PragProg's CoffeeScript book. It's fantastic.

    2012 & 2013 were Ruby & Rails Focus. 2014 is mastering the world of JS - the language itself, JQuery, testing with Jasmine, Coffee, Angular, and some Node if I'm lucky :-)

    How's New Zealand treating you?

  64. Parvez Ansari (2014-03-13)

    Hi Derek,

    First of all thanks for this lovely peace of guidance.

    I am keen to learn javascript and I think one should stick to a couple of books rather than confusing them selves.

    I feel Eloquent Javascript and Professional javascript for developers are the best books around to begin javascript.

    What would really help if you can list down few exercises/projects categorized as Beginner (5)/Intermediate (5) /Advance (2) that will force the learner to use each and every concept of javascript.

    This will help us develop confidence and a showcase to demonstrate our ability to apply somewhere as javascript developers.

    Thanks Again,
    Parvez


    This will help us

  65. Sergio Téllez (2014-03-15)

    I really recomend "JavaScript: the definitive guide", that book have everything. From the easier one to harder.

  66. Timur Rajabov (2014-08-12)

    Really good advices?I'm inspired by your article!

  67. George Batalinski (2014-10-06)

    Derek,

    Thank you for being awesome and pushing us to learn more. Ofcourse thank you for introducing me to Anki. Can you share your Anki Deck for Eloquent JavaScript? Reason: I wanted to compare it against mine - to see where I can improve.

    Here is my deck(work in progress - @ CH5)
    ankiweb.net/shared/info/1183428912


    Thank you
    See the bottom of sive.rs/srs - though I'm completely against the idea of using others' decks. Decks are not the teaching tool - they are just a reminder of what you've already learned. — Derek

  68. Anatoliy (2014-12-18)

    That seem a good way to learn the JavaScript, I am totally inclined to go through your path!
    Thanks a lot for this piece of advice!

  69. Zion Moulder (2014-12-22)

    I've been trying to learn JavaScript for YEARS. (Or at least A year; I overestimate time easily.) I'll take your recommendation. I've been learning HTML and CSS since i was 12 and really didn't understand both enough to build a webpage until late 13-14. I'm 16 now. Thanks for the advice; I'll take it under consideration!

    -Zion
    from Indiana

  70. Mayank (2014-12-26)

    Great advice . Thanks Darek

  71. Drake Myers (2015-01-12)

    When you say "read the first couple of chapters" of eloquent Javascript before jumping over to Professional JavaScript, how far exactly do you think we should go? The first 6 chapters? Maybe only the first 3?

    Thanks!
    -Drake

  72. Abhijot (2015-02-03)

    hi , derek
    Thaks a lot for sharing these resources .

  73. Gorka Molero (2015-03-03)

    Thank you! I had started already with Eloquent JS but wondered where to go next. Going to follow your advice!

  74. Pete (2015-03-04)

    I like "JavaScript for Kids" (2014). It could be subtitled "JavaScript for adults who want a clear explanation of functions, constructors, this keyword, canvas, etc." Written by Nick Morgan, a front-end engineer at Twitter. http://www.nostarch.com/javascriptforkids

    Interesting! Thanks for the recommendation. — Derek

  75. vioan (2015-04-01)

    Thanks for sharing. You mentioned that after a few chapters you moved to the other book. What do you mean by "after a few chapters"? Thanks
    You can go all the way through, if you like it. But somewhrere around Chapter 7 of “Eloquent JavaScript”, I found it more productive to switch to the other book. — Derek

  76. Oscar (2015-04-11)

    Y que material o libros en español recomiendas? Agradecería la ayuda. Saludos desde Chile!

  77. Saubhagya Neti (2015-06-15)

    Thank you Derek for this valuable advice. I've trying my hand on JS for a month and never found a better advice. Your post brought me out of the sea.
    Thank you again

  78. Joseph (2015-08-21)

    Hi Derek,
    What are your thoughts of JavaScript and JQuery: Interactive Front-End Web Development by Jon Duckett, and if you had to choose one to read thoroughly, between that and Professional JavaScript for Web Developers, which one would that be?

    Looking forward to hear from you.

    Thanks,
    Joseph.
    Choose to learn the fundamentals of plain JavaScript - not JQuery. Because there's a very good chance you'll never need JQuery. — Derek

  79. Atty (2015-10-17)

    Thanks for this, as soon as I finish Wordpress I'm following this.

    For practice you can sign up with Codewars

  80. Joseph Graham (2015-11-16)

    Great article i have ever seen about Javascript

  81. cody (2015-11-23)

    do you recommend any online courses?
    No. Sorry I don't know any. I prefer books. — Derek

  82. Charles Villard (2015-12-16)

    Just stumbled across this article of yours looking for a deeper explanation of a JS example in Eloquent JavaScript. I appreciate the recommendations, but given Moore's Law and how much of the JS landscape has changed, I have to ask. How would you update this list? I follow many JS developers on Twitter these days, and have yet to hear about these books, whose respective links seem to lead to slightly dated materials. Thanks!
    The JavaScript basics are still the same. Yes new tools are built on top, but it helps to know the real JavaScript, minus any toolkits. That part doesn't change so fast. The books from 5 years ago are still completely relevant today. — Derek

  83. Maxim (2015-12-18)

    Im learning the basics now in HTML5 is it clever to start now Javascript (Im 15 years old)
    After you can make a website in HTML and CSS, then start with JavaScript. — Derek

  84. Anh Tran (2015-12-29)

    Hi Derek,

    Thanks for your post and the killer content. I've incorporate your list with other recommended resources in a post. You can check my post here:

    http://www.deluxeblogtips.com/2015/12/118-free-resources-to-learn-javascript.html

  85. Praveen (2016-01-03)

    Hi Derek,
    I have started reading/learning/working on js from past 6months. But unable to write the clean code. How do I write a clean code so the my app/site should run smooth?
    Ask an expert JavaScript programmer to look at your code and give advice. — Derek

  86. HareRamHareKrishna (2016-01-10)

    Hi Derek,

    Thank you for the great advice.

    I have read 1/4th of "eloquent javascript" , and some of the stuff in it is pretty confusing because it's poorly explained. I have gotten stuck multiple times and wasted hours wondering what the author was trying to teach.


    Is it wise to switch to professional javascript for web developers without completing the entire "eloquent javascript" book? Thanks!
    Yes, it definitely is. Give the other book a try. It may speak to you better. I've had that same experience many times, where a book that seemed to work for others just didn't work for me, and vice versa. — Derek

  87. Ramana (2016-01-13)

    Hi Derek,

    thanks for sharing your experience and I agree that JavaScript: The Good Parts - by Douglas Crockford is really tough to understand for a beginner like me.

    Any suggestions or book recommendations where can I find simple javascript projects for a beginner

    Thanks
    --
    Ramana

  88. MN (2016-01-25)

    Much appreciate your sharing. I am a motion graphic designer but due to demands from work and for my own shake, I will have to equip myself with knowledge of Javascript. I will follow your recommendation. Hopefully I can go far with this. Thank you

  89. Brian (2016-01-27)

    Derek, it's always fun to search Google and be linked back to your drops of knowledge. Thank you.

    For a very light and fun way to get started with JS, there's also http://CodeCombat.com

    for a free / comprehensive / community approach, there's http://freecodecamp.com

    Cheers

  90. arruu (2016-02-07)

    Eloquent JavaScript is really user friendly.
    Im a total newbie to JavaScript, and when I reached chapter 4 and was told to program a whole data structure with helper methods to insert and obtain elements with through recursivity, I just couldnt help to shout out loud : THIS IS EASY!!
    (sarcasm intended)
    ☺ I agree. I plan on updating this article soon to recommend something better instead. — Derek

  91. Praveen (2016-02-13)

    Hi Derek,

    I am learning js from past 7 months and able to understand its concepts. I need to know how to apply its concepts(like objects, functions, regex, xml, json, dom) in real time applications. If you can guide me then it would be great.
    Break down your application into the smallest possible tasks, then solve each task as simply as possible. There's a good chance you won't need many of these concepts. — Derek

  92. GetContented (2016-02-13)

    Hi! :)

    We're in-process with building a JavaScript tutorial which uses the principles that we used in our Haskell book... the ideas are that the learner needs a lot of practice with reading real programs before they write them, and that rewriting, then adjusting then finally creating their own is the best way to cement the ideas and understanding into their experience.

    Would love to know what you think:
    leanpub.com/happylearnjavascripttutorialvol1

  93. Devon (2016-02-14)

    Hey Derek. I just wanted to say a quick thank you for all you do. You're a wonderful breath of fresh air, especially when I see so much garbage and misleading information online. Thank you for all your articles, plus all future ones to come. ;)

  94. Mehul (2016-02-14)

    I highly recommend Anthony Alicia's JS and node JS courses on Udemy. Best JS teaching materials I've ever come across.

    www.udemy.com/understand-javascript/

    www.udemy.com/understand-nodejs/

  95. Ben (2016-02-15)

    Derek
    Interested in exposing my teenage girls to coding not to turn them into programmers - let them have an insight into coding
    It is becoming a trend
    Worthwhile, any resources?
    At school in IT they spend a lot of time on history IT etc, and little time on doing....
    Do you think java will be automated in later years?
    Trying to get teachers to teach them 'doing'in a fun way after school seems tohard for teacher and school, any comments
    Thanks
    See my other article on this, here. Pay for a basic $5/month webhosting account so they can have their own website to play around with. — Derek

  96. Jon (2016-02-15)

    Are you still recommending this book - Head First JavaScript Programming? I didn't see you mentioned this book.
    I don't know that one, though all their books are great. “Head First HTML5 Programming” includes a useful intro to JavaScript, then use “Professional JavaScript for Web Developers” for the real deep dive. — Derek

  97. Sophia (2016-02-21)

    Thank you for this advice, Derek.
    There are so many resources to learn JS, it's difficult to find out what is good and what not in this noise.
    I especially like the advice for using SRS, I wouldn't have thought to use it to learn to program.
    I used it to follow along an online course and it has helped me to retain the information much better.

  98. Bruce G (2016-02-23)

    Always enjoy your articles, Derek. thanks for continuing to send them.

  99. Herm (2016-02-23)

    Hey Derek! Just a quick question for you. First all of, I really enjoy reading everything you write and suggest. I really do feel as though you have been in my position and took great pains to make sure you knew what the best advice would have been in your situations

    Question is, since I looked at your blog a couple months ago; I really emmersed myself in Eloquent JavaScript, almost a quarter of the way done with it going through it thoroughly. Is there any reason why you aren't recommending it anymore?
    Almost everybody told me it got too abstract too quickly. I looked again at it, and the “Head First” books, and felt that Head First keeps JavaScript in context of the web, and that's really more useful and understandable. — Derek

  100. ramanjaneyulu (2016-02-23)

    RWE

  101. Abiodun (2016-02-23)

    Thanks so much for this advice. Any Advice on Php ?
    For any language, just find a couple of the most recommended books, and do them start-to-finish, doing all the exercises. — Derek

  102. Austin (2016-02-23)

    I've been asking some of my 'geeky' friends if they know coding in an effort to enhance some of my Quartz Composer visual efforts and it seems like none of them do. I only have a basic understanding of what Java is, let alone how to begin to learn it. The timing on this is quite helpful. Thanks

  103. Matt from NJ (2016-02-23)

    Hey Derek,

    I know you already have a ton of thank you comments here, but I just wanted to add another. Keep doing what you're doing. I'm so glad I came stumbled across that Tim Ferriss interview with you. Your site is such an amazing resource of valuable information.

    Thanks again,
    Matt

  104. James (2016-02-28)

    Boom! I am going to try this, this week!

  105. JB Moore (2016-03-04)

    Derek,

    I learned HTML and some JavaScript, but it was many years ago, so thanks for the tips on both.

    Merci,

    JB

  106. lokendra (2016-03-05)

    test

  107. Aaron (2016-03-07)

    Nice guide!

    Two more recommendations:

    Eloquent JavaScript: http://eloquentjavascript.net (covers JavaScript's various uses, in an interesting interactive format)

    You Don't Know JS: github.com/getify/You-Dont-Know-JS (covers JavaScript's tricky details, not just the good parts)

  108. d4rp (2016-03-08)

    too late to learn coding at 45?
    Not at all. I'm 46, and just learning.

  109. d4rp (2016-03-09)

    "Happy, Smart, and Useful" article is the door to another perception! {found it while searching for JavaScript tutorials} :)

    Cheers Derek!

  110. AkDeepakSamanta (2016-03-16)

    Very fine learn your own knowledge , Thank you so much.

  111. Steven (2016-03-21)

    This was the provocation I needed to get started. Great book recommendation, I would have bought the epub but the actual book is delightful

  112. Shadi Mirza (2016-03-21)

    Thanks for this guide. After hitting a wall on Free Code Camp, I decided to try this path. I'm very impressed with Head First HTML 5 so far. Learning from the book is helping my retention because I have to type out ALL the code instead of just the portion that will get me the answer (as is the case on FCC). The level of explanation and detail also helps.

  113. Simone Brunozzi (2016-03-23)

    "Head first HTML5 Programming" is now 5 years old. Things in this space get old very quickly.
    I wouldn't trust a 5 year old book on HTML5.

    Is there a better (newer) book that you would suggest?
    No, it is current. I re-read it before recommending it here now in 2016. Just read it and do the exercises until you know it. HTML has not changed in 5 years. — Derek

  114. Ramon (2016-03-28)

    Hi Derek

    Thank you for your post. Very helpful info. I just had a couple questions.

    So, even though the Headfirst book and Professional Javascript book are both back from 2011 - 2012, do you still think they valauble when it comes to learning Javascript in 2016? I know they aren't going to teach ES6 or anything, which is fine. I just always worry about using resources that are too outdated, as even Zakas has once lamented about how quickly Javascript books can become outdated, including his own.

    Is there anything more up-to-date that covers things at the same level or breadth and depth?

  115. Manuel Aguilera (2016-04-04)

    Hi, thanks for the resources :D wanna know what do you think about the Head First Javascript book?
    It's probably great, too. All of their books are. — Derek

  116. Joni Sar (2016-04-10)

    Hi Guys,

    My name is Jonathan and I'm a part of the Cocycles team.

    We created something brand new, and extremely useful: a working code search engine.
    It allows people to search for code they need, going through millions of open source lines, in a blink of an eye.
    All you have to do is describe the code you are looking for, for example: "create random string"
    and Cocycles will find the best implementations for that code from across the open source.
    It will present a full src implementation, docs, usage examples and much more. It currently supports JS, and more is soon to come: www.cocycles.com.

    We believe in making code accessible for everyone. For that reason, we believe that helping people learn how to code- is nothing short of a worthy cause, and a worthy mission.
    We also think you are doing an awesome job at it.

    So, we would like to give a willing hand.
    We can create a small search bar which you can add where and when ever you see most fit, and it will allow your JS students to easily search and find any piece of code from throughout the open source: looking, learning, trying and using the best code written by the best developers in real world conditions.

    We would not ask for anything in return. We would like to help people learn and master the field, because we believe it is the future.
    we will not offer this to most code schools, only those who we believe are doing a great job.

    Would you like to receive this capability from us?
    I'm here for anything more you might need or want to know,
    Jonathan

    Jonathan Saring
    Head of Growth
    +972-50-648-2224
    www.cocycles.com

  117. Dark_Knight (2016-04-10)

    Now there is a new book called "Head First JavaScript programming". It was published in 2014. "Head First HTML5 Programming" was published in 2011. Any idea how this book is? It coves things like closures, which is not present in HTML5 book, but it misses out on AJAX.
    What do you recommend?
    Yes I checked “Head First HTML5 Programming” before posting this article in 2016. It is still relevant because it puts JavaScript in the context of making active web pages. The other JavaScript books are more abstract. That's why I recommend “Just read through it quickly in a couple days, before your deeper learning begins.” — Derek

  118. Abhishek Biswas (2016-04-14)

    Thank you for introducing me to freecodecamp.

  119. Bill Wilkins (2016-04-16)

    Thanks for your article. I will try.

    Old Bill

    P.S. 74 and counting.

  120. Ismail M (2016-04-18)

    I want to think you so much for this information -_-

  121. Anthony (2016-05-11)

    Thank you. I am just a guy in Tulsa Ok. Who was interested in websites and Web creation. Typed in how to learn javascript. It's awesome that you have a plan. Very grateful. Looking more in to what your page is. Liked your description.

  122. Thura Moe (2016-05-12)

    Oh, great post. Now, I can see what I need to do. Thank you so much.

  123. Guillermo Guzman (2016-05-23)

    Thank you for your articles, they are a good source of information and inspiration at the same time.
    Best.
    Guillermo

  124. Pratik Kale (2016-05-26)

    Hey, thanks for the post. Helped a lot.

  125. Alex (2016-05-29)

    I'm a self-taught javascript programmer. I appreciate it that you share your experience with us. I'm impressed by your article: "There's no speed limit", and so many other articles you wrote on this site.

  126. gokulnath (2016-05-31)

    derek thank u for ur guidence,

  127. Jonthue Michel (2016-06-05)

    Nice post! have you checked out Practical JavaScript!!
    www.reddit.com/r/learnprogramming/comments/4mm6lz/free_javascript_video_course_at_watchandcodecom/

  128. Gerd (2016-06-10)

    Learn Building Front-End Web Apps with Plain JavaScript (http://web-engineering.info/JsFrontendApp)

  129. Ed (2016-06-19)

    Just wanted to say thanks, it's great that you took time to point out how things should be done in order to deeply understand JS. Thanks!

  130. Laurence Peter Brown (2016-07-10)

    Sir,

    You have totally made my day.

  131. Ryan (2016-07-19)

    Why not the Head First JavaScript Programming (2014) book instead of the HTML% Programming?? Im working through it and find it very good.

  132. Robert (2016-08-03)

    Can I start with Head First HTML5 Programming without reading Head First HTML with CSS & XHTML?
    If you already know HTML and CSS. The HTML5 Programming book really just goes into the stuff that's beyond HTML, mostly JavaScript-based. It's important to know HTML and CSS selectors really well first. — Derek

  133. Tom Purl (2016-08-05)

    Thanks for the Head First recommendation! I was an early adopter of JS (back in '98) but I've barely touched it since 2005. This book was really a great re-introduction to that *and* a lot of new cool stuff you can do in a browser.

  134. Luis Vargas (2016-08-28)

    Dear Derek,

    Thank you. Your article motivated me to start learning JavaScript a few months ago. I do this during my commute and on the weekends. I have reached a point where I am actually enjoying the process and I will be ever grateful for the motivation to start on this path. If you allow me, I would like to recommend a great course I found online. It's called Practical">www.youtube.com/playlist?list=PLViRFZPCqDBe9R1b24bCcLxW4VumtaVdn">Practical JavaScript by Gordon Zhu. For a try beginner like me, it has made a huge difference.

    All the best,
    Luis
    Thanks for the tip, Luis! — Derek

  135. Tim (2016-09-17)

    I need to learn JavaScript to determine the amount to tax a person of a certain income bracket or make change in terms of dollars. I'm in College and struggled with JavaScript.

    What I've learned so far came from the book by Jon Duckett JavaScript and JQuery incredible. I think I'm going to purchase Web Developers 3rd ed and the cookbook right now.

    Thank you for posting

  136. Daan (2016-09-19)

    Thanks for the learning flow, Derek! :) I like the Head First book as a starting point.

    For people reading the Head First book, the Geolocation API isn't supported anymore on non-https domains in the Chrome versions after April'16.

    If you would like to test/deploy your scrips to your own server, make sure it is secure! Otherwise you will keep seeing 'Permission denied' :).

  137. Sang (2016-09-27)

    Hi Derek, this seems a pretty great guide for studying JavaScript. I'm a novice and this can be a good guide for me to step a foot into JS. I found that Head Start book also has the "Head Start JavaScript Programming". I just wonder what is the differences between 2 of them?
    The HTML5 book focuses more on actual usage on websites. Better intro. — Derek

  138. Sudheer Darla (2016-10-02)

    What about You dont know js..? There are lot of sources..and lot of confusion.
    That">github.com/getify/You-Dont-Know-JS">That series of books looks good, and I'll probably go through them next. — Derek

  139. Mayur (2016-10-09)

    I am currently going through the free code camp, and you have said don't learn jquery until I know javascript first, but doesn't the project require javascript?
    If Free Code Camp requires jQuery, then do what they say. Their course is well-optimized. But for anyone else not doing that course, I think there is no need to learn jQuery, and you'd be better off learning to do those functions with plain JavaScript. — Derek

  140. Sang (2016-10-18)

    It's me again in comment #152. Some of the codes in the book "HF HTML5" that doesn't work on my Browser, I did like them do but nothing happened ;|.

  141. Wang Peng from China (2016-10-18)

    I think this advice passage is the plain guide and useful just like you recommend us to learn plain javascript ,it can help us use a right way to learning web ,html css javasrcipt and so on,because now(2016),there has too library and frameworks,it offen makes our new cooders confused,me is not the exception.

  142. Qamar (2016-10-23)

    Very good article, real sense of learning the foundation of JavaScript.
    Thanks for sharing your thoughts,

  143. Alex (2016-10-27)

    As someone who is at the very start of his learning I have found your article and all the comments since very helpful.
    Thank you.

  144. Ryan (2016-11-06)

    Hey, thanks for this article. I already started using Head First HTML5 and it's really helping me to bridge the gap between abstract Javascript and just making it work in the DOM.

    However, the book is just a bit out of date. Enough so that the twitter API thing doesnt work. Any ideas or pointers where to learn how to set up Twitter API with latest version?

    Thanks again!
    Probably Twitter’s">dev.twitter.com/">Twitter’s API site — Derek

  145. Rob (2016-11-19)

    Hi Derek, I just stumbled on this website which has a ton of resources (including podcasts, books, tools). Probably not the ideal place for total beginners to start out, but it's certainly useful to me now I've been going a few months.

    http://jstherightway.org/

  146. George Antohi (2016-12-08)

    Hi all,

    Great indeed! I found freecodecamp.com to be the best approach especially for people coming form strong design background.

    I can add to the list http://eloquentjavascript.net/ book.

    Bests,
    George

  147. George Arthur (2016-12-15)

    Thanks man for all this, Im doing Comuter science at the 6th form in the Isle of white and we've got to learn at least one language and this has been a great help. Also how long roughly would it take to easily understand Javascript?

  148. Duc Lux (2016-12-16)

    thanks so much

  149. roshan (2016-12-17)

    this is so much good

  150. puneeth shivalingaiah (2017-01-07)

    A big thank you :) :) :)

  151. Christopher Buteau (2017-01-09)

    I also had to ramp up on javascript and I found one of the best methods was to turn to node js for tooling.

    If I need a file formatter or something I write it in node js now.
    It really helped me on the learn vanilla javascript.

    Node JS has a bunch of workshoppers they call them.
    They are small execises that force you to write code and then program then validates the code.

    nodeschool.io/#workshopper-list

    Finally on the Node JS front.
    They improved debugging so you can use CHROME.
    medium.com/@paul_irish/debugging-node-js-nightlies-with-chrome-devtools-7c4a1b95ae27#.cv9stgr82

    Great post.
    Thanks for the tip! — Derek

  152. sanjevini (2017-01-18)

    hi.

    I am ui developer 2 year experience but still i found very difficult to learn javascript i dnt know how to apply the logic so is there any way to learn javascript

  153. Ivan (2017-01-21)

    I'm just reading leanpub.com/javascriptallongesix
    Not usual become expert in smthng in X day type of book- uncovers JavaScript internals very understanding way. What was magic so far is not anymore thanks to Reg.
    Ivan
    Yeah! I just got it, too. Haven't gone through it yet, but I hear it's great. — Derek

  154. Martin Frické (2017-01-24)

    Hi Derek,
    In your Anki Javascript deck, the card
    Get a random number between 0 and 27
    with answer
    Math.floor(Math.random() * 27)
    perhaps should be
    Get a random integer between 0 and 27
    with answer
    Math.floor(Math.random() * 27)
    or
    Get a random number between 0 and 27
    with answer
    Math.random() * 27

    Thanks for providing this resource.
    All the best,
    Yours,
    Martin Frické

  155. jerry (2017-01-28)

    i have a question on the hiring part. Wouldnt prospective employers require a degree,certificate some sort of proof of education? Or is this field so in demand that experience alone stands out?

  156. Werner (2017-03-19)

    Your sharing of this journey helped me. I'm from the era of DOS (diskette operational system) and super-cal, lotus 123, basic language d-base, pascal.- Does Javascript uses, Input, let, output, print, let, if, then, go to and again what you share opens up for me the possibility to start with Java.- I like to be able to write apps, is Java good for it?

  157. Tim (2017-05-28)

    I've heard great things about this book

    Amazon.com

    JavaScript: The Definitive Guide: Activate Your Web Pages (Definitive Guides) Paperback – May 13, 2011
    by David Flanagan (Author)

    JavaScript Absolute beginner's guide (might be too easy for most)

    Kirupa Chinnathambi
    Me too. — Derek

  158. Isela (2017-07-10)

    Thank you!

  159. Mia Respeto (2017-10-17)

    I have never done JavaScript and I want some great advice on how to start

  160. Shunsuke Taguchi (2017-11-16)

    Hi Derek,

    Thanks for the awesome article.
    I've been studying programming for a year and a half. My goal is to make a web app that make people's life better.

    I have tried Ruby and Rails first but it was pretty hard for me. And I found this article and now learning Javascript.

    Which do you think better to make web apps Ruby(Rails) or JS?
    For simplicity, learn Ruby on Rails. It's not changing as fast as JavaScript is changing. Both JavaScript and Rails are hard, but you can do it. — Derek

  161. Michael King (2017-11-23)

    Thanks a lot this was a really helpful piece of information.

  162. Ali (2018-01-24)

    Hi Derek, great article. I am learning exactly how you adviced. I have to disagree with this : "Just read through it quickly in a couple days, before your deeper learning begins." . The book has 600 pages, I am at 250 and it is not as easy as i expected. :D Hope I will finish the book in next month.. :D thanks for amazing article!!!
    You don't need to understand everything 100%. It helps give you the “lay of the land” before you get your hands into the dirt. — Derek

  163. Nikita (2018-03-15)

    Hi Derek,

    Thank you so much for this learning path!

    I know this is an old post, but if/when you have a moment, here's my question: is the 3rd edition of Professional Javascript for Web Developers still relevant to start reading in 2018? They have a 4th edition upcoming, but it's quite a wait until June and I want to start now.

    What I'm afraid of is, will I learn some outdated methods and practices from the 3rd edition that could actually hinder my progress with Javascript, or is it still a great and relevant base knowledge, and the 4th edition with ES6/7 is more of an "add-on", rather than a fundamental change of how one would write JS in 2018? Thanks!
    Agreed. I think it's outdated now because of ES6. So instead follow everything else recommended here except “Professional JavaScript for Web Developers” — Derek

  164. Rob (2018-05-16)

    I just got a job as a direct result of following Derek's instructions.

    Before, I was doing middle management stuff and really not enjoying it. So I followed this post to the letter and then applied to jobs, and it totally worked.

    ☺ !!! — Derek

  165. Kathleen Buckley (2018-06-29)

    Is it realistic to land remote-work gigs with this learning method? How much time would you allot to achieve this if one goes at it like a full-time job?

  166. Slobodan (2018-11-05)

    Hi Derek.
    Are these books outdated, since they've been published more than a decade ago?
    Mostly not, no. I updated the book recommendations just a year or two ago. — Derek

  167. Bart (2018-11-28)

    Good overview for people who learn JS.
    From books I would also recommend Head First JavaScript written by the same authors as mentioned on the top book.
    From free online resources I can recommend you http://www.javascriptinstitute.org/javascript-tutorial/ it covers also ES6 issues.
    Thanks! — Derek

  168. Aziz Ali (2019-02-16)

    You don't know JS helped me a ton. I have created a detailed JavaScript Cheatsheet that covers basic and advanced concepts. From creating variables to coercion, arrow functions, event loop and more.

    Here is the link for it ilovecoding.org/blog/js-cheatsheet

  169. VictoriaF (2019-03-03)

    "Professional JavaScript for Web Developers," 4th Edition will be available on Amazon on 12 March 2019. It has been updated to cover ECMAScript 6 and 7 and the major re-imagination and departure from ES 5.1. BUT the authors are different: 3rd Ed is by Nicholas C. Zakas , 4th Ed is by Matt Frisbie.

    Victoria
    Thank you! I'll check it out. — Derek

  170. John (2020-04-26)

    Hi,

    How about Elixir and Phoenix? Thanks.
    Later. — Derek

  171. Jim (2020-06-23)

    "Major social network company rejected me after an interview with, 'We didn't think you knew enough JS.'"

    --Kyle Simpson
    Author of "You Don't Know JS mentioned above. ☺

    rejected.us/

  172. Mario (2020-06-25)

    I've tried some of the resources you mention and have worked very well. I just haven't read books. JS is definitely worth learning, especially pure JS. I would just caution readers that all this takes time, and some effort if you've never programmed before. You may need some discipline to push through the roadblocks.

  173. Luc (2020-06-27)

    Really funny !!!
    writing about Javascript and using the Java logo which is a totally different language.
    Ooops! — Derek

  174. javajosh (2020-06-27)

    Nice article, Derek. I am now an ES6 expert, but it took a while to get here, and learning other things in tandem was more of a hinderance. I will certainly forward this article to those who ask me how to learn.

    As an aside, one of the more perplexing libraries I've run into is RxJS. ReactiveX's value proposition seems to be that you can make complicated state machines in one line of builder code, but I honestly still have a hard time having any intuition about it. If you're familiar with the ReactiveX frameworks I'd love to get your take on them. (RxJS in contrast to React which is quite straight-forward if you ignore the tooling, and Redux, which is beautiful but verbose).

  175. Sepehr Vakili (2020-07-05)

    Thanks for sharing Derek. Definitely agree that learning the fundamentals is key before any framework. Check out eloquentjavascript.net/ it’s really well written and free online.

  176. Allen (2020-07-08)

    Criteria for a good job:
    - A decent wage - be it financial or psychological reward.
    - Personal development.
    - Autonomy.
    - Being creative and making a difference.
    - The job should be a craft.

    Being a software developer in today's world can satisfy all of the above criteria.

    Derek's advice paves a succinct path to that job.

    With the 'New Normal' software development can offer all of that and more. You can find a job in any country and work anywhere and the two don't even have to coincide.

    Listen well oh readers of Sivers!

  177. Rowland Carlson (2020-07-11)

    The book "Pragmatic Programmer" talks about investing in your knowledge portfolio. In one part they talk about Investors buying low and selling high to maximize return. They use this a metaphor to learn emerging technology before it becomes popular.

    But if we use the metaphor to its fullest, we know that investors that try to time the market end up under-performing index funds that you buy and hold.

    I see learning old languages without the frameworks as index investing. The value of the investment becomes apparent as frameworks fall out of favor. Everyone that learned only the framework now has to hustle to learn the new one. But understanding the underlying language makes every framework easier to learn, because frameworks are built to solve problems in the underlying language.
    Nice comparison! — Derek

  178. Bahman sadeghi (2020-07-11)

    I love the article. Honest and deep as expected.
    I actually have a question related to your website.
    I love how simple and focus and practical it is. To be honest I really like a personal website like yours. So what technologies do you use for your website?
    I do not want to copy the whole thing to be clears. I want to make website which I could write my daily journal there and my article once in a while with comment section. Thanks

  179. Pranesh (2020-07-14)

    I first learnt html and css by Head first html and css. It was fun and well put together.

    Then I started learning JavaScript by Head first JavaScript book. But it didn't interest me. I felt like so much talking and I didn't feel like I was learning.

    Then I switched to the book called A Smarter way to learn JavaScript by Mark Myers. This book was short and crisp (less talking, more programming). Everything was nicely explained and well structured like Derek's article. If you are new to programming like me, I highly recommend this book as your first JavaScript book.
    Thanks for the tip! — Derek

  180. Raghav Mehra (2020-07-15)

    Why'd you replace "Professional JavaScript for Web Developers" with "Head First Javascript Programming?"

    What changed?

  181. Jose (2020-07-18)

    Hey Derek, just read “anything you want” Its July 2020 - which computer code/language would be good to begin learning today?

    Thanks!
    JavaScript — Derek

  182. DANIEL A HEUERTZ (2020-08-02)

    Please add me to your blog mailing list

  183. Kevin Olega (2020-08-11)

    Thank you so much Derek. This is my next project. You've been a big help to me.

  184. Dan (2020-09-09)

    Hi Derek

    Would you recommend learning HTML/CSS first before delving into javascript? Seems to be a bit of advice I see floating around for a complete and utter newbie!?
    MUST, yes! Only takes a few days to learn it well. Definitely do it first. — Derek

  185. john lam (2020-09-16)

    My son is about to graduate and he is worrying about finding a job. He told me the only consistent interest he has was programming, but he doesn't have a CS degree. I told him to learn javascript because he had some web building experience, and javascript is so in demand. And he can always use this for job or his own business. He is now following your advice to the teeth. Thank you so much for sharing this.

  186. Ravindra (2020-10-02)

    The book I loved most is Eloquent JavaScript! eloquentjavascript.net/ You may also love it!

  187. Mukhtar Tanimu Garba (2020-10-02)

    After struggling to learn how to code in JS for about 2 years. I luckly ran into a Youtube clip of Mosh Hamdani on JS. Then to his website, the story has now changed.

  188. Mehul (2020-10-15)

    Wow the JS landscape has changed so much since you first wrote this post!

    I found these two courses on Udemy by Anthony Alicea cleared up a lot of mysterious but foundational JS/Node concepts. I feel a lot less awkward around the language and the eco system as a result:

    Learn and Understand NodeJS
    www.udemy.com/course/understand-nodejs/

    JavaScript: Understanding the Weird Parts
    www.udemy.com/course/understand-javascript/

  189. Will Lotherington (2020-10-18)

    This is more for people who want to launch a software engineering career, but the Launch School (http://launchschool.com/) program is incredible. This isn't an ad or anything, I'm just a long time student and a huge fan of their program and philosophy. Read through their Pedagogy (launchschool.com/pedagogy) and Mastery Based Learning (launchschool.com/mastery) philosophy.

  190. Hayden Wilson (2020-11-02)

    I've just started learning Javascript with a course from Treehouse (not a plug). I don't know if it was the 'best' choice. But it was a way to get started and I'm committed.

    I really love the empowering feeling of completing and building things. My Dad was a builder. I really admired his ability to build useful things with his hands (he would build houses, cabanets, even made me a wooden sword one day. Anyway, I'd always felt kind of inadequate or less than because I didn't build things with my hands like he did...But now I can see that I am, and can, build useful things - especially with a ton more practice.

    I have made a couple of SUPER basic programs, but it's fun to see it come to life, and also debug (even though that's frustrating at times).

    The sky is the limit!

  191. Lance Goyke (2020-12-05)

    The point about learning plain old JS before jumping into frameworks is really important if you're just starting out. I've wasted a lot of time and money trying to learn frameworks when what I needed was basics.

  192. FNEG Xin (2020-12-14)

    Hi, Nice to read this article. How brief and precise it is, I totally enjoy the beauty of the words. Thank you.
    I did a few small projects of mine in the middle of this year, using Js/Node.Js. I love the feeling of woking on Js that's able to run through backend to frontend.

    For instance,on August I hoped to break down one book named "A calendar of wisdom:Daily Thoughts to Nourish the Soul" into a set of short sections. I set up a server to handle the function of breakdown using Regexp, and the function of file showing using ejs template and express2http.

    One big problem I encountered was about how to make the contents showing once in the webpage attract more reader's attention. I guess readers were likely tired to read a full and long article in one page, perhaps someone had forgotten big volume of details till the end or someone had jumpped away from the middle.

    Thus I designed a slider for the contents to merely show one page after another. Each slide contained 8 lines and 150 words in total. The number of slides depends on how many words one section had.

    In the process to decide how many slides to show, I took at least two nights to think about whether the calculation was manipulated by node.js(backend-Http server) or by Js(frontend-Browser).

    I tried two ways in fact, at last I applied the way to let browser decide how many slides would be created dynamically. It's better choice between both, I think.

    So far one remaining thing for me is that the words per slide don't fit full page, as the number of it is hardcoded by me with 150.;-(

    I know why I love Js to coding, it's because it's helping me to easily and joyfully read the favorite books. It helps me to read the Classic book instead of the popular book, helps me to Stop reading after 5min instead of Stop till feeling tired. These two questions always challenge me for reading effectiveness. It seems like Js help me to get them solved now.;-))

  193. Byron Pearce (2021-03-28)

    Just started to break into the JS world and started with Launch School's (www.launchschool.com) Open Book Shelf title - Intro To Programming with JS. They are a great resource for either Ruby or JS - I highly recommend!

  194. Chris (2021-05-04)

    This is greatness. I would also include when you get some basics under your belt:
    1. Javascript: The Hard Parts by Will Sentance
    2. Deep Javascript Foundations by Kyle Simpson

    These are both extensive video courses on frontendmasters.com ($24 a month?). Worth every penny...just unbelievable really.

    Cheers!
    Thanks for the tip! — Derek

  195. Paul Walsh (2021-10-29)

    Something I found immensely useful before being able to write actual software was solving lots and lots of problems on http://www.codewars.com/ and learning from other user's solutions.

    Another great great book is Composing Software by Eric Elliot.

  196. Kevin Izevbigie (2022-04-07)

    For anyone who wants to learn, hopefully you can learn from my experience:

    I am 6 months into my programming journey. And I have got to a point where I can build applications on my own with just the technical documentation + code editor.

    At the start, I read Heads First book. Then I built multiple applications over the first 3 months for my company with node JS. I didn't really know what I was doing but I managed to string a few useful applications together.

    I learned tooling like vim/git/GitHub/command line etc. (90% of my computer time is in the terminal or vim now). It's very important to master your tools.

    Only now, am I getting back to reading. I skimmed a lot of books to figure out which one was worth reading... A lot of books are bad.

    Rediscovering Javascript is simply amazing, especially after you gain real experience.

    The most important skill anyone needs to learn for programming is how to sit down, in silence for 2 hours+ without distraction.

    I often sit down for 4 - 6 hours per day to work on this.
    Thanks for sharing that experience, Kevin! That really helps. — Derek

  197. Lars (2022-09-07)

    This is a great post.

    I used many of the suggestions and resources from both Derek and the community (in the comments) and based on that I have achieved a pretty good level of JS.

    I am now looking at full stack frameworks for web development.

    Rails, Django, Laravel, Node.js, .. ?

    My goal is on my own to develop (from a-z) my ideas for smaller niche SaaS applications. I guess it is kind of a one-person framework that I am looking for.

    Does anyone have some good ideas, recommendations, or perspectives on this decision?
    Learn Phoenix - www.phoenixframework.org/ - with this book: pragprog.com/titles/phoenix14/programming-phoenix-1-4/ — Derek

  198. Will (2024-03-08)

    Great recomendation! I've used eloquent JS and freecodecamp to become a software dev 5 years ago and it changed my life
    ☺ — Derek

  199. Morgan (2024-03-26)

    I think you just changed my life. I am a lifelong learner who unfortunately suffers from schizophrenia. I had a bad episode and most of my ability to recall things from day to day dissapeared overnight. I went from being brilliant to only able to watch soap operas on most days. I couldn’t even type on my phone where I used to be a master texter (much to my parents chagrin). Reading about your passion for the Jankist system reminded me of the days in school and what it took to become smart, lots of flash cards and passion to make something work. I too, want to learn a programming language and you’ve given me the perfect addition to learning HTML and CSS. I’m tickled silly about finally giving myself permission to take the plunge off the deep end of the learning pool and focus up. No longer am I looking at only using all the affiliate marketing courses and learning the get rich quick schemes. Now, I know where to put my focus where it will pay off. For this, I thank you. God bless your heart and many happy returns.

  200. raahim azfar (2024-06-25)

    if you get stuck, use mdn web docs to learn more

    WHO'S HERE FROM 2024

  201. Dahlia (2024-06-26)

    Hi Derek, curious to know what are your thoughts about learning programming in the world of AI?

    What would be the benefits of still learning the fundamentals traditionally vs starting programming by telling AI what you want and using the code? And picking up the fundamentals over time through trial and error.

    I know someone who is self-learning programming, they've been building apps with the help of chatgpt. I guess I don't know what to say about why it's still important to learn the fundamentals. Because the AI generated code works.
    Just like writing is a way of organizing your thoughts, programming is a way of thinking how to build things. It's very creative and even philosophical. — Derek

  202. Pranay (2024-08-28)

    Does this work for a total newbie?

    Do I need to start with HTML and CSS and then move to Javascript? If yes, do you have any suggested resources for the same?

    Thanks in advance ☺️
    Yes, I recommend learning HTML first, then CSS, then JavaScript. See the link from the first sentence of this article: sive.rs/prog — Derek

  203. Belinda (2024-09-09)

    Thank you for the great article, Derek. I have been trying to learn javascript for a while, however, my progress has been rather slow, partially because I struggled with learning using video tutorial/content. Since I started with the book, everything becomes a lot easier and a lot clearer. I still use some videos to help me understand some concepts when I feel the book didn't explain them clearly enough for me. I guess I prefer a great book too. Reading calms my brain, while videos make my brain less focused (I guess). I also enjoy doing the final test project/exercise via FCC, but I get bored quickly doing those guided step by step tutorials. Thanks again. I enjoy the book and learning the process very much!

  204. MOHAMED ASLAM (2024-09-11)

    I am currently learning Js
    your advice is although scary but really valuable for a Beginner learner for me
    Useful not True rocks ...
    you exceeded our expectation yet again.
    the bridge analogy goes beyond any ways.