Grokking Algorithms. Is it a baby step? Book review.

Your first book in the world of DSA.

Oleksandr Klymenko
5 min readJan 15, 2023

Recently, I’ve decided that my next step in the IT industry as a software engineer must be tied to FAANG companies. You likely know that most big-tech companies require pertinent knowledge of algorithms. To pass the tech interview and live up to these companies’ expectations I have to master algorithms and data structures.

For all my 7-year carrier I’ve never really needed such skills. A good understanding of my domain technologies (Android/Flutter) was always enough. But not this time, 🥲 not for Google or Amazon…

So, I’m a total noob with algorithms and data structures. The only related to the topic thing I know is the difference between an Array and a LinkedList and what is and how HashMap works. I definitely need to learn rudiments at first and it’s where Grokking Algorithms comes into the scene. 🕺

First of all, I want to say I liked this book. It’s like a door to a house called Algorithms with the stuck list of its residents and their brief descriptions. Here I’m gonna share my opinion on for who this book is, what I enjoyed the most, and what can be improved.

Once I decided to write this review I found an article with almost the same purpose. I recommend going over that article too before reading the book.

Do you need to learn algorithms?

Of course, you need this otherwise why are you here? But why do you need this? In the book, it’s mentioned that it’s intended for programmers, developers, software engineers, students, computer science graduates, and all other curious people. But the truth is that many programmers, developers, and software engineers don’t really need algorithms at their work. Like me. 🙃

As I said in the beginning, awareness of algorithms is required mostly in big-tech companies, and If it is not your goal to be hired by such companies, most probably you won’t use algorithms at all even if you learn them. It is an enormous topic with tons of material which you need to keep in your mind. And without everyday practice, you most probably forget some of this knowledge.

It’s ok to deep into the algorithms if you are a student and your first job is going to be in a big-tech company where this knowledge is mandatory.

And for all other curious people… Well, if there are no Googles or Amazons in your plans and you want to have a representation of algorithms in your head that would be enough to meet your solace this is a must-read book. You will learn the basics of this topic, the most important data structures, and what kind of problems should be solved with them.

Also, if you want to bulk up your brain by solving problems on LeetCode, CodeWars, etc., you will need to use algorithms and data structures as well. This is the perfect book to get along with the topic before straggling with the tasks on these platforms.

Don’t worry if you feel like this guy in the image below at your start of learning algorithms. In the middle of the path and even in the end you will fill the same. This is my permanent feeling. 😁

… and… if you work on the programming UI elements you may find yourself on this image…

What did I like the most?

I am fond of the way how this book was written. It was written on easy to understand language without complex terms and collocations. Even schoolchildren can get it.

I figured out some topics I hadn’t even known before. Like NP problems and dynamic programming (don’t worry, you will learn it too once read the book). And actually, the book suggests you acknowledge almost all contemporary topics related to the algorithms.

On the other hand, you won’t get comprehensive knowledge by reading this book. It is not a competitor of Introduction to Algorithms by Thomas H. Cormen. From my perspective, the goal of this book is to show you what algorithms and data structures exist and what they are for. 🎯

It also has a large number of unique pictures, tables, and illustrations which are really helpful.

For me, graphs and trees 🌳 (the names of data structures) always lay beyond my mind, but after this book, I have eventually learned them and sometimes even try to apply them to my work. Unfortunately, my work is about changing of colors of the UI buttons and suggests next to no cases where I can use it… 🥲

yeah I have it in Russian, unfortunately, I haven’t found it in English or Ukrainian in my country

What can be improved?

The book has a few typos. Most probably this is because of the quality of localization of this book to the language I’ve read it. Anyway, sometimes I was confused by typos in the logarithm equations and in the snippets with the pseudocode.

It is fine that we have such a book as Grokking Algorithms. However, it isn’t enough.

hope you’ve got my point from this chart

Even if you started from this book, it is still a huge gap before you feel confident reading the books placed on the last bar.

So, it would be good to have vol 2, 3, and maybe 4 of this book where every next vol becomes more complex and comprehensive. If you are a creative writer or/and wanna write your own book with algorithms, now you see what we need. 😉

What’s next?

In case you’ve read this book and want to move further I can recommend an online course that I find useful and attend so far.

And if you have the same goal as me, one man has made an extensive road map that should lead you to the FAANG.

Hope you have found this article useful and got rid of any doubts regarding the book. If you are interested in effective learning, check out my review of “make it stick” book:

Thank you for reading and never stop learning!

--

--

Oleksandr Klymenko

I'm Lead Software Engineer with Flutter as a domain technology. Working on creating mobile solutions for diabetics. So far, enjoying my way to the FAANG.