最近有个很有意思的现象:身边完全不写代码的朋友,和天天写代码的开发者,几乎在同一时间开始跟我说同一件事——“我现在写东西全靠AI聊天”。运营同事用对话做出一个排班工具,后端老同事让AI先把接口重构一版他再来收尾。两个人都在做Vibe Coding,但做的事情、看到的东西、踩的坑,完全是两个世界。
这个现象本身就值得聊。Vibe Coding的“两条路径”——一条属于没有编程背景的普通人,一条属于全栈开发者——并不是同一件事的两个阶段,而是两种截然不同的认知模式。普通人把Vibe Coding当作“把想法变成工具”的捷径,开发者把Vibe Coding当作“把重复劳动外包出去”的杠杆。很多人争论哪条路是对的,但在我看来,只有先把两条路的底层逻辑拆清楚,你才知道自己为什么用不好它,也才知道该往哪个方向精进。
1. “跟着感觉写代码”到底变了什么——先把这个新协作方式讲透
Vibe Coding这个词,字面意思是“跟着氛围写代码”,翻译得再直白点就是“凭感觉写代码”。它描述的是一种新的编程协作方式:你不再逐行敲键盘,也不再死盯语法和类型,而是用自然语言把你的意图描述给AI,让AI直接产出代码,然后你在AI产出的基础上继续对话、修正、迭代。
1.1 它不是“AI写代码”,而是“意图到产品的直接映射”
以前我们写代码,走的是“想法 → 设计 → 编码 → 调试 → 交付”这条线性链路,每一环都需要人亲自动手。Vibe Coding把中间过程折叠了:你跟AI说“做一个待办清单,支持添加、勾选已完成、删除,数据存本地浏览器”,它直接给你一个能打开的HTML页面。你甚至不需要知道“数据存本地浏览器”在技术上叫localStorage,也不需要知道“添加”背后绑定了一个click事件。
这个变化为什么重要?因为它把“实现细节”从人身上剥离了下来。过去“会不会编程”是一道硬门槛,现在这道门槛在AI面前消失了一半——表达意图的门槛没有了,但验证结果的意识还没有跟上。我见过很多初次接触Vibe Coding的人,第一反应都是“这也太神奇了”,第二反应通常是“如果它输出不对怎么办”。这个“怎么办”的焦虑,恰恰是两条路径分化的起点。
1.2 底层能力的三次跃迁,让它从玩具变成生产力
Vibe Coding不是一夜之间出现的。早几年的AI代码助手只能做自动补全,像是给你一个“高级版输入法”;后来进化到能根据注释生成单函数,像是“听写助理”;直到上下文窗口大幅扩展、模型能够同时理解整个项目的多个文件时,它才真正具备了“把散装需求拼装成完整功能”的能力。
这里有个容易被忽略的技术前提:长上下文能力。以前你让AI写一个文件里的逻辑,它闭着眼睛写没问题;现在你要它改一个微服务里的几个模块,还要求它保持一致的数据流,它需要同时“记住”十几个文件的内容。上下文窗口越大,它能hold住的“Vibe”就越大。所以你说“让AI做一个电商网站”,和你说“帮我把这个电商网站的用户模块重构一下”,技术难度完全不同,后者才是开发者会真正用它的场景,而前者更多是普通人的玩具。
1.3 “说人话”就能写程序的本质:交互范式变了,不是编程消失了
有一个常见的误解:Vibe Coding流行了,是不是就不需要学编程了?我的观点正好相反——Vibe Coding把编程的“体力活”压缩了,但把“脑力活”放大了。以前你要花功夫学语法、调样式、解决报错,这些确实被AI代劳了;但定义问题、拆解流程、验证结果、修正偏差,这些环环相扣的思考过程,一个都没少。
就好比以前你要开手动挡汽车,需要精通离合、油门、换挡的配合;现在开自动挡,你只管方向盘、刹车和路线判断。你能说“开车”这个技能消失了吗?不能,只是“开车”的重心从机械操作转向了决策判断。Vibe Coding也一样,它改变的只是交互层——你从写代码变成了“跟AI对话”,从看报错变成了“看AI运行的结果”。你用自然语言描述需求的样子,本质上是在做“简化的需求分析”。
2. 路径一:没有编程背景的人,如何把想法“聊”成能用的工具
先聊普通人这条路径。我身边最早把Vibe Coding用起来的人,都不是程序员:做运营的排班表、做财务的对账脚本、当老师的成绩分析工具,还有自己做小生意的老板想弄个简单的客户登记表。他们的共同特征,是把Vibe Coding当成“会说话的Excel宏”来用——不知道背后怎么实现的,只想让结果满足需求。
2.1 普通人的典型入手路径:从“具体痛点”出发,而不是从“学编程”出发
普通人能入门Vibe Coding,最大的优势是没有“必须理解代码”的心理负担。他们的路径通常长这样:遇到一个重复性工作 → 觉得太烦 → 打开AI工具 → 用大白话描述自己的需求 → 复制AI生成的代码 → 找个地方运行 → 看到结果符合预期 → 搞定。
看起来简单,但这里面有个容易被忽略的关键节点:“找个地方运行”。很多普通人的第一次崩溃就发生在这里——AI给了代码,但代码是给人看的,不是给“双击就能运行”的人看的。HTML文件还好,双击就能打开;脚本语言呢?需要解释器;命令行工具呢?需要终端环境。
所以我给普通人的第一个建议是:从“打开就能看到结果”的东西开始。比如一个HTML页面、一个网页小工具,这是普通人能最快完成“需求→验证”闭环的第一站。想做一个简易计算器?让AI写一个HTML文件,双击打开,输入数字,看结果。这个闭环一旦跑通,你会迅速建立对Vibe Coding的信心。
2.2 普通人最容易翻车的三个瞬间
作为新手,翻车不可怕,可怕的是翻在同一个地方三次还不明白为什么。我观察下来,普通人最容易翻车的瞬间有三个:
第一个瞬间是“需求描述得太模糊”。你说“帮我搞一个管理客户的东西”,AI大概率会给你一个任意的实现,而这个实现不一定契合你的真实流程。解决方案是加约束——客人在哪里登记、登记后要不要回访提醒、要不要统计消费次数。约束越多,AI生成的东西越靠近“你能用”而不是“它觉得能陈列”。
第二个瞬间是“运行环境根本不知道是什么”。AI说“你在终端里输入python xxx.py”,你连终端都找不到,更别提Python环境。这不是你的问题,是工具还没有为普通人做好封装。我的处理方式是先避开所有需要命令行操作的方案,只做能双击运行的网页方案,或者直接选用那些自带运行按钮的在线工具和开发环境。
第三个瞬间是“AI给了答案,但答案错了,你也不知道怎么改”。AI改了一版、两版、三版,结果依然不对,反复几次之后人基本崩溃。这里有个很关键的经验:不要让它“继续改”,也不要让它“重写”,而是把“现象+预期”用具体的话告诉它。比如“我输入了100,它显示了100.000009,我想要显示100,保留一位小数就行”,这种描述远比“帮我修一下这个bug”有效得多。因为AI不怕你描述得啰嗦,就怕你描述得抽象。
2.3 普通人应该遵守的“边界感”:知道什么是自己不该碰的
普通人用Vibe Coding最需要建立的一条边界感,是“不要把敏感数据交给AI”。你会很自然地把公司报表、客户名单、工资表贴进对话框让它处理,但这不是个好习惯。优秀的做法是:先技术处理,把真实数据换成一模一样的伪造数据来试炼和测试确认流程正确,确认一切正常之后,再把最终方案套用到真实数据上操作。总之,尽量不要把完整原始数据原样发送给语言模型进行处理。
另一条边界感是:不要因为AI能生成“看起来很专业”的代码,就把自己想象成全栈工程师。普通人真正的核心竞争力,是对自己业务的理解,不是对代码的理解。你做的排班工具、成绩统计脚本,之所以能落地,是因为你懂排班的约束、懂成绩的权重,AI只是把你脑子里的逻辑“翻译”成了程序逻辑。守住这个定位,你会用得很舒服;一旦越界,想用AI去做超出你理解能力的项目,大概率得到一个“看起来能用、实际长满暗坑”的空中楼阁。
3. 路径二:全栈开发者眼里的Vibe Coding——不是替代打字,是替代“重复劳动”
当普通人还在用AI“从零做一个东西”的时候,开发者的用法已经进化到另一个维度。对全栈开发者来说,Vibe Coding不是“不会写所以让AI写”,而是“我会写但让AI帮我加速写”。这是两条路径中最本质的一层区别:普通人把AI当作“自动生成器”,开发者把AI当作“结对编程的实习生”。
3.1 开发者的真实工作流:让AI先跑第一版,人工收尾改质量
我自己现在的工作流大致是这样的:拿到一个新需求,先不急着动手写,而是把背景、数据流、接口约束一股脑丢给AI,让它给出一个“能跑的骨架”。这个骨架可能不完美,甚至有些地方结构很糟糕,但它把最耗时的那部分“从零搭建”的工作替代掉了。接下来我的精力放在三件事上:改结构、补边界、加约束。
举个例子,重构一个老项目的订单查询接口时,我会让AI先按现有的数据库结构写一个查询逻辑的第一版。它写出来之后能跑,但存在隐含问题:并发情况下事务没处理妥当。传统写法中,可能等到联调时才会发现这个问题;在我现在的流程里,因为省下了搭骨架的时间,我反而多出了余力去仔细审查它的实现细节,把并发的隐患直接在代码评审阶段就规避掉。
这背后其实是时间分配的转变:以前写代码,80%时间在“把想法翻译成代码”,20%时间在“审查和完善”;现在这个比例几乎反过来——AI负责翻译,我负责审查。审查是一件很费心智的事情,但它恰恰是开发者不可替代的价值。
3.2 开发者独有的“三层质检体系”和Vibe Coding的适配关系
很多人问:怎么保证AI写的代码质量?我的答案就一句话——你平时怎么保证自己代码质量的,就怎么保证AI代码质量,只是顺序换一下。在我这是三层:单元测试先行、编译与类型检查、人肉代码审查。
这三层落在Vibe Coding的工作流里有一个很大的好处:AI生成的代码如果能通过前两层,它至少是一个“不破坏现有系统”的改动;而人肉审查负责的是“它是否真的符合业务预期”。普通人不做这三层,是因为他们没有这种工程素养,所以只能依赖“看起来对不对”;开发者依然绕着这三层转,因为AI再强,也不可能替代你对自己业务域的理解。
这里要特别强调“先写测试再让AI实现”这个反向用法。以前我们通常是“写完功能再补测试”,现在我会在让AI动手之前,先把测试用例写好——哪怕只是接口的输入输出样例也好——然后对AI说“实现这个函数,让它通过这些测试”。这样AI写的不是“你认为对的东西”,而是“被测试钉死的东西”,这种思路可以极大压缩来回调试的轮次。
3.3 开发者被忽视的护城河:不是敲代码的速度,而是“发现问题”的速度
有一个反直觉的现象:Vibe Coding越普及,普通人和开发者之间的差距不是越小,反而越大。原因在于,开发者的核心能力从来不是“打字速度”,而是“发现问题优先级”的判断力。AI能生成代码,但它不知道这段代码在你的业务上下文里是不是埋了一颗雷。开发者可以一眼看出“这个字段在另一个模块里已经被废弃了”“这个接口在高峰期会有一万并发量”,普通人不具备这种上下文拦截能力,所以他们的“翻车率”更高。
所以,如果你本身是开发者,完全不必要担心Vibe Coding会“抢饭碗”。你真正要担心的是另一件事:长期依赖AI生成代码,你的敏感度会钝化。我见过一些开发者,让AI修bug,改了三次没改对,自己完全没有看出来AI一直在绕弯子——这是最危险的“舒适区陷阱”。解决方案也很简单:重要代码,先自己写一遍再让AI优化,或者隔着几天回头重新审视一遍,防止自己对AI的产出失去“挑剔感”。
4. 同一个任务,两条路径的人看到的东西完全不同
为了讲清两条路径的分叉,我举一个非常小的例子:让AI“做一个待办清单,支持添加事项、勾选已完成、删除,数据用浏览器本地存储”。普通人和开发者的反应,通常完全不同。
4.1 一个具体Demo的两张“答卷”
普通人打开AI给的文件,看到的是一个可以点击、可以添加、刷新后数据还在的网页,他们的评价通常是“太棒了,真的可以用了”。对他们而言,这个页面已经完整覆盖了需求里能感知到的功能,已经可以带到日常事务里真正用起来了。
开发者的第一反应则完全不同:先看代码结构——状态管理是不是写得很脆?再看交互逻辑——勾选后样式更新是直接操作DOM还是走框架状态?三看数据层——localStorage有没有做异常处理?多标签页打开会不会同步?最后大概率还会嘀咕一句“这些东西没写测试,重构起来会想哭”。
这不是谁瞧不起谁,而是“关注粒度”完全不同。普通人的判断尺度是“输入了什么,输出了什么,符不符合我的使用习惯”;开发者的判断尺度是“这段代码在什么情况下会坏,坏了之后好不好修,修改之后会不会牵连别的地方”。这两种关注粒度,从第一次看到AI输出的时候就已经分道扬镳了。
4.2 分叉点背后的三个底层差异
第一个差异是“目标不同”:普通人要的是“解决今天的问题”,结果能跑、看得懂、接受得了,就结束了;开发者要的是“解决可持续维护的问题”,这个代码三个月之后还要能改,别人接手还要能看懂。
第二个差异是“抽象能力不同”:普通人描述需求时,停留在“做什么”层(添加事项、删除事项、勾选完成);开发者描述需求时,会自动拆解出“怎么做”(数据模型、状态映射、组件划分、副作用管理)。同一个需求,普通人是“点菜的食客”,开发者是“拆解工序的厨师长”。
第三个差异是“容错偏好不同”:普通人可以接受“99%的时间能用就行”,开发者必须在乎“那1%的极端情况怎么处理”。这个偏好没有对错,但它直接决定了同样用Vibe Coding,两条路径的人产出的代码基础质量会有明显差异。
我一直觉得,这个分叉点是Vibe Coding时代最值得被反复讨论的一个地方。因为工具在变,但人的认知结构没有变——普通人天然关注“行为”,开发者天然关注“结构”。两种关注并无高下之分,但决定了你该选择哪一类工具、哪一套方法论。
5. 两条路径都会踩的坑,和处理它们的通用方法
虽然两条路径差异很大,但它们踩的坑有不少是重叠的。只是普通人踩了坑容易放弃,开发者踩了坑容易嘴硬不承认,本质上都是同一个事儿:没处理好“人与AI协作的关系边界”。
5.1 语境丢失:AI“忘事”了怎么办
对话一长,AI就会把前面的内容“忘掉”,这是大模型的固有毛病。你前面强调过“只用单机版、不需要服务器”,提到第20轮的时候它突然给出一段服务器代码,你还得回头纠正,这类情况能把人逼疯。
我的处理办法是“主动制造记忆锚点”:每个会话只聚焦一个小任务,而不是在一场对话里叠加十几个需求;当需要延续之前的工作时,把关键约束重贴一遍,然后把新需求单独描述一遍。别嫌啰嗦,这是在帮你自己的记忆减负。对于开发者来说还可以更进一步:把项目的整体说明、目录结构、技术栈要求整理成一份“项目背景说明文档”,在每一轮对话开头粘一遍,AI的表现会稳定很多。
5.2 过度自信:AI永远说“可以”,但运行结果不对劲
这是最让人崩溃的情况:AI给你承诺“这段配置加进去就可以了”,结果你一跑就报错。它不会告诉你它不确定,它只会用很有条理、很有自信的语气告诉你“应该是这样”。这是语言模型的天性——它生成的是“概率上合理的文字序列”,而不是“可被证明正确的程序”,这两者之间天然存在误差。
应对方法也很朴素:要求AI“小步输出、运行验证”。不要问“这个能不能实现”,要问“请你写出能给用户散打记忆的最小运行示例,至少不报错,我再一步步加功能”。对于开发者,可以用“单元测试+编译检查”来兜底,AI说什么都别急着信,让代码自己说话。
5.3 环境和依赖:AI的代码“在我电脑上跑不起来”
AI生成的代码,往往默认“你的环境里什么都有”——用到了某个框架,但你本地没装;用到了最新语法,但你的版本不够;用到了某个第三方库,但你根本不知道它会被自动装在哪。这是Vibe Coding体验中发生频率很高的问题,而且普通人比开发者更容易被它压垮。
针对普通人的建议是:尽量选那些“开箱即用”的运行方式,比如浏览器里直接打开、在线的代码编写和执行平台、或者由工具方直接生成部署链接的一键交付方案。针对开发者的建议是:要求AI在生成代码的同时,给出“改动清单和环境依赖说明”。你把它当成一个提交代码时写Commit说明的实习生——提交信息不写清楚,你就打回重做,时间久了它就会养成规范化输出的习惯。
5.4 数据安全:两类人都容易忽视的红线
这个问题必须先说清楚:不要把公司敏感数据、客户资料、个人密码原样丢进AI对话框,无论你是普通人还是开发者。普通人处理个人信息要打码处理和脱敏,开发者处理代码要确认代码库没有密钥泄露,这必须形成肌肉记忆。即使你用的是所谓“企业的内部部署版本”,也不代表你可以放松对数据的敬畏和对输入内容的警惕。这条红线,越早建立越好。
6. 趋势判断:“看起来能用”和“实际上能跑”终将分化成两类工具
聊到现在,其实可以下一个阶段性结论:Vibe Coding当下的工具生态,正在顺着两条路径逐渐分化。普通人需要的,是一个“把代码技术封存起来、只保留对话和结果验证”的极致简化产品;开发者需要的,是一个“充分开放代码细节、支持精细控制、能够插入测试与CI流程”的专业工作台。两者对AI能力的需求,也会越来越不一样。
6.1 对普通人:工具会把“运行环境”彻底藏起来
普通人的Vibe Coding体验目前在运行环节会受挫,但这个窗口期会很快过去。现在越来越多的产品已经在做“对话 → 生成应用 → 一键部署”的输出链路,你不需要知道Web服务器是什么,也不需要知道域名怎么解析,AI生成完直接给你一个链接,打开即用。那时普通人的Vibe Coding才是真正完整的。
我特别看好这类产品的一个细节:“验证闭环”。如果说生成是AI能力的释放,那么验证就是普通人建立信任的关键。一个按钮“试运行”,一个清晰的“输入样例/输出结果”对照框,这些设计都会帮助普通用户毫无障碍地确认“AI做出来的东西确实是我要的”。这条路走得越深,普通人与开发者之间的“操作差异”就会越小。
6.2 对开发者:工具会变成“可介入的代码引擎”
开发者的需求恰恰相反——他们害怕封闭的黑盒。给开发者用的Vibe Coding工具,未来会越来越像一个“时刻准备被人工接管”的代码引擎:AI生成的每一行代码都要可追溯、可编辑、可回滚;“让AI改这块逻辑”和“我自己改这块逻辑”两种操作之间,必须随时无缝切换。像代码审查、差异对比、测试运行这些工程化流程,也会被更深地嵌入到Vibe Coding的对话流里。
这个趋势背后其实折射了一个更本质的判断:Vibe Coding不会消灭编程,也不会让开发者失业。它更像是一次“劳动分工的重新划分”——AI接手实现层,人类聚焦判断层。普通人获得了“表达即创造”的能力,开发者获得了“从重复劳动里抽身”的杠杆。两条路径,最终都在向同一个方向收敛:让你的“想法”更快变成“现实”,同时让你的“判断”变得更加值钱。
7. 写在最后:先练好“判断力”,再考虑效率这件事
用Vibe Coding这段时间,最大的变化不是写代码的“手感”变了,而是整个工作习惯里“思考的重心”变了。我现在面对一个需求,第一反应不再是“这个怎么写”,而是“这个需求到底要解决什么问题、边界在哪里、怎么验证它做对了”。这个转变不可逆,而且我认为是好事。
如果你是一个完全没有编程背景的人,我的建议是:别急着让AI帮你做那些一听就很大的系统,先让它帮你做一个你完全懂的、跟工作和生活有关的小工具,比如一个排班表、一个记账本、一个分享素材收集器。然后在反复对话里,慢慢找到“描述需求”“验证结果”的感觉。这个感觉,比代码本身更值钱。
如果你是一个全栈开发者,我最大的建议只有一句话:别让AI替你思考,只能让它替你动手。拿到AI产出的第一版代码,多看几眼,多问几个“如果”和“为什么”。这几眼,就是你比AI更有价值的原因。Vibe Coding的两条路径,一条通往“人人都是创造者”的自由,一条通往“专业者更专业”的深度,它们并不矛盾,只是需要你选对自己的那条路,然后老老实实地把“判断力”练扎实。