Project Based Learning:26万Star的编程项目实战教程集合
文章目录
- Project Based Learning:26万Star的编程项目实战教程集合
Project Based Learning:26万Star的编程项目实战教程集合
Project Based Learning 是一个收录了大量"从零构建完整项目"教程的资源仓库,覆盖 20 多种编程语言,在 GitHub 上拿到了超过 26 万 Star。
这个仓库的出发点很直接:学编程不能只看文档,要动手做一个真实的东西。仓库里收录的每一条教程,都要求你从第一行代码开始,一步步搭建出一个可以运行的应用、工具或系统。
按照编程语言分类,仓库覆盖了 C/C++、C#、Clojure、Dart、Elixir、Erlang、F#、Go、Haskell、HTML/CSS、Java、JavaScript、Kotlin、Lua、OCaml、PHP、Python、R、Ruby、Rust、Scala、Swift。每个语言下面又按应用方向做了细分,查找方便。
C/C++ 部分是仓库里内容最丰富的板块之一。教程涵盖了写一个 Shell、写一个文本编辑器、写一个内存分配器、写一个 Redis、写一个 C 编译器、写一个操作系统内核,还有从零实现 OpenGL 游戏引擎。难度从入门到进阶都有覆盖,适合不同阶段的开发者。
JavaScript 部分按照框架做了细分,React、Angular、Vue 各有一批完整的实战教程。比如用 React 做 Trello 克隆、用 Angular 做 Instagram 克隆、用 Vue 做博客应用。Node.js 方向也有不少项目,包括搭建实时 Markdown 编辑器、写 Twitter Bot、构建爬虫应用。
Python 部分按 Web 开发、数据科学、机器学习、深度学习、计算机视觉等方向组织。Web 开发方向有 Flask 微博客、Django 博客等教程;机器学习方向有从零手写线性回归、手写神经网络;深度学习方向有图像分类、人脸识别、文本生成等项目。
不少教程是系列文章,分多篇逐步推进。写一个 TCP/IP 协议栈分了 5 篇,写一个 Linux 调试器分了 10 篇,Twitter 情感分析的完整流程用了 11 篇文章来讲清楚。这种分步结构对初学者比较友好,可以跟着节奏一步步走完。
除了主流语言,仓库还收录了 Dart(Flutter)、Elixir、Erlang、Lua(LÖVE 游戏开发)、Haskell、Scala 等相对小众的语言教程。如果你想尝试一门新语言,从项目入手比啃语法书快得多。
仓库接受社区贡献,有贡献指南说明提交流程。发现了优质的项目教程,也可以通过 PR 补充进去。
了优质的项目教程,也可以通过 PR 补充进去。
