This is easy among the top three tech books I ever read. I read the first edition a couple years back and I was very happy to see the second edition with the code samples updated and revised to Scala 3.
The content in the book is rather advanced, abstract and not easy to grasp, especially for people who (like me) come from a strong OOP background. The reason why the book does a great job at teaching functional programming is because it doesn't confront the reader with the abstract concepts, but instead shows a number of concrete examples first and then introduces the abstractions that allow modelling the aspects all the examples have in common.
This, in combination with the exercises, provides an ideal learning ground. The exercises are well thought out and have answers with detailed explanations, so there's always a way out if one gets stuck.
Compared to the first edition, the last part is the one that changed the most. It basically describes the foundation of fs2, which is a well known, production ready library. It is a great way to end such a book, because it shows that FP is a complete paradigm and it's very well suited for complex problem domains.
I recommend this book to all developers with some experience in programming. Not everyone will become a functional programmer, but everyone will learn something and become a better programmer in general.