按难度递进:先学会"读",再学"写"和"架构",最后到"工程化"与"进阶专题"。
每课都标注了教材(作者的项目)和对照对象(开源/官方写法)。
每课都标了难度、教材和对照对象。
课堂的方法主线已从 《揭开黑盒:一次保存的调查》 开始。本索引保留项目与技术参考;当调查需要进一步理解请求、存储、组件或测试时,再进入相应专题。
这套课的核心能力是:从一个可观察的操作出发,找出入口、数据、规则、输出和验证方式。课程编号保留历史顺序,编号相邻不代表必须连续学习;桌面、Web、AI 和数据实验有不同前置。
阅读这里的具体技术实现时,需要相应的语法与运行基础,可按需查 《编程起步:做一个学习记录小助手》。这些前置属于具体技术专题,不是开始“揭开黑盒”调查的门槛。01 课不承诺“不懂语法也能读懂任何大型项目”。
| 路线 | 建议顺序 | 阶段产出 |
|---|---|---|
| Web 主线 | 01 → 02 → 04 → 05 → 08 → 12 | 给卡片工具增加字段,从网页输入到数据库存储再读回,并交付测试 |
| 前端分工与组件 | 先具备 JS/DOM 基础,再 03 → 05 → 13 → 11 | 解释状态归属,完成一个受控输入组件和窄屏交互 |
| Python 结构与桌面 | 01 → 06 → 07 → 12 | 核心规则脱离 GUI 可测试,按钮只组织调用 |
| AI 与流式 | 08 → 09 → 10 → 14 → 15 → 17 | 从一次请求走到事件流、会话状态和输出校验 |
| 工程化与专题 | 12 后按需读 16、18、19、20、21 | 分别交付边界测试、构建验收、实验复现或案例报告 |
Web 主线使用 ZIP 中的 assets/主线实验/:同一张卡片从终端启动的 HTTP 服务进入 SQLite,再回到浏览器。完成这个小实验后,原有“模块地图”和大型项目片段用于对照阅读。历史教材目录可能是源码节选,是否能独立启动要先看其清单与依赖说明。
先完成小实验创建标题,再给它加 rating(整数 0–5)。按以下顺序拆任务:明确输入约定 → 数据表新增列/旧库迁移 → 服务端校验 → JSON 返回字段 → 页面显示 → 测试正常值、边界和错误值。
最低证据:录入 rating=5 后刷新仍为 5;rating=-1 被拒绝且没新增卡片;旧卡片迁移后为默认值 0;用新目录按说明启动成功。无需先做账户、图谱或模型调用。
每节先读新增的主线导学,完成“运行—预测—变化—自测”,再读原项目对照。大段带 ... 的片段是阅读摘录,不能直接当完整程序运行;行号只作为对应历史版本的辅助定位,搜索函数名更可靠。
如果某节只要求识别结构,就不要把它视为已掌握全部框架。读完一课应能交出运行结果或分析证据,遇到依赖未安装、教材节选不齐或平台差异时,明确记录障碍,不把失败当成“自己不适合编程”。
以下保留完整课号索引,方便从具体问题查找对应专题。
| 课 | 主题 | 难度 | 教材 | 对照对象 | 状态 |
|---|---|---|---|---|---|
| 01 | 怎么读代码:模块地图 | ★☆☆ | 查资料/server.py | GitHub 开源项目通用结构 | 已上线 |
| 02 | 手写 HTTP 服务器:路由与 JSON | ★★☆ | 查资料/server.py 的 Handler | Flask / FastAPI / 官方 http.server | 已上线 |
| 03 | 单片应用也要分模块:MVC | ★★☆ | 关系图/graph-generator-full.html | ECharts 官方示例 / React 数据驱动 | 已上线 |
| 课 | 主题 | 难度 | 教材 | 对照对象 | 状态 |
|---|---|---|---|---|---|
| 04 | 数据层:SQLite 封装与表设计 | ★★☆ | 查资料/server.py 的 db() / init_db | sqlite3 官方文档 / ORM 是什么 | 已上线 |
| 05 | 前端三件套:浏览器怎么和后端说话 | ★★☆ | 查资料/web/ | fetch 官方文档 / 原生 JS 写法 | 已上线 |
| 06 | Python 包结构:core/cli/ui 分层 | ★★★ | resource_manager_v2/ | PyPA 官方打包指南 | 已上线 |
| 07 | 类与信号槽:桌面应用骨架 | ★★★ | guigubahuang_mod_manager/gui/ | PyQt6/PySide6 官方示例 | 已上线 |
| 08 | FastAPI 入门:从零到接口 | ★★☆ | worry_debate_game/app.py | FastAPI 官方教程 | 已上线 |
| 09 | 流式输出:AI 为什么一个字一个字蹦 | ★★★ | worry_debate_game/nodes.py | SSE / OpenAI 流式文档 | 已上线 |
| 10 | 调用大模型:prompt 与链 | ★★★ | worry_debate_game/nodes.py | LangChain 官方示例 | 已上线 |
| 11 | 组件化:React/Next.js 的模块思想 | ★★★ | shijing-v5-dev/src/ | Next.js 官方 Learn | 已上线 |
| 12 | 工程化收尾:测试、打包、发布 | ★★☆ | resource_manager_v2/tests/ + worry build.bat | pytest / PyInstaller 文档 | 已上线 |
这一阶段对应项目在 2026-09-13 之后的更新,以及新增的 5 个项目。
| 课 | 主题 | 难度 | 教材 | 对照对象 | 状态 |
|---|---|---|---|---|---|
| 13 | 前端工程化:Vite + TypeScript | ★★★ | worry_debate_game/frontend/ | Vite / TypeScript 官方 | 已上线 |
| 14 | 流式会话进阶:锁 / 快照回滚 / 打断 | ★★★ | worry_debate_game/app.py + nodes.py | SSE 协议设计 / 幂等重试 | 已上线 |
| 15 | 结构化输出实战:AI 总结 + 信源 + 关联 | ★★★ | 查资料/server.py 新功能 | JSON Mode / 邻接表查询 | 已上线 |
| 16 | 安全设计:白名单 / 令牌 / 签名链接 | ★★★ | phone-remote/ | 最小权限 / 预签名 URL | 已上线 |
| 17 | 数据流水线:采集 / 去重 / 打分 / 预算 | ★★★ | paper-follower/ | ETL / 可解释性 / 成本控制 | 已上线 |
| 18 | 纯函数与脱离平台测试 | ★★☆ | wechat-map-tools/ | 单元测试 / 坐标系转换 | 已上线 |
| 19 | 零依赖构建与交付验收 | ★★★ | portfolio-site/ + course-publisher/ | SSG / 原子发布 / CDP 验收 | 已上线 |
| 20 | 数据分析实验工程化 | ★★★ | 生信入门/(课程 v2) | 可复现科研 / 自动判分 | 已上线 |
教材不是自己的项目,而是外部优秀开源项目;只学技术方法,不搬素材(课内有许可边界专讲)。
| 课 | 主题 | 难度 | 教材 | 对照对象 | 状态 |
|---|---|---|---|---|---|
| 21 | 案例拆解:莱茵生命终端(Three.js 网页 3D 项目) | ★★★ | 开源项目 RhineLabUI(MIT 代码) | 你自己的 worry 前端 / portfolio | 已上线 |