‹ 首页

从零手搓

0 / 0

费曼那句话是对的:凡我不能创造的,我就不能理解。这一页不是教程合集,是六个「最小可跑」的手搓项目——每个都砍到只剩一条路径,先跑通,再加功能。四种语言(JS / Python / C++ / C#)给的是同一件事的不同写法,选你正在用的那一种。

三条铁律(不遵守就等于收藏夹吃灰)
① 先自己写,再看别人的。看完功能描述就关掉这一页,写一版能跑的,再回来对照——重点看它怎么分层、怎么处理错误、怎么处理边界,那才是盲区。
② 只做一条路径。Redis 先只做 SET/GET/过期,HTTP 先只做 GET + 404,别一上来就想支持一切。
③ 跑通再加。每加一个功能都要能回到「上一次可运行」的状态,否则你会卡在半成品上三天。

选一门语言

六个最小项目

路径二:读懂别人的大项目

先猜后读 + 费曼复述——读之前先写下你的猜测,把「读代码」变成「验证或推翻假设」:
  1. 先看入口。只找「程序从哪开始跑」,标出它调用的前三层,别的先不看。
  2. 先猜再读。看函数名和参数,写下你猜它做什么、会怎么实现,再读。
  3. 关掉代码讲一遍。用大白话讲这块在干什么;讲不下去的地方就是盲区,回去只看那一段。
  4. 只追一条调用链。比如「一次点击 → 哪个函数 → 改了哪个状态 → 哪里重渲染」,追到底,比通读十个文件有用。

路径三:补基础的顺序

别从最难的下手。顺序建议:
① 数据结构——自己实现动态数组、哈希表、二叉堆、B 树(对应「数据库为什么快」)。
② 操作系统——进程/线程、调度、虚拟内存分页(对应「你的程序为什么卡」)。
③ 网络——socket → 手写 HTTP → TCP 握手与重传(对应「请求为什么慢」)。
④ 组成原理——Cache 行、命中率、流水线(做一次「不同遍历顺序的矩阵乘法耗时对比」就够)。

参考项目(自己搜,别只看不做):Build Your Own X(20+ 个从零构建方向)、Crafting Interpreters(手写解释器,有免费在线版)、TheAlgorithms(各语言算法实现,适合对照自己的写法)。
手机上别硬敲 C++/C#:先在这页看懂结构,回到电脑上写。这页的勾选和笔记会存住。