无AI写代码:颠覆性的工作新方式
速览
本文提出一种新颖的工作方式——完全不用AI辅助写代码。在AI工具泛滥的当下,这种做法看似倒退,却被认为能提升程序员对代码的深度理解与创造力。它可能是一种反主流的深度学习尝试,引发对技术依赖的反思。
AI 深度解读
背景
本文来源于 Hacker News 上的一篇自述式随笔,作者以第一人称分享了一种“不用 AI 编程”的工作方式。文章表面上是介绍一种“革命性”的新方法,实际上却充满了反讽与幽默——作者刻意用 AI 时代常见的营销话术来包装一个再传统不过的编程习惯,借以调侃当下对 AI 编程工具的过度追捧。原文标题《Coding without AI: a revolutionary new way to work》本身就是一种戏仿,暗示“不用 AI 编程”竟然成了需要被宣扬的“新方式”。
核心内容
作者自称在过去大约 20 年里一直在尝试一种新的编程方式——完全不使用任何大语言模型(LLM)或 AI 编码代理,只有自己、一个键盘、一个 IDE 或文本编辑器,逐行写代码,手动敲入函数和花括号。他承认这听起来很古怪,并自嘲为“早期采用者”,正在尝试一种激进的、不同寻常的方法,并知道不是每个人都能看到这种愿景。他声称大多数人认为编程和 AI 是一回事,但他要告诉大家:无 AI 编程是真实存在的,可以做到,而且有一些惊人的好处。
作者还顺便提到自己喜欢吃由真人制作、非工厂生产的食物,并且几乎只听由真人演奏乐器制作的音乐——以此暗示这些“小众爱好”与无 AI 编程一脉相承。
接着,作者列出了五个“好处”:
1. 加深理解
当手动编码时,他无法直接告诉代理“修复隐藏提交按钮的 bug”或“确保这个异步任务更新数据库”,因为没有代理。他必须仔细阅读、测试、调试代码,建立起对代码如何工作的心智模型。这很难,但他已经变得相当擅长。他注意到:
- 他的心智模型正确率远高于 AI。一旦彻底检查代码,他能对代码行为做出各种有用的预测。
- 当代码有 bug 或不符合规格时,他常常能在脑海中想象出需要修改的具体文件或方法。这极大地加速了他的工作流程。
- 阅读代码时,他总会发现计划之外的东西,因为代码是相互关联的,这些“额外收获”经常在之后派上用场。
- 他经常注意到代码可以改进的地方,使其更可靠或更易维护。
- 当别人问起应用相关的问题时,他有时能脱口而出答案,无需咨询任何聊天机器人。
- 最终,他成为代码库及其所用技术的专家——这种专业知识随时可用,免费,就在他的大脑里,无需任何代理。
作者承认这听起来可能很慢,但实际上,随着对代码库越来越熟悉,他构建的速度越来越快。AI 在快速搭建原型方面仍然更快,但他发现自己也开始独立搭建原型,因为深刻的、真正的理解是无法替代的。他利用这种理解在工作中变得非常有价值,多年来获得了多次晋升和赞誉。他打趣说,不能告诉同事他在无 AI 编程,否则他们可能会认为这是一种不公平的优势。
2. 可工作的软件
世界对实际上不能正常工作的软件有着巨大的胃口,作者承认只要稍加努力,他也能手写出不能工作的软件。但大多数情况下,经过少量测试和调整,他的无 AI 代码运行得相当好。由于某种神秘效应,代码随着时间的推移越来越好用。他的很多代码可以放着不管,数月甚至数年持续运行。他感觉像是发现了一个被禁止的秘密:代码不需要被丢弃和重新生成。
当代码有 bug 时(他坦诚,无论是否使用 AI,bug 是常态),他对自己修复 bug 的能力越来越有信心。他不必和聊天机器人来回周旋,后者会先编造几个错误的解决方案,最后才写出足够多代码来掩盖问题。他可以使用调试技巧逐步缩小 bug 的来源,直到确定位置,然后高置信度地修复——有时修复只需一行代码。
他觉得自己终于理解了那些自己缝制衣服、自己制作家具的人:结果质量更高。想象一下一件 T 恤穿几次不会破!虽然前期投入更多努力,但质量无可争辩。
3. 更简单的代码
作者指出,AI 常常把简单任务复杂化。有时你只需要一个 if/else 块,AI 却给你写出三页的数据结构和算法。手动编写代码让他学会将复杂性视为负债而非资产,并尽可能保持简单。
当无 AI 编程时,你自然从底层开始,只写恰好满足需求的简单代码。你总是可以扩展和构建,但事后简化要困难得多。他有时发现自己的无 AI 代码如此直白,连非程序员都能看懂——不是通过 ChatGPT 解释,而是直接阅读并理解其功能。这听起来难以置信,但代码真的可以如此简单。
为什么要关心代码是否简单?首先,简单代码更容易预测和调试。当你无 AI 写代码时,可能不需要 AI 帮你解释,自己就能回去快速回忆并更新。其次,简单代码本身就更少出问题——没有那么多行代码可以出错。
作者认为,无 AI 编程的额外“摩擦”反而是一种双赢:它让他成为更好的程序员,推动他保持简单,帮助他对没有价值的事情说“不”。
4. 更快的交付
有时当作者告诉别人他在无 AI 编程时,对方会露出担忧的表情,担心他因交付功能太慢而惹麻烦。但事实是,他实际上交付得更快。
编程(Coding)是工作流程中最快的部分,无论用不用 AI 都是如此。事实证明,编码本身并不是瓶颈。大部分时间花在别的事情上:弄清楚需求、解决歧义、等待反馈、测试和验证、与其他团队协调、参加会议、项目规划等。慢的是人的事情,而不是计算机的事情。
至于为什么更快,原因有:手动编码时,他被迫在编码过程中做出决策。不可能模棱两可地编码。当不知道如何决策时,他必须停下来去找答案。前期更慢,但当代码完成时,他知道已经实现了目标。歧义和未解决的问题在流程早期就被解决,远在代码交付之前。这从长远来看节省了时间。
再加上他之前提到的其他因素:速度和专业知识随时间增长、代码更简单、运行更好——所有这些都促进了更快的交付。当然,AI 打字更快,但回想起来,很难相信我们曾认为打字速度是问题所在。
5. 成本节省
作者直言不讳地表示,感觉 AI 公司总想赚更多钱。每次聊天机器人的更新似乎都是为了让它们消耗更多 token。他猜测读者会问:“无 AI 编程消耗多少 token?”答案出奇简单:一个都不需要。
他已经交付了多个完整的……(原文在此中断:“I've shipped multiple complete”,文章未完成。)
关键要点
- 作者以反讽的口吻提出“无 AI 编程”是一种革命性的新方法,实际上是在讽刺当前 AI 编程被过度神化的现象。
- 逐行手动编码能带来更深的理解、更准确的心智模型,以及长期积累的专业知识。
- 无 AI 代码往往更稳定、更持久,修复 bug 时更有信心,质量更高。
- 手动编码迫使程序员保持代码简单,避免 AI 常见的过度复杂化。
- 实际交付速度的瓶颈不是编码本身,而是需求沟通、协调等“人”的问题;手动编码反而能提前解决歧义,加速整体流程。
- 无 AI 编程零 token 成本,避免了 AI 服务不断增长的 token 消耗和费用。
- 文章在列举第五个好处时突然中断,暗示作者可能还有更多内容,但未完成。
意义与影响
这篇文章本质上是一篇辛辣的讽刺作品。它通过模仿 AI 创业者常用的“
