gitmyhub

grokking_algorithms

JavaScript ★ 14k updated 2mo ago

Code for the book Grokking Algorithms (https://www.amazon.com/dp/1633438538)

This repo holds the example code and high-resolution illustrations from Grokking Algorithms, a beginner-friendly illustrated book teaching common algorithms to non-programmers.

PythonJavaScriptsetup: easycomplexity 1/5

This repository holds the example code that accompanies the book Grokking Algorithms by Aditya Bhargava, published by Manning. The book is a beginner-friendly, illustrated introduction to algorithms, the step-by-step methods computers use to solve problems like searching through data or sorting lists. This repo is the companion code so readers can run and study the examples while working through the chapters.

The README is short and practical. It points to Python Tutor, an external website that steps through Python code one line at a time, which the author recommends as a way to follow along with the examples. It also links to an errata page listing corrections to mistakes found in the book after it was printed.

Another notable part of the repository is the images. The author says every illustration from the book is included here in high resolution, and these are available for non-commercial use such as teaching slides or presentations. Anyone using an image is asked to add a credit line: "copyright Manning Publications, drawn by adit.io."

The README also explains how to contribute. The author asks that questions or reports of book errors go to his email rather than GitHub issues, since he responds there faster. For code changes, pull requests are preferred over issues. He is upfront that he can be slow to respond but says he does get to them eventually. The contributions he values most are fixing errors in existing code, adding examples in additional programming languages, updating code as languages evolve, and making examples clearer to read.

Equally telling is what he declines: purely stylistic changes and complex performance optimizations are unlikely to be merged. The reason is that the purpose of the repo is to keep examples simple enough that someone learning the concept can follow them without getting lost in clever tricks.

Where it fits