194
people found this helpful, as of 2023
ranked #169,440 most helpful
out of 571,544,897 reviews
★★★★★
It's about programming, not javascript.
This is book is phenomenal - the best book on programming I've ever read. But it's important to note: it's about programming. The programming just happens to be in in Javascript. If you are looking to learn a few JS commands for your website, this is probably not the right book.
Contrary to the other reviews, Eloquent Javascript is for beginners. This can been seen in Chapter 1... it starts with the number "13". Then goes to arithmetic with "100 + 4 * 11", then boolean "3 > 2". Definitely for beginners.
No, the code examples are not superficial. It's similar to Zed Shaw's exercises in Learn Python the Hard Way - they are specially crafted to teach you something. You should type out the examples on your computer, write comments on what each line does, download the data files from the website, and get the examples to run.
The author put this quote in the introduction:
"I do not enlighten those who are not eager to learn, nor arouse those who are not anxious to give an explanation themselves. If I have presented one corner of the square and they cannot come back to me with the other three, I should not go over the points again." -Confucius
The reason I like Eloquent Javascript so much is that, unlike textbooks, it is written in an easy-going manner, like he's talking to you. Each example builds on previous examples, each chapter builds on the previous chapters. Slowly building up your knowledge. Sometimes without me realizing how much I'm learning.
An example is functional programming. I never understood it or the hype. I read many articles and discussion forums, but I never really got it. In Chapter 5, Higher-Order Functions, the author doesn't even mention the buzz-words "functional programming". He simply starts off with the typical for-loop to print each item in an array. Then he shows how the for-loop can be enclosed in a function. Then he modifies the function so it can take in generic actions instead of just printing - a function that takes another function as input. For practice with functions on functions, you create a few more: filter, map, reduce... BAM! it all hits me. With the stuff I learnt in Chapter 3, I now know the benefits of no-side effects, limiting scope, recursion, and leaving the original data alone. I see why stringing small functions together allows more flexibility than a long recipe of for-loops. I see why functions allow you to follow the data being manipulated more clearly. I finally get it.
The funny thing is, the book isn't even that "deep". After all, it's actually a programming book where he walks you through code examples, not a conceptual computer science book. It's odd how concepts just come to you - that's how eloquent the book actually is.
February 2015 · Books