编程依旧令人头疼
摘要
这篇文章批判了对科技职业浪漫化的看法,将其描述为混乱和充满压力而非井然有序,同时探讨了人们对人工智能取代岗位的焦虑,以及软件开发缺乏明确方向的问题。
暂无内容
查看缓存全文
缓存时间: 2026/05/08 08:38
# 编程依然很糟糕。—— 随笔
来源:https://www.stvn.sh/writing/programming-still-sucks-fqffhyp
*抱歉,彼得* (https://www.stilldrinking.org/programming-sucks)*。*
—
我正参加一个生日派对。虽然这里的大多数人都在科技行业工作,但总有一位拥有“正经工作”的先生。你知道的,那种体力活,建造人们需要的各种实物。这位先生总是会问类似的问题:你不担心 AI 会抢走你的工作吗?我环顾四周,看到几张脸转过来看着我们,眼睛微微翻了一下,然后继续他们之前的谈话。又是这个问题。
他们有个侄子在做 Shopify 店铺搭建,他们听不懂他嘴里说的一半术语,但他确实陷入了困境,并声称科技圈里所有人都面临同样的问题。他的侄子是不是得去学一门“手艺”?我们所有人都是吗?
喝了几杯之后,我会认真回答,因为我不在乎别人是否觉得我说的话有趣或真实。但通常我会叹口气说:“嗯,是啊,有点担心。我们大多数人都这样。不担心才是傻吧,对吧?”他们会点点头,然后转向更轻松的话题,比如我们到底会不会轰炸伊朗之类的。
事实是,在科技行业工作一直很糟糕,而且从来都不是人们想象的那样。
有些人认为,我的工作就是坐在角落办公室整洁的桌子旁,周围是开放式办公区,长桌上摆满了 MacBook 或 ThinkPad。在我的角落办公室里,我制定完美的计划,我完美的员工们为我鼓掌。没有任何事物能逃过我的目光,每一个决定都由我完美地做出,每一分钱和每一分钟都 accounted for(账目分明)。
当掌声平息,我的员工们——或者叫“下属”,或者当我心情好时叫“我的团队”——开始疯狂地打字。打字、打字、打字。不久之后,完美的软件便生产出来了。它们从集体的流水线上滚下来,就像第一个孩子一样,无可挑剔。
然而,现实根本不是这样的。是的,我因为没有得到角落办公室而感到沮丧,但我正忙于恐慌,因为我根本不知道自己在做什么,没人知道,而且车轮刚刚脱落。CEO 说 AI 让他朋友贾雷德(Jared)的团队效率极高,以至于他能裁掉一半的人,但这更像是在吹牛,而不是威胁?我不知道,我感到受威胁,但这可能只是我的焦虑症在作祟。肯定能从好几个在卫生间哭的员工那里借到一片 Xanax(抗焦虑药)。
想象一下你接受了一份船长的工作。第一天你骑车来到港口,兴奋地想见见船员。你注意到船不在那里,但你之前联系过的、非常兴奋的招聘人员格雷格(Greg)向你挥手,保证这不是问题。你被绑在弹弓上,奇迹般地发射到了船上。前任船长因为另一位船长在 2025 年船长大会(Captainpalooza)上向他解释了内燃机原理,他想朝那个方向迭代,于是放了一把火。他被推下了船,但带走了说明书。如果整艘船不是为他量身定制的,这本来不是问题。船还有帆,但它们没有连接到桅杆上,而且半螺栓固定在船尾的内燃机零件仍然散落在全甲板上。
你下到甲板下研究船是如何工作的,以及我们要去哪里,但当你沿着楼梯下到下层甲板时,不知怎么的却来到了桅杆里?你问一个水手发生了什么。他卡住了(glitch),说:“你说得完全对!我的方法有缺陷,但这里有一个更好的楼梯实现方案。”桅杆倒翻了,你回到了甲板上,回到了起点。帆倒过来了,你的“水手”兴奋地等待着你夸奖他干得好。
你问另一个人“等等,我们到底要去哪里?”,太好了,是个真人!没有卡顿,没有那种精神焕发但毫无帮助的回答,是一个真正的人。她一周没睡觉了。她 barely(几乎)没看你,说:“问导航员。”“导航员?”你问。她指了指。导航员是一个玩偶,当你按下它背上的按钮时,它会说“前进和上升”。
玩偶着火了。
这就是现在的工作状况。你站在一艘燃烧的船上,拿着地图,试图弄清楚我们到底要去哪里,以及我们该如何到达那里。
你认识这艘船。你们中的一些人曾在类似的船上做过工程师。你们中的一些人是离任的前船长。我不是为生日派对上的那位先生写的,我是为你们写的。
你曾经是一名工程师。你记得代码审查(code review)是干什么的。你记得自己是那个初级员工,第一个 PR(Pull Request)被资深员工撕碎,而那人花时间解释了为什么。你并没有在 2024 年的某个早晨醒来,然后决定废除这些。
发生的事情是:资金跑道(runway)被削减了。董事会会议上没有任何地方提到“价值观”这个词。CFO(首席财务官)有一张电子表格。CEO 从一次团建活动中回来,有人向他演示了一个 AI 代理在十四分钟内写成一个完整功能的 demo,他相信了(人们总是愿意相信他们想相信的事情),并告诉董事会他可以在第二季度削减 30% 的工程人员。现在,你的工作就是弄清楚该如何做到这一点。
你告诉自己,初级员工会没事的。他们会适应,他们会重新技能,他们会找到落脚点。你告诉自己,资深员工可以吸收缺失的人手,AI 代理可以填补空白。你告诉自己下个季度再重新评估。你签了那份名单。你回家。你比平时喝得稍多一点。你睡着了。
你知道后果。
你知道,因为你是那个不得不收拾前任领导所兜售的“简单答案”烂摊子的工程师。你看着古德哈特定律(Goodhart's Law)吞噬了速度指标、故事点、测试覆盖率;每一个被交给非工程师作为工作进展顺利证明的数字。你知道 DORA 指标早已告诉你,当工具的增加速度快于判断力的增加时,部署稳定性会发生什么。你知道当那些能发现错误的人被推出去,或者学会不再去发现错误时,代码库会发生什么。
你知道。但你还是签字了。因为 alternatives(替代方案)是失去工作,而工作意味着抵押贷款、学费、签证,以及那个认为“等事情稳定后我再修复”的自己。
“以后”永远不会到来。我们都知道这一点。我也签过名单。我们还在互相指责谁的名单更糟。
再也没有初级员工了。2024 年为他们的消亡举行了一场葬礼。没人来参加。机器现在做着他们曾经做的事,但更便宜。当然,初级员工的价值不在于他们的产出,而在于他们将成为谁:那些知道“尸体埋在哪里”的资深工程师。我们优化了产出,废除了学徒制。几年后,我们会想知道所有的资深员工都去了哪里。我们射杀了他们。没人会记得。
然而……
在你的基础设施中,某个地方有一个 cron job(定时任务)。它在凌晨 3 点运行。它自 2016 年以来一直在运行。它做着一件关键的事情。我无法确切告诉你它做什么,但你知道那个唯一知道的人,他在 2019 年离职了。顶部的注释写着 `# 不要更改!!!问 Ben`。Ben 无法联系。过去四年的每次路线图规划会议都包括“现代化遗留 cron”作为候选举措。它从未入选。你个人已经两次把它从名单上移除。
有人让它一直运行着。她的名字叫 Sara。你不知道这件事。
她五十多岁。她没去过船长大会。她以前在三条街之外的一个小办公室工作。去年为了省钱,有人关闭了那个办公室。船是离她有桌子和网络连接的地方,所以她现在带午餐,通过舷梯下到甲板下的一个小舱室。船上没人知道她在那里。记得 Ben 吗?好吧,她继承了 Ben 的 cron job,Ben 自 1998 年以来一直指导她。
她知道 Ben 几年前去世了。她参加了他的葬礼。你不知道这件事。
当任务卡住时(这种情况经常发生),她推它一下,它再试一次。电话响了。她确认了问题。她推了一下。这个任务依赖于一个已被时间遗忘的模块。好吧,几乎,因为她在 Ben 去世后在他的桌子抽屉里找到一个 U 盘,上面有副本。没有 AI 代理接触过它。永远也不会。
她不是这个行业中最安全的人。她是那种你无法触碰的东西的形状。她是你刚刚删除的所有机构知识的化身,行走在一个五十五岁的身体里。她是通过你废除的学徒制成长起来的:Ben,1998 年,U 盘。她*就是*那个流水线。当她死去时,制造像她这样的人的东西就已经消失了。你在三年前杀死了它。你将无法雇佣她的继任者,因为你破坏了制造她的机器。
她就是那个用勺子挖穿魔多(Mordor)隧道的人。勺子是她的。隧道也是她的。没人想要勺子或隧道,而当她死去时,cron job 也会死去,工资将停止发放,一家拥有 30,000 名员工的公司将不得不想办法支付所有人的工资,而只有一个答案:雇佣一个有勺子的人。你找不到他们。你确保了这一点。
这个 cron job 支付工资。你不知道这件事。
派对上的那位先生仍在等待答案。我现在喝得太醉了,没法撒谎。我告诉他:AI 没有抢走我们的工作。贪婪抢走的。同样的贪婪将工厂转移到孟加拉国,并在刚果的钴矿里保留奴隶,只是戴上了新的面具。告诉那个侄子去干点别的。什么都行。这也救不了他,但至少他不必假装毁灭他生活的东西是一个机器人。
除了 Sara。在甲板下,带着她的 U 盘。他们找不上她,因为他们不知道她在那里。
而我们其余的人则在甲板上,纳闷桅杆为什么是倒的,以及那边的那个玩偶是干什么的。
玩偶着火了。
相似文章
软件令人疯狂
本文探讨了软件开发的独特特性,如其速度、灵活性和隐性成本,如何引发开发者和利益相关者的精神压力与非理性行为。
没关系,做你的事
这篇文章反思了科技社区中具有争议的AI热潮和不确定的讨论,探讨了与历史媒体扭曲的相似之处及其对开发者的影响。
@saranormous: https://x.com/saranormous/status/2064510215056400652
尽管以Devin为代表的AI编程助手取得了快速进展,显著提升了代码编写和交付的速度,但本文认为,软件工程中最有价值的部分仍难以通过基准测试衡量,并且需要人类的判断和组织协调,这些是无法轻易自动化的。
@addyosmani: https://x.com/addyosmani/status/2077600055159357548
本文探讨了AI代理如何自动化那些初级开发者传统上用于培养品味和判断力的重复性任务,从而改变了从初级到高级的职业路径,并导致近期计算机科学毕业生失业率上升。
我不是软件工程师
作者回顾了23年来被告知自己不是'软件工程师'的经历,并批评行业向代理式人工智能和自然语言编程的推进,认为这削弱了代码质量、可重复性和深思熟虑的工程实践。