你停止阅读文档,所以你不再理解系统了

我并不是在大学里学习计算机科学的,我学的是地球物理学。

我通过阅读来学习软件。我阅读文档、源代码和 GitHub issue。我阅读旧的博客文章和 RFC 讨论帖。我没有参加过训练营,我只用浏览器和原始资料。

当我学习 Cloudflare Workers 时,我没有课程。我只有文档和变更日志(changelog)。为了在凌晨 1 点修复一个损坏的部署,我把绑定配置读了三遍。我在几年前的 GitHub 讨论帖中找到了答案。

我通过沉浸在资料中,直到豁然开朗来学习。

现在,我看到了一种新的模式。人们不再询问为什么某个章节令人困惑,而是直接索要实现 X 的代码。他们不再通过追踪源代码来寻找行为逻辑,而是询问一个函数的作用。

过去的目标是理解。现在的目标是产出。人们称之为效率,但实际上这是债务。

你可以在不知道什么是“半开状态”(half-open state)的情况下生成一个熔断器。它在你的测试中运行良好,但在六周后高负载的生产环境中失败了。你失败是因为你没有建立心智模型(mental model)。你只得到了“是什么”,却没有理解“为什么”。

“为什么”才是唯一重要的部分。

阅读文档可以建立心智模型。你可以在脚注中看到权衡(tradeoffs)和边缘情况(edge cases)。阅读时的那种阻力感,正是学习发生的地方。

当我构建 Bookmark Brain 时,我必须理解 Cloudflare Vectorize。我不仅仅是使用 API,我还研究了嵌入维度(embedding dimensions)、索引行为和查询距离度量(query distance metrics)。我阅读了 HNSW 论文。我忍受着困惑,直到它转化为知识。

那些知识让我的系统在生产环境中稳定运行。如果凌晨 2 点出了问题,我有心智模型来指导我。如果我只使用提示词(prompts),我只会得到一个演示 Demo,而不是一个可以进行逻辑推理的系统。

这在工程领域造成了一种鸿沟。

  • 在代码审查中:一名开发者能立即发现 N+1 问题,因为他们读过 ORM 文档;而另一名开发者却忽略了它,因为他们只是生成了代码。
  • 在架构设计中:一名开发者理解 Kafka 的分区(partitions)和偏移量(offsets);另一名开发者只知道这些术语,却缺乏结构化理解。
  • 在调试中:调试能力取决于你的心智模型。如果没有模型,你只是在盲目地修改东西并寄希望于运气。

AI 无法承载整个架构。它看不见整个代码库的全貌。我见过 AI 生成的缓存层通过了所有测试,却在生产环境中崩溃,因为没有人理解其中的竞态条件(race conditions)。

这种鸿沟不在于是否使用 AI,而在于你如何使用它。

你是用它来理解权衡,还是用它来逃避理解?

最优秀的开发者不仅仅是追求速度。他们仍在阅读变更日志和源代码。他们正在建立一种提示词无法复制的心智模型。

阅读文档是一种修行。它不是对生产力的征税,而是在系统崩溃时让你变得不可替代的关键。

如果你跳过阅读,你就跳过了思考。直到你身处生产环境且无依无靠时,你才会意识到这一点。

Source: https://dev.to/dannwaneri/you-stopped-reading-the-docs-now-you-dont-understand-the-systems-go1

Optional learning community: https://t.me/GyaanSetuAi