Honestly, the best technical book I’ve ever owned.
Honestly, the best technical book I’ve ever owned.
https://henrikwarne.com/2019/07/27/book-review-designing-dat...
Its a practical overview of a difficult and modern topic. That in itself would make the book good, but for me, it is that the book goes deeper into the research and algorithms than most O'Reilly books -- but it does this without becoming a Science textbook.
It is easy to tell the people working in big data that haven't read the book, just from the mistakes they make.
Anyway, some reasons:
* Draws together a wealth of material on databases and distributed systems that wasn't explained in a systematic, accessible way anywhere else. It provides a map to someone coming to this hard-to-navigate area for the first time.
* Great balance between being conversant with the academic research (without being too abstract) and being practically applicable (without being too tied to details of particular technologies)
* Shows underlying unity and concepts of very different data technologies, e.g. why classic relational database write-ahead logs and replication are very similar to streaming platforms like Kafka
* Subjective, but it is very clear, accessible, and well-written. This is very very hard to do and quite rare in technical books.
It's my favorite technical book of the decade and my first recommendation to anyone who asks me how to really "level up" as a senior engineer.
Yes, of course you can’t level up just by reading a book; experience is the only way. The key thing - as you know, if you like the book - is that this book provides a coherent framework for thinking about data systems that engineers can fit their particular experience into. That “weird race condition” becomes less mysterious when it’s framed in terms of concepts like write skew or phantoms; joining two streams together becomes a problem about time and ordering. And so on. In fact the reason it’s such a great book is that you can read it with not much experience or background beyond basic database knowledge, absorb a lot of the ideas, and then keep coming back to it as your experience grows and you encounter new kinds of scenarios in your day to day work.
where:
- if Expectation > Perception then your experience is +ve (e.g. surprise);
- if Expectation < Perception then you experience is -ve (e.g. disappointment).
So the question I'd ask you is this: what were your expectations when you picked up a copy of DDIA?
Second-best, second only to Aurélien Géron’s machine learning book. ;)