Updated: 10/7/2016
I wanted to offer up what I felt were good books/resources to carry you through learning JavaScript.
Note that some resources will overlap between levels. That should be expected as some books cover a wide breadth of language features. Also, I am NOT covering blogs in this post, only books (print and online). If you think something’s missing, please add it to the comments below.
Also, I’m not saying that you need to read every book mentioned below. These are books that I’ve read over the years and found incredibly useful so I’m categorizing them to make it easier for you to get going. I’ve done the legwork so need for you to do the same. Choose the books that you feel suit you.
Introductory
These are books that will give you the fundamentals of the JavaScript language and get you started:
- JavaScript: The Good Parts
- Professional JavaScript for Web Developers (Wrox Programmer to Programmer)
- Eloquent JavaScript (Online Resource)
- Speaking JavaScript: An In-Depth Guide for Programmers
Intermediate
Once you’ve gotten an understanding of the basics, it’s time to get a resource that will take you deeper and in many cases be your reference for years to come. These books fit that description.
- Professional JavaScript for Web Developers (Wrox Programmer to Programmer)
- You don’t know ES6
- Understanding ES6
- Eloquent JavaScript (Online Resource)
Advanced
You have a firm grasp of the JavaScript language and now you want to step up your game. These books will help you get the knowledge you need to organize your applications and build maintainable code.
- The Principles of Object-Oriented JavaScript
- High Performance JavaScript (Build Faster Web Application Interfaces)
- Object-Oriented JavaScript: Create scalable, reusable high-quality JavaScript applications and libraries
- JavaScript Patterns
God Mode Reading
As Peter van der Zee likes to call it “godmode; the actual specification”. Want some deep reading and know every nook and cranny of the language. Here ya go:
- Standard ECMA-262 ECMAScript Language Specification 3rd edition (December 1999) – PDF File
- Standard ECMA-262 ECMAScript Language Specification 5.1 edition (June 2011)
- Standard ECMA-262 ECMAScript Language Specification 6th edition (June 2015)
- Standard ECMA-262 ECMAScript Language Specification 7th edition (June 2016)
What if *I* had to Choose Just 3 Books
If I had to choose just three books to have in my stash, I’d go with the following:
- Professional JavaScript for Web Developers (Wrox Programmer to Programmer)
- Object-Oriented JavaScript: Create scalable, reusable high-quality JavaScript applications and libraries
- JavaScript Patterns
Some may disagree with me on this but I’ve personally found each one of these books incredibly valuable. Professional JavaScript for Web Developers is a complete reference and covers EVERYTHING. All developers need a book like this. The book on Object-Oriented JavaScript is great to give you an understanding of leveraging one of the best features in JavaScript. Once you get past the basics, you’re going to want to identify key coding practices that make your code better and more maintainable. JavaScript Patterns helps you do that.
What would you guys choose?
Excellent list Rey. I just picked up Javascript: The Good Parts last week hoping to improve my JS skills. So far it’s been great, very informative, easy to follow and I’d definitely recommend it as a beginner JS book.
Thanks Matt. JS: The Good Parts is definitely a good book. It seems like a nice balance of many topics and small enough to read quickly.
I am reading JavaScript – The Good Parts and so far it is good. Do any of those other books teach you how to create JS applications using the pattern Nicholas Zakas talks about in his YUI presentation on scalable application architecture? Or do they discuss other good patterns as well?
Hey David,
I would say that Stoyan Stefanov’s book, JavaScript Patterns, will help you there. Definitely worth buying.
Rey
Thanks Rey. Do any of these books discuss ways to architect applications that use some library as a base?
Some skim over the topic but generally focus on the language itself.
You’re missing “godmode; the actual specification”. It’s a tough cookie, but after intermediate/advanced you’ll learn more from the spec than most books out there.
Updated in your honor. Refresh and check it out. :)
Doh…you beat me to this much needed post. The most important info here is the, “if I only had to pick 3 books”.
This is the same conclusion I have arrived at.
Zakas’s book does not get enough credit!
Agreed. I know some people may not agree with the list but for me personally, I’ve found these books immensely useful.
Just curious, how long did it take you to read all of these? I’d love to read them all but there is only so much time in my day =)
Hard to say. The smaller books like JS the Good Parts was a day or two max. Some were a couple of weeks. And I still go back and reference them regularly.
This is a really useful list. I think I’ll be coming back to it for a long time :) As I said on JSMentors, I’ve added a few to my Wish List now! Cheers Rey.
Thanks! Glad you’re finding JSMentors helpful as well. :)
Thanks for putting this list together. JavaScript: The Good Parts as an excellent introductory book for people who are already computer scientists or programmers. However I would recommend it as ‘intermediate’ for non-programmers and/or people learning JS as their first programming language.
Pro JavaScript Design Patterns (Harmes/Diaz)is a really good book (that I think beat most of the list here to market).
http://www.amazon.com/JavaScript-Design-Patterns-Recipes-Problem-Solution/dp/159059908X
Personally, I didn’t care much for JavaScript The Good Parts, I just didn’t find it that easy of a read. I completely agree with What Andy Ford mentions about it being a book for those with a traditional CS background (not me). I read it a couple times but just didn’t get all the Crockford nut swinging around it…I admit I need to go back and re-read it and will at some point, but can’t say I’m a big fan of it as others are.
I would definitely recommend the two books by Stoyan Stefanov:
Object-Oriented JavaScript
JavaScript Patterns
I agree with you and Andy on JS: the good parts. Definitely more of an intermediate book for people without a programming background. I still find it immensely useful and recommend reading it when you have a stronger grasp of JS or programming in general. A lot of best practices are covered in the book which are definitely worth reading.
If you have any experience in programming, you might want to start with Mozilla reintroduction to Javascript at https://developer.mozilla.org/en/JavaScript/A_re-introduction_to_JavaScript
Its quite short and concise and at the end of reading it, you would have a good picture what type of language of Javascript is.
After that you can fill the details with any of the book listed, which I would say would be much easier now that you have basic concept of Javascript.
@Faszlan: Yep Simon Willison does a great job of introducing JavaScript. The intro books I mentioned though can offer the same so it’s really up to whether you want to read online or have something on your shelf that you can reference easily.
The HTML5 spec [1] is also a valuable resource, because it defines many new interfaces.
[1] http://dev.w3.org/html5/spec/Overview.html
@Daniel: Very true. I want to focus this on JavaScript itself, though, because in order to leverage those new APIs, you need to have a decent understanding of the JS language.
@Rey: That makes sense, as the question on the mailinglist is how to get your JavaScript skills to the next level, not how to make fancy things in the browser :)
hehe yea. The fancy things come after you’ve got a good understanding of the language. BTW, I updated the post to include top blogs to read as well.
I wouldn’t be doing my job if I didn’t recommend..
Not a book and not a blog, but if you want to keep up with the latest JavaScript stuff on a weekly basis through e-mail: http://javascriptweekly.com/ – It’s mine but it’s had kudos from folks like Steve Souders and Amy Hoy and almost at 3000 subscribers so I don’t feel too bad pimping it ;-) If you want a preview, the latest issue can be seen on the Web.
And yes, this post is going in today’s edition for sure :-)
Great list and thank you very much.
I’m not sure about one thing: Is Crockford’s book classified correctly? It’s information is dense. Every time I think I know more JS, I reread it and realize just how much is in there.
Thanks Martin. I think it is in that it offers a decent blend of intro to advanced materials and is a good read for anyone starting out.
I’ve found Rebecca Murphey’s blog and her jQuery Fundamentals online book very helpful, too:
http://blog.rebeccamurphey.com/
http://jqfundamentals.com/book/book.html
Great list! I’m working through JavaScript Patterns right now. Your list has given me some ideas on what to read next!
Excellent! Glad the list helped. :)
+1 on Rebecca Murphey’s writings, which are very accessible to readers needing the fundamentals. Like other commenters, I’ve found Crockford’s book rather cryptic for the JavaScript (or programming) novice.
I agree, Rebecca Murphey’s jQuery Fundamentals (the first half) is probably the best resource for a concise introduction to JavaScript in general.
Is there any possibility of making Script Junkie’s RSS feed to have the full article?
Hey Jake. Let me see what I can do. :)
Hey Jake, I checked and we’re stuck with this for now. We’re going to be moving to a new CMS early next year which should provide more flexibility for us. Hopefully you’ll still subscribe as we have some great content coming up.
I’m just starting out, but:
– Definitive Guide
– The Good Parts
– anything by Resig; currently preprint of the Ninja book.
One huge hole, however. Most books focus on browser JS, so include the language and the browser (DOM, AJAX). But JS is Very Quickly taking over all areas of language: server, client, and even communication (JSON). I’d LOVE a book that took a very wide view of JS-Everywhere.
Same here Owen. I’m sure some publisher already has a Node or Narwhal book in the works. Can’t wait.
Hey Rey,
Any chance of getting an article on SJ about good code organization when using jQuery? One approach that I have seen that has seemed effective and a way to modularize your JS code is by using the module pattern, or the revealing module pattern, and passing the jQuery object into it.
That’s a good topic to tackle and I’ll definitely look into getting it published on Script Junkie. Thanks for the suggestion.
Great post!
I’m reading “JavaScript Patterns” and I find it amazing..”Secrets of the JavaScript Ninja”, once it’s completed, is the next one in my list.
Hi Rey,
thanks for the list. On the introductory level I would also mention “DOM scripting” by Jeremy Keith: http://domscripting.com/book/ It’s main focus is on html/css coders with little or no knowledge of JS. Its 2nd edition co-authored with Jeffrey Sambells is coming out this month.
That’s a really good book. I wanted to focus more on the JS language though but I would definitely recommend that one for understanding the DOM. Glad to see he’s coming up with a new edition.
I would add http://dmitrysoshnikov.com/ecmascript/javascript-the-core/ (online) somewhere near between advanced and godmode ;)
Thanks for the list Rey! I’m currently reading both the pragmatic guide and the object oriented books and they’re both pretty good.
My pleasure. Glad you liked the list. :)
I’ve been reading more of The Good Parts, and I have found some sections rather complex, particularly in the inheritance chapter. I did like the Functions chapter, however, because it went into various invocation patterns and the module pattern which i researched more later and came across this blog that does a great job in going into this in more detail:
http://javascriptweblog.wordpress.com/2010/12/07/namespacing-in-javascript/
I will probably need a 2nd read through to understand all the code samples presented. Just curious, for those of you who read technical books, when you’re reading do you make sure you understand every section or do you skim over parts?
Understand every section that you *need*. Although since we are talking a language here, not framework, you might need to read every section.
For those part that is not clear, just continue reading and keep that in mind. It is hard to write a good book about topics that are so intertwined, in times it would be just not possible. Once you understand some related concept, you can always go back and refer.
Rey, very nice roundup! I follow these blogs too:
http://almaer.com/blog/ Dion Almaer always has a good high-level vision of where things are going
http://www.bennadel.com/ Ben “learns by doing” and always has interesting and fun hack experiments
And there’s also a few podcasts around the place, like the official jQuery Podcast (of course!), YayQuery, and the http://minutewith.com/ series.
People interested in JavaScript will probably also want to look into resources on HTML5 and CSS, and possibly NodeJS too.
Thanks Michael. I tried to keep the post manageable which is why I didn’t list out podcasts.
Excellent list!
Another great resource on spanish would be:
http://www.etnassoft.com
We are a group of enthusiasts of Javascript that comment and translate the latest news about this language.
We hope that will be useful for the spanish audience.
Love the list! Do you have an recommendations for someone with HTML/CSS experience but no programming experience?
You need to code a lot before you can really understand Javascript: The Good Parts. So I don’t think it’s an ‘introductory’ book.
Hey, you missed me off the list of blogs! [joking]
Seriously though, I’ve read Pragmatic Guide to JavaScript and I wouldn’t put it in the same league as any of the other books in your list. In general I love Prag Prog books, but I was really disappointed in that one. It felt more like a cheatsheet for non-JavaScript developers than a book on serious JS development.
Good list – Just making it through JavaScript Patterns at the moment. Also just starting to read Javascript Web Applications by O’Reilly as well. The two seem to compliment one another – sorta.
Is the list kept current? Anything to add to the list?
Hasn’t been updated in a bit but it’s still a relevant list. I’ll update it again next week. Been too long. Thanks for the nudge.
Rey did you updated the list?
Thanks
Not yet.
Thanks