过去几十年,软件工程师这个职业有一个很自然的壁垒:你需要学习一种人类设计、机器执行的语言——编程语言。
C、Java、Python、JavaScript——这些语言各有各的语法规则、运行时环境、框架生态。你需要在脑子里同时记住"我想让机器做什么"和"我用什么语法来表达",才能在屏幕上写出能运行的东西。
这个门槛存在了太久,以至于我们把它当成了天经地义的事。就像二十年前,我们觉得"会用电脑"是一项专业技能——那时候招聘网站上,"熟练使用 Office"可以写进简历作为优势。但现在呢?会用电脑是基本素养,没人会在简历里写这个。
编程语言正在经历同样的命运。
但仔细想想,这件事并不自然。你最自然的表达方式,是你的语言——中文、英文,或者你习惯的自然语言。你脑子里有一个想法,用嘴说出来,对方听懂了,这才是最直接的沟通路径。
编程语言本质上是一个中间层:你得先把自己的自然语言翻译成编程语言,再让机器去理解。Vibe Coding 要做的,就是逐渐去掉这个中间层。
让我们把这个"中间层"拆开来看。传统的编程流程中,翻译至少要经历三层:
第一层:想法 → 自然语言描述。 你在脑子里有了一个产品的雏形,然后试着用文字描述它。"我想做一个能帮我记录每日支出和收入、按月分类统计的记账应用。"这已经是一次翻译了——你脑子里的画面变成了文字。
第二层:自然语言描述 → 技术规格。 你(或产品经理、技术负责人)需要把"按月分类统计"这个模糊需求翻译成精确的技术规格:用什么数据结构存储?分类是固定的还是用户自定义的?统计结果怎么展示?数据库表怎么设计?这些问题的答案,用户的一句话里完全没有。
第三层:技术规格 → 代码。 你把技术规格再翻译成具体的编程语言、框架、API 调用。这一层最痛苦——你需要记住语法、了解框架、处理各种技术细节和边界情况。
每一层翻译,都是一次信息损耗。你在第二层漏掉了一个边界条件,到第三层写完代码跑起来才发现有 bug。你在第三层写的时候忘记了一个语法细节,编译就报错了。这就是为什么传统开发如此耗时——不是"写代码"本身慢,而是三层翻译的信息损耗太高,需要反复的测试、调试、修改才能补回来。
Vibe Coding 的目标,就是把这三层翻译压缩到接近一层——你自然语言说出来,AI 帮你填充下面两层。
我在前面用过一个类比,这里展开来说。
活字印刷术发明之前,书籍的传播靠手工抄写,速度极慢,价格极贵,普通人接触不到。印刷术出现后,书籍可以大规模复制——但这并不意味着每个人都能写书。因为写书这件事本身仍然需要具备"写作能力"。
但印刷术让一件事变得不一样了:写作这个行为的门槛降低了。你不需要认识印刷厂的老板,不需要付高昂的制版费,你只需要写出一份手稿,印刷机就会帮你完成剩下的工作。越来越多的人开始写东西——不是因为他们突然都变成了莎士比亚,而是因为"写出来 → 给别人看"这条路变短了。
与此同时,印刷术还催生了另一个变化:写作这件事本身被分解了。 你可以专注于"写什么"——内容、观点、情感——而把"印什么"交给印刷厂。这两件事分开了。
软件行业的变迁,在走一条很像的路。
过去,要做一个软件,你需要:学编程语言 → 学框架 → 搭开发环境 → 处理编译/部署 → 维护服务器。每一步都需要专业技能。这就像是你不但要写书,还要自己造纸、排版、装订、找渠道分销。
Vibe Coding 削减的不是"创造软件"这件事本身,而是创造软件过程中的技术摩擦。就像印刷术让"写作"和"制作书籍"分离了一样,Vibe Coding 在让"想要什么"和"怎么实现"分离。
顺着这个类比往下想,有一个重要的推论。
印刷术降低了写书的技术门槛,但它没有降低写一本好书的门槛。后者需要的是判断力、审美、对读者需求的理解——这些不会因为技术进步就自动获得。
同样的道理放在 Vibe Coding 中:
AI 可以帮你写出能运行的代码。这是技术层面的"行不行"问题,AI 已经做得很好了。但判断"应该做什么"的能力,是 AI 还做不好的,也是你作为创造者的核心价值。
我给你几个具体的场景,你感受一下"判断力"是什么意思:
所以,不要把 Vibe Coding 理解成"不用学编程了"。应该理解为:你把"怎么写"交给了 AI,把"写什么"和"为什么写"留给了自己。
这其实是更大的责任,而不是更少的责任。因为它意味着,你不再需要花 80% 的时间在"翻译"上,而是把这 80% 的时间花在"判断"上。你有更多精力去想:用户真正需要什么?这个功能的设计是否合理?这块业务逻辑是否正确?代码跑起来了,但它在边界情况下会崩溃吗?
这些问题不会因为你用自然语言编程就自动有答案。
如果你学过编程,可能会注意到一个有趣的现象:在 Vibe Coding 的语境下,用什么编程语言变得不重要了。
你做 Web 应用,AI 用的是 JavaScript/TypeScript。你做后端,AI 选了 Python 还是 Go,取决于你的需求。你做数据处理,AI 可能给你写一段 SQL 脚本。你甚至不需要懂这些语言的具体细节,AI 会边写边解释。
换言之,编程语言正在从"你必须掌握的工具"变成"AI 替你掌握的技能"。对你自己来说,你只需要知道"我想让应用帮我做这件事"就够了。
这种变化的意义,比大多数人以为的更大。在过去,编程语言的选择决定了你能做什么、怎么做、和谁一起做。你用 Python 的团队和用 Java 的团队之间有一道天然的"方言壁垒"——不是他们不能沟通,而是工具链、库生态、思维模式都不一样。但在 Vibe Coding 的世界里,这道壁垒消失了。AI 替你处理了跨语言的翻译成本。
这个趋势的一个佐证是:GitHub Copilot、Claude Code 这类工具的用户中,相当一部分是非专业程序员——设计师、产品经理、数据分析师、创业者。他们不是不会写代码,而是不想在"写出能运行的东西"这件事上花大量精力。他们脑子里有产品、有设计、有业务逻辑,缺的只是"如何把想法变成软件"的翻译能力。
Vibe Coding 做的事情,就是把这个翻译成本降到几乎为零。
如果你觉得"编程"离你太远,我们换一个更熟悉的领域:摄影。
在胶片时代,拍照是一项专业技能。你需要懂光圈、快门、ISO——这三者之间的数学关系、互相制约的逻辑。你还需要了解不同胶片的感光度、宽容度,以及如何在暗房里冲洗。想拍出一张曝光准确的夜景照片,可能需要几年的练习。
到了数字时代,自动模式出现了。你不需要懂光圈快门 ISO 的关系——相机自动帮你算了。再到手机摄影时代,AI 加持的夜景模式、人像模式、HDR——你甚至不需要知道这些技术名词。你只需要对着想拍的东西按下快门,剩下的交给算法。
这个变化带来了什么?会拍照的人没有消失,而是分层了。 专业摄影师仍然存在——他们用 RAW 格式拍摄、用 Lightroom 精细调色、布光构图都有几十年的功力。但与此同时,地球上每天被拍下的照片数量增长了几个数量级。以前只有"摄影师"才能"记录一个瞬间",现在每个人都能做到。
编程行业正在经历完全一样的轨迹。专业软件工程师不会消失——他们在优化性能、设计架构、处理极端边界情况上的能力,Vibe Coder 短期内追不上。但"写一段能跑的代码"这件事,正在从摄影的"手动模式"走向"自动模式"。
不管你现在是零基础、传统开发者、还是技术转型者,这个趋势对你的影响是一样的:
"会写代码"正在从一项专业技能变成一项基础素养。 就像今天大多数知识工作者都会用 Excel 做数据分析、会用搜索获取信息、会拍照记录生活一样,未来的知识工作者大概率都会"用 AI 来构建软件"。
这不是说程序员这个职业会消失。专业程序员和 Vibe Coder 的区别,就像赛车手和普通司机的区别——都在开车,但深度、控制力、对极限情况的理解完全不同。也像专业摄影师和普通人的区别——都在拍照,但前者知道如何用光、如何构图、如何在极端条件下出片。
但当"开车"本身变成一件人人都会的事,能去的地方就变多了。你不再需要一个专职司机才能出门。当"拍照"本身变成一件人人都会的事,能被记录下来的瞬间就变多了。当"写代码"本身变成一件人人都会的事,能被创造出来的软件就变多了。
这就是"软件正在成为第二语言"的真正含义:它是一种表达方式,而不只是一项职业技能。 你用嘴说话来表达想法,用笔写字来记录观点,用 Excel 来分析数据——未来,你用"对话 AI 生成软件"来表达你想要的工具。它和说话、写作、做表格一样,就是一种你可以用来"表达想要什么"的方式。
你不需要成为语言学家才能说话,你不需要成为作家才能写字,你不需要成为程序员才能构建软件。这就是"第二语言"这句话的意思。
问 AI:
"假设我是一个完全不懂编程的设计师,但我有一个产品的想法。用最简单的语言告诉我,在今天,我可以怎样用这个想法直接做出一个可以运行的软件原型?不用考虑代码的细节,只告诉我路径。"
读一读它的回答。如果你觉得它说的"路径"仍然太技术,继续追问让它简化。这本身就是 Vibe Coding 的练习——把模糊的意图,通过对话迭代,变成一个可执行的计划。