Review: grokking algorithms by Aditya Y. Bhargava


This is a brief review of grokking algorithms by Aditya Y. Bhargava.

TLDR; really approachable, clear and concise concepts increasingly exposing the reader to more complex and handy algorithms based on previously discussed concepts.

Book review

Right after listening about a year ago to Aditya’s interview on the Talk Python podcast, I decided to buy his book out of curiosity.

https://images-na.ssl-images-amazon.com/images/I/61uUPXbhMxL._SX397_BO1,204,203,200_.jpg

Grokking Algorithms by Aditya Bhargava

Despite of taking me quite long to start, I finally went through it during my holidays. It is a light although technical reading that was very pleasurable to go through. Although most of the concepts were known to me, I read the book as the first step to start a deeper dive into some of them.

It was a good refresher of some of the concepts I had studied during my Bachelors in Telecommunications Engineering applied to different scenarios such as Bellman Ford’s algorithms or Drijkstra’s algorithm to compute the shortest path in a computer network, or the KNN classification method.

Other interesting points were the overview of dynamic programming, greedy algorithms, big O notaton, the discussion on simple algorithms and its complexity, NP-complete problems, as well as the super simple implementation of BDFS in Python.

Overall I enjoyed reading the book and as the author points out, instilled in me a demand for new and deeper knowledge on some of the topics.

P.S. there’s a github repo with implementations of the different algorithms in many languages: https://github.com/egonSchiele/grokking_algorithms as well as an errata page: http://adit.io/errata.html

comments powered by Disqus