AI生成原型不等于产品,工程交付才是核心
讨论AI能生成可用原型但无法替代真正的产品工程,程序员需理解AI工具的实际边界。
讨论AI能生成可用原型但无法替代真正的产品工程,程序员需理解AI工具的实际边界。
构建软件从未像现在这样触手可及。你只需用简单的英语描述一个想法,几分钟后,一个可以运行的原型就会出现在屏幕上。它有 UI,能连接数据库,也确实实现了你设想的功能。对于从未写过一行代码的人来说,这一刻宛如魔法;对于那些常年与编译器和堆栈跟踪搏斗的人来说,这同样令人由衷惊叹。
原型可以在你的笔记本电脑上运行,却会在高负载下崩溃。它没有任何错误处理。你发现它可能正在泄露你的 API token。数据模型用来演示时看似合理,可一旦加入第二个用户,整个设计就开始分崩离析。身份认证靠一堆想当然的假设勉强维系。你心里始终有个挥之不去的疑问:这一切真的安全吗?当你准备部署时,才突然发现,“它能运行”和“它已经准备好”之间,横亘着一道鸿沟。
软件工程师一直都能很快把某个东西运行起来。真正耗费时间的是其他所有事情:设计能够经受规模扩张考验的系统;处理那些用户本不该遇到、却又注定会遇到的情况;内建可观测性,以便在系统出问题时及时发现;慎重决定数据架构,让三年后的自己少一些后悔。这些事情都没有改变。AI 极大地加速了通往第一个可运行版本的过程,却没有缩短从第一个可运行版本到生产级产品之间的距离。
之所以会产生误解,是因为开发旅程早期阶段的反馈循环变得极快,而且极具满足感。你提出要求,得到结果,并且立刻看到效果。这个循环确实令人兴奋,也让人误以为软件开发的其余部分同样可以被大幅压缩。但事实并非如此。构建软件的难题,从来就不主要是如何写出符合语法的代码,而在于判断:该构建什么、该如何组织、哪些事情应该推迟,以及什么时候应该说“不”。正是这种判断力,让一个 vibe-coder 成长为雕塑家和匠人;也正是它,区分了原型和生产级系统。
不出所料,AI 生成代码的低门槛吸引了大量新人进入这个行业,他们开始质疑:学习计算机科学是否仍然有意义?既然只需描述需求就能得到一个可以运行的应用,为什么还要花费数年时间学习算法、数据结构、操作系统和理论知识?
计算机科学教育的价值,从来都不只是让你拥有编写代码的能力。它真正的价值,在于帮助你建立一套理解系统如何运行、如何失效以及为何失效的心智模型。正是这套模型,让你看到 AI 生成的代码时,能够意识到它写出的查询会对一张拥有五千万行数据的表执行全表扫描;能够发现它提出的缓存策略会在并发负载下引发竞态条件;也能够判断,它建议的架构虽然解决了你描述的问题,却会让下一个问题变得难上许多。
如果没有这样的基础,你就只能完全依赖模型的判断。而模型并不具备判断力。它所做的是模式匹配,并且急于生成它认为符合你意图的代码。它会信心十足地生成那些看起来正确、符合惯例,却会在生产环境中出错的代码。如果你不知道该关注什么,这些故障可能需要数天才能诊断清楚。
可以说,现在恰恰是历史上学习计算机科学最好的时代,因为理解与产出之间的鸿沟已经消失。一个真正理解分布式系统如何运作的学生,如今只需十年前所需时间的一小部分,就能构建出一个分布式系统。
市场对这样一类工程师的需求确实正在下降:他们只会机械地编写代码,只能把需求逐行翻译成具体实现。这部分工作正在被自动化。
我们正在见证的,是生产力分布低端的压缩,以及顶尖人才能力上限的扩展。一位经验丰富的工程师借助现代 AI 工具,能够以五年前无法想象的速度推进工作。这并不是因为难题已经消失,而是因为那些曾经消耗大量时间和注意力的机械性工作,如今大多已经有人代劳。一天中因此有了更多时间,可以投入到那些真正需要专业能力的工作上。
未来会被甩在后面的,并不是那些缺少 AI 技能的工程师,而是那些用 AI 取代理解的人。他们一路 vibe-code,构建出自己根本无法推理的系统,随后发现:出了问题不知道怎么修,业务增长后不知道怎么扩展,甚至无法向需要维护系统的人解释自己究竟构建了什么。
这场转变要求的,并不是采用一套新工具,而是在扎根基本原理的同时,进入更高的抽象层次开展工作。这样的组合确实强大,也确实罕见。
未来几年,能够超越同行的工程师,会把 AI 视为深厚知识的力量倍增器,而不是知识的替代品。他们理解自己要求模型生成的究竟是什么;会像审查初级工程师提交的 pull request 一样,以同样严格的眼光审查生成的代码;他们带入对话的不只是功能描述,还有架构层面的思考;他们也知道,什么时候应该质疑并驳回模型给出的建议。
这仍然是过去的那套技能,只不过被应用到了新的语境中,并由此获得了显著更高的杠杆效应。
原型是最容易的部分。现在的不同之处在于,所有人都能清楚看到这一点。原型之后的工作依然困难,依然需要真正的工程判断力,也依然是区分两类构建者的分界线:一类交付可靠的软件,另一类只交付演示品。
先学习基本原理,再学习新工具。顺序不能颠倒。