JavaScript Enlightenment by Cody Lindley

By  on  

JavaScript Guru Douglas Crockford famously said "JavaScript is the only language people feel like they don't need to learn to use." A quote that will surely provide a laugh, but it's funny because it's true. What furthers this sentiment is that JavaScript frameworks like jQuery have turned JavaScript into a language different than what it truly is, and has made client-side coding so easy that there's sometimes no need to really learn JavaScript. Anyone worth their salt, however, knows that in order to expertly and efficiently use any tool, you have to start with the basics.

That's where JavaScript Enlightenment comes in. JavaScript Enlightenment is an outstanding book by Cody Lindley, one of several members of the jQuery team. I'll let book's description speak for itself:

This book is not about JavaScript design patterns or implementing an object-oriented paradigm with JavaScript code. It was not written to distinguish the good features of the JavaScript language from the bad. It is not meant to be a complete reference guide. It is not targeted at people new to programming or those completely new to JavaScript. Nor is this a cookbook of JavaScript recipes. Those books have been written. It was my intention to write a book to give the reader an accurate JavaScript worldview through an examination of native JavaScript objects and supporting nuances: complex values, primitive values, scope, inheritance, the head object, etc. I intend this book to be a short and digestible summary of the ECMA-262, Edition 3 specification, focused on the nature of objects in JavaScript.

In short, JavaScript Enlightment takes JavaScript back to its basics. The chapter summary is really drives that point home:

  1. Constructing Objects
  2. Working with Objects and Properties
  3. Object()
  4. Function()
  5. The Head/Global Object
  6. The this Keyword
  7. Scope and Closures
  8. Prototype Property
  9. Array()
  10. String()
  11. Number()
  12. Boolean()
  13. Null
  14. Undefined
  15. Math Function

There are a couple of things I really enjoyed about Cody's writing style:

  • Many authors write in a way to reinforce that they're the smartest guy in the room. What people like them don't understand is that eager-to-learn developers have already bought the book: they trust that you're the expert, so you don't have to use advanced verbiage to look intelligent. Cody skips that ego-centric exercise, explaining JavaScript concepts in Layman's terms.
  • Each section covers one JavaScript object/concept, so the book is very focused. Too often development books bleed into and out of topics without true explanation.
  • Lindley's book is packed full of code examples; if you're anything like me, code examples tell you as much if not more than plan text. Every person has their own style of leaning, but there's nothing like a solid code example you can play around with.

The books itself, when it comes to topics covered, is great for beginners and intermediates a like; there's a lot of learning and reinforcing of core JavaScript concepts. Each code snippet provides a link to a working version of the code, which comes in handy if you want to quickly tinker with such code. Lastly, there's plenty of personality in Lindley's book; it's not simply a reference to flick through -- designers and developers will enjoy reading JavaScript Enlightenment.

Cody Lindley's JavaScript Enlightenment is an essential resource for any designer or developer looking to to understand JavaScript at its core, regardless of skill level or JavaScript framework. Lindley's ability to explain key JavaScript concepts with realistic, useful code examples is what really makes JavaScript Enlightenment shine. Don't be a slave to your JavaScript framework, because copy'n'paste is no way to go through a development life! Get enlightened by JavaScript Enlightenment!

Recent Features

  • By
    Conquering Impostor Syndrome

    Two years ago I documented my struggles with Imposter Syndrome and the response was immense.  I received messages of support and commiseration from new web developers, veteran engineers, and even persons of all experience levels in other professions.  I've even caught myself reading the post...

  • By
    9 Mind-Blowing Canvas Demos

    The <canvas> element has been a revelation for the visual experts among our ranks.  Canvas provides the means for incredible and efficient animations with the added bonus of no Flash; these developers can flash their awesome JavaScript skills instead.  Here are nine unbelievable canvas demos that...

Incredible Demos

  • By
    Six Degrees of Kevin Bacon Using MooTools 1.2

    As you can probably tell, I try to mix some fun in with my MooTools madness but I also try to make my examples as practical as possible. Well...this may not be one of those times. I love movies and useless movie trivia so naturally I'm...

  • By
    MooTools Documentation Search Favelet

    I'm going to share something with you that will blow your mind: I don't have the MooTools documentation memorized. I just don't. I visit the MooTools docs frequently to figure out the order of parameters of More classes and how best to use...

Discussion

  1. Thanks David! I’ve been looking forward to the review since you mentioned you’d do it. It definitely looks like the kind of detailed enlightenment I’d enjoy :p – Definitely going to get it.

  2. Jason

    Just bought the book from Amazon. Can’t wait to go through it!

  3. I may be mistaken but wasn’t his quote this: “JavaScript is the only language that I’m aware of that people feel they don’t need to learn before they start using it.”

    Or perhaps he’s said variations of it several times ;)

    • I had to read that quote a couple times before I figured out he must have accidentally a word.

    • Whoa, my bad. Updated. /me hits himself.

  4. Thanks for the review! I bought this book a while back and it really helped solidify my foundational knowledge of Javascript.

  5. Daquan Wright

    Thanks David, I actually read the website online. But seeing you write this makes me more confident in using it and learning from it (because lots of guides are bad on JS).

    I’m excited, now I’ll definitely dig into it. While I’ve selected MooTools as my framework of choice personally, I’m serious on knowing the ins and outs of JavaScript so I can write vanilla code when I feel like it/need to.

  6. I’ve been planning to write a very similar book, though larger with more topics. I was planning to put the digital download version up for free on my website (http://joezimjs.com) but also make it available to buy the physical book for a modest price. I’ll have to get this book and see if I can pick up some pointers from it.

  7. I am a JavaScript lover and I will surely buy this book.

    JavaScript do wonders when designing a user interface.

  8. If I am not wrong, Isn’t the book name is “jQuery Enlightenment” not “Javascript Enlightenment”

  9. Sorry my bad, there is a book named “Javascript Enlightenment” but I think you have linked wrong book. Correct link is:
    http://www.javascriptenlightenment.com/

  10. Alex

    I have just downloaded it, let’s see :)

    • Alex

      After reading through the entire ebook, I can admit it’s really worth reading for almost everyone.
      Personally I wish it had been written a few years earlier, so I wouldn’t need to find all that same information by myself (maybe I can now brag that I had to make my own trip to Ithaca).

      /me, hit by a nostalgia for what used to be unkown, opens an old bottle of wine.
      <>, he remembered a shadow telling him from the past.
      <>, he shouts as the liquor heats his chest and warms his code-monkey heart.
      <>

  11. This post and the Crockford quotes really vindicate the ideas I expressed in my new article “Why Not to Learn JavaScript.” I recently published a JavaScript book, “JavaScript: Just the Basics – A Primer for the Complete Beginner,” which has a similar premise except that I DO attempt to reach the absolute beginner.

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!