Shared publicly  - 
 
Recommended JavaScript Reading (updated March, 2014)

I regularly receive emails from developers asking what books I recommend for learning JS. If you're looking to touch up on your language knowledge or learn from scratch, I'm happy to suggest the following:

Effective JavaScript - +David Herman's  book provides an in-depth exploration of the language and provides a concise, modern take on developing maintainable JavaScript. Dave is a member of TC39 who has been involved in helping with many proposals for the next version of the language is really knows his shit. Recommended by +Alex Russell, +Paul Irish and others.

JavaScript The Definitive Guide, 6th Edition - one of my personal favorites. A comprehensive walkthrough of the language which benefits both beginner and intermediate developers alike. It's also a solid reference guide, should you need to go back and brush up on any areas you're feeling rusty on, regardless of whether you're using WPD or the MDN.

High-performance JavaScript - Nicholas Zakas (who also recently wrote Maintainable JavaScript and Principles of Object-Oriented Programming in JavaScript, also excellent) covers a number of important lessons about JavaScript performance. If you want to learn how to avoid slowing down your interactions with the DOM, improve runtime performance of your code and generally better the speed of your code's execution this one is a must read.

JavaScript Patterns - Language and coding patterns are an incredibly useful way to benefit from reusable solutions to problems we face when developing with any language. In this book, +Stoyan Stefanov  introduces a number of effective patterns (and anti-patterns) for writing better JavaScript and remains another of my favorites.

The Past, Present and Future Of JavaScript - +Axel Rauschmayer's new free book provides a much needed summary of what's coming next in the world of JavaScript. With browser vendors beginning to gradually implement more new language features from ES.next, this will help you keep up to date even if you haven't been reading up on proposals.

ng-book by +Ari Lerner is excellent for those wishing to learn the ins and outs of +AngularJS. If however you're looking for a broader introduction to JS frameworks, check-out  *JavaScript Web Applications* by Spine.js author Alex MacCaw. This book covers some of the modern, real-world problems you may encounter when developing webapps with JS, including introducing you to client-side MVC and solutions such as Backbone, JMVC, Spine and other options. A great read for developers wishing to start creating JavaScript SPAs backed by jQuery or other DOM-manip libraries. 

JavaScript: The Good Parts - A classic, even though you're bound to disagree with some of what Crockford says. Many great points about both the quirks and good parts of a of the JavaScript language. Whilst not the first book I'd recommend a beginner purchase, do consider reading this once you get the hang of the basics. As long as you remember Crock' isn't the last word in everything, you'll benefit greatly from his insights on the language.

Learning Node.js - +Marc Wandschneider's  guide to learning Node is concise, walks through building a fully functional application through the course of his book and touches on testing, deployment and performance considerations. I would pair this with a read of Substack's Streams handbook for good measure.

Power-up Your Front-end Development With Grunt by +Belén Albeza is a short, but solid walkthrough of how to get the popular JS task runner into your workflow. The book is filled with examples and at ~ $5 is also very affordable if the existing online guides haven't been cutting it for you.

Eloquent JavaScript - probably one of the best beginners books. If you haven't heavily invested time into learning the language just yet, check this book out. It's filled with a number of funny (at times, unexpected) introductions to examples and isn't as overwhelming as other alternatives.

There are other really good books such as: +Cody Lindley's JavaScript Enlightenment, John Resig's Secrets of a JavaScript ninja - which I'd recommend if you're looking to learn how to write your own library and Test-driven JavaScript Development for those into TDD. 

PS: I've also written Learning JavaScript Design Patterns, which is available free/for purchase in case you're interested in learning about modern JavaScript patterns for development. I've also written Developing Backbone.js Applications. Basically, you've got a lot of choice for learning JavaScript these days and hopefully some of these suggestions will come in helpful.

Remember that whilst reading about programming languages is important, there's no replacement for getting stuck right into the deep end and actually writing code. You may appreciate that tip more in the long-term ; )

Cheers! - Addy
356
184
Shamsher Ansari's profile photoDenis Yovani Salmerón Cruz's profile photoPetar Pilipovic's profile photoKairat Kempirbaev's profile photo
43 comments
 
Awesome list, thanks Addy. I also enjoy High Performance JavaScript and absolutely love Secrets of the........
 
Haha +James Richardson. Do let me know how they compare to Pratchett ; )
Cheers everyone else. Hope the list comes in useful.
 
Thx! Just bought the definite guide ;) gonna start with that.
 
I found Rebecca Murphys' http://jqfundamentals.com/ to be a great primer to JS which then leads into jQuery. But she covers the basics fairly well, and I have read most of the books you mentioned.
 
@Mark I've read Rebecca's book and also found it a very useful primer. For a beginner I'd put Eloquent JS and it in about the same category.
 
JavaScript Web Applications sounds useful, as I do much of that in a poor ad-hoc manner at the moment (often due to time constraints at work). I seriously need to get into the pattern books as well, long overdue.
 
@addy forgot to mention your book on javascript design patterns. Thought that one was useful as well. And at a great price!
 
Cheers @Mark:)
@Bradley- strongly recommend it. It's a great read.
 
You're welcome, guys. +Nicholas Zakas's High Perf JS is another recommended read, but I'll add it to this list once I've actually finished reading through it :)
 
Thanks for the list. I was thinking of reading +Nicholas Zakas's Professional JavaScript for Web Developers. Any reason for this not to be on the list?
 
Looking forward to picking up your backbone.js book when it's available. In the meantime, I'll get started with eloquent javascript.
 
If someone could read only one book, which one, though?  I enjoyed JavaScript: The Good Parts.  (I have some others on the list, but they remain unread.)

I don't find it time-efficient for a developer to read 10 books.  When I learned C-Programming in college, it was K&R.  What's the succinct equivalent in JS that gets experienced programmers through all the nuance and idioms?  Surely there's a ton of repetition of ideas in 10 books!  Thanks.
 
A few days ago, I received an email Manning telling me that "Secrets of a JavaScript ninja" has beens sent to the printing presses :)
 
+Thomas Bassetto That's awesome to hear. I believe Bear Bibeault has been helping complete it. Glad to see it finally going to print :)

+Todd Prekaski If I had to pick one that I regularly find myself referring back to it would either be the definitive guide. There's certainly a little repetition across the selection of books I've recommended, but not so much that I would avoid reading all of them outright :)
 
Wow. That better be one good book :p
 
Looks like the latest version is available on http://pragprog.com/book/tbajs/async-javascript: “Async JavaScript was previously self-published. It’s been completely edited and revised since its initial publication and is now part of our Pragmatic exPress series.”. Also, $11.00 :)
 
Can  anyone suggest which one is the best to master advanced oop in javascript.
 
The new OOP book by Zakas is probably your best bet.
 
I wish i'd seen this a month ago when i was being asked what i wanted for Christmas... thanks for the list!
 
Personaly I'd recommend reading "JavaScript The Good Parts" first. It'll keep you out of trouble while you get up to speed. The subset Crock specifies is safe.. Once you've been through that, I'd read through Angus Croll's blog posts. These are extremly informative. Angus really knows how to explain the deep concepts very well and leaves no stone unturned.
 
JavaScript Web Applications  is awesome book.
 
Javascript Patterns caught me by surprise, it's a goldmine for best practices.
 
Awesome list, and by the way, just received an email saying : "We are pleased to announce that Secrets of the JavaScript Ninja is now complete! You can download your copy of the finished ebook right now! " :) 
 
Javascript Patterns by Stoyan is definitely my fave! Lots of good stuff in there, and, while not covering a lot of basics, it does have stuff that's relevant throughout all the projects I've worked on!
 
Only maybe 50 pages in to Secrets/Ninja - Resig book so I can't fairly review it but I'm loving it so far. Other reviewers have mentioned it get rapidly more advanced as you go...I played with concepts discussed in ch 2/3 assertions/scoping here http://youtu.be/iCc-9HGS6OI
 
I'm an advanced PHP programmer who can write very simple JS code, but am playing with Node.js and am struggling with the language.

Is there a particular book in this list that benefit me the most?

I've glanced at the TOC for Eloquent Javascript and it seems more suited to someone who has never programmed--but perhaps it's still a good starting point? 
 
Well since you are an advanced programmer you will be fairly familiar with 'how to code' so i assume what you need is more a reference to how to convert your knowledge. For that reason I'd look at getting http://shop.oreilly.com/product/0636920011460.do  . This one is pretty specific to those questions you ask yourself, like how to i create an array, how I parse an integer etc etc.... simple shit that takes time to sink in on a new language. Then maybe move onto https://leanpub.com/oopinjavascript which is good for more advanced JS stuff (I like it anyway) and then http://shop.oreilly.com/product/0636920024606.do !
 
Thanks, Kevin.  OOP In Javascript looks particularly ideal.

For others who are in my situation, I do not recommend "Node.js for PHP programmers".  I found it both brief and wordy, and teased me of knowledge that in the end it did not share.  It describes a process for modifying your PHP code so you can use find/replace to change it to JS code. 
Add a comment...