编程像开会,写代码像发邮件!
这可能是2026年最让程序员后背发凉的一句话:跟AI合作,竟然比带团队还考验人的本事。
摘要:当软件工程师发现,给AI写提示词比写代码更考验人,编程的本质就从执行指令变成了传达意图。本文通过确定性编码传统与AI随机性输出之间的碰撞,揭示为什么未来的技术工作越来越像管理对话,以及那个让所有人都不安的核心悖论:越想让AI听话,就越得学会怎么当个好领导。
代码本该是个听话的乖孩子
程序员花了七十年,就为了干成一件事:让计算机像个绝对服从的士兵。
写一行代码,计算机就执行一行指令。输入数字2,函数返回4。如果返回了5,这叫Bug。Bug意味着机器没按规矩出牌,意味着逻辑链条里有个环节断了,意味着人和机器之间的那份契约被单方面撕毁了。
这份契约只有一条铁律:同样的输入,必须产生同样的输出。这叫确定性。
在软件工程的教科书里,确定性是地基。编译器不会跟程序员讨价还价说“这段逻辑有点绕”,解释器不会反问“你确定要这么写吗”,操作系统在运行死循环时也不会停下来问一句“要不咱们换个思路”。
程序员坐在屏幕前敲下的每一行字符,都在做同一件事:把世界的无穷可能性,不断删除、删除、再删除,最后装进一个叫确定性的小盒子里。
这种确定性给的掌控感非常具体。
代码不出Bug的日子,程序员的内心是踏实的。需求文档写了什么,代码就实现什么。项目经理问进度,能报出精确到小时的时间表。测试甩过来一个报错日志,扫两眼就能定位到某个文件的某一行某列。
确定性让软件工程变成了一门可以精确计算的手艺活。
可偏偏有一个变量永远算不准:人。
人的不确定性才是房间里的大象
产品经理递来的需求文档,经常像一份被猫抓过又泡过水的草稿纸。
启动会上说的“简单做个后台界面”,到验收时变成了“我们要做一款颠覆行业的中台系统”。立项时白纸黑字写的五个核心功能,开发到一半悄无声息地变成了八个,其中三个还被悄悄替换成了完全不同的东西。
代码是死的,人是活的。活人随时可以改变主意。
这中间的鸿沟,靠项目经理开无数次会议来填,靠产品经理写无数份补充说明来补,靠技术负责人在聊天记录里翻找两个月前的某句话来证明“当时明明说好了的”。
所以程序员早就习惯了。需求变更是常态,不变才是意外。
但有一件事没变:代码本身依然听话。只要需求定下来,写进代码里的逻辑就老老实实执行。人再怎么变,已经编译好的程序不会自己长出新的想法。
这种确定性曾经是整个行业的安全绳。
直到大语言模型出现了。
同样的问题,不同的答案,这就怪了
第一次跟大语言模型打交道,程序员会有一个极其不适应的瞬间。
问同一个问题,第一次得到一个答案。刷新页面再问一次,得到一个完全不同的答案。两次回答都说得通,但遣词造句、组织方式、甚至某些细节都不一样。
如果编译器出现了这种情况,程序员会当场摔键盘。这叫严重Bug,得立刻提工单。
但大语言模型就是这么设计的。
它不是编译器,它是一台概率机器。每次生成内容,都是基于前面已经写好的词语去预测下一个最可能出现的词。这个预测过程带有随机性。
同样的输入产生不同的输出,在传统软件里是灾难,在大语言模型的世界里是出厂设置。
这就制造了一个前所未有的尴尬局面。
程序员用惯了确定性工具,面对这个会随机变卦的“软件”,第一反应是“这玩意儿靠不住”。但继续用下去会发现,有时候那个随机的答案比预期更好,给出了一个从没想过的角度,或者补全了一个被忽略的边界条件。
这时候心态就微妙了。责怪它不稳定,但又离不开它带来的意外惊喜。
对待同事的方式,比对待编译器管用
如果一直把大语言模型当成一个不太靠谱的编译器,使用体验会很糟糕。
每次输出不符合预期,就修改提示词。改完还不对,再改。改到第十遍,发现它又回到了第一遍的答案。这时候的挫败感,就像对着一个听不懂人话的客服机器人反复念订单号。
有人换了个思路。
不再把它当成执行指令的工具,而是当成一个刚入职的实习生。
对待实习生,不会只说“去把这份数据整理一下”。会说“我要用这份数据做一个给老板看的月报,重点是这个月的增长曲线,异常值标红,顺便备注一下跟竞对数据的差距”。会告诉实习生为什么这么做,做成什么样算好,哪些地方可以自己发挥,哪些地方必须按规矩来。
然后实习生交上来的东西,有时候比预期的更好,因为理解了意图之后,自己补了一些没交代但合理的东西。有时候交上来的东西完全跑偏,但跑偏的方式能反映出交代任务时哪里没说清楚。
大语言模型的运作方式,跟这个实习生很像。
给一段上下文,比给一行指令管用。给几个例子,比给一堆规则管用。指出一次错误并且说明为什么错,比反复修改提示词管用。
本质上,这是在教一个没有记忆的东西记住自己的偏好。也是在重新学习一件事:怎么把脑子里模糊的想法,翻译成别人能理解的语言。
领导力的核心技能,竟然全是沟通课
这就指向了一个有点讽刺的结论。
过去二十年,程序员花大量时间学习怎么跟计算机说话。学编程语言,学框架,学设计模式,学各种让指令更精确的技巧。这些技能的核心是“把需求翻译成机器能执行的步骤”。
现在跟大语言模型打交道,要求的是另一套技能:怎么把一个模糊的目标说清楚,怎么在反馈中识别自己哪里没说透,怎么给出建设性的修正意见而不是单纯地否定。
这些技能,在职场里有个更熟悉的名称:领导力。
领导力听起来很玄,拆开看就三件事:第一,给够上下文,让团队知道为什么要做这件事;第二,把验收标准讲明白,做出来什么样算赢;第三,看了结果之后给出具体反馈,而不是只说“不行”就完事。
跟大语言模型合作,干的也是一模一样的事。
这引发了一个让人坐不住的反转:代码现在变得不确定了,反倒是那些跟人打交道的软技能,成了驾驭这个不确定性的硬通货。
过去写代码像发号施令,把逻辑一条条列清楚,机器照单全收。现在跟大语言模型协作像开站会,得先对齐上下文,再确认目标,最后一起看产出合不合理。
指令越来越少,对话越来越多。
最大悖论:越像人,越要当好人
但这中间藏着一个巨大的认知陷阱。
大语言模型表现得越来越像人,能聊天,能理解情绪,能给出有温度的回应。很多人会不自觉地把对待人的方式投射到它身上。客气地打招呼,感谢它的帮助,甚至因为它给出一个糟糕的答案而感到恼火。
这些投射完全是单向的。
模型没有情绪,没有意识,没有任何人类的体验。它只是一个从海量文本里学出来的统计模式匹配器。那些看起来像人的回应,本质上是数学运算的结果。
这个事实和“把它当成实习生来管理”的建议,拧成了一个奇怪的结。
一方面,为了获得更好的输出,必须用对待人的方式来对待它:给上下文,解释意图,给出建设性反馈。另一方面,心里要清清楚楚地知道,对面没有一个人,没有一颗大脑,没有任何真正的理解。
这种带着清醒距离的拟人化,可能是最难掌握的分寸。
过了头,就会把模型的错误理解成恶意,或者把它的正确理解成善意。不足够,又回到用指令写代码的老路,白白浪费了模型最值钱的能力:从模糊描述中推断出合理的输出。
越想把事说清,越发现自己没想清
跟大语言模型合作几个月,程序员会发现一个意外的副产品。
表达能力变好了。
以前写代码只需要对机器负责,逻辑严密就行,不需要解释动机。现在给模型写提示词,得把背景、目标、约束条件、偏好全写出来。写着写着就会发现,有些地方自己都没想明白。
“做成什么样算好”这个问题,对着代码的时候不会浮现。代码只有“能不能跑通”这一个标准。但对着一个可能给出无数种答案的模型,“好”的定义变得至关重要。
这就逼着人把脑袋里那些模糊的判断标准,一个一个搬到纸面上。
比如“这个文案要有冲击力”这句话,说出来容易。真要让模型执行,得先拆解:什么叫有冲击力?是用了短句还是用了反问?是数据密集还是情绪密集?是开门见山还是先抛悬念?
拆解的过程,就是把自己潜意识里的审美标准显性化的过程。
以前这些标准藏在心里,只有看到别人的产出时才会说一句“我觉得这个不行”。现在必须提前说出来,因为模型不会读心术。
这个习惯一旦养成,对写文档、开评审会、甚至跟家里人沟通都有好处。毕竟世界上哪有什么天然清晰的表达,所有的清晰都是被追问逼出来的。
信任被打破了,但没完全破
回到那个最原始的问题:代码应该听话。
大语言模型把这份信任打破了。它不再是一个可以预测的、稳定的执行者。它有自己的“脾气”,虽然这个脾气只是概率分布的表象。
但有意思的是,当接受它这个“不靠谱”的设定之后,反而建立了一种新的信任关系。
这种信任不是基于确定性,而是基于能力的上限。知道它在某些类型的任务上特别擅长,在某些方面特别容易出错。知道怎么把任务切成小块,每块交给它合适的部分,然后自己来拼接和校对。
这不是在用一个工具,这是在组建一个工作流。
传统编程里,程序员是唯一的生产者。代码只是生产的结果。大语言模型时代,程序员变成了调度者、审核者、整合者。一部分生产工作交给了模型,但判断什么该生产、什么不该生产,以及生产出来的东西质量够不够,这些还捏在手里。
这个角色的转变,才是对程序员职业生涯最深远的冲击。
写了十年代码的人,突然发现自己最值钱的技能不再是写代码本身,而是知道该让代码做什么,以及做完之后怎么判断好坏。这跟带团队的感觉越来越像,因为带团队也是在做同样的事:分配任务,把控方向,审核产出。
一个没答案的结尾
说回那个跟实习生协作的比喻。
实习生的答案不稳定,有时候出色,有时候跑偏。但有一个本质区别:实习生会成长,会记住上次犯过的错,会越做越好。大语言模型不会。每次对话都是独立的,上下文窗口一关,之前教的所有东西都归零了。
只有通过外部存储,比如写下来的规范、模板、示例,才能让它在下次对话中“记起”之前确认过的偏好。这些外部存储本质上就是新的代码——用自然语言写成的、给机器看的指令集。
绕了一圈,又回到了写文档这件事上。
但这次写的文档,不是给编译器执行,而是给一个会随机应变的对象做参考。它有时候照着做,有时候有自己的发挥。发挥好了要表扬,发挥偏了要纠正。
代码不听话了,但也没完全失控。
能走到哪一步,没有人知道。
原文期刊:Allen Bargi 个人笔记 / 发表日期:2026年8月15日 / 原文标题:Working With AI Feels More Like Leadership Than Coding / 作者单位背景:独立开发者及技术作者,长期关注软件工程与AI协作边界。