GitHub Explorer
📰 公众号已发布 2026-06-06

7.3 万 star、5 年沉淀:北大 CS 博士的中文 CS 自学指南成了事实标准

GitHub: https://github.com/pkuflyingpig/cs-self-learning

一句话总结

一个 PKU CS 博士在 4.6 年里把 MIT / CMU / Stanford / UC Berkeley / ETH 的顶级公开课系统化串联成中文学习路径,配套自己亲手做的 6 门作业仓库,沉淀成 7.3 万 star、5.9 千行 markdown 笔记的中文 CS 自学资源站事实标准。

值得关注的理由

  • 稀缺的双层资源结构:解决了 awesome-list 长期以来的「信任问题」——每门推荐课都挂一个作者亲历的 GitHub 作业仓库,让「收藏夹里吃灰」变成了「开箱即学」。
  • 中文圈没有等量对手:OSSU 偏英文、Coding-Interview-University 偏面试、TeachYourselfCS-CN 颗粒粗、REKCARC-TSC 局限清华课程——「成体系 + 持续维护 + 作者本人修完 + 跨校横向对比」四象限的唯一解。
  • 信息架构值得所有资源站学习:6 个核心决策(学科×学校二维矩阵、5 节课程模板、多源学校同课对比、i18n 目录翻译、必学工具独立分支、学习路径与课程解耦)每一个都解决一类经典问题。

项目展示

Star History — 类型: hero。Star 增长曲线,4.6 年累积 7.3 万 star 的可视化轨迹。

Contributors — 类型: screenshot。185 位贡献者头像墙。

README 主要是目录与文案,官网 https://csdiy.wiki 是 mkdocs material 主题站点,没有产品截图 / Demo 视频 / 架构图——所以本节只保留 Star History 与 Contributors 墙。

项目画像

维度数据
GitHubhttps://github.com/pkuflyingpig/cs-self-learning
Star / Fork73,068 / 7,891
代码行数310(YAML 94.5% + HTML 5.5%,仅 mkdocs 配置),实际资产是 5,898 行 markdown 笔记
项目年龄55.6 个月(2021-10 创建,2026-02 末次提交)
开发阶段低维护 / 事实性休眠(近 90 天 0 commit,年化仅 35 commit)
贡献模式核心少数 + 社区(30 贡献者,Top 1 占 57.4%,185 人社区)
热度定位大众热门(中文圈 CS 自学指南事实标准)
质量评级文档「优秀」+ 站点工程「完善」+ 协作流程「完善」+ CI/CD「基本」+ 测试「无(合理缺失)」
版本管理语义化版本 v1.0.0 → v1.2.0(5 个 release)
LicenseMIT

作者视角:为什么存在这个项目

创始人/作者背景

钟旻旻(Yinmin Zhong),北大计算机学院博士四年级,导师靳鑫、刘譞哲,研究方向为 LLM 训练 / 推理系统(Machine Learning Systems)。本科 PKU 信科,实习经历横跨 StepFun、字节 Seed、阿里达摩院、Berkeley Sky Lab。账号 6.3 年,公开仓库 79 个,9,963 followers——cs-self-learning 73k star 是他所有仓库中绝对的「一枝独秀」(第二名 312 star),是这个学术品牌最具公众辨识度的资产。

这如何塑造项目:作者本人是「系统方向研究者 + 终身学习者」,对北美 CS 顶流课程有亲历、有比较视野、有跨校(PKU 视角 vs 美本视角)的方法论。这与做中文 CS 自学指南的动机高度一致——他既是用户也是评判者。

问题判断

作者看到了两个别人没重视或没系统解决的问题:

  1. awesome-list 的「收藏夹吃灰」问题:GitHub 上 CS 自学资源极多,但用户收藏后无法开始。原因是没有筛选标准、没有学习顺序、没有配套作业、没有中文门槛说明——CS 自学需要的是「可执行的路径」而非「资源清单」。
  2. 中文区的「英文材料 + 中国学生」错位:OSSU 等英文资源虽然齐全,但对中国大陆学生有 GitHub 访问、YouTube 访问、英语阅读速度等多重门槛。中文圈需要一个「接受英语壁垒但有中文导览」的中间层。

时机:2021 年底——MIT 6.S081、CMU 15-445、CS224n 等关键课程的公开课基础设施已成熟(视频、讲义、作业、讨论区都齐备),GitHub Actions + mkdocs gh-deploy 降低了开源协作站点门槛,疫情后线上自学需求爆发。三个条件在 2021 年首次同时具备。

解法哲学

作者明确选择了人工策展 + 课程模板 + 多源对比的路径,明确不做什么也极有价值:

  • 不做自动聚合——所有课程都经过「独立课程站 + 教授教材 + 阶梯式项目 + 每周讨论课」4 条硬筛选,机器爬不到的东西人才写得出来。
  • 不做单一推荐——同一门 OS 课推荐 MIT 6.S081 + CMU 15-410 + Berkeley CS162 三个版本,让用户按自己节奏挑。这是反「top 1」逻辑的——CS 自学没有「唯一最优解」。
  • 不做平台化社区——Discord / 微信群需求出现 3+ 年作者未给官方解法,是有意克制(避免运营社群被社群反向消耗精力)。
  • 不做课程笔记二次创作——只做导览 + 链接,不替教授写讲义。这是反「内容农场」逻辑的——尊重原作者 IP,把自己定位为索引层而非内容层。

战略意图

项目是作者学术品牌的公众层——PhD 阶段产出都偏研究(论文、代码仓库),cs-self-learning 7.3 万 star 让他在中文技术圈拥有「CS 知识地图」的话语权。商业化路径不明显——MIT 协议、5 个 SemVer release 都是「做产品」姿态,但作者目前精力仍以 LLM 系统研究为主,项目是他的「学术品牌入口」而非「变现工具」。

Phase 1 标注:作者无独立技术博客(站点即课程指南),所以无公开架构文章可引——本节判断全部基于仓库本身与作者 bio。

核心价值提炼

创新之处

按 新颖度 × 实用性 × 可迁移性 综合排序:

  1. 「作者亲历 + 一课一作业仓库」双层资源结构
    • 描述:每门推荐课挂一个作者亲手做的 GitHub 作业仓库(CMU10-714、NandToTetris、CS224n 等 6+ 个),让「收藏 → 开始」的距离缩到点击 1 次。
    • 新颖度:5/5(awesome-list 圈 3 年没人想到)| 实用性:5/5(直接可用)| 可迁移性:5/5(任何资源聚合类项目都适用)
  2. 「多源学校同课对比」横向矩阵
    • 描述:OS 一节列 MIT 6.S081、CMU 15-410、Berkeley CS162 三家;编译原理列 6 所学校的实现路径;让用户横向比较。
    • 新颖度:4/5 | 实用性:5/5 | 可迁移性:4/5
  3. 「5 节课程模板 + 难度星标」的结构化元数据
    • 描述:每门课固定包含先修要求 / 编程语言 / 难度🌟 / 学时 + 简介 / 资源 / 资源汇总 / 备注。降低读者的决策成本。
    • 新颖度:3/5 | 实用性:5/5 | 可迁移性:5/5
  4. 「必学工具独立分支 + 内地 CS 真实约束」设计
    • 描述:把 Vim/Emacs/Git/CMake/Docker/LaTeX 等工具链独立成节,并坦诚处理翻墙 / 镜像 / GitHub 访问等中国大陆学生才会碰到的真实痛点。
    • 新颖度:4/5(海外项目不会考虑这个)| 实用性:5/5 | 可迁移性:3/5(仅适用有类似地缘约束的群体)
  5. 「学习路径与课程解耦」的灵活性设计
    • 描述:《CS学习规划》反复声明「仅供参考」,课程页本身可独立访问。读者可以挑跳、按自己基础裁剪。
    • 新颖度:3/5 | 实用性:5/5 | 可迁移性:5/5

可复用的模式与技巧

  1. 双层资源结构(资源清单 + 作者亲历作业):适用任何「教程聚合 / Awesome-list」类项目,解决「收藏夹吃灰」经典问题。
  2. 结构化元数据 + 模板:template.md + template.en.md 双语模板,强制每门课按统一节写。降低读者决策成本 + 降低贡献者写作成本。
  3. 多源同课对比矩阵:当一个领域有多门课都值得学时,横向矩阵(学校 / 时长 / 难度 / 语言 / 是否含项目)比单条推荐更友好。
  4. 三分类使用指南:《使用指南》把读者分成「已经在学 / 想转码 / 想补基础」三类,给出不同起点。降低入口摩擦。
  5. 软导览 + 元能力:不只列课,还教「怎么选课 / 怎么记笔记 / 怎么坚持」等元能力。这是非常典型的「学 vs 学到」分水岭处理。
  6. i18n 目录翻译 + 重点页双语:mkdocs-static-i18n 把整个目录树翻译,template.md/template.en.md 是双语文档模板。用最小工程量做到中英兼容。
  7. mkdocs 最小工程栈:仅 6 个依赖(mkdocs + material + pymdownx + i18n 等),用最少的代码把 markdown 装订成静态站。这是「不造轮子」的范式。
  8. 编辑导读页(roadmap.md)作内容枢纽:在内容扩张到 268 个 markdown 后,用 roadmap.md 做「编辑视角的入口」——这是 wiki 项目的核心枢纽。

关键设计决策

  1. 决策:按「学科 × 学校」二维矩阵组织课程
    • 问题:CS 学科有 14+ 方向,每个方向有 4-6 所学校的优质课,怎么组织才能让读者既能找到「我感兴趣的学科」也能横向比较「同一学科各校差异」?
    • 方案:docs/<学科>/<课程>.md 二级目录 + 《CS学习规划.md》跨学科总览。目录树是「分类学」,规划文档是「时间轴」,两个维度解耦。
    • Trade-off:放弃了「严格的单一学习顺序」——同一 OS 三家学校都能选,新手可能犹豫。换来:可裁剪的灵活性,读者能按已有基础跳过。
    • 可迁移性:高
  2. 决策:每门课固定 5 节模板(先修/语言/难度🌟/学时 + 简介/资源/资源汇总/备注)
    • 问题:内容型 wiki 最大的痛点是每篇格式不一致,读者每读一门课都要重新适应结构。
    • 方案:template.md + template.en.md 双语模板,CI 检查(猜测)。强制 5 节。
    • Trade-off:写作者要适应模板,对「我想写个新内容」有摩擦。换来:读者体验一致化,新贡献者上手有现成骨架。
    • 可迁移性:高
  3. 决策:每门课挂作者自己的作业仓库作「信任锚」
    • 问题:GitHub 上推课的 awesome-list 极多,用户已经不相信「作者亲历」。
    • 方案:每门推荐课挂一个作者亲手做的 GitHub 仓库,把「亲历」从话术变成可点击的代码提交记录。
    • Trade-off:作者要真修完这门课才能写,写作门槛极高。换来:仓库从「课程列表」升级为「个人学习轨迹的镜像」,信任度指数级提升。
    • 可迁移性:高
  4. 决策:mkdocs 最小工程栈(仅 6 个依赖)
    • 问题:用 5.9 千行 markdown 笔记,怎么装订成可访问的站点?
    • 方案:mkdocs + material 主题 + pymdownx 扩展 + mkdocs-static-i18n + mkdocs-include-markdown-plugin。只装必要的。
    • Trade-off:放弃了 Hugo / Docusaurus / VitePress 等更现代框架的某些高级特性(搜索性能、SSR、组件化)。换来:依赖最少、构建快、作者能 5 年不换栈。
    • 可迁移性:高
  5. 决策:i18n 目录翻译 + 重点页双语
    • 问题:中英文用户都看,但每页都翻译工作量太大。
    • 方案:mkdocs-static-i18n 整个目录树双语 + template.md/template.en.md 双语模板 + 关键页(README / 后记)双语。不全翻译,仅翻译「元信息」。
    • Trade-off:内容页仍是中文主导,英文用户只看到导航级内容。换来:英文圈搜索流量(GitHub SEO)能进来,翻译成本可控。
    • 可迁移性:中

竞品格局与定位

竞品对比矩阵

维度cs-self-learningOSSUCIUTeachYourselfCS-CNREKCARC-TSC
Star 数73k205k351k22.1k13k+
目标用户中文本/CSer 想要系统补 CS全球自学学位者求职面试者中文读者粗略入门清华学生
覆盖广度14+ 学科方向全 CS 学位偏算法/系统9 个核心方向清华课程为主
课程深度深度(每课作业仓库)中(链接为主)浅(checklist)浅(书单)极深(清华笔记)
维护活跃低维护(90 天 0 commit)持续偶发偶发持续
中文适配强无无强中(清华系中文)
多源对比强(OS 列 4 校、编译列 6 校)弱无无无
配套作业强(6+ 仓库)弱无无中
跨校视角全球(MIT/CMU/UCB/Stanford/ETH)全球全球英文圈清华系

差异化护城河

  • 信任护城河:作者本人修完所有推荐课 + 配套 6+ 个作业仓库——任何竞品短期都很难复制,因为这是作者个人时间而不是「技术 trick」。
  • 信息架构护城河:6 个核心决策(学科×学校矩阵、5 节课程模板、多源对比、i18n 翻译、必学工具独立、学习路径与课程解耦)构成结构化壁垒——竞品要追赶需要 2-3 年的内容重写。
  • 中文圈生态护城河:7.3 万 star、7.8k fork、185 贡献者、125 open issues、5 个 SemVer release 形成的飞轮效应——新读者进来 → 找群求组队 → 贡献 issue → 推荐给下一个人。

竞争风险

  • 风险 1:AI 时代重塑信息获取方式。LLM 可以即时回答「我想学 OS,该选 MIT 还是 CMU」——仓库的信息价值会被 LLM 稀释。但**「亲历+作业仓库」的信任价值**不易被 LLM 替代。
  • 风险 2:作者精力分散。PKU 博士 + ML Systems 研究 + 字节 StepFun 实习,作者时间已饱和,近 90 天 0 commit 是事实性休眠信号。如果作者毕业 / 转行没有接班人,项目会缓慢失活。
  • 风险 3:中文区同类项目冒头。REKCARC-TSC(清华系)如果扩张为全 CS 自学路径,会是直接对标。但目前清华笔记的「亲历 + 体系化」还未到这个水位。

生态定位

在整个 CS 自学生态里,cs-self-learning 扮演**「中文圈的 OSSU 镜像 + 个人学习轨迹」**双重角色:

  • 与 OSSU 形成「中文版 / 英文版」双寡头格局——OSSU 全 CS 学位覆盖但英文材料,cs-self-learning 中文导览 + 海外课深度对比。
  • 与 awesome-cs、CS 学习路线图类资源站相比,它是「有策展标准 + 有学习顺序 + 有配套作业」的资源站——其他是「资源清单」。

套利机会分析

  • 信息差:极低——7.3 万 star 已是中文圈事实标准,信息差套利空间在深度应用而非「再发现一个资源站」。
  • 技术借鉴:
    • 资源聚合类项目应直接学「双层资源结构」——把 awesome-list 升级为「清单 + 亲历作业仓库」。
    • 内容型 wiki应学「5 节模板 + i18n 翻译 + 最小工程栈」三件套。
    • 学术品牌建设应学「用 1 个明星开源项目建立公众辨识度」——PhD 期间最大的杠杆资产。
  • 生态位:
    • 未填空白 1:中国本土课程(MOOC / 慕课 / B 站课程)的类似结构化——目前推荐的都是海外课,国内课程资源没有同等标准。
    • 未填空白 2:个性化学习路径推荐——基于用户已有基础生成「这学期该修哪些课」的 LLM 增强版。
    • 未填空白 3:课程笔记的「质量评分 + 替代链接自动检测」——目前链接失效要靠人工 PR。
  • 趋势判断:
    • 增长:仓库 star 还在两位数/天流入(2024-02 采样窗口 5 天 200 个 stargazer),没有走下坡路。
    • 趋势:AI 时代下「人工策展 + 信任锚」反而更有价值(LLM 内容同质化让人更想要人工筛选)。
    • 后发优势:竞品要追赶作者已经花的 4.6 年时间和 6+ 作业仓库,护城河很厚。

风险与不足

  • 维护风险(最大):作者是 PKU 博四 + ML Systems 研究,近 90 天 0 commit 是事实性休眠信号。如果作者毕业 / 转向工业界 / 重心完全转入研究,项目可能进入长期低维护。没有明确的继任机制——Top 1 占比 57.4% 是单点依赖。
  • 课程内容时效性:仓库推荐的核心课程(MIT 6.S081、CMU 15-445、CS224n)都在 2020-2022 期间成型,2023 年后的新开课(如 CMU 11-667 LLM 系列、MIT 6.5940 TinyML)虽有补充但密度低于主流课。
  • 链接可访问性:推荐的外链大量指向 GitHub/YouTube,对中国大陆读者有可访问性门槛。虽然有「必学工具/翻墙页」处理但仍不彻底。
  • 协作基建不足:Discord/微信群需求反复出现 3+ 年未给官方解法;无 PR/Issue 模板;无链接自动校验(lychee/markdown-link-check 缺失)——读者报告坏链的成本高。
  • 测试/工程化几乎为零:310 行代码无法谈工程化,整个仓库的「技术债」在内容侧——内容更新质量靠作者人工把关,没有自动化校验(拼写、死链、图片失效等)。
  • 内容型项目的固有风险:仓库一旦被作者放弃,7.3 万 star 形成的「准官方 CS 资源」地位会形成误导性引用——读者按过期路径学 CS,没有显眼的「本项目已停止维护」提示。

行动建议

如果你要用它

  • 作为「CS 系统学习路径」的起点:从《CS学习规划》开始 → 按你已有基础跳着选课 → 优先选作者做了作业仓库的课(亲历过的,比纯链接可靠)。
  • 作为「求职方向补强」的目录:想去 ML Systems 方向看「深度学习 + 编译 + 操作系统 + 数据库」四个交叉;想去 SDE 看「CS61A/B + 6.S081 + CSAPP」传统路线。
  • 不要把它当「唯一权威」:仓库 2026-02 后进入低维护期,最新课程(2024-2026)覆盖不全,需要自己补充最新的 LLM / AI 课程。

如果你要学它

  • 重点关注文件:
    • mkdocs.yml(116 次改动)—— 信息架构的核心配置
    • docs/CS学习规划.md(37,971 字、49 次改动)—— 跨学科学习路径的「编辑视角」
    • template.md + template.en.md —— 课程笔记的结构化模板
    • docs/后记.md —— 作者的写作动机 / 价值观
    • docs/使用指南.md —— 读者分流策略
    • 任何 docs/<学科>/<课程>.md —— 单门课的5 节模板范例
  • 重点关注决策:信息架构 6 大决策(学科×学校矩阵、5 节课程模板、多源同课对比、i18n 翻译、必学工具独立、学习路径与课程解耦)。

如果你要 fork 它

  • 方向 1:AI 增强版——用 LLM 做「个性化学习路径推荐」,根据用户已有基础生成该修哪些课。这是 AI 时代未被填的空白。
  • 方向 2:中国本土化版——把海外课替换为国内 MOOC / B 站课程镜像版,降低访问门槛,并补 2024-2026 年的新开课。
  • 方向 3:求职导向版——把仓库「系统学习」定位切换为「求职方向」,从 J washam/coding-interview-university 抢受众。
  • 方向 4:协作基建补完——加 GitHub PR 模板、lychee 链接校验、Crowdin 协作翻译——把作者留下的「协作基础设施缺口」补上。
  • 方向 5(最现实):不要 fork 直接做。给作者开 issue / PR——项目还在主仓库,真正的贡献是给作者减负而不是再起炉灶。

知识入口

资源链接
DeepWiki未收录
Zread.ai未收录
关联论文无(项目本身是资源聚合站,不产出研究)
在线 Demohttps://csdiy.wiki(唯一交互面)
作者主页https://yinminzhong.com

相关报告