avatarjavinpaul

Summary

The article "Is Grokking Algorithms Worth It? — Book Review" provides a positive assessment of the book "Grokking Algorithms" for its engaging and accessible approach to teaching algorithms and data structures, making it particularly suitable for beginners and those interested in the subject.

Abstract

The review of "Grokking Algorithms" by Aditya Bhargava emphasizes the book's unique blend of easy-to-understand language, interesting real-world examples, and extensive use of illustrations to explain complex concepts in algorithms and data structures. While not comprehensive in covering all data structures and algorithms, the book excels in providing a solid foundation for beginners. It is praised for its ability to make the subject matter engaging and for focusing on the understanding of concepts rather than specific implementations. The author of the review, a seasoned reader of technical books, highly recommends "Grokking Algorithms" to programmers, students, and curious minds, noting that it stands out as one of the most interesting and readable books on the topic.

Opinions

  • The reviewer appreciates the book's focus on essential topics and its use of contextual examples, such as friends finding seats in a movie theater to illustrate array and linked list concepts.
  • The reviewer finds the book's language and examples, including why quicksort is preferred over merge sort, to be particularly enlightening.
  • The book's visual aids, with around 400 unique images, are highlighted as a significant strength that enhances the reader's understanding.
  • The reviewer suggests that the book could be improved by including more content on advanced data structures and algorithms, such as trees, tries, and encryption algorithms.
  • Despite its limitations, the reviewer considers "Grokking Algorithms" a must-read for anyone interested in the field, noting that it makes a dry topic more interesting and accessible.
  • The reviewer recommends complementing the book with online courses, such as those offered by Udemy or Pluralsight, for a more comprehensive understanding of data structures and algorithms.
  • The reviewer expresses hope for a second edition of the book that might address the gaps in content and provide a more exhaustive coverage of the subject.
  • The book is praised for its affordability and value for money, making it an attractive resource for learning algorithms and data structures.

Is Grokking Algorithms Worth It? — Book Review

Review of popular Grokking Algorithms books, yes, it's worth reading, the easiest book to learn Algorithms

Grokking Algorithms

Hello guys, I have read many books on data structures and algorithms like Introduction to Algorithms by Thomas H. Corman and Algorithm design manual by Steve S. Skiena, so when I come to know about this book, I thought, it’s just another book on algorithms, but I was wrong.

This is not just another book on algorithms but one of the most interesting books you will ever read on Algorithms and Data structure, particularly for beginners.

It doesn’t cover all the data structure and algorithms you see in Computer Science but whatever it covers, it does really well and that’s what matters most for beginner programmers or Computer Science students.

Let’s accept it, data structure and algorithms are interesting but at the same time they are very complex and hard to understand, especially, if not explained very well and that’s where this book rocks.

It explains things in very easy language and most importantly with a context, which helps to understand the topic better.

For example, when Aditya talked about array and linked list in the Grokking Algorithms, his examples of how a group of friends going for a movie struggles to find seats that are next to each other illustrate the problem faced by the array because of contiguous memory requirement.

There are many such interesting and real-world examples, which makes the complex topic of algorithms and data structure easier to understand.

You will also appreciate his simple explanations like why quicksort is more used than merge sort?, something which I have thought before, but didn’t understand, and that is just one example, the book is full of such examples on essential topics like an array, linked list, sorting algorithms, searching algorithms, recursion, etc.

If his language and examples were not enough, the fine arts, paintings, and diagrams in the book will surely hook you.

The book has around 400 images and they are all unique (one example is below). They go nicely with the text and help you to visualize how an algorithm is working or how a data structure is working.

Aditya’s background in programming and fine arts has really created a nice blend that came together in the Grokking Algorithms: An Illustrated Guide for Programmers and makes this book a must-read for any programmer and Computer Science Student.

What I liked in Grokking Algorithms?

Well, to be honest, I like the whole book, from Introduction to end. This is also one of the few books which I have read from start to end in the last few years, the other two beings, Elegant Objects by Yegor Bugayenko and Clean Architecture by Uncle Bob Martin.

Anyway, here is my list of things that I liked, in fact, loved in Grokking algorithms:

1. Easy to understand language.

2. Interesting pictures which help to visualize the working of algorithms and data structures.

3. Thought to provoke use cases like when you have to design an app to keep track of your expense where you need to add and remove items more regularly and viewing it once or twice in a month, which data structure will you use?

4. Contemporary examples make it even more interesting. For example, how does Facebook store usernames so that they can allow you to log in and handle signups? Array or linked list or a hybrid data structure which is made of an array and linked list.

5. Size of the book, yes, it’s not overwhelming so more chances that you will read it and come back again.

6. Covers essential data structures like the array, string, binary tree, linked list, and hash table.

These were some of the points which I like but overall Grokking Algorithms is a very readable book with lots of good pictures which makes this difficult topic relatively easy to understand.

But, if you are someone who prefers active learning like online courses then you can combine this book with Data Structures and Algorithms: Deep Dive Using Java course from Udemy, which covers a lot more data structure than Grokking Algorithm and effectively complement the book.

What would have made this book even better?

As contrary to many of you thinking, the book is surely not a replacement of classic titles such as Introduction to Algorithms by Thomas H. Cormen because it’s not comprehensive and doesn’t cover most of the data structure like Tree or Trie, etc.

At best, its an introductory book on data structure and algorithms which makes the somewhat dry topic of data structure and algorithms more interesting. Following are some things which I missed in this book:

1. The book is kinda light on data structures, which is a counterpart of algorithms because algorithms work on data structure and its the choice of a data structure which affect algorithms, would have been better if Aditya provided some more content on an essential data structure like a binary tree, binary search tree, trie, etc.

2. Even though the book covers dynamic programming and greedy algorithms and explains some advanced algorithms like k-nearest neighbors, it still doesn’t cover key algorithms like encoding and encryption algorithms, map-reduce, etc.

He tries to somewhat make for it in the last chapter about what next, where he provides a brief overview of 10 more algorithms that weren’t covered in the main content.

Btw, if you want to explore more data structure and algorithms than given in this book, I also suggest checking out Algorithms and Data Structures by Robert Harvick, an online course from Pluralsight.

Btw, you would need Pluralsight membership to access these books which cost around $29 per month or $299 per annum (I actually bought it for $199 on their sale which they run every quarter or so).

Even if you don’t have the membership, you can access this course for free by taking advantage of their 10-day free trial, which allows 200 hours of access to their all online courses.

To be honest, the book delivers what it says but once you start loving a book, you start expecting more from it and hopefully, Aditya will take note of it and the second edition would be a little bit more comprehensive than the first edition.

That’s all about Grokking Algorithms: An illustrated guide for programmers and other curious people. In short, I highly recommend this book to programmers, developers, software engineers, students, computer science graduates, and all other curious people, as the title suggests.

It’s interesting to read, teaches complex concepts in easy-to-follow language, problem-solving, and focus on concept than implementations which means

Even if you don’t code daily you can still understand how a particular algorithm works and how to choose a particular data structure to solve a problem.

Its chapters on the array and the linked list are one of the best I have ever read and I strongly recommend all programs, particularly those who have just started their career to read that. It’s also not costly and worth every penny spent.

So, if you want to do just one thing right now, just go and read the Grokking Algorithm by Aditya Bhargava, Many thanks and kudos for writing such awesome books which makes this topic even more interesting and readable.

Other Programming Articles and Resources You may like

  1. Data Structures in Java by Heinz Kabutz
  2. 5 Free Courses to learn Data Structure and Algorithms
  3. Is Effective Java still valid in the era of Java 8?
  4. Clean Architecture by Uncle Book — Review
  5. Is Java Concurrency in Practice still valid in the era of Java 8?
  6. 10 Algorithm Books Every Programmer should read
  7. 5 Books to Improve coding skills of Programmers
  8. 10 Tools Java Developers Should learn in 2023
  9. 10 Things Java Programmers Should Learn in 2023

Thanks for reading this article. If you like this book and my review then please share it with your friends and colleagues. If you have any questions or feedback, please drop a comment.

P. S. — If you prefer online courses more than books or want best of both worlds then you can also check the Data Structures and Algorithms: Deep Dive Using Java along with reading this book. This will help you to learn these key skill better.

Programming
Java
Books
Algorithms
Software Development
Recommended from ReadMedium