Grokking AlgorithmsGrokking Algorithms An Illustrated Guide For Programmers and Other Curious People by Aditya Y. Bhargava

My rating: 4 of 5 stars




Liebe Leserinnen, liebe Leser,

diese letzten ein paar Wochen waren sehr arbeitsreich, weil ich einen sehr guten Online-Kurs über Arm Cortex M Microcontroller absolvieren konnte, und jetzt bin ich glücklich zu verkünden, dass ich auch das Buch namens Grokking Algorithms von A.Y. Bhargava zu Ende gelesen konnte. Ein bisschen vielfalt wirklich hilft bei der Fortsetzung, und daher kann ich jetzt über den gleichzeitigen Abschluss von zwei getrennte Sachen teilen. Wie immer, die unten zu sehende Rezension ist eine Kopie der Rezension, die ursprünglich auf Goodreads zu finden ist.

When you’re thinking about picking up this book, do not think about a hardcore algorithms book, but instead think about it like a gentle introduction to some of the most common algorithms and problems they are associated with. Being a gentle introduction, it doesn’t bombard you with tons of code on every page, but instead it tries to make you understand the working principles of the more common algorithms (and data structures) with different drawings. There will always be code examples written in python, but mostly only after there has been enough discussion about the inner workings of the current topic of interest.

The topics themselves start from the very basics, like the Big O notation and its relation to some data structures, recursion, call stack and common sort algorithms. Things then become more interesting, as hash tables, basic graph theory, breadth-first search, Dijkstra’s and greedy algorithms, dynamic programming, and k-nearest neighbors get into the center of discussion. The author also never forgets to mention real world uses for the aforementioned topics, and in fact, all those things are introduced through them. Finally, the last chapter deals only with some algorithm related recommendations for certain areas of interest without any discussions.

All in all, despite the easy-peasy looking presentation, this book will actually give you usable background knowledge for quite some common areas of problems in the programming world, so don’t be fooled by the looks. On the other hand, don’t expect to be able to directly handle real programming problems either, as the code snippets included are only for demonstration purposes at most (no full-blown implementations are included).

My only complaint about this book, is that in my opinion it is shorter than it could’ve been. Some of the topics mentioned in the last chapter could’ve easily been expanded into new chapters, but hey, one cannot get everything done.

To sum this all up, I’d say that if you are an experienced programmer, then this book is probably not for you, but if you are just starting out with programming or algorithms, you should pick this book up. It will quickly dispel the illusion that some topics can only be discussed only much later in your programming education and career, like search engines and recommendation systems. This book will make these topics seem accessible even to novices and encourage them to go further down into the proverbial rabbit hole.

Vielen Dank fürs Lesen.

View all my reviews