by @linshule
「把最好的 CS 公开课,变成你最趁手的中文学习笔记」
零基础中文学习者,也能系统地啃下国外 CS 公开课。
输入课程 URL(Bilibili / YouTube / 讲义),自动完成: 完整中文文字记录 · 重点知识概括 · 零基础通俗讲解 · 复习卡片 · Lab 带做文档
帮我用中文学习 MIT 6.824 2020 的第一节课
视频链接:https://www.youtube.com/watch?v=cQP8WApzIQQ
Skill 自动生成的目录结构:
MIT-6.824-2020/
├── 01-完整文字记录/
│ └── L01-Introduction-to-Distributed-Systems.md
├── 02-重点概括/
│ └── L01-Introduction-to-Distributed-Systems.md
├── 03-通俗理解/
│ └── L01-Introduction-to-Distributed-Systems.md
├── 04-复习卡片/
│ └── L01-Introduction-to-Distributed-Systems.md
└── README.md
(Lab 课程另生成 05-Lab带做/Lab01-*.md)
📝 01-完整文字记录 — 展开查看片段
# L01: Introduction to Distributed Systems — 完整中文文字记录
MIT 6.824 2020 | Lecture 1
---
[00:00] **Robert Morris**: 大家好,欢迎来到 6.824。
This is a course about **distributed systems(分布式系统)** —
a collection of computers that work together to appear as a single computer.
[02:15] 为什么需要分布式系统?
因为单台机器的性能有物理极限。
More CPUs, more memory, more disk — 终究会遇到瓶颈。
而分布式系统可以让你用很多台普通机器,
达到一台超级计算机的能力。
[05:30] 这门课的核心主题:
- **Fault Tolerance(容错)** — 部分机器挂了,系统还能工作
- **Replication(复制)** — 多副本保证数据不丢
- **Consistency(一致性)** — 多副本之间的数据要一致
- **MapReduce(一种分布式编程模型)** — 这是本课的第一个 lab
---
*学习辅助材料 - 非官方课程材料*📌 02-重点概括 — 展开查看片段
# L01: Introduction to Distributed Systems — 重点概括
## 核心概念
- **分布式系统的定义**: 多台计算机协作,对外表现为单一系统
- **为什么需要分布式**: 单机性能有物理极限(CPU、内存、磁盘)
- **主要挑战**: 并发、网络延迟、部分故障、数据一致性
- **MapReduce**: 一个编程模型,把大任务拆成 Map(映射) 和 Reduce(归约) 两个阶段
## 本讲术语表
| 术语 | 通俗理解 | 首次出现章节 |
|------|----------|-------------|
| Fault Tolerance | 挂了几个机器,系统照常跑 | [00:45] |
| Replication | 多存几份副本,不怕丢 | [01:10] |
| Consistency | 所有副本看到的数据一样 | [01:30] |
| RPC | 让一台机器调用另一台机器的函数 | [02:00] |🧠 03-通俗理解 — 展开查看片段
# L01: Introduction to Distributed Systems — 通俗理解
## 为什么要学这个?
想象一下你开了一家餐厅。一开始你一个人就能搞定所有事——
做菜、收银、招呼客人。后来客人多了,你忙不过来,
于是你请了厨师、收银员、服务员——这就叫分布式系统。
**通俗版本**: 分布式系统 = 一群人一起干活,看起来像一个人。
每个人负责一部分,互相配合。
**专业化版本**: 分布式系统 = 通过网络连接的多台自治计算机,
它们通过消息传递协作,对外表现为单一一致的计算系统。
## 一句话总结
分布式系统就是「人多力量大」——用很多台普通电脑,
做成一台超级电脑才能做的事。🃏 04-复习卡片 — 展开查看片段
# L01: Introduction to Distributed Systems — 复习卡片
> 使用方法: 将 Q/A 逐条导入 Anki 等间隔重复软件,或自行遮住答案自测。
> 建议节奏: 当天复习 → 3 天后 → 1 周后 → 1 个月后。
**Q1: 什么是 consensus(共识)?为什么分布式系统需要它?**
A1: 共识是多台机器就某个值达成一致意见的过程。分布式系统需要共识来
保证所有副本对"谁是新领导"、"某条日志是否提交"等关键状态有一致判断,
否则系统会脑裂、行为分裂。
**Q2: fault tolerance(容错) 和 replication(复制) 有什么关系?**
A2: 复制是容错的手段:把数据拷贝多份存到不同机器,某台机器故障时
其他副本仍能继续服务;容错是目标,复制是最常见的实现方式之一。
... (共 8-15 张卡)💻 05-Lab带做 — 示例
# Lab 1: MapReduce — 带做教程
> 验证层级: T1(逻辑审查) + T2(联网对照) [+ T3(环境实测)]
## 实验目标
实现一个简化版的 MapReduce 框架,
让你的程序可以自动将任务分发给多个 worker 并行处理。
## 0. 动手前准备: 环境配置
# 如何 clone 代码、验证环境、跑初始(必然失败的)测试
## 第一步:理解框架结构
// mrcoordinator.go 是协调者,负责任务分发
// mrworker.go 是工作者,负责实际计算
// mrapps/ 目录下是 map 和 reduce 函数的具体实现
## 第二步:实现任务分发
[完整代码 + WHY 解释]
## 测试验证
cd src/main && go test -run TestBasic
# 预期输出: PASS
## 面试准备
- 高频问题: Map 和 Reduce 阶段如何容错?npx skills add linshule/open-course-learner-skillgit clone https://github.com/linshule/open-course-learner-skill.git ~/.agents/skills/open-course-learner
~/.agents/skills/是 DSH 与 opencode 共享的技能加载目录,克隆后两边自动识别。
装好后,直接告诉你的 agent:
请帮我用中文学习 [课程名],课程链接:[URL]
帮我带学 [课程名],视频和 Lab 链接如下:...
用中文总结这节课:[URL]
| 步骤 | 做什么 | 参考文件 |
|---|---|---|
| 1. 用户交互 | 收集课程信息,询问开发工具水平 | — |
| 2. 内容获取 | 讲义优先;Bilibili/YouTube 自动抓取字幕,失败则引导手动下载 | references/bilibili.md, references/youtube.md |
| 3. 内容处理 | 翻译 → 文字记录 → 重点概括 → 通俗理解 → 复习卡片 | references/translation-guide.md |
| 4. Lab 带做 | 完整代码 + WHY 解释 + 3 层验证(T1 逻辑 / T2 联网 / T3 实测) | — |
| 5. 输出组织 | 按 {课程名-年份}/ 中文目录结构写入文件 + 课程 README |
references/output-templates.md |
| 等级 | 平台 | 方式 |
|---|---|---|
| 🟢 自动 | Bilibili, YouTube | 自带脚本 / 手动 API 自动获取字幕(B站含 WBI 签名) |
| 🟡 手动 | Coursera, edX, MIT OCW 等 | 引导用户手动下载字幕文件 |
| 🔵 直贴 | 任意平台 | 用户直接粘贴文字内容 |
| 📄 讲义 | 任意课程站 | 抓取 .txt/.pdf/.md 讲义作为首选内容源 |
- 术语保留: 关键 CS 术语保留英文,首次出现标注中文解释;9 大领域术语表
- 代码验证: Lab 代码经过 3 层验证(逻辑审查 + 联网对照 + 可选实测)
- 双重风格: 通俗类比 + 专业化定义并存
- 复习巩固: 每讲生成 Anki 兼容复习卡片
- 安全边界: 不绕过付费墙、不自动爬取、不替用户执行代码
Skill 内置 5 份参考文档,按需加载:
| 文件 | 用途 | 内容概要 |
|---|---|---|
references/bilibili.md |
Bilibili 字幕获取 | API 调用链、WBI 签名、cid 提取、代理、手动降级、常见错误 |
references/youtube.md |
YouTube 转录获取 | 4 种获取方式优先级、代理、ASR 字幕处理、手动降级 |
references/platforms-fallback.md |
讲义 + 其他平台降级 | 讲义发现/抓取、Coursera/edX/MIT OCW 字幕获取指南 |
references/translation-guide.md |
技术翻译指南 | 7 条翻译规则 + 9 大领域 150+ 术语表 |
references/output-templates.md |
输出格式模板 | 6 种文档类型的 Markdown 模板(含复习卡片、课程 README) |
open-course-learner-skill/
├── README.md # 本文件
├── SKILL.md # 核心工作流(可直接安装使用)
├── agents/
│ └── openai.yaml # UI 元数据
├── references/
│ ├── bilibili.md # Bilibili 字幕获取指南(WBI 签名)
│ ├── youtube.md # YouTube 转录获取指南
│ ├── platforms-fallback.md # 讲义 + 其他平台降级方案
│ ├── translation-guide.md # CS 技术翻译指南 + 9 领域术语表
│ └── output-templates.md # 6 种输出模板
└── scripts/
├── check_env.py # 环境自检(Python/依赖/脚本/curl)
├── fetch_transcript.py # YouTube/Bilibili 转录抓取(WBI 签名、代理、分P、--check)
└── README.md # 脚本说明
MIT — 随便用,随便改。