📌 项目地址practical-tutorials/project-based-learning | ⭐ 278,305 颗星 | 🔧 Python | 📜 未标注

这个仓库不教你语法,不列API参考,不贴视频课。它只收录一种教程:带着你从零开始,把某个应用完整做出来。

practical-tutorials/project-based-learning 是GitHub上最受欢迎的编程教程清单之一。按编程语言分栏,覆盖20多种语言,每栏下是若干条外部教程链接,指向完整的项目实战文章。

里面装了什么

打开README,你会看到从C#到Swift的完整目录。每个语言分区下,教程的跨度很大。

拿C/C++举例,既有用C写一个Shell的入门项目,也有编写x86-64 JIT编译器的进阶内容。还有这些:

Python分区里还有爬虫、Web应用、人脸识别等项目。

为什么这种列表有价值

我见过太多人学编程的路径:看语法教程,做练习题,然后卡住了。不是不会写代码,是不知道怎么写一个完整的程序。练习题告诉你函数怎么调用,但不告诉你代码怎么组织、模块怎么拆分、错误怎么处理。

这个仓库给了一条出路:跟着一个完整项目走一遍,接触真实工程中才会遇到的环节。

以”C语言写Shell”为例,教程会带你解析输入、管理进程、处理信号。这些是语法书里不会涉及的东西,但恰恰是实际编程中绕不开的。写完一个Shell,你对C语言的理解深度和刷几十道题完全不一样。

这个仓库跟普通收藏夹的区别

很多人存过”编程资源大全”,最后都在收藏夹里吃灰。这个仓库的核心差异在于筛选标准:不收语法讲解,不收API文档,只收”build an application from scratch”的教程。有人替你把关过质量。

另一个实际细节:仓库维护了一个link-rot工作流,自动检测所有链接是否失效。教程链接挂了会被及时发现,不用点进去才看到404。

怎么用

不是打开链接收藏,而是挑一个项目,跟着做完。

具体做法:先按你正在学的语言定位分区,比如学C++就找## C/C++。然后从列表里挑项目,关键在难度匹配。

有些项目适合初学者,《Write a Shell in C》大概几百行代码能搞定。《Build Your Own Lisp》也是C语言入门的好选择,教程很详细,带你写一个完整的Lisp解释器。

有些项目需要一定基础,比如手写数据库(涉及B-tree)、写JIT编译器(需要汇编知识)、写操作系统(需要了解计算机体系结构)。

点进教程之前,先花几分钟看几段内容,确认难度适合自己再动手。不要一上来就挑战操作系统内核,挫败感会很强。

几个坑

教程技术栈和深度差异很大,有的面对初学者,有的接近进阶。标题看不出难度,得自己点进去判断。

部分教程是系列文章,需要按顺序阅读。比如”Writing a minimal x86-64 JIT compiler in C++”分Part 1和Part 2,跳着看跟不上。

大多数教程是英文的,目前没有翻译计划。

注意,这个仓库本身只是一个链接列表,没有一个统一的命令行工具或安装脚本。具体教程需要什么环境、怎么运行,以教程原文为准。

我的看法

我不觉得收藏这份清单就能学会编程,它也不是什么”改变学习轨迹”的神器。它的价值更朴素:有人帮你筛了一批高质量的、从零到一的项目教程,让你不用在垃圾内容里大海捞针。

GitHub上27万颗星说明很多人认同这个方向。但真正的路径始终是:选一个项目,坐下来,把代码一行一行敲出来。清单只是起点,不是终点。

这篇文章对你有帮助吗?

发表回复