practical-tutorials /project-based-learning
Curated list of project-based tutorials
★ 289,451⑂ 36,832👁 3,468⑃ 611● 245▤ 0◈ 30
289,451
stars
+62+653+3,529
36,832
forks
3,468
watchers
611
prs
245
issues
0
releases
30
discussions
README
Project Based Learning A list of programming tutorials in which aspiring software developers learn how to build an application from scratch. These tutorials are divided into different primary programming languages. Tutorials may involve multiple technologies and languages. To get started, simply fork this repo. Please refer to CONTRIBUTING.md for contribution guidelines. Table of Contents: - C - C/C++ - Clojure - Dart - Elixir - Erlang - F - Go - Haskell - HTML/CSS - Java - JavaScript - Kotlin - Lua - OCaml - PHP - Python - R - Ruby - Rust - Scala - Swift - Additional resources C/C++: - Build an Interpreter (Chapter 14 on is written in C) - Memory Allocators 101 - Write a simple memory allocator - Write a Shell in C - Write a FUSE Filesystem - Build Your Own Text Editor - Build Your Own Lisp - How to Program an NES Game in C - Write an OS from scratch - How to create an OS from scratch - Building a CHIP-8 Emulator - Beginning Game Programming with C++ and SDL - Implementing a Key-Value Store - Tiny 3D graphics projects - Tiny Renderer or how OpenGL works: software rendering in 500 lines of code - Understandable RayTracing in 256 lines of bare C++ - KABOOM! in 180 lines of bare C++ - 486 lines of C++: old-school FPS in a weekend - Writing a minimal x86-64 JIT compiler in C++ - Part 1 - Part 2 - Build a Live Code-reloader Library for C++ - Write a hash table in C - Let's Build a Simple Database - Let's Write a Kernel - Write a Bootloader in C - Linux Container in 500 Lines of Code - Write Your Own Virtual Machine - Learning KVM - Implement Your Own Linux Kernel - Build Your Own Redis with C/C++ - Write a C compiler - Part 1: Integers, Lexing and Code Generation - Part 2: Unary Operators - Part 3: Binary Operators - Part 4: Even More Binary Operators - Part 5: Local Variables - Part 6: Conditionals - Part 7: Compound Statements - Part 8: Loops - Part 9: Functions - Part 10: Global Variables - Implementing a Language with LLVM - Meta Crush Saga: a C++17 compile-time game - High-Performance Matrix Multiplication - Space Invaders from Scratch - Part 1 - Part 2 - Part 3 - Part 4 - Part 5 - Tetris Tutorial in C++ Platform Independent - Writing a Linux Debugger - Part 1: Setup - Part 2: Breakpoints - Part 3: Registers and memory - Part 4: Elves and dwarves - Part 5: Source and signals - Part 6: Source-level stepping - Part 7: Source-level breakpoints - Part 8: Stack unwinding - Part 9: Handling variables - Part 10: Advanced topics - Let's write a compiler - Part 1: Introduction, selecting a language, and doing some planning - Part 2: A lexer - Part 3: A parser - Part 4: Testing - Part 5: A code generator - Part 6: Input and output - Part 7: Arrays - Part 8: Strings, forward references, and conclusion Network programming - Let's Code a TCP/IP Stack - Part 1: Ethernet & ARP - Part 2: IPv4 & ICMPv4 - Part 3: TCP Basics & Handshake - Part 4: TCP Data Flow & S
Top issues
#310Looking for maintainers36 comments · 2021-08-16#380Broken/Dead Links: Implementing a Search Engine33 comments · 2022-08-26#282Add Flutter tutorials17 comments · 2021-02-16#344Clean up dead or outdated tutorials13 comments · 2022-01-28#578All languages and with their projects 9 comments · 2024-06-15#347broken link in java tutorial10 comments · 2022-02-22#259Add dropdowns to the list8 comments · 2020-10-02#63Add resource type alongside tutorial title.8 comments · 2018-04-19
Discussions
#925python project11 comments · 2026-07-30#883[removed]0 comments · 2026-06-10#82306187836460 comments · 2026-04-02#800100 Days, 100 IoT Projects2 comments · 2026-02-26#797Enterprise File Validator3 comments · 2026-02-19#795Built a brutally honest roasting tool for LinkedIn & Github profiles0 comments · 2026-02-08#772Built a Customer Survey Web App — Feedback Welcome4 comments · 2025-12-06#762Base learn2 comments · 2025-11-10
News & coverage (9)
Hacker NewsCurated list of tutorials to build applications from scratch▲ 4 · 0 comments · 2025-01-09Hacker NewsProject-Based Learning: A curated list of project-based tutorials▲ 4 · 0 comments · 2024-05-01Hacker NewsProject Based Learning▲ 4 · 0 comments · 2021-08-26eu.36kr.comTsinghua's "Lobster Teacher" Speaks at UN: Related GitHub Project Star Count Surges 30,000 | Xinglian Portfolio Updates2026-09-09KDnuggets10 GitHub Repositories for Python Projects2025-07-15KDnuggets10 GitHub Repositories to Master Python2024-04-10MakeUseOf7 Practical GitHub Repositories That Will Teach You Python2023-02-05The GitHub BlogGitHub intern project: Building courses on full stack development2019-08-21SD TimesSD Times GitHub project of the week: Hadouken2017-12-21