You can read a hundred explanations of a linked list and still freeze when someone asks you to reverse one in an interview. You know the definition. You've seen the diagram. You've even solved the problem once, last Tuesday, with the tab still open.
The problem isn't knowledge. It's that you've never watched one work.
The gap between diagrams and intuition
Every data structures resource falls into one of two buckets:
- Textbook mode: prose plus a static diagram. Here is a linked list. Each node points to the next node. Great. Now solve "reverse a linked list in O(n) time" and good luck.
- LeetCode mode: here are 3,000 problems. Memorize the patterns. Next.
Both assume the intuition just shows up after enough reps. For a lot of us, it doesn't. Some people learn by watching the mechanism: the pointer that swings around, the array that silently doubles in size, the node that gets sifted up a heap. If you've never seen it happen, you're not debugging your solution. You're guessing.
So I built the thing I wished existed.
What I built
learningto/pass is a free, interactive way to learn the classic interview curriculum: 16 topics from Big O through dynamic programming, where every concept is taught as a step-by-step animation before any code appears.
Instead of "a binary search tree keeps smaller keys left and larger keys right," you insert keys one at a time and watch the tree grow, rebalance, and (sometimes) degenerate into a linked list. Which is its own lesson.
The animations aren't decorative. Each topic's visuals are built around the exact moment students get stuck - how a hash table handles a collision, what a partition actually does in quicksort, why BFS radiates outward in rings.
Then you code, in the browser, with no setup
Watching isn't enough, so every topic has a practice section with real interview-style challenges. Python runs entirely in your browser via WebAssembly (Pyodide), so there is nothing to install: you write code, hit run, and see test case results immediately.
No environment setup. No pip install. It runs on your phone, on a locked-down work laptop, on a Chromebook in a library.
The AI reviewer
When you're done (or stuck), you can request AI feedback on your solution. It behaves like a mock interviewer: rates the approach, names the time and space complexity, and tells you what a real interviewer would push on. If you're stuck rather than done, it gives progressive hints instead of the answer - level one is a nudge, level three is near-pseudocode.
The point isn't to replace thinking. It's to make the feedback loop fast enough that you get an interviewer's-eye view of your code while you still remember what you wrote.
What's free
Everything you need to start: the playground, the learn pages, and the practice challenges. No signup required until you want your progress saved across devices.
The data structure playground is the quickest way to feel the idea - insert, remove, and manipulate arrays, trees, heaps, and graphs with the animation playing as fast or slow as you want.
Under the hood (for the devs)
Since this is DEV: React SPA with Monaco for the editor, Pyodide running Python in a web worker, Three.js behind the heavier visualizations, Supabase for auth and progress sync, all hosted on Vercel. AI feedback goes through a serverless proxy so no keys ever hit the client.
The part I underestimated: prerendering. An SPA that renders everything client-side is invisible to search engines, so the build generates fully server-rendered HTML per route plus a sitemap, so the learn pages can actually be found by someone searching "how do heaps work" instead of only living in my browser history.
What's next
More content tracks are planned (the roadmap has AI and ML interview tracks), and I'm using the early feedback to decide what gets built next. If you take it for a spin and something feels off - a visualization that moves too fast, a challenge that's badly calibrated - that's exactly what I want to hear.
Try it here: learningto.co
If you've got a favorite way to visualize algorithms that I should steal from, tell me in the comments.




Top comments (0)