Project Based Learning: Build Real Applications

Project Based Learning is the practical-tutorials index: curated walkthroughs where you build a full application from scratch in a chosen language, not 30-second “top 10 snippets” listicles. Each entry ends with a real working thing you wrote: a compiler, a web server, a neural network, a small operating system, an e-commerce site.

project-based-learning tutorials build applications
  • 275,232 stars
  • 35,474 forks
  • Markdown tutorial index
  • MIT License

Project Based Learning: Sorted by primary language

The README organizes tutorials by the language they’re written in: C#, C/C++, Clojure, Dart, Elixir, Erlang, F#, Go, Haskell, HTML/CSS, Java, JavaScript, Kotlin, Lisp, Lua, Objective-C, OCaml, Python, R, Ruby, Rust, Scala, Scheme, Swift, TypeScript, plus an “Additional Languages” section. Each entry is a single tutorial with the project name, a one-sentence description, and an outbound link. No stars, no ratings. The description is the filter.

This organization forces a useful decision: pick the language you want to get better at, then pick a project within it. The alternative (browsing by topic) leads to “what looks cool” picks that never get finished.

The projects are real, not toys

Sample projects: C/C++: write a Lisp interpreter, build a simple web server, an emulator, a tiny shell, a neural network from scratch, a regular expression engine, a chess AI. Python: build a Twitter-like service, a compiler, a Toml parser, an asteroid game, a Bitcoin transaction interpreter. Rust: write a DNS server, an immutable database, a Lisp interpreter, a TCP chat. JavaScript/TypeScript: a real-time chat, a Voxels engine, a Notepad clone, an e-commerce shopping cart.

The unifying shape: each tutorial takes 5-40 hours, ends with a working artifact, and forces you to confront the language’s idioms in a real problem rather than toy examples. None of them are “Hello World” extended.

Link-rot is actively swept

The maintainers run a monthly GitHub Action called “link-rot” that HEADs every outbound URL in the README and opens an issue for any 4xx/5xx. Dead tutorials get PR’d out within a release cycle. This is rare for curated link indexes. Most decay silently within two years. This one has stayed usable for almost a decade because of that one workflow.

How to use it well

Pick a language you want to deepen, pick one project that solves a problem you actually understand (don’t pick “build a Prolog interpreter” if you’ve never used Prolog), and block 10-20 hours. Reading alone does nothing. The value is in the writing. If you finish in a weekend, pick a harder one next.

Project Based Learning is the build-real-applications index. Pick a language, pick a project, finish it. That single loop will teach you more about the language than any course.