Project Based Learning: Curated Coding Tutorials
Project Based Learning is a GitHub-hosted list of external programming tutorials organized by language, for developers who learn best by building something end-to-end rather than reading isolated snippets. Its value is entirely the curation — every link points off-site to someone else's writeup or video. Reach for it as a starting point for your next project; skip it if you expect the exercises or code to live in the repo.
What is Project Based Learning?
Project Based Learning is a curated README on GitHub that links out to external tutorials for building real applications from scratch, grouped by primary language such as C/C++, C#, Clojure, Java, and JavaScript. It frames itself for aspiring developers who want to learn a language by shipping something, not by working isolated exercises. Some entries are a single blog post; others are multi-part series on compilers or OS kernels.
Key Project Categories and Languages
- ✓Language coverage spans C/C++, C#, Clojure, Dart (Flutter), Elixir, Erlang, F#, Java, and JavaScript, each with its own README section, plus dedicated HTML/CSS and mobile-application subsections.
- ✓The C/C++ section is the deepest, with entries on writing an interpreter, a shell, a FUSE filesystem, an OS from scratch, a CHIP-8 emulator, and an x86-64 JIT compiler from scratch.
- ✓A dedicated network-programming subsection under C/C++ covers building a TCP/IP stack, concurrent servers, and an MQTT broker step by step.
- ✓The JavaScript section branches into HTML/CSS, mobile applications, and a large Web Applications subsection with entries for React, Next.js, Angular, Node, and Vue.
- ✓Several entries are structured as multi-part series rather than single articles — for example a 10-part 'Write a C compiler' walkthrough and a 10-part 'Writing a Linux Debugger' series.
- ✓Formats vary within the list itself: most entries link to blog-post tutorials, but some point to YouTube playlists, like the Flutter clone-app videos and the Handmade Hero series.
Who Benefits from Project-Based Learning?
- •Developers who already know the basics of a language and want a meaty, guided project to practice on instead of another set of drills.
- •Self-taught programmers picking a first language, since the README groups tutorials by language so you can browse the C/C++, JavaScript, or Java sections separately.
- •Anyone curious about systems programming — the network-programming and OS/compiler entries under C/C++ go deeper than most beginner material.
- •Framework-specific learners, since Web Applications breaks JavaScript entries out by React, Next.js, Angular, Node, and Vue rather than lumping them together.
- •Contributors who've built something and want to add their own writeup — the README points to CONTRIBUTING.md and says to fork the repo to get started.
Strengths
- ✓Genuinely broad language coverage in one place — C/C++, C#, Clojure, Dart/Flutter, Elixir, Erlang, F#, Java, and JavaScript all get their own section instead of being scattered across separate lists.
- ✓The C/C++ and network-programming entries go well past toy examples — writing a bootloader, a hash table, a Redis clone, or a TCP/IP stack from packets up.
- ✓Grouping JavaScript by framework (React, Next.js, Angular, Node, Vue) under Web Applications makes it easy to find a project in the exact stack you're learning.
- ✓Multi-part series like the 10-step 'Write a C compiler' or the 10-part Linux debugger walkthrough give you a real curriculum instead of a single blog post.
- ✓The MIT license and a public CONTRIBUTING.md make it straightforward to fork the repo and add a tutorial you've found or written.
Considerations for Using This Resource
- △None of the tutorials live in this repo — every link goes to an external site, blog, or YouTube video, so link rot is a real risk over time and the README gives no indication of how often dead links get checked.
- △Entries aren't annotated beyond a title and sometimes a one-line note (like which chapters of a book apply) — you won't know a tutorial's length, difficulty, or how current it is until you click through.
- △Coverage is uneven: C/C++ has dozens of entries including multi-part series, while languages like Clojure, Erlang, and F# each get only a handful of single links.
- △The README doesn't state when it was last updated or how actively new tutorials get added, so there's no way to judge freshness from the repo itself.
- △There's no search or filter beyond browsing the table of contents by language — for a list this size that means scrolling through a long README.
Frequently Asked Questions
Project Based Learning organizes tutorials by language, including C/C++, C#, Clojure, Dart (with a Flutter section), Elixir, Erlang, F#, Java, and JavaScript, plus dedicated HTML/CSS and mobile-application sections.
The README doesn't label entries by skill level, but Project Based Learning describes itself as being for 'aspiring software developers,' and its C/C++ section in particular — OS kernels, compilers, JIT compilers — assumes you already know the language's basics.
Project Based Learning's README says to fork the repository and follow the guidelines in CONTRIBUTING.md to submit a new tutorial link.
Tutorials linked from Project Based Learning cover building interpreters, compilers, operating systems, text editors, shells, TCP/IP stacks, MQTT brokers, 2D and 3D games, and full web and mobile apps in frameworks like React, Angular, Vue, and Flutter.
Project Based Learning is released under the MIT license, per its GitHub repository metadata.
No — Project Based Learning is a list of links; every tutorial is hosted on an external site, blog, or video platform, and the repo itself contains only the curated table of contents.
Alternatives
Who should try it — and who should skip
Try Project Based Learning if you already know a language's syntax and want a concrete project — a shell, a compiler, a chat app — to build against it, especially in C/C++ where the list goes deepest. Skip it if you want a structured, sequenced curriculum with built-in exercises and feedback, or if you're not up for chasing dead or outdated external links; this repo curates pointers, not lessons.
Related repositories
Curious whether project-based-learning is right for you?
Let ChatGPT, Claude, or Perplexity look into it — click below and see what AI actually says about project-based-learning.
