Crafting Interpreters
craftinginterpreters.com
Robert Nystrom's free book walking you through building two complete interpreters from scratch — a tree-walk interpreter in Java, then a bytecode VM in C — for a full programming language called Lox.
Why it is useful
The best practical resource for understanding how programming languages actually work. You build two real implementations from scratch: a tree-walk interpreter (good for understanding the concepts) and then a bytecode virtual machine (good for understanding performance). The writing is clear and entertaining, the projects are completable, and finishing it gives you a genuine understanding of interpreters that years of using languages doesn't.
More in Learning Resources
Other learning resources you might not have heard of.
- VisuAlgoAnimated, step-by-step visualisations of data structures and algorithms, from sorting and linked lists to graphs and dynamic programming, with the ability to run each on your own input.
- fast.aiA practical deep learning course designed for people with coding experience who want to build and understand neural networks without requiring a math PhD first.
- WorldWide TelescopeA free, open-source virtual telescope that lets you explore the sky, planets and deep-space imagery from real observatory surveys, with guided tours.
- PaperMeA web-based reader and UI experiment that applies a high-contrast, paper-like aesthetic to digital text and web browsing interfaces.
- Build ItMinecraft build catalog with searchable structures, style collections, material lists, hacks, and community posts covering houses, farms, statues, and themed designs.
- Missing SemesterMIT course teaching the practical CS tools that university curricula skip — shell, git, vim, and more.