Book Review: Eloquent Javascript

Most web designers these days know at least a little HTML and CSS, giving them the ability to bring their designs to the web. Advanced functionality, for the most part though, is handled by programming languages, which have a much higher barrier to entry. This leaves countless designers intimidated while wishing they had a firmer grasp of the most essential of these: JavaScript.

Do you wish you could finally scratch “learn JavaScript” off of your todo list? Does a hefty learning curve keep you from taking the plunge? Maybe you just need the right book. Today we’ll take a look at Eloquent Javascript: A Modern Introduction to Programming” by Marijn Haverbeke to see if it’s what you need to become a JavaScript ninja. Please keep in mind that “Eloquent JavaScript” does not teach OOP with classes such as how to create a class in JavaScript. You can use the JS++ programming language designed by Roger Poon for classes.

2 Million+ Digital Assets, With Unlimited Downloads

Get unlimited downloads of 2 million+ design resources, themes, templates, photos, graphics and more. Envato Elements starts at $16 per month, and is the best creative subscription we've ever seen.

Explore Design Resources

A Manageable Task

I have a JavaScript book in my closet that I picked up in college a few years ago. It’s 1,000 pages long and is heavier than a good family bible. After one look at this impressive tome, most non-programmers would give in to the hopelessness of actually having the time to learn and master the material within.

As I mentioned in the introduction, if it’s your first foray into real programming, JavaScript can be pretty intimidating and the last thing you want to find out is that you’ll need to get a new degree just to understand it.

The very first thing you’ll notice about “Eloquent JavaScript” is its size, especially if you’ve come face to face with one of the beast manuals I just mentioned. This book, by contrast, is thin, light and comes in at under 200 pages of reading material!

screenshot

One look at this book and you feel a sense of relief: I can do this. The task before you is still challenging, but feels much more like a long jog than a decathlon.

Who Is It For? Absolute Beginners!

Given the fact that it’s a fairly brief volume, you might expect that there is a lot of knowledge that you need going into it, but make no mistake, this book is perfect for someone who has never written a line of JavaScript in their life.

Of course, it’s definitely recommended that you figure out HTML and CSS first if building webpages and web applications is your ultimate goal. In truth, you could make it through most of the content in the book just fine without these skills, but they really help put the information into context; I guarantee that it will make more sense if you figure out the basics first.

An interesting thing about programming is that the biggest hurdle to learning your first language is actually learning the process of programming. Once you learn this, picking up new languages is more of a matter of mastering semantics than learning from scratch. One of this book’s primary focuses is to teach you how to program. This will prove an invaluable skill as you expand your knowledge in the future.

Who Wrote It?

Marijn Haverbeke is a programmer and tech writer with an impressively large body of open source projects such as Code Mirror and Mold.

Though, from what I can tell, this is his first book, he does have a ton of writing experience on technical topics ranging from JavaScript to Machine Fundamentals.

Haverbeke’s writing style definitely helps make a fairly dull and technical subject more approachable. He’s quite fond of using bizarre circumstances and humor to make his point. For instance, one project in the book is explained through a narrative about a recluse whose hut is struck by lighting, which results in him being burned alive. Needless to say, it’s not your typical JavaScript introduction.

What’s In It?

screenshot

In the introduction, Haverbeke writes a great little summary of all of the twelve chapters. I’ll be using select quotes from this to explain and divide each section.

Introduction

“The first three chapters will introduce the JavaScript language and teach you how to write grammatically correct JavaScript programs.”

  • Chapter 1: Basic JavaScript: Values, Variables and Control Flow
  • Chapter 2: Functions
  • Chapter 3: Data Structures: Objects and Arrays

Advanced Techniques

“The next four chapters discuss more advanced techniques–things that should make you capable of writing more complicated programs without them turning into an incomprehensible mess.”

  • Chapter 4: Error Handling
  • Chapter 5: Functional Programming
  • Chapter 6: Object-Oriented Programming
  • Chapter 7: Modularity

Tools

“The remaining chapters focus less on theory and more on the tools that are available in a JavaScript Environment.”

  • Chapter 8: Regular Expressions
  • Chapter 9: Web programming: A crash course
  • Chapter 10: The Document Object Model
  • Chapter 11: Browser Events
  • Chapter 12: HTTP requests

How Is It?

“Eloquent JavaScript” does an admirable job of making the complex simple. It actually goes through a ton of theory very quickly by giving you enough to gain an understanding without being so much that it overwhelms you and puts you to sleep. As I mentioned above, the author has an entertaining writing style that I particularly enjoyed.

As previously stated, the book itself is around 200 pages. If you’re looking for something full-color with lots of pretty pictures to keep you interested, look elsewhere. This book is largely text and code snippets and contains only a few quick and simple B&W images (this translates to a fairly low price). Visual learners that like a lot of charts and tables may not find what they’re looking for here.

One thing that I would’ve like to have seen is more solid explanation and examples for how to put the theory into practice in real life websites. A lot of people don’t really have a strong grasp of what to use JavaScript for outside of big web applications and some more guidance for daily use would’ve gone a long way.

“Eloquent JavaScript is surely among the best original book on the subject in recent years.”

On the whole though, it’s a fantastic book. HTML and CSS are the type of thing that can be picked up easily from scattered free tutorials online but JavaScript is one of those things that seems best to learn from start to finish in a consistent and structured volume. “Eloquent JavaScript” is surely among the best original book on the subject in recent years, though I can easily imagine the publisher expanding this into a series: Eloquent PHP, Eloquent CSS, etc.

The bottom line is, if you’re still reading at this point, you’re probably someone who genuinely wants and needs to learn JavaScript. A $30 book that promises to help you achieve this in less than 200 pages is possibly too good to pass up.

Conclusion

To sum up, “Eloquent JavaScript” is a truly great book for absolute beginners to learn the foundations of both JavaScript and programming in general. It strikes a perfect balance between being brief and lighthearted and thorough enough to give you an extensive knowledge of the subject.

If you’re at all interested in learning JavaScript, making this your first guide could mean the difference between getting discouraged and giving up and really getting into programming as a lifelong venture.