是的,而且……
文章摘要
这篇文章的作者是 htmx 的作者 Carson Gross,他也在蒙大拿州立大学教计算机科学。文章发布于 2026 年 2 月 27 日,这次是被重新提交到 HN 并登上首页。作者有三个儿子,其中至少一个想学编程。亲戚、朋友和学生越来越常问他:「有了 AI,还值得当程序员吗?」他的回答借用了即兴戏剧的原则:「是的,而且……」(Yes, and)。
「是的」部分。 他认为编程归根结底是两件事:用计算机解决问题,以及在解决问题的过程中学会控制复杂度。他很难想象这两种能力在未来会变得不如今天有价值,所以编程仍是可行的职业。
「你必须自己写代码」。 他认为 AI 对初级程序员很危险,因为它确实能为很多问题生成代码。只生成而不亲手写,就失去了在一线摸爬滚打中形成的、对代码的直觉。他会告诉学生:「AI 能写这次作业,别让它写。」不写代码就读不好代码,而在 AI 时代,读代码的能力可能更重要;读不懂代码,就会陷入「魔法师学徒陷阱」,造出自己既不理解也控制不了的系统。
「从写代码到写提示词,就像从汇编到高级语言」? 他不同意这个类比。编译器在很大程度上是确定性的:给定一个 for 循环,你大致能预测在特定架构上会生成什么汇编,LLM 对提示词的输出做不到这一点。高级语言消除了大量偶然复杂度;LLM 生成的代码却常常没有消除偶然复杂度,甚至会因为选错方法、偷工减料而增加复杂度。读不懂代码,你就判断不出来,而要读懂代码就得写代码。
AI 是很好的助教。 不把 AI 当代码生成器,而是当作帮助理解概念和技巧的伙伴,它可以大大促进学习。学编程最痛苦的是「卡住」,尤其是被偶然复杂度卡住,比如不会用工具链,甚至不知道工具链是什么。作者自曝当年在伯克利自学 Unix 时卡住,这是他从计算机系退学的原因之一。他为学生写了一份 AGENTS.md,把编程代理配置成「助教」而不是「代写者」。
「而且……」部分:哪些技能会更重要。 他认为 AI 会改变编程,但没有一些人想得那么剧烈。纯粹写代码的价值可能会相对下降,他觉得这有点可惜,因为写代码本身充满乐趣和审美选择。与此同时,以下几种能力会更重要:
- 沟通能力:与 LLM 和与人清晰地写作、思考、交流;读书、写文章、写博客都有帮助。
- 理解业务:有人说「有了 AI 就不需要程序员了」,程序员同样可以说「有了 AI 就不需要业务人员了」。他认为两者都短视,但 AI 确实让程序员有更多时间去理解自己要解决的真实问题。
- 系统「架构」:他对「软件架构师」这个称呼心存疑虑,见过太多「架构宇航员」带来的灾难,但组织大型系统、控制其复杂度的能力会越来越重要。问题在于,架构能力向来来自先把小模块写烂、再慢慢写好的经验。他见过的糟糕架构师,要么代码写得差,要么根本没怎么写过代码。如果简单的部分都交给 AI,直觉从哪里来?所以还是那句话:你必须写代码。
- 有效使用 LLM:资深程序员知道好代码长什么样,处境较好,危险在于完全不写代码、导致「脑腐」,尤其是发出提示词后在等待中陷入「无尽刷屏」,他承认自己就有这个毛病。他自己用 LLM 分析现有代码、整理大项目的思路、生成小段代码、写他不喜欢写的正则和 CSS、写可以丢弃的演示代码、建议测试用例;他尽量不让 LLM 生成需要长期维护的完整方案,也从不让 LLM 设计自己系统的 API。初级程序员处境更难:同龄人都在 vibe coding,你会显得慢,甚至被批评。如果公司更看重速度,要先保住饭碗。但他认为这只是暂时的,企业很快会发现,高速 vibe coding 带来的复杂度爆炸比审慎编码更严重。他呼吁:公司必须让初级程序员自己写代码。
今天怎么找工作。 他承认程序员就业市场很糟,好学生也找不到工作,但相信这是周期性的低谷。他认为招聘网站基本是在买彩票,更有效的是「四个 F」:家人(Family)、朋友(Friends)、朋友的家人(Family of Friends)。不一定非得是大厂,任何上百人的公司都有某种开发团队。他举了一个例子:一个找不到工作的学生,家长在 Costco 总部工作,他告诉学生这就是进入好公司的门票,哪怕先从分析师做起,会编程也会让职业生涯大不一样。
结论:他仍然认为编程是值得追求的职业,基础——写好代码、控制复杂度——会长期重要,但应该在纯写代码之外培养更多能力。文章最后再次呼吁企业让初级程序员至少写一部分代码。
HN 评论精华
帖子获得 768 分、300 多条评论,作者 Carson Gross(recursivedoubts)亲自参与了讨论。
作者补充。 recursivedoubts 说他写这篇文章是为了帮助考虑读 CS 的学生,他的儿子刚开始读 CS,「我在这件事上有切身利益」。尽管最近 AI 的进展也让他吃惊,他仍坚持文中的观点,并补充了一个新观察:最有效的 vibe coder 本来就是优秀的开发者。他认为「代码本身」已经没什么护城河,但「理解代码和系统」的价值反而在上升,因为复杂度仍在超线性增长。被问到没有人脉的学生怎么办时,他建议先承认建立人际联系的必要性,有意识地练习沟通等软技能,而不是盲目地四处联系人。
「不,但是……」。 置顶的 samstress 唱反调:学编程要花好几年,按过去 12 个月 AI 的进步速度外推,这是时间的错误投入,不如去学建筑、采矿、废物处理等技术覆盖不足的行业,做现实世界和 AI 之间的「翻译」。notpushkin 反驳说,不懂代码就无法可靠地用 AI 生成代码;geraneum 则认为外推是这个论点的阿喀琉斯之踵,人们把「挖掘 LLM 尚未发挥的潜力」误当成了「根本性的进步」。johsole 说他们公司的新功能开发速度提升了约 30%,瓶颈已经变成产生新的营收点子,他不会鼓励孩子学编程。simonw 回应说,懂计算机和软件的人更有可能产生那些新点子,如果自己现在读大学,会选择计算机科学加另一个专业的双学位。
编译器类比与「确定性」之争。 这是技术讨论最集中的地方。layer8 认为关键不在确定性,而在于能否以形式化的精度推理源码与程序行为之间的关系:你能预测源码的哪些改动会导致程序行为的哪些变化,提示词做不到这一点。gf000 和 kelnos 认为更准确的词是数学意义上的「混沌」:输入的微小变化会导致难以预测的巨大变化。sippeangelo 从 C++ 的角度唱反调:未定义行为、只有「对齐好脉轮」才会触发的优化、缓存局部性,本来就很「玄学」。layer8 回应说,C 标准至少让你能推理何时会触发未定义行为。xyproto 说把温度设为 0 就能让 AI 确定性地输出;fxwin 引用 Thinking Machines 的研究指出,LLM 的非确定性主要来自批量推理的实现,而不是设计本身。
读代码与写代码。 tengbretson 质疑「不写就不会读」:他毕业时写代码的能力进步很大,读代码的能力几乎没长进,两者是不同的技能。JSR_FDED、JodieBenitez、Cthulhu_ 也认为读别人的代码更难,code review 应该单独教。skydhash 则认为读和写本质上都源于形式化思维。eviks 问:如果专门练习读,岂不是进步更快?
AI 写代码到底多强。 vips7L 说自己仍然全部手写,交付速度也不比同事慢;brabel 说 LLM 能写更多测试、发现人类会遗漏的改动和自相矛盾的需求。sgt、vips7L、girvo 则吐槽 LLM 写了过多测试、编造边界情况,还喜欢写脆弱的 mock 测试。fingerlocks 说自己原本不信,结果 AI 在两周内从零写出了一个功能齐全的游戏引擎。Dzugaru 和 Vegenoid 反问:这种网上已有成百上千个实现的「绿地项目」,正是两年来人们反复讲的「我被震撼了」的故事,并不能说明它能处理与真实世界纠缠更深的问题。jeffreyrogers 说他面试的应届生越来越难完成带业务逻辑的开放题。JeremyHerrman 抱怨前沿模型长时间自主写大量代码后只给一句高层总结,人们最后干脆不审直接接受,这本身就在加剧「脑腐」。
纺织工的类比。 fpaf 把文章套到工业化前的波斯地毯工匠身上:「师傅,我还该学手工织毯吗?」「是的,而且……」,结果手工地毯市场缩到几乎为零。agons、geraneum 反驳说,买宜家地毯的人本来就买不起手工地毯,机织品填补的是从未被服务的市场。pjm331 指出,软件不是重复生产同一件东西,工业化类比不太适用;singron 认为更好的类比是:软件开发是在制造织毯机,亲手织过毯子有助于设计机器。piloto_ciego 分享说,他正靠给小公司做定制工具谋生,替代每年 7—10 万美元、功能冗余的 SaaS,收费每年 2.4 万美元,维护主要靠 Claude 或 Codex。
对就业建议的质疑。 smcg 觉得「靠人脉」这个建议令人沮丧,对没有业内亲友的人不公平;trentnix 说俱乐部、会议、线上社区、做出有用的东西也都是人脉。righthand 认为作者低估了就业市场的糟糕程度,建议他自己去投几个月简历试试。vouaobrasil 和 Uptrenda 质疑教授的立场:教授有动机让学生继续读 CS,而且有能力给孩子留下积蓄。broodbucket 对「公司必须让初级程序员写代码」的回应很简短:「这不会发生的。」Culonavirus 认为,管理层没有 CS 背景的公司不会意识到复杂度爆炸的问题;otterley 则认为管理者明白,只是为了竞争有意承担这种技术债。
其他观点。 antihero 和 globular-toast 认为「卡住」本身有价值,能培养韧性,AI 让人更容易放弃挣扎;Silagi 认为人们只是会在更高的抽象层次上卡住。jaza 预言:1990 年代非开发者用 Excel 和 VBA 宏造出一堆「软件」,2000 年代开发者花了大量时间重写;2020 年代的 AI 生成软件,到 2030 年代也需要人来收拾残局。trixn86 指出《泰德·拉索》第四季有一集主题正好是「Yes, and」,nocturnes 解释说这是即兴戏剧的老原则。