practical-tutorials/project-based-learning

GitHub Trending (daily) 工具

摘要

一个GitHub仓库,汇集了多种语言的基于项目的编程教程,帮助开发者通过从零开始构建应用程序来学习。

精选的基于项目的教程列表
查看原文
查看缓存全文

缓存时间: 2026/08/12 08:26

practical-tutorials/project-based-learning

来源:https://github.com/practical-tutorials/project-based-learning

项目式学习(Project Based Learning)

Gitter (https://gitter.im/practical-tutorials/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) 链接失效扫描 (https://github.com/practical-tutorials/project-based-learning/actions/workflows/link-rot.yml)

这是一个编程教程列表,面向有志于成为软件开发者的人,教你如何从零开始构建一个应用程序。这些教程按不同的主要编程语言进行分类。教程可能涉及多种技术和语言。

要开始使用,只需 fork 本仓库。有关贡献指南,请参阅 CONTRIBUTING.md

目录:

C/C++:

  • 构建一个解释器(http://www.craftinginterpreters.com/)(第 14 章起使用 C 语言编写)
  • 内存分配器入门——编写一个简单的内存分配器(https://arjunsreedharan.org/post/148675821737/memory-allocators-101-write-a-simple-memory)
  • 用 C 语言编写一个 Shell(https://brennan.io/2015/01/16/write-a-shell-in-c/)
  • 编写一个 FUSE 文件系统(https://www.cs.nmsu.edu/~pfeiffer/fuse-tutorial/)
  • 自己动手构建文本编辑器(http://viewsourcecode.org/snaptoken/kilo/)
  • 自己动手构建 Lisp 解释器(http://www.buildyourownlisp.com/)
  • 如何用 C 语言编写 NES 游戏(https://nesdoug.com/)
  • 从零编写操作系统(https://github.com/tuhdo/os01)
  • 如何从零创建操作系统(https://github.com/cfenollosa/os-tutorial)
  • 构建一个 CHIP-8 模拟器(https://austinmorlan.com/posts/chip8_emulator/)
  • 使用 C++ 和 SDL 进行游戏编程入门(http://lazyfoo.net/tutorials/SDL/)
  • 实现一个键值存储(http://codecapsule.com/2012/11/07/ikvs-implementing-a-key-value-store-table-of-contents/)
  • 微型 3D 图形项目
    • Tiny Renderer 或 OpenGL 的工作原理:500 行代码实现软件渲染(https://github.com/ssloy/tinyrenderer/wiki)
    • 256 行纯 C++ 实现可理解的 RayTracing(https://github.com/ssloy/tinyraytracer/wiki)
    • 180 行纯 C++ 实现 KABOOM!(https://github.com/ssloy/tinykaboom/wiki)
    • 486 行 C++:周末写出复古 FPS 游戏(https://github.com/ssloy/tinyraycaster/wiki)
  • 用 C++ 编写一个极简 x86-64 JIT 编译器
    • 第一部分(https://solarianprogrammer.com/2018/01/10/writing-minimal-x86-64-jit-compiler-cpp/)
    • 第二部分(https://solarianprogrammer.com/2018/01/12/writing-minimal-x86-64-jit-compiler-cpp-part-2/)
  • 为 C++ 构建一个实时代码重载库(http://howistart.org/posts/cpp/1/index.html)
  • 用 C 语言编写哈希表(https://github.com/jamesroutley/write-a-hash-table)
  • 让我们一起构建一个简单的数据库(https://cstack.github.io/db_tutorial/)
  • 让我们一起编写一个内核(http://arjunsreedharan.org/post/82710718100/kernel-101-lets-write-a-kernel)
  • 用 C 语言编写引导程序(http://3zanders.co.uk/2017/10/13/writing-a-bootloader/)
  • 500 行代码实现 Linux 容器(https://blog.lizzie.io/linux-containers-in-500-loc.html)
  • 编写你自己的虚拟机(https://justinmeiners.github.io/lc3-vm/)
  • 学习 KVM——实现你自己的 Linux 内核(https://david942j.blogspot.com/2018/10/note-learning-kvm-implement-your-own.html)
  • 用 C/C++ 构建你自己的 Redis(https://build-your-own.org/redis/)
  • 编写一个 C 语言编译器
    • 第一部分:整数、词法分析和代码生成(https://norasandler.com/2017/11/29/Write-a-Compiler.html)
    • 第二部分:一元运算符(https://norasandler.com/2017/12/05/Write-a-Compiler-2.html)
    • 第三部分:二元运算符(https://norasandler.com/2017/12/15/Write-a-Compiler-3.html)
    • 第四部分:更多二元运算符(https://norasandler.com/2017/12/28/Write-a-Compiler-4.html)
    • 第五部分:局部变量(https://norasandler.com/2018/01/08/Write-a-Compiler-5.html)
    • 第六部分:条件语句(https://norasandler.com/2018/02/25/Write-a-Compiler-6.html)
    • 第七部分:复合语句(https://norasandler.com/2018/03/14/Write-a-Compiler-7.html)
    • 第八部分:循环(https://norasandler.com/2018/04/10/Write-a-Compiler-8.html)
    • 第九部分:函数(https://norasandler.com/2018/06/27/Write-a-Compiler-9.html)
    • 第十部分:全局变量(https://norasandler.com/2019/02/18/Write-a-Compiler-10.html)
  • 使用 LLVM 实现一门语言(https://llvm.org/docs/tutorial/#kaleidoscope-implementing-a-language-with-llvm)
  • Meta Crush Saga:一个 C++17 编译期游戏(https://jguegant.github.io//jguegant.github.io/blogs/tech/meta-crush-saga.html)
  • 高性能矩阵乘法(https://gist.github.com/nadavrot/5b35d44e8ba3dd718e595e40184d03f0)
  • 从零编写太空侵略者(Space Invaders)
    • 第一部分(http://nicktasios.nl/posts/space-invaders-from-scratch-part-1.html)
    • 第二部分(http://nicktasios.nl/posts/space-invaders-from-scratch-part-2.html)
    • 第三部分(http://nicktasios.nl/posts/space-invaders-from-scratch-part-3.html)
    • 第四部分(http://nicktasios.nl/posts/space-invaders-from-scratch-part-4.html)
    • 第五部分(http://nicktasios.nl/posts/space-invaders-from-scratch-part-5.html)
  • 跨平台 C++ 俄罗斯方块教程(http://javilop.com/gamedev/tetris-tutorial-in-c-platform-independent-focused-in-game-logic-for-beginners/)
  • 编写一个 Linux 调试器
    • 第一部分:环境搭建(https://blog.tartanllama.xyz/writing-a-linux-debugger-setup/)
    • 第二部分:断点(https://blog.tartanllama.xyz/writing-a-linux-debugger-breakpoints/)
    • 第三部分:寄存器和内存(https://blog.tartanllama.xyz/writing-a-linux-debugger-registers/)
    • 第四部分:ELF 与 DWARF(https://blog.tartanllama.xyz/writing-a-linux-debugger-elf-dwarf/)
    • 第五部分:源码和信号(https://blog.tartanllama.xyz/writing-a-linux-debugger-source-signal/)
    • 第六部分:源码级单步执行(https://blog.tartanllama.xyz/writing-a-linux-debugger-dwarf-step/)
    • 第七部分:源码级断点(https://blog.tartanllama.xyz/writing-a-linux-debugger-source-break/)
    • 第八部分:栈回溯(https://blog.tartanllama.xyz/writing-a-linux-debugger-unwinding/)
    • 第九部分:处理变量(https://blog.tartanllama.xyz/writing-a-linux-debugger-variables/)
    • 第十部分:高级主题(https://blog.tartanllama.xyz/writing-a-linux-debugger-advanced-topics/)
  • 让我们

相似文章

codecrafters-io/build-your-own-x

GitHub Trending (daily)

一个精选的GitHub仓库,汇集了从零开始重建各种技术的逐步指南,从3D渲染器到神经网络,旨在通过创作进行深度学习。

@wsl8297: 学 AI 最怕停在“懂原理”,一到写代码就卡壳:不知道从哪下手,也找不到像样的练手项目。 我在 GitHub 挖到一个实战向宝藏库:AI-Project-Gallery。 它收录了 30+ 高质量 AI 项目,覆盖从房价预测、疾病分类等经…

X AI KOLs Timeline

This post shares a curated GitHub repository containing over 30 practical AI projects, covering domains from regression to generative AI, with many end-to-end examples, suitable for learners and developers.