This is a nice and rigorous introduction to the topic of data structures and algorithms. The book is well-structured (no pun intended); the order of the chapters makes sense, some of the later chapters build on some of the earlier chapters. There is a common thread throughout and although the writing is minimal and to-the-point, it still feels like a journey through data structures.
If you have mainly written programs without giving much thought to efficiency and were mostly concerned with getting the desired result, this textbook is going to be an appropriate next step. Even if you don’t grasp every theorem and proof—I didn’t—, you will certainly gain the crucial reflex of thinking about the runtime complexity and the space efficiency of your algorithms.
Personally, my favourite takeaway from Open Data Structures is the ubiquity of randomness. If you, like myself, are fascinated by randomness, I promise you’re going to enjoy the various uses Morin presents of the concept. In many situations, the optimal implementation of a data structure requires and is built on randomness—fascinating!
Other qualities: Morin offers source codes and often adds welcomed visualizations of some methods (via figures). That being said, I highly encourage you to look online for (visual) simulations of the data structure/algorithm at hand—doing this has contributed to improving my understanding of the text.
On a final note, although there is a chapter on the mathematical prerequisites, some basic knowledge of probability (e.g., indicator random variable) may allow for smoother reading.