JavaScript is the programming language for the web. A good deal of the code I used to write using C# in ASP.NET WebForms and ASP.NET MVC on the server has now moved to the client in the form of JavaScript. Front-end development is now becoming a serious development skill and role as it moves from a sprinkling of jQuery here and there for animation and AJAX calls to use of more sophisticated JavaScript MVVM and MVC frameworks, like backbone.js, spine.js, batman.js, knockout.js, SproutCore, Sencha Touch, etc. Understanding JavaScript, and now CoffeeScript, is critical to developing web applications. If you don't learn JavaScript and learn it fast you will not survive this new shift in web development that focuses on JavaScript in the browser and now even JavaScript in the server with Node.js. Buckle up!

JavaScript Books

The good news is that JavaScript is not new even though it may seem like it. There are lots and lots of old books and new books that can teach you the JavaScript language. And since JavaScript has never really changed, those older books on JavaScript are just as relevant today as they were when they were written. In fact, today, and I do mean today, I purchased JavaScript: The Good Parts since the e-book was the O'Reilly deal of the day and 50% off. Normally I would never purchase a technical book written 3 years ago, but JavaScript Books from 2008 and before are perfectly fine. In fact, most of the hardcore JavaScript Books that focus on the language are the older ones.

Over the past year most of my new book purchases have been focused on JavaScript and JavaScript ebooks that I can read on my iPad. Books that I have purchased include:

  • JavaScript for Absolute Beginners
  • JavaScript: The Definitive Guide
  • Eloquent JavaScript
  • JavaScript Cookbook
  • Pragmatic Guide to JavaScript
  • JavaScript Patterns
  • Object-Oriented JavaScript
  • High Performance JavaScript
  • JavaScript Web Applicatons
  • CoffeeScript Accelerated JavaScript Development
  • JavaScript: The Good Parts
  • JavaScript Enlightenment

Normally that could be expensive, but you would be surprised how often JavaScript books become the deal of the day by book publishers. Most of them were 50% off and a few of them were free as a member of the O'Reilly Blogger Review Program.

You'll notice I tossed in a title about CoffeeScript in the list. I did this for two reasons. First, CoffeeScript is pretty amazing and compiles to JavaScript and most cutting-edge developers are using it now instead of JavaScript. Second, the CoffeeScript Book is surprisingly good at teaching pitfalls of the JavaScript Language and how CoffeeScript helps one avoid those pitfalls and use best practices. So by teaching CoffeeScript, the book is also teaching you JavaScript: The Bad Parts!

I could go on and on about JavaScript Books and which ones I recommend, etc., but let's finally get to the subject at hand: JavaScript Enlightenment.

JavaScript Enlightenment

JavaScript Enlightenment

JavaScript Enlightenment is not my normal book purchase. It is a self-published, PDF by Cody Lindley, a front-end engineer out of Boise, Idaho. I always worry about self-published books by developers as we don't always make the best writers. However, I felt a little more comfortable about this purchase since he also wrote jQuery Enlightenment, which came recommended but I never did read, and the price of $15 was right at my sweet spot for PDF's and other eBooks.

The book is clearly a beginning JavaScript book, but it is not as comprehensive as most beginner / language books and mainly focuses on higher-level concepts and subjects of his own interest. The book is short at 141 pages divided into 15 chapters:

  • JavaScript Objects
  • Working with Objects and Properties
  • Object()
  • Function()
  • The Head/Global Object
  • The "this" Keyword
  • Scope and Closures
  • Function Prototype Property
  • Array()
  • String()
  • Number()
  • Boolean()
  • Null
  • Undefined
  • Math Function

The last 6 - 7 chapters are really only 1 - 5 pages long each with the bulk of the content in the beginning chapters.

The writing style in my humble opinion is perfect for beginners, because you can actually tell that Cody was somewhat learning ( or at least working through concepts ) while he was writing it as well. It walks you from the very basics and along the way clearly points out parts of the language where most beginners will be confused, where there are seemingly inconsistencies in what you would expect, pitfalls to avoid, and techniques on how JavaScript Libraries often overcome glitches in the language.

Again, it is not a language book so it doesn't go into all the JavaScript keywords and assignments, loops, and everything else you would get from a pure JavaScript Language Book. It really expects you to known programming concepts and instead jumps into the more interesting areas of JavaScript like Object(), Function(), creating custom objects, constructor functions, prototypal inheritance, context and the "this" keyword, etc. I actually like that it focuses purely on what makes JavaScript interesting. The book assumes you have a programming background and want to understand higher-level concepts that make JavaScript unique and useful.

If you like code, this book has plenty of it. This helps you better visualize the concepts, and the code is pretty well done. There is a link to the live code on jsFiddle for each code sample if you want to play with the JavaScript code in your browser. Although I didn't take advantage of that feature, it is really nice for those new to JavaScript.

Overall, JavaScript Enlightenment is really well written and well-worth the $15 for the downloadable PDF. It's a really nice jump starter to higher-level concepts in JavaScript without the basic programming concepts that developers already understand.

My only gripe is that the PDF does not have Bookmarks that allow you to easily navigate from chapter to chapter and sections within each chapter. You can click on links in the Table of Contents, but it is a pain to always try and find the ToC to get to a particular section of the PDF. Better to just have Bookmarks within the PDF itself so you can jump to areas effortlessly. That is more of a PDF issue, however, and doesn't take away from the well-written contents in the book.


In conclusion, I highly recommend JavaScript Enlightenment for those ready to use JavaScript as more that just a vehicle for jQuery or other JavaScript Library.

If you are a programmer, but new to JavaScript, and want to better understand the higher-level concepts in JavaScript as outlined in the table of contents, JavaScript Enlightenment is a good starting point. It points out all those tricky areas of JavaScript that make it unique, often powerful, and sometimes confusing, with plenty of code samples that you can play with on jsFiddle.

It won't teach you how to develop well-written, modular, and maintainable JavaScript web applications using best practices and common design patterns, but it does provide a nice foundation to build upon.

Learn more on JavaScript