finds.dev← search

// the find

donnemartin/interactive-coding-challenges

★ 31,559 · Python · NOASSERTION · updated May 2024

120+ interactive Python coding interview challenges (algorithms and data structures). Includes Anki flashcards.

A collection of 120+ algorithm and data structure problems delivered as Jupyter notebooks, each with a challenge notebook (skeleton + failing unit tests) and a solution notebook (working code + Big-O analysis). It's aimed at developers preparing for coding interviews, particularly those who want something more structured than LeetCode grinding but less hand-holdy than a course.

Each problem ships with actual unit tests you run in-place, so you get instant feedback without setting up a separate test harness. The Big-O analysis is included in every solution notebook — time and space complexity is spelled out, not left as an exercise. The Anki deck is a genuinely useful addition: spaced repetition for algorithm patterns is underrated, and having it bundled rather than pointing you somewhere else is thoughtful. Coverage is solid across the standard interview canon: graphs, DP, bit manipulation, sorting — nothing exotic, but everything you'd actually get asked.

Last commit was May 2024, and the TODO list of missing implementations (A*, Bellman-Ford, Union Find, etc.) has been sitting there for years with no apparent movement. The repo is Python-only, which matters less for interview prep but does mean you can't use it if you interview in another language. Binder startup times are painful enough that most people will just clone and run locally anyway, making the interactive pitch feel overstated. The online-judges section is a thin wrapper around a handful of LeetCode-style problems with no explanation of *why* they were chosen — it feels grafted on rather than integrated.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →