Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
project-based-learning

project-based-learning

> 编程语言
Free

Curated list of project-based tutorials

286.9K stars0 likes5 views
WebsiteGitHub

About

Curated list of project-based tutorials

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 & Socket API
    • Part 5: TCP Retransmission
  • Programming concurrent servers

    • Part 1 - Introduction
    • Part 2 - Threads
    • Part 3 - Event-driven
    • Part 4 - libuv
    • Part 5 - Redis case study
    • Part 6 - Callbacks, Promises and async/await
  • MQTT Broker from scratch

    • Part 1 - The protocol
    • Part 2 - Networking
    • Part 3 - Server
    • Part 4 - Data structures
    • Part 5 - Topic abstraction
    • Part 6 - Handlers
    • Bonus - Multithreading
  • Networking from Scratch OpenGL:

  • Creating 2D Breakout game clone in C++ with OpenGL

    • Breakout
    • Setting up
    • Rendering Sprites
    • Levels
    • Collisions
      • Ball
      • Collision detection
      • Collision resolution
    • Particles
    • Postprocessing
    • Powerups
    • Audio
    • Render text
    • Final thoughts
  • Handmade Hero

  • How to Make Minecraft in C++/OpenGL (video) C#:

  • Learn C# By Building a Simple RPG Game

  • Create a Rogue-like game in C#

  • Create a Blank App with C# and Xamarin (work in progress)

  • Build iOS Photo Library App with Xamarin and Visual Studio

  • Building the CoreWiki This is a Wiki-style content management system that has been completely written in C# with ASP.NET Core and Razor Pages. You can find the source code here. Clojure:

  • Build a Twitter Bot with Clojure

  • Building a Spell-Checker

  • Building a JIRA integration with Clojure & Atlassian Connect

  • Prototyping with Clojure

  • Tetris in ClojureScript Dart: Flutter:

  • Amazon Clone with Admin Panel

  • Food Delivery App

  • Google Docs Clone

  • Instagram C

Issues· 258 open

View all issuesOpen on GitHub
  • #963

    student attendance detection

    Updated Sep 29, 2026
  • #899

    Link rot report

    link-rotUpdated Sep 28, 2026
  • #860

    This guy try to hackes my insta acc

    Updated Sep 26, 2026
  • #937

    BOMOYI

    Updated Sep 12, 2026
  • #900

    Broken/dead links found in README

    Updated Sep 7, 2026
  • #310

    Looking for maintainers

    help wantedUpdated Aug 30, 2026
  • #764

    https://justoarts.netlify.app/

    Updated Aug 30, 2026
  • #344

    Clean up dead or outdated tutorials

    help wantedgood first issueUpdated Aug 25, 2026
  • #916

    [Suggestion]: Build an app for beginners

    Updated Jul 15, 2026
  • #888

    Broken Link in Go for Create a Real Time Chat App with Golang, Angular 2, and WebSocket

    Updated Jul 2, 2026

> Tags

Pythonbeginner-projectcppgolang

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedOct 17, 2026
Category编程语言
PricingFree

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言