原文: https://sourcegraph.com/blog/the-death-of-the-junior-developer
$ dscli webget "${source}" > en.md$ pandoc -f markdown -t org en.md -o en.org$ dscli chat <<EOF翻译 en.org 到 zh.orgEOF
日期:
翻译:费米
【导读】
Steve Yegge 啰哩啰嗦,标题里就有所有信息。如果你是初级开发者,你碰巧相 信作者论断,可以跳到《死神来了》一节,看怎么办。他给的方法不见得有啥用。 如果作为初级开发者又不相信作者论断,可以一个恐怖片一个恐怖片地看,看到 相信为止,然后跳到《死神来了》一节。
如果你是程序员老登,早脱离初级开发者的队伍,你可以仔细考虑下作者用恐怖 片论证初级开发者已死的逻辑,是否自洽。
整体上编者我讨厌这种文风。但碰巧咱也是这种腔调:看到危险要来,或危险已 经到来,危害自己所在群体,自己其实也不知道到底该咋办,又感觉巨大恐惧, 于是就在那扯呀扯呀,假装没事,其实慌得一批。
总结一下本文:
LLM 正在挤压初级技术岗位。学会如何保持领先。
警告 :这篇博文有一定推测成分;天未必塌得下来。但我的蜘蛛感应确实在嗡 嗡作响。我们做软件的方式正在变化,可能是天翻地覆的变化。所以不妨把它当 成一次思维实验。
免责声明完毕,出发!
最近我跟不同公司的不少初级和资深开发者聊了一圈。把这些对话拿来交叉反刍 (cross-barfticulating)一番之后,我发现了一个新趋势——大约 80% 的人 都比我聪明得多。天呐,我这些年都在干嘛?
但还有一个趋势:很多人选错了年份当初级开发者。非常多人。今天的我不想刚 入行。
不只是计算机行业。任何行业都是。今年不适合当初级——什么初级都不适合。
我妻子 Linh 和我都是恐怖片狂热爱好者。所以,为了配合今天这篇 rant 的沉 重主题,我将用恐怖片片名来引出各个章节。
先从初级开发者身上正在发生的事情说起。
今天第一个故事关于一家律师事务所,跟编程毫无关系。但它确实与这场正在迫 近的危机息息相关——危机们向来喜欢迫近。我的好友 Gene Kim 允许我分享这 个故事,关于他的一位朋友,一家 50 人律师事务所的管理合伙人。
简而言之,那家事务所因为 ChatGPT 快要炸锅了,有人在怀疑他们那套维系了 几十年的公司结构可能已经完全错了。薪酬结构、养老金、接班人计划——全都 在经历一场存在主义危机,罪魁祸首居然是一个破聊天机器人。
问题在于,未来可能再也不需要初级律师了。
越来越多的时候,他们只需要资深律师,由他们来(a)描述需要完成的任务——也 就是写 prompt,以及(b)审核结果的准确性和正确性。高端 LLM 在处理传统 上由初级律师负责的工作时表现太好,以至于真正的初级律师在工资单上已经没 什么容身之地了。
LLM 可以产出研究报告、摘要、案情摘要、合同、备忘录、诉状、请愿书——任 何需要的东西。它生成的所有文档都"完美"……只不过,如果资深人士不仔细复 核一遍就让法官看到,你可能会蹲监狱之类的。
抓住 LLM 在幻觉、跟抓住初级律师犯错误——其实差不多。两种方式产出同样 的成果,只是其中一种又快又不知疲倦,而且几乎免费。而另一种——在节日派 对上吐在了巧克力喷泉上。
唉。今年真不是当初级律师的好年头,真他妈不是。
Gene 分享这个律所故事,是为了说明这个问题有多普遍。他认为,这场毫无疑 问正在各律师事务所上演的混乱,可能波及所有写作和编辑岗位。你可以想象一 个世界,初级写手和编辑的需求开始蒸发。
市场力量正在把每个人都推向"资深写手 + 优秀 prompt 工程师"的组合:这种 配置能更快、更便宜地满足所有需求,比雇初级人类强。
Gene 本人是一位成就卓著的资深作者,他对自己用 LLM(他选的是 Claude Opus)带来的效率提升非常满意。他给我看了一个刚完成的大型写作项目——他 花了至少 45 分钟打磨 prompt,不断精炼,直到得到一份 7500 词的叙事稿, 作为重写、编辑和调整的起点。Claude 根据他的 prompt 生成了那 7500 词的 草稿(相比之下,这篇博文大约只有它一半长)。那份草稿非常棒。我读过了, 写得精彩。
状态好的时候,Gene 一天能写 1000 词。他估计 Claude 用 90 分钟完成了本 来需要他十天的工作。它解决了"白纸问题"(blank-page problem),把他带到 20 码线,然后乐趣才开始。
他估计用 LLM 作为写作工具,现在速度提高了 2-3 倍,能帮他满足自己的个人 标准和质量门槛。
Gene 不能再高兴了——至少为自己。因为不仅更快,他觉得这样工作也更有趣。 "只工作不玩耍,杰克变傻瓜",对吧?他现在很开心。
但他为自己的 teenage 孩子感到恐惧。
轶事:我大约 8 岁时看了这部片子黑白 50 年代原版的豆荚场景,那真是 traumatizing 级别的恐怖。我妻子从 4 岁就开始看恐怖片,我们俩对恐怖片有 着深沉的热爱,大概是因为童年都受过创伤吧。
我们刚刚见证了同样的戏码在律师行业和写作/编辑岗位上演——LLM 正在取代 人类。接下来让我们在更贴近本行的领域里再看一遍同一部电影。
就在几天前,我们杰出的 AI 负责人 Rishabh Mehrotra 给我展示了一个他一天 之内用 ChatGPT 训练并部署的分类器与多类预测模型。他说这在一年前是一个 为期 6 周的大四实习生项目。数据科学也未能幸免。
一位老朋友,优秀的程序员和数学家,离开 AI 去搞量子计算几年后,现在又回 到编程领域。他有点兴奋地向我坦白——虽然他做了大量编程,但他不再认为自 己是程序员了。
他说他更像一个审阅者,或者教练,或者保姆——差不多那种。他让 ChatGPT 做所有工作,他只负责写 prompt 和审核输出。
我深有同感,因为我也被一个浴缸泡泡荚体掠夺者(bubble-bath plant pod body snatcher)取代了——它假装自己是个程序员,实际上几乎所有活儿都外 包出去了。
当然,当我说"让 ChatGPT 做所有工作"时,仍有大量代码是我们手写的。我的 意思是,对话优先(chat-first)是默认选项,手写(当然有补全!)是我们的 后备方案。我和那位量子朋友最近都发现,后备方案用得越来越少了。
自那以后我又发现了好几位极其优秀的同事,他们也采用了这种编程策略来加速 自己。坦白说,看到这么多优秀的人确认"对话优先编程"确实是一件新事物,我 松了一口气。
它真的新吗?显然这件"新事物"在其他领域早已存在——毕竟最初的 ChatGPT 就已经能替代大量人力了。
但在编程这件事上,说实话,对话编程一直很糟糕。很多时候,哄着 LLM 给出 一个能运行的方案,比自己写还要费劲。
在前几代模型上,如果你喂一个 800 行的源文件并要求大幅改动,即便是 GPT-4 Turbo(很多人正在用的版本)也经常乱来:论证看似严密的幻觉、无法 解析的代码、傲慢的"代码留给读者作为练习"的空函数、让你原地打转的设计、 意料之外的重构、缺失的代码——各种各样的挫折。
你可能自己也试过。你知道我在说什么。
所以对话编程一度是个败局。如今大多数人把 AI 编程助手等同于代码自动补全。 他们觉得对话只是入门时用的东西,顶多算个更快的文档搜索。
事实上,普遍的看法是:对话是给初级开发者用的,随着经验增长,它的用处越 来越小。
说实话,在 5 月中旬之前,这种看法并非全无道理。模型还差那么一口气。
但在过去六周里,情况变得非常非常不同了,而你,我的朋友,正在错过良机。 那种"对话是给初级用的"看法,现在已经完全是一种误解——我希望这篇文章结 束之前,它已经在你的心中彻底死去。
基于对话的编程——我先把它命名为 Ch at O riented P rogramming(CHOP), 或者简称"chop",因为我估计我会经常提到它——是一个全新的现象。真的,刚 出现一个多月。我第一次注意到是 GPT-4o 发布的时候,那是 5 月中旬。
你还记得那场人为制造的大戏吧,OpenAI 的新 GPT "4o" 模型据说用了斯嘉丽· 约翰逊的声音?就是它。
这个模型一夜之间改变了编程的一切。
GPT-4o 发布后,它突然能编辑 1000 行的源文件了——这个规模覆盖了全球大 多数代码仓库中 95% 以上的源文件——而且精度惊人,对原文件忠实度极高, 未触及的部分 99.9% diff 完美。偶尔我会发现它漏了一个空格,或者某行缩进 稍微不对。仅此而已。
据我所知,Google 的 Gemini 和 Anthropic 的 Claude 3 Opus 也跨过了这道 门槛。这使得多模型提示成为对抗幻觉的有效手段,也是筛选最佳设计方案的好 方法——把你的查询喂给所有模型,让它们互相较量。这是 CHOP 的常见技巧。
简单说,CHOP 就是通过迭代式 prompt 精炼来编程。以前大家尝试让它做复杂 事情时,通常在 4 到 5 轮迭代后就没戏了,模型无法继续推进。但现在,你的 迭代通常——这个词很重要——收敛了,这意味着你在审核和最终批准越来越多 的 LLM 代码,自己写得越来越少。
所以编程已经升级成了一个"向 LLM 解释你的处境"的问题——也就是搬运上下 文(context),因为你会想从不同来源汇集大量信息——然后再把输出合并回 你的代码库。
我们最好搞个工具来做这个。动作快点(Chop chop)!
这次模型的大升级,对于已经在用裸 ChatGPT 编程的人来说是改变人生 的——ChatGPT 仍然是全世界使用最广泛、最受欢迎的 AI 编程助手。ChatGPT 程序员用 CHOP 风格已经一年多了,但之前只有最大胆、最有耐心、最"笨"的早 期用户才这么干。而现在,它对所有人都准备好了!
当然,裸聊天涉及大量手动组装上下文和搬运输出,会变得很繁琐,所以很多程 序员改用编程助手(我猜,键盘上的 CTRL、C、V 键——或者如果你偏好那种的 话,⌘——生意应该不错吧)。
所有 AI 编程助手也都受益于这次升级。对我们的编程助手 Cody 来说更是巨大。 在我看来,Cody 拥有最好的对话体验,因为我们有自动上下文组装引擎,帮你 省去每次都要解释代码库的麻烦。而且 Cody Pro 让你同时使用 GPT-4o 和 Claude(以及其他模型),所以你可以用另一个 LLM 来抽查所有工作。
模型升级配合我们的内联编辑(inline edits)功能效果尤为显著——它能把响 应直接放入你的代码中。不再需要从聊天窗口往外搬运代码了。Cody 直接在原 地修改你的代码,支持撤销和重试。模型越来越聪明,但与你工作流的集成也越 来越紧密。
正在发生的事情是一件大事。这种编程方式,可以说正在比基于补全的编程快出 一个数量级。10 倍提升听起来可能像是夸张。但我们刚才已经看到了法律、出 版和数据科学领域的例子,某些任务的提速在 5 到 30 倍之间,总体生产力提 升估计至少 2 到 3 倍。
你可以对具体数字有不同意见,但显而易见的是,用这些新模型采用 CHOP 的程 序员正在获得涡轮增压。
你还没升级吗?
花絮:我兄弟说那部电影太吓人,他不得不离开影院。我自己没看过,但短篇小 说挺有趣的。
现在讲第五个故事,也是最后一个,是我的故事,关于编程,而且剧情跟前面几 个都不一样。
这里我们要吃一堑长一智——为什么对话编程是给资深开发者用的。请全程把手 脚都留在车厢内。
前些天 GPT-4o 把我震住了——我正在用 CHOP 方式做一个项目,它提出了一项 代码方案。震惊到我笑了好几分钟,近乎失控。我很少被震住,更少被一个能跑 的程序代码震住。
我给 GPT 提了一个小设计问题,请它帮我评估各种选项。它在这方面很擅长。 对话导向编程(CHOP)不只是写代码。还有很多设计讨论。你什么都做,甚至有 时候写作——LLM 是你的结对伙伴。
不知为何,这次 ChatGPT 火力全开,把我卡住的那个框架的整个子系统给重新 设计了——我本来只是想绕过一个问题。我敢说你以前也见过 LLM 的这种古怪 行为。区别在于,现在它们非常擅长重写东西,而且有时候会倾巢而出,后果什 么的——管他呢。
GPT-4o 飞快地扫过了大多数合理的方案,然后直接一头扎进"全部重写"的焦土 模式——显然没读过 Joel Spolsky8。它吐出了一段异常长的回答,几百 行代码和说明,提出了支持这种做法的全面而令人信服的理由。
而且这个重写——本来是能用的!它对我的问题是一个非常直接的解决方案。所 以从"对错"的角度来说,它并非错误。设计中很少有真正错误的东西——那种, 怎么说,斩钉截铁的错——大部分规则都有例外。
但这个方案只有一个微小的瑕疵——它会害死人。
不是在我的项目上(但愿如此!)。但如果这个模型现在给那些操控机器车间巨 型电锯的软件开发者吐出类似的建议,那真的会有人死。
GPT 的重设计很糟糕——但当你盯着它看的时候,完全看不出来。凑近看,它甚 至还很舒服。
你得退一步,在更广阔的上下文里看这个设计——它与其他子系统的交互,还有 运维、维护、升级、扩展,以及一大堆对软件设计和工程至关重要的维度。用那 个更广的镜头看,它是一场无可挽回的灾难,正在等待发生。
但它穿着极其巧妙的伪装。经验不足的开发者肯定会中招。我能感受到它主张的 那种方案的魅力和吸引力,支撑它的那些论据的力量。整个东西包装得很诱人, 技术上正确,摆在你面前等你拿去用!(我的朋友 Chris Smith 说我要找的词 是"貌似有理实则不然"(specious)。对,就这个。)
我突然意识到这个回答有多么荒谬地不合适和潜在危险。它如此令人印象深刻, 又如此令人毛骨悚然。我笑啊笑,像个小孩子看着浴缸泡泡荚怪物取代了所有人。
我的资深同事们最近也讲述了类似的对话场景——更初级的开发者会被完全蒙骗, 可能沿着错误方向浪费几天到几周的工作。
或者更糟。
对话似乎对资深程序员来说比初级程序员更安全。很多公司会把"更安全"理解成 "更好"。
系好安全带。颠簸的时代要来了。
很多公司问我,我们怎么分辨哪些部分是 AI 写的,哪些是程序员写的?好吧, 如果对话导向编程成为程序员的主导模式,那么 LLM 将编写全球绝大多数源代 码。这是一个巨大的转变,甚至可能动摇传统的软件工程角色。
我们已经看到了这种转变如何影响一家律所、一家出版社,以及工程的姐妹学 科——数据科学。初级贡献者的股票在跌,有人担心市场会崩盘。
这给这些领域的新人带来了一个非常严重的问题。你怎么办?你怎么学手艺 (learn the ropes),更不用说找到体面的工作了?现在"手艺"本身又是什么? 当资深人员退休时,公司又该怎么办?
他们可能变成 COBOL 世界那样——全球性的人力危机,因为没有初级 COBOL 开 发者来替代退休的人。讽刺的是,这些大型遗留公司很可能最卖力地支持用 LLM 来编写所有代码。
事情变化很快。我是个乐观主义者,我通常认为——至少希望——随着公司在未 来几个月和几年里变得更高效,它们会相应地变得更有野心。
每个人都需要对代码测试和审核更加重视。资深开发者可能变成全职审阅者,初 级开发者来放牧(shepherd)LLM?也许吧。
这不一定要以 CS 应届生的后启示录荒地收场。
我一周前写了这篇帖子,一直在认真思考我是否真的相信这个前提——也就是, 几年之内,源代码的规范将成为:由 LLM 通过提示来编写和修改。实际上,所 有源码都会以这种方式编写,例外会越来越少。
我不仅相信,而且以目前 LLM 进步的速度,我看这件事 12 到 18 个月之内就 会发生。我认为这一变化会有大量的后果,只有部分是可预见的。其中一个牺牲 品很可能就是初级开发者——他们变得不那么有市场价值,可能导致整个行业出 现各种形式的人才断层。
我们已经看到大公司在做工程裁员,为 AI 从业者腾出空间。小公司可能面临自 己版本的同样抉择:为什么要雇一个初级开发者来写平庸的代码,而 LLM 能以 十倍速度帮你搞定?
所以,是的。我很担心。
简单说,我说的"资深"是什么意思?其实就两点:1. 在 AI 写代码之前,你已 经知道自己想要什么。你已经对手写这段代码有了构想,或者已经缩小到几个合 理的选项。2. 你能识别出它何时在给你错误的引导。
如果你确切知道自己要开往哪里,而且你知道坏路长什么样,那么涡轮增压器是 安全的,能帮你更快到达。如果你不确定你要开去哪,那么启动涡轮增压器只会 让你——很快到达某个地方。
那么。你已经读到这里了。恭喜。接下来会发生什么?我不知道。也许我们会非 常幸运。我是说,我很乐意是我错了。
但变化正在来临。科技界将经历社会和文化剧变,就像法律行业正在经历的那样。 已经开始了。模型月复一月地变得越来越聪明,这意味着它们会吃掉越来越多的 工作岗位,直到吃掉世界。
我能告诉你的只有:早点到那里。从前,Google 员工在 TGIF 大会上抱怨停车 场上午中段就满了,Larry Page 开玩笑说:"也许你们应该早点来。"那一刻他 散发着亿万富翁的味道。但如果你真的想在车库停车,你接受了他的建议。
如果你想在变革中存活下来,你最好做好准备,保持领先。
这篇文章剩下的部分,只是一些直接、简单、永不过时的建议,给初级和有志成 为软件工程师的人。希望它能帮你度过这个尴尬的时期——在这段时期里,我们 的行业正集体搞清楚到底会发生什么。
快速变强。这就是你要做的。在我们的行业天翻地覆的时候,赶在那些懒鬼前面, 你可能会成为活下来的那个人。
你在和滑铁卢大学的学生竞争——他们本科 CS 毕业时已经有 2 年以上的实际 工作经验。你也在和全国 CS 毕业生中 top 10% 的人竞争——这些人年复一年, 虽然这是他们的第一份真正工作,但实际上已经是资深工程师了。
下面是一些散弹式建议。随你怎么用。
想尽一切办法积累经验——甚至在毕业之前就开始。获得工作经验,贡献开源项 目,业余时间编程。认真对待课程。学得比每门课要求的更多。深入掌握每个科 目,并在前进过程中不断回顾。
不要过度纠结于编程语言的奇技淫巧。这正在变成机器为我们处理的细节。专注 于算法、数据结构、软件设计与工程、离散数学、操作系统、编译器、数据库、 网络。专注于研究真实系统。在网上找 walkthrough,认真研读。当然还有机器 学习——尽可能多地吸收。
理解事物是如何构建的。确保你了解计算机中每个系统的工作原理。确保你理解 你依赖的每一个云服务是如何工作的。读文档,然后读设计文档。你不需要手写 任何这些东西。但你需要培养资深程序员的那种敏感度——理解这些东西如何组 合在一起、如何交互,无论是好是坏。
学会用前沿模型来检查其他 LLM 模型的工作。注册多个服务(比如 Claude 和 ChatGPT),把你重要的 prompt 发给至少两个大模型。让它们互相评估对方的 回答,并仔细研究所有结果。LLM 审核和批评自己内容的能力,比它们生成内容 的能力更强。所以把第二个 LLM 当作你的资深搭档。
在许多场景下,区分资深开发者和初级开发者的另一个关键因素是运维经验 (Operations experience)。读一读 O'Reilly/Google 的 SRE 书14。从 头读到尾。再找一本好的 GitOps 书——似乎有很多可选。经验可能没有压缩算 法,但幸运的是,大量经验已经被浓缩和蒸馏了。去喝吧。
狠狠用一个编程助手,比如 Cody。保持在功能的最前沿。编程助手是一个强大 的工具,就像 IDE 一样,掌握它会让你作为一名程序员升级。CHOP 包含大量手 动搬运上下文来构造 prompt 的工作。Cody 帮你完成了 90% 的搬运工作,以及 把响应复制回代码的工作。
大多数使用对话编程的开发者仍然用裸 ChatGPT 写代码,尽管它不帮你抓取上 下文或搬运数据。它本身就很好用,尽管 prompt 构造方面更手动一些。我一直 在 Emacs 中直接用 GPT,用的是优秀的 chatgpt-shell,因为我还在给 Emacs 构建 Cody,暂时用不了。但裸 GPT-4o 仍然很棒。
我过去经常告诉人们要精通一个 IDE,甚至最好再精通 Emacs 或 Neovim。但我 不再确定了。这些可能很快就过时了。等编程助手能为你做这些吧——不会太久 的。或者它还能来帮你。
你采取什么方法并不重要,只要你在编程中开始大量使用对话。因为,朋友,现 在这就是工作的方式。不管你喜欢与否。而你需要活下来。祝你好运。
我很快会开一个频道,专门展示这种新的编程方式——在我用 chop 风格构建 Cody15 的过程中。我会直接用 ChatGPT 和 Cody,它们会帮我构建 Cody。 敬请期待。
我还会在 8 月的拉斯维加斯 Enterprise Technology Leadership Summit16 上做一个演讲,涉及这个话题以及更多内容。希望能见到你。
P.S. 感谢 Chris Smith、Gene Kim、Dominic Cooney 和 Anna Noak 的透彻审 阅和精彩建议。
1 电影设定在未来美国,每年有一晚所有犯罪(包括谋杀)合法化,美其 名曰"释放压力"的社会净化机制,实则清除的是社会中最脆弱的边缘群体。作者 用这片名来引这则律所故事,暗喻 LLM 正在"清除"初级职位——不是用暴力, 而是用经济效率。原本作为人才梯队的初级律师,一夜之间变成了可被优化的成 本项。标题"The Death of the Junior Developer"正是同一隐喻的延伸。
2 《闪灵》里杰克·托伦斯在 Overlook 酒店孤守一冬,打字机上一个字一 个字敲着"All work and no play makes Jack a dull boy"——一遍又一遍,无 穷无尽。那是劳动异化的终极画面:一个作家被写作逼疯。作者在这里反着用这 意象——Gene 用 LLM 之后效率翻倍,反而觉得更好玩了,"只工作不玩耍"的魔 咒被打破。但讽刺在于:一个人玩得开心的时候,正是初级写手和编辑的岗位蒸 发之时。闪灵就是那道反转——杰克被劳动吞噬,Gene 因"玩耍"幸存,但这份
3 1956 年经典(及 1978 年重制版)中,外星豆荚趁人熟睡复制出完美无 情感的替代品,本人被悄无声息地取代。作者说自己也"被一个浴缸泡泡荚体掠 夺者取代了"——他那位量子计算朋友坦言"不再认为自己是程序员了",更像审 阅者或教练。豆荚人的恐怖在于:复制品如此完美,你甚至无法确定自己是否已 经被替换。LLM 也一样——不是暴力消灭,而是无缝嵌入工作流,直到你某天发 现"自己"写的代码比"自己"还多。
4 John Carpenter 1982 年的杰作——一个可以完美模仿任何有机体的变 形外星生物。真正的威胁不是怪物本身,而是偏执:你无法信任任何人。作者说 五月中旬之前对话编程"很糟糕"——模型差那么一口气,输出的代码似是而非, 像个冒名顶替者。但过去六周,模型跨过了一道门槛,"那种'对话是给初级用的'看 法,现在已经完全是一种误解"。怪形就是那道门槛——旧看法必须死,因为你 已经分不清谁是可靠的那个了。
5 1986 年的 cult 片:三台安保机器人故障后在夜间购物中心追杀青少年。 作者给自己的新范式取名 CHOP(Chat Oriented Programming),谐音 "chop"(砍)。这片名的双关在原文贯穿始终——"动作快点(Chop chop!)"、 "购物中心大屠杀"的杀戮意象呼应着初级岗位被"砍掉"的现实。而且,B 级片的 戏谑调子恰好匹配作者对自己命名的得意劲儿:大问题用烂片来命名,正好消解 掉末日叙事的沉重。
6 2018 年电影里,瘫痪主人公植入 AI 芯片 STEM 后获得超能力——但 AI 逐渐反客为主。作者说这次模型大升级"是改变人生的"——GPT-4o 等模型让 CHOP 从只属于最有耐心的早期用户,变成了"对所有人都准备好了"。但影片的 隐藏命题是:升级让你更强,还是让你依赖?作者问读者"你还没升级吗?"—— 既是推销,也是拷问。
7 Stephen King 的故事(1995 年电影),一台工业熨烫机被恶魔附身, 开始吞噬操作它的工人。作者讲的正是 GPT-4o 提出一个"彻底重写"方案的故 事——方案技术上完全正确,但"会害死人"。绞肉机就是 LLM 自己:一台吐出 看似可用的代码、但在错误语境中足以致命的机器。警示不在技术错误——设计 中很少有真正的对错——而在于机器没有人类的判断力时,你的项目就是它的饲 料。
8 参见:https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/
9 Drew Goddard 2011 年的元恐怖片:一群大学生在林中小屋度假,看似 经典恐怖片套路,实际全是地下组织精心操控的献祭仪式。表面的恐怖是障眼法, 真正的恐怖是系统性的。作者说 GPT 的重设计"凑近看还很舒服",但在更广阔 的上下文——运维、维护、扩展——里看,"是一场无可挽回的灾难"。林中小屋 就是那个陷阱——单点看逻辑完美,系统看四处漏风,而初级开发者就是那帮走 进陷阱的大学生。
10 Stephen King 的末日史诗(2020 年 Paramount+ 新版):超级流感 wipe out 99% 人口,幸存者分为善恶两派重建世界。作者描绘了初级开发者"后 启示录"式的未来——人才断层,如同 COBOL 世界的人力危机。但他笔锋一转: "这不一定要以 CS 应届生的后启示录荒地收场。"末日逼近既在警告劫数,也在 指向劫后重建的可能——关键看你是做落选者还是建设者。
11 Danny Boyle 2002 年的电影,"愤怒病毒"在 28 天内将伦敦变成空城。 这种极速蔓延契合作者的预言:"12 到 18 个月之内"所有源码将由 LLM 编写。 影片开场——一个人从昏迷中醒来,面对一座空城——对应着初级开发者某天醒 来发现自己的岗位已经蒸发。"是的。我很担心。"作者说。28 天的速度感让这 个预言不像科幻,更像倒计时。
12 Sam Esmail 2023 年的电影:网络攻击缓慢瓦解社会,两个家庭在度假 屋中旁观文明的崩溃。角色们被动的观望直到为时已晚。作者说"变化正在来 临……科技界将经历社会和文化剧变"——他的建议不是围观,而是"早点到那里 "。断网假期的讽刺在于:你以为你只是暂离世界,实际上世界已经不等你了。
13 2000 年的电影——死神的设计无法逃避,你只能延缓,不能逃脱。作 者用这片名作为全篇最后一部电影的引用,直指标题"初级开发者的死亡"——是 的,它正在来。但影片的妙处在人物试图通过理解死亡的设计来逆天改命。作者 的终极建议就是这道出口:"快速变强。"你知道变革是唯一的确定性,那就别等 死神来敲门。
14 参见:https://www.oreilly.com/library/view/site-reliability-engineering/9781491929117/
15 参见:https://sourcegraph.com/cody
16 参见:https://itrevolution.com/product/enterprise-technology-leadership-summit-las-vegas-2024/