
开发者将Hacker News高赞教程整理成系列课程,涵盖数据库、编译器与GPT
来源标题:Courses built from Hacker News posts
有人把Hacker News上持续获得高赞的教程按学习顺序整理成系列课程,保留原始评分与批评意见。课程覆盖从零构建带B+树和事务的键值存储、解释器与编译器、autograd引擎和GPT,以及Unix shell和RISC-V操作系统等内容。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
从零开始构建数据库、编译器、GPT 等。每门课程把 HN 上持续获得高赞的教程按学习顺序串联起来,每个评分和每条批评都保留在内。 建议顺序。每门课程是一条由多个来源串联而成的路径,而不是单篇文章;条形图显示其 HN 评分在各步骤间的分布。 一个你自己写的持久键值存储,包含 B+ 树、崩溃恢复和事务,上面再加一个小型 SQL 层,并且对 PostgreSQL 内部机制有足够了解,能读懂它的源码。 同一门语言的两个解释器(先树遍历,再是带垃圾回收器的字节码 VM),一个把真实语言转成可运行汇编的编译器,以及足够多的 LLVM 知识,让你知道生产环境里该用什么。 一个你自己写的自动微分引擎,一个你用自己写的分词器从零训练的 GPT,以及一个针对现代开放权重架构的从零推理循环。足以读懂模型源码并知道每一行在做什么。 一个你自己写的 Unix shell;一个带进程、分页、用户模式、系统调用和文件系统的小型 RISC-V 操作系统;一个用 Rust 写的 x86-64 内核,带中断、分页和堆分配器;通过 MIT 的九个实验扩展的 xv6;以及你构建并加载的 Linux 内核模块,并对 Linux 内部机制有足够了解,能读懂内核源码。 一个基于原始套接字的 HTTP 服务器,一个从根服务器开始遍历的 DNS 解析器,一个用户态 TCP/IP 协议栈(以太网、ARP、IPv4、ICMP、TCP),能响应 ping 并承载 TCP 连接,一个能与真实服务器通信的玩具级 TLS 1.3 客户端,以及一个能从真实对等节点下载真实文件的 BitTorrent 客户端。 一个约 1,000 行 C 写的终端文本编辑器,带搜索和语法高亮;一个约 1,000 行 Python 写的 Git,能 init、add、commit、log、checkout 和 tag,并与真实 Git 仓库兼容;一个用 C 写的类 Redis 服务器,带事件循环、哈希表、有序集合和键过期;一个用 C 写的容器运行时,通过 namespaces、capabilities、seccomp 和 cgroups 隔离进程;以及一个用 C++ 写的 Linux 调试器,带断点、单步执行、源码行和从 DWARF 读取的回溯。 一个从基本原理写起、不用任何图形库的光线追踪器和光栅化器;一个带漫反射、金属和玻璃材质的路径追踪器;一个软件渲染器,能加载 3D 模型并用 z-buffer、纹理和着色按 OpenGL 的方式绘制;以及你的第一批在 GPU 上运行的 OpenGL 程序和片元着色器;标准的实时效果(延迟着色、泛光、SSAO、屏幕空间反射)和一个带计算着色器的 WebGPU 渲染器;以及一个带微表面材质、光源采样和 BVH 的基于物理的路径追踪器。 一个几千行 Python 写的网页浏览器,能通过 HTTP 下载页面、解析 HTML 和 CSS、布局并绘制文本、跟随链接、提交表单并运行 JavaScript;以及一个类 React 的 UI 库,带函数组件、基于 fiber 的协调器和 hooks,并与一个基于 JavaScript 代理构建的响应式替代方案对比;同一个浏览器再扩展合成、线程化渲染管线、GPU 动画、无障碍、iframe 和失效机制;以及一个用标准库 Python 写的 Web 服务器和小框架,带线程、中间件和路由。 一个能匹配真实网站的验证器应用验证码生成器(HOTP 和 TOTP);用 C 写的 AES,带密钥调度和两种工作模式;你自己写的教科书式 RSA 和椭圆曲线密钥交换与签名,并理解其弱点;以及来自 Cryptopals 挑战的针对真实世界构造的有效攻击,从重复密钥 XOR 到填充预言;一个用你自己的 SHA-256 和 secp256k1 代码签名的真实 Bitcoin 测试网交易;从零知识电路到群签名;按 FIPS 203 实现的 ML-KEM-768;以及最难的 Cryptopals 集合,涉及哈希碰撞、无效曲线攻击和 nonce 重用。 你写的节点能通过 Jepsen 的 Maelstrom 测试,涵盖广播、只增计数器、Kafka 风格的复制日志,以及在注入网络故障下的事务型键值存储;一个带领导者选举和日志复制的 Raft 实现,架在键值存储之上;一个 TLA+ 规范,在任何代码之前就发现设计缺陷;一个带磁盘段和高水位的复制日志;一个协作编辑器背后的最后写入胜出 CRDT;以及单法令 Paxos,已实现并做过模型检查。 从裸 shell 开始的 OverTheWire Bandit 关卡;对 x86-64 和 ARM 汇编的阅读能力,足以在反汇编器中逆向小型二进制文件;你自己在 32 位和 64 位 Linux 上利用的栈溢出、格式化字符串漏洞和 ROP 链,包括各种缓解措施;pwn.college 的程序、系统和软件利用腰带;在 PortSwigger 实验室或一个故意做坏的商店中发现并利用的常见 Web 漏洞;以及一个你构建的、能替你发现崩溃的模糊测试器。 分数是对同一来源的每次 HN 提交求和。步骤按学习顺序排列,而非按分数。我们如何计数。 当新课程发布或新增阶段时发送邮件。没有固定时间表,也不发其他内容。
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。