DEV Community

Cover image for You Don't Know JS - Book Review
Hatem Hassan πŸ‘¨β€πŸ’»β˜•οΈπŸ’»πŸŒΊπŸ˜Ž
Hatem Hassan πŸ‘¨β€πŸ’»β˜•οΈπŸ’»πŸŒΊπŸ˜Ž

Posted on • Edited on • Originally published at iammowgoud.com

You Don't Know JS - Book Review

Originally posted on my personal blog

Just finished You don't Know JS series by Kyle Simpson. It took me almost 4 months to get through the 6 books, and I will definitely go back to reread certain parts of it.

I think this series is essential for anyone who want to dive deep into Javascript. From syntax gotchas and quirks to how coercion works to asynchronicity (or the illusion of asynchronicity).

Kyle Simpson has a unique way in explaining complex CS concepts and ideas in simple words.

Types & Grammar

This book is not as interesting or intriguing as other books in the series because it goes through the basic stuff then it's basically a list of Gotchas and quirks in the language logic. I gave it 5 stars because Kyle's explanations and examples are amazing even if the material itself is dull.

this & Object Prototypes

The book explains the deep quirks and gotchas of the dynamic nature of JavaScript embodied in the [[Prototype]] concept. It gives you a general understanding of how objects are created and how behavior is executed or rather "delegated" in JS.

Kyle in the last chapter proposes his own design pattern OLOO (Objects Linked to Other Objects) which aims to solve many of the issues of trying to code JS in an traditional OO pattern. I have my reservations on the pattern and how readable it's syntax is.

The fact that he wants each object to have it's unique method names and prohibits overriding at all is beyond me, it makes code more complex, less intuitive and also doesn't make it any easier for new engineers to work with an already existing codebase. However, he lays down some strong arguments against writing JS code in traditional OOP style, which ignore or "hide" the dynamic nature of the language and try to tame it into a static one.

Async & Performance

Amazing book if you want to understand how asynchronicity in JavaScript works. Kyle has a unique way of explaining deep technical CS concepts in a simple and straightforward manner. He lays down the differences between concurrency, serialism and parallelism and then use those differences to explain the JS Event loop and then goes into the technicalities of implementation using callbacks, promises, and generators. Finally, he gives some overview of assessing performance and benchmarking.

ES6 & Beyond

I consider this book to be the most important one in the You don't know JS series, especially for those who have some experience and have been working with Javascript for years. It goes through all of the tricks and gotchas of ES6 and as usual Kyle's way of explanation is very clear and straightforward.

Overall, the books are amazing and mind opening, and I highly recommend them.

Top comments (4)

Collapse
 
schmowser profile image
Victor Warno

Hi Hassan! Your article is just what I needed! I am about to finish the Introduction to Javascript course on Codecademy to get a refresher. I was desperately looking for any material for after that. As it turns out, there is plenty. But with your review, I know what to do for the next few months πŸ˜‰ I also liked that you incorporated your own opinion on the author's stance. Please continue with your great work of sharing!

Collapse
 
iammowgoud profile image
Hatem Hassan πŸ‘¨β€πŸ’»β˜•οΈπŸ’»πŸŒΊπŸ˜Ž

Thanks a lot πŸ™

Collapse
 
marcosmol204 profile image
Marcos Molina

where can i buy the pdf ver?

Collapse
 
iammowgoud profile image
Hatem Hassan πŸ‘¨β€πŸ’»β˜•οΈπŸ’»πŸŒΊπŸ˜Ž

You can read it online for free here: github.com/getify/You-Dont-Know-JS