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.