AI 编程时代,想象力成了最被奖励的能力
同时,它也在惩罚厌恶失控的人。 在2017年谈论自动驾驶? 2017年夏。 我的一位大四学长马上要毕业了。他外号叫"大帅",是个非常自信的人,每天都带着他招牌的微笑。临别之际,我送了他一本我看完的《腾讯传》。 在空荡的宿舍里,他跟我聊起电动汽车,聊起自动驾驶。 他问了我一个问题,以后的车自己就会开了,怎么样? 我仔细想了有30秒,然后回答:“那这辆车一定热得半死,这得消耗多少算力去算啊。” 现在我的脑海里还记得这件事,是因为学长当时从默认的微笑中突然闪过了一瞬特殊的表情。这个表情我很难用言语形容,它似乎是疑惑、一点点的惊讶、一点点的无奈、感叹等复杂感情的结合体。 后来说了什么,我已经忘了。但是最近几个月发生的事情,让我确认了一件事: 我没有足够的想象力。或者准确地说,我不敢去幻想我认知之外的事。 在那次聊天8年后,我拿到了腾讯的蓝色工牌。9年后,我在腾讯正好赶上了AI大模型的这一场工业革命。腾讯在2026年上半年为所有员工提供了几乎用不完的token,我有幸体验到了当世顶级的大模型。 AI已经不是"帮我写代码的工具"了 到了2026年,事情变得完全不一样了。过去AI在项目里编造函数的情况基本消失,它开始能够读懂整个项目、提出方案、完成设计、编写实现,也开始真正参与我的判断过程。个人用户也只需要充值一点钱,就能让聚合了这个世界几乎所有编程知识的顶级AI大模型,亲临指点自己的编程项目。 变化已经大到,我无法再把它当作偶尔补全代码的工具了。 所以,我们还缺什么呢? 想象力。 还有,对失控感的容忍。 失控感:我为什么迟迟不接受AI 四个月前,即使我已经确认AI大模型的能力远超我的想象,我也还是无法放心地把工作交给它。 去年下半年,我接入Claude Sonnet 3.5修网页前端问题,来来回回修不明白,一下午花了我30多块人民币。当时我的第一印象是,AI不过如此。 不过,那个结论的下面,其实藏着我对未来的恐惧。这导致很长一段时间里,我对AI带着评估的视角,评判它吐出的观点是不是正确。另外,由于我是功能的负责人,我希望拥有对功能的掌控感。所以我只是把AI当作一个"帮我写代码的工具",并不想让它参与设计和决策。 我也尝试过让AI分析需求,但当它说出一些错误结论的时候,我会有一种"无能狂怒":“我等了你半天了(实际也就5分钟左右),你就跟我说这个?” 当时,我既期待AI能真的让我成为甩手掌柜,让我不用那么努力地思考方案,最好是把设计和实现全包了;同时我又担心AI写的东西不对,到头来发现问题了,查BUG的还是我。这挺矛盾的。就像我面对很多事情喜欢非黑即白一样,在这件事上我也是非黑即白的:要么AI全部做完,要么由我来思考,AI只负责执行。 显然,当时的AI无法全部做完一整个需求。我只能自己思考,然后让AI执行。 我没有激发出当时最强的Opus 4.6的所有能力。我不喜欢那种"我打了这么多字告诉你我要干嘛,你却想得不对、做得不对"的感觉。 有趣的是,四个月前,当AI犯错时,我会很生气。因为如果是我自己思考,大概率不会犯这个错误。这是一个自我保护的想法:我担心自己的工作会被替代,AI犯错时,佐证了"我不会被替代",给予我一定的安全感。 AI针对同一个问题,每一次输出的答案都会略有不同,每一次写的代码也会略有不同。这和之前我们对编程的理解是不一样的。之前的编程下,函数、脚本都接受它们要求的输入,然后输出固定格式的输出。而到了大模型时代,这个"约定"被打破了,每个人都可以用自然语言去指挥AI做事情。我无法掌控AI做什么,这让我感到失控。更糟糕的是,AI越来越强,带给我的不安全感也在增强。过去的自己在心底是一个自卑的人,知识面有一些短板,而AI把我仔细、认真的优势覆盖了,我感觉到的,是价值感的缺失。 现在回头看,我才明白:我不是输给了AI,我是输给了自己的失控感。 一场进行中的编程"工业革命" 在没有AI的年代,我们的古法编程流程是,接到新需求 -> 分析已有代码和新需求的关系 -> 确定方案 -> 开始写代码 -> 发现问题 -> 修改方案 -> 再写。不管是什么需求,我们总可以找到一个"看起来能用"的方案,即使我们没有足够的时间和能力去评估方案是否最佳,也可以先动手,做出一版看似可以用的功能。 但是有了AI,还用这一套流程,就会限制AI的能力。必须要更新流程了。我目前摸索的流程是:接到新需求 -> 先把需求和项目里的相关代码告诉AI,让AI理解需求(与此同时,我自己也在看代码)-> AI通过自己的理解输出几个可行的方案,让我决定(与此同时,我和策划基于需求的边界和目的进行深入探讨)-> 选定方案后,脑暴这个方案可能的问题 -> 经过多轮脑暴之后,方案基本没有太大的缺陷 -> 实施。 大学时学习的软件工程、系统分析与设计方法等课程,讨论各种中间设计文档、各种开发模型,本质上都在约束一件事:动手前先思考。AI并没有发明这件事。它改变的是这件事的经济性。 以前不是不知道应该先设计,而是在很多项目里,“充分设计"的成本高得不现实:看清楚整个项目、检索相似实现、枚举边界情况、生成候选方案,每一项都要花掉大量人力。于是这一步总被工期牺牲掉。而AI把分析、检索、枚举、生成候选方案的成本突然压低了,那些过去经常被牺牲掉的设计步骤,重新变得值得做。 区别在于,“发现问题"被前置了。在大型项目中,AI拥有看到整个项目代码的能力,它能识别已有代码的最佳实践,帮助我们分析需求。 但它也可能是错的。之前的一些功能因为设计上的妥协、因为疏忽,可能给AI指向了错误的方向。AI可能说了一个错误结论。那么,就把反对它结论的证据告诉它,让它继续思考就行了。 为什么我们要把"发现问题"前置?因为现在AI编写代码的速度太快了。AI降低了重写一段代码的成本,却提高了在错误方向上一口气跑很远的风险:它一个小时可以沿着错误的方向生成十几个文件、测试和文档,而以前的人类一天可能才写几百行。所以方向校验反而比过去更重要。 方案之争:AI、我、我的同事 在大型项目中,没有人能对整个项目所有细节了如指掌。它更像是盲人摸象,大家用自己的工程经验和知识面,用尽各种技巧和编程范式保证自己的功能健壮。 但每个人和AI的观点是不同的。 AI,洞悉了项目代码和文档,基于这世上的知识,给出它认为最合理的答案; 我,知道一些项目里的隐性规约,知道策划需求的边界和没表达出来的部分,还有一些自己的思维习惯; 我的同事,他可能更熟悉我这次要修改的模块,能够给出很多建议和未经仔细思考斟酌的方案。 极端情况下,会出现三者各自有自己的方案的情况。 我曾经非常惧怕这个情况。在古法编程时代没有这个问题:如果我自己思考,我肯定按我的思考做;如果同事给了意见和方案,我们讨论后就可以采纳。但是AI来了,就算我和同事讨论过后,由于我们对代码的了解总有缺陷,我必须再把讨论的结果告诉AI,让AI再理解一次。一旦AI说的"看起来有道理”,我又得和同事开启一轮讨论。 我之前是不具备这种讨论能力的。我总觉得一个功能,我有思路了就去做,遇到什么问题再改就行了。这个思路在古法编程时代看不出问题,因为大家都是盲人摸象。而现在,AI像一个不知疲倦、读得非常快的第二审阅者,它能快速扫描大量代码,找到相似的实现,枚举风险,提出反例,帮你攻击一个方案。但它依然可能把图看错。所以"动手"的时机被延后了,而这让我感觉非常不适应。 “动手"的时机真的延后了吗? 当我发现自己写不出很好的提示词,我开始查阅提示词相关的文档。官方文档里反复强调,要把AI想象成一位才华横溢但刚入职的新员工,你对它解释得越精确,结果就越好。...
