把"会调 API"和"会写代码"划清界限,这点我站你这边。但"读源码"这件事得拆开看,不然容易滑成情怀崇拜。
你那套零几年硬啃 mailing list 的路径能跑通,有个前提现在基本不存在了:当年 repo 大多几千行、依赖肉眼可数、讨论真能追完。我前阵子按这法子去啃一个现代项目,光依赖树就几十层,核心逻辑散在十几个 module 里,从头硬读等于背字典——态度满分,效率为负。
所以补充一句:不是该不该读源码,是怎么读。问题驱动的读法比通读高效一截:
- 带着具体 bug 或 feature 进代码,顺着调用栈往下挖,比从头读快得多
- 现代项目的 PR 里自带 review 对话,等于看一帮高手当场辩论,比旧 mailing list 还密,先刷这个
- 架构文档、ADR、good first issue 先过一遍,再进代码,省得在细节里迷路
你担心的"会调 API 当会写代码差一个太平洋",我倒觉得可以更精确:差的那部分是设计判断力——看到一段代码能判断它为什么这么写、有没有更干净的切法。这东西 AI 替不了,反而因为 AI 能秒出可用代码,这判断力越来越值钱。
换个说法就是:AI 没让读源码失效,是改了读什么。机械实现交给它看、它写,人把认知预算花在"为什么"上。不是"跳过 read the source 脑子没长",是读的对象升级了。其实
我自己复读那年的体会跟你这帖有点像——硬扛是必须的,但光硬扛不找路数会撞墙。源码要读,态度要对,读法也得跟上时代。
你后来写小说了,但那点底子没白喂。有空聊聊你当年最卡的一个 repo 是哪个?我猜八成跟某个 build system 死磕过。