Effective JavaScript: 68 Specific Ways to Harness the Power of JavaScript by David Herman and part of the ‘Effective Software Development Series’ is a distillation of the type of knowledge you gain along the way — through years of being a programmer — tackling problems, asking questions and running into brick walls. In other words the lessons of experience are in here and while you may already know some of the information you will find things you don’t know.

Effective JavaScript reminds me of JavaScript: The Good Parts by Douglas Crockford in its short dense explanations of a wide variety of important concepts including scoping, functions, objects and prototypes, arrays and dictionaries, library and api design, and, concurrency. It’s not a complete language reference like David Flanagan’s JavaScript the Definitive Guide but it thoroughly covers and clearly explains nuances of how the language works along with best practices. This is the book you will find yourself reaching for in the moments you find yourself Googling for an answer of why something is or isn’t working in your JavaScript and in fact, like Douglas Crockford’s book, you should probably read Effective JavaScript more than once.

In short, Effective JavaScript is a treasure trove of knowledge packed into 200-ish pages that while geared toward imparting a mastery of the pragmatics of the language to the intermediate programmer will teach the advanced programmer at least a thing or two. Even relatively new programmers should probably attempt to read it and plan on returning to it again and again as they advance. It’s not the only book you need to become a master programmer, but it will help with mastering the language itself — which makes it an essential resource for the aspiring JavaScript programmer.

My verdict: Buy it, read it twice, give a copy to friends and return to it as a reference.