Book Cover - Book Review: A Common-Sense Guide to Data Structures and Algorithms

Clearly the most approachable book on the topic. To make this possible, the author chooses to left out mathematical notations, which are substituted by plain English explanations, but, almost all, the author decides to limit seriously the scope of the book. Graph algorithms are not covered, and important topics like greedy algorithms and dynamic programming are completely missing.

If I compare the content of this book with the equivalent content of a most authoritative book (i.e. by omitting parts not covered here), for example, Algorithms by Robert Sedgewick and Kevin Wayne, I do not see so much difference. Any other text uses English to introduces the concepts. And no author plans to make the subject more complex than it is. What I would have liked to see is common sense applied to advanced topics like those cited above. I struggled many times on algorithms but never on the content present in this book.

Algorithms are implemented either in Ruby, Python, or JavaScript. Mixing languages does not interfere with the comprehension, even if staying with Python would have been a preferable option.

Clearly, this book could only serve as an initiation, a refresher, for the self-taught student or for the application programmer who want to (re)learn the foundations. If mathematics makes you uncomfortable, and if a thick book discourages you, A Common-Sense Guide to Data Structures and Algorithms could be a good fit. Nonetheless, you better have to invest in a reference book and ignore the more complicated parts on your first reading. Almost all intermediate problems on platforms like Topcoder, Codeforces, or HackerRank, require knowledge not covered in this book. If you plan to participate in sport programming contests or postulate on companies whose hiring process includes algorithms, this book will help you get started but will not bring you very far.

About the author

Julien Sobczak works as a software developer for Scaleway, a French cloud provider. He is a passionate reader who likes to see the world differently to measure the extent of his ignorance. His main areas of interest are productivity (doing less and better), human potential, and everything that contributes in being a better person (including a better dad and a better developer).

Read Full Profile