Book Review - Eloquent JavaScript

March 16, 2018

I recently finished Eloquent JavaScript by Marijn Haverbeke. Eloquent JavaScript is considered one of the educational pillars of JavaScript, and I’ve heard great reviews of it from fellow programmers. So I thought it was worth trying.

The Book

I did every exercise in the book, and overall, I think Haverbeke provides a good introduction to the language. However, I did not enjoy his teaching style.

I felt that that in the beginning of the book he was more thorough and made a greater effort to be engaging. His explanations on fundamental programming concepts are peppered with a snarky, sarcastic sense of humor. This is amusing at some points, but comes across as frustrating when I have to re-read passages, like I should understand it, but don’t. But that’s not surprising, many of the male JavaScript developers that I know carry this intimidating, snarky aura about them.

Al Sweigart’s teaching style is, in my opinion, more engaging and methodical, with blocks building on blocks and each topic full explored. His tone is silly and fun, and accessible to all audiences. Perhaps he’s a more gentle teacher because of the many programming books he’s written for children.


After the introduction to the fundamentals, the engagement level dropped off for me but I pushed through. I was excited by the projects Haverbeke presented, but the walkthroughs were difficult for me to follow. New terms and explanations were thrown in at a rapid pace, and I found the reasoning and “why” to be more terse. After each project, I felt a bit disappointed that I didn’t fully understand how they worked, and disappointed that I couldn’t take my knowledge and do something creative myself with it.

I wish that Haverbeke would have written a chapter each on higher-order functions, recursion, closure, reduce, map and arrays - the tools one ends up using often and is questioned on in web developer job interviews. As is, Haverbeke only spends a couple paragraphs introducing each of these topics and gives one or two abstract examples. It would have been nice to see how these tools can solve common problems.

But that’s okay, I found a great teacher Mattias Petter Johansson, on YouTube, who creates informative and entertaining episodes on each of these topics. I’ve watched almost all of his shows on functional JavaScript programming, unit testing and theory, and its filled in the knowledge gaps that Haverbeke left.