The book is superb!
Yehonathan starts by highlighting the trade-offs of Object Oriented programming and how to reduce complexity with help of data-oriented programming. I wish I had read this book before my undergraduate program.
The second part describes concepts like data inspection, polymorphism, Lock free. All of these concepts are heavily used by programmers daily. Each page are valuable tips that can be applied in day to day programming.
The third and last part is the most challenging where the author encourages the reader to leave its comfort zone and write your own manipulation tool set, extend primitive data types and write unit tests that covers property based testing.
The language of the book is not complex and easy to grasp for a new comer. The learning during the different chapter is seamless, also the reader will feel several deja-vu moments, at least, I did.
I recommend the book to readers that have only experience with Object Oriented but never dare to try the functional paradigm. From my point of view, Yehonathan does an excellent job as an author and therefore gets five stars.