explaingit

practical-tutorials/project-based-learning

265,018Audience · developerComplexity · 1/5LicenseSetup · easy

TLDR

A curated index of project-based programming tutorials organized by language, linking to step-by-step guides for building real applications from scratch.

Mindmap

mindmap
  root((repo))
    What it does
      Curated tutorial index
      Organized by language
      Links to guides
    Content types
      Blog series
      Free books
      Step-by-step articles
    Use cases
      Learn by building
      Deepen understanding
      Find side projects
    Languages covered
      JavaScript, Python
      Rust, Go, Java
      20+ more languages
    Project examples
      Build interpreters
      Write compilers
      Create databases
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Find a structured project tutorial after mastering language basics to level up your skills.

USE CASE 2

Learn how a technology works by following a guide that walks you through building it from scratch.

USE CASE 3

Discover a meaningful side project to keep your programming abilities sharp and engaged.

Tech stack

Markdown

Getting it running

Difficulty · easy Time to first run · 5min
Use freely for any purpose including commercial, as long as you keep the copyright notice.

In plain English

This repository is a curated list of project-based programming tutorials, aimed at aspiring developers who want to learn by actually building an application from scratch rather than only reading theory. The README explains the format upfront: each entry is a link to a tutorial that walks you through building something concrete, and tutorials are grouped by their primary programming language even though many of them touch several technologies. To contribute, you fork the repo and follow the contribution guide. The table of contents is the spine of the repo. It lists languages alphabetically and gives each its own section: C#, C/C++, Clojure, Dart, Elixir, Erlang, F#, Go, Haskell, HTML/CSS, Java, JavaScript, Kotlin, Lua, OCaml, PHP, Python, R, Ruby, Rust, Scala, and Swift, with an extra Additional resources section at the end. Inside each language section is a flat list of named tutorials with direct links to the article, book, or repo that hosts the lesson. The C/C++ section, for example, points at Crafting Interpreters, a write-a-shell-in-C walk-through, a memory-allocator tutorial, a small text editor (Kilo), a build-your-own-Lisp book, a CHIP-8 emulator tutorial, an NES game in C, FUSE filesystem and kernel tutorials, a tiny renderer, a tiny ray tracer, a key-value store, a Redis clone, a hash table in C, a multi-part write-a-C-compiler series, a Linux container in 500 lines, and a multi-part Linux debugger series. You would use this repo when you have picked a language and want to build something real to cement what you have learned. The flat structure makes it easy to scan: pick your language, scroll the list, and click into the project that looks fun or relevant. The repo itself contains no runnable code, it is a Markdown index whose value is the careful selection of external tutorials it points to.

Copy-paste prompts

Prompt 1
I want to learn Go by building something real. What project from this list would teach me the most about the language?
Prompt 2
Show me the Python tutorials in this repo that involve building interpreters or compilers.
Prompt 3
I'm looking for a multi-part tutorial series on building a database. Which ones does this list recommend?
Prompt 4
Find me a JavaScript project tutorial that teaches low-level concepts like TCP/IP or networking.
Prompt 5
What are the hardest, most advanced projects listed here that would deepen my understanding of systems programming?
Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub practical-tutorials on gitmyhub

Verify against the repo before relying on details.