「程序员不会消失,但会变成另一种程序员。」
开场:一个不寻常的类比
小维最近开始用 Cursor 写代码,一开始很兴奋——AI 帮他生成了大量代码,效率确实高了很多。
但几周之后,他发现了一个奇怪的现象:他开始变得焦虑。
"我是不是已经不算真正的程序员了?"他问自己。"这些代码是 AI 写的,我只是在确认它对不对。我还有价值吗?"
他把这个问题发到技术论坛,得到了一个出人意料的回答:
"你现在的角色更像一个建筑师,而不是砖瓦工。建筑师有价值吗?当然。但建筑师的价值不在于搬砖,而在于设计整栋楼的结构。"
这个类比,精确地描述了 Vibe Coding 时代程序员角色的本质变化。
全局视角:本讲知识点定位
graph LR
A["第01讲\nVibe Coding起源"] --> B["第02讲\nAI编程进化史"]
B --> C["第03讲\n(本讲)\nVibe Coding本质"]
C --> D["第04讲\n适用边界"]
style C fill:#e8f4e8,stroke:#52c41a,stroke-width:2px
这一讲是本模块最核心的一讲。
理解了 Vibe Coding 的本质,你才能在正确的认知基础上学习后面所有的工具和方法。
核心知识点一:从"工匠模式"到"建筑师模式"的角色转变
传统编程:工匠模式
在传统的开发模式里,程序员的价值体现在"实现"上:
graph LR
A[需求] --> B[程序员把需求\n翻译成技术方案]
B --> C[程序员把技术方案\n翻译成代码]
C --> D[程序员调试代码\n直到它能运行]
D --> E[代码上线]
style B fill:#fff7e6,stroke:#fa8c16
style C fill:#fff7e6,stroke:#fa8c16
style D fill:#fff7e6,stroke:#fa8c16
在这个模式里,程序员的核心价值在中间三个环节:翻译→翻译→调试。
掌握越多编程语言、框架、算法,能翻译的内容就越多,能解决的问题就越复杂,价值就越高。
工匠模式的价值等式:
程序员价值 ≈ 能写的代码类型 × 代码质量
Vibe Coding 时代:建筑师模式
AI 出现后,"翻译"工作被大量接管:
graph LR
A[需求] --> B[你定义技术方案\n和架构]
B --> C[你把任务拆解\n成AI能执行的单元]
C --> D[AI 生成代码\n执行任务]
D --> E[你验证结果\n判断是否符合意图]
E --> F{符合意图?}
F -->|是| G[继续下一步]
F -->|否| C
style B fill:#e8f4e8,stroke:#52c41a
style C fill:#e8f4e8,stroke:#52c41a
style E fill:#e8f4e8,stroke:#52c41a
style D fill:#f0f7ff,stroke:#4a9eff
在这个模式里,你的核心价值体现在三个新的地方:
- 定义:定义要做什么,设计系统架构
- 拆解:把大任务拆成 AI 能理解的小任务
- 验证:判断 AI 的结果是否符合你的意图
建筑师模式的价值等式:
程序员价值 ≈ 定义问题的准确性 × 拆解任务的颗粒度 × 判断结果的判断力
核心知识点二:Vibe Coding 的真正定义
很多人把 Vibe Coding 理解成"让 AI 帮你写代码",但这个理解太浅了。
准确的定义是:
Vibe Coding 是一种以意图驱动的软件开发方式,开发者通过自然语言表达开发意图,由 AI 负责将意图转化为可执行代码,开发者专注于目标设定、任务拆解和结果验证,而不是代码实现。
注意这个定义里的三个关键词:
| 关键词 | 传统编程中对应的工作 | Vibe Coding 中对应的工作 |
|---|---|---|
| 目标设定 | 理解需求,也要自己实现 | 只做理解需求,不实现 |
| 任务拆解 | 脑子里想一想,手写代码 | 明确拆解,写给 AI |
| 结果验证 | 调试代码,确认跑通 | 验证结果是否符合意图 |
这三件事,都是高价值的脑力工作,只是方向变了。
核心知识点三:Vibe Coding 的三个层次
Vibe Coding 不是一个单一的工作模式,它有三个层次:
graph TD
A["第一层\n工具层\n用 AI 做代码补全和生成"] --> B["第二层\n流程层\n用 AI 完成完整的开发流程"]
B --> C["第三层\n架构层\n用 AI 构建 AI 原生的系统"]
A --> A1["Copilot 级别\n单行/单函数补全"]
B --> B1["Cursor/Claude Code 级别\n功能→模块→项目级别的开发"]
C --> C1["Agentic 级别\nAI 自主执行任务链\n人只做方向把控"]
style A fill:#f6ffed,stroke:#52c41a
style B fill:#fff7e6,stroke:#fa8c16
style C fill:#fff1f0,stroke:#f5222d
大多数人目前在第一层:用 AI 补全代码,节省打字时间。
熟练的 Vibe Coder 在第二层:用 AI 完成完整的功能开发,自己做设计和验证。
高阶 Vibe Coder 在第三层:用 AI Agent 构建能自主执行任务的系统。
这门课会带你从第一层一路走到第三层。
深度拆解:为什么"规划先行"是 Vibe Coding 的第一原则
你可能在很多文章里看到过"规划先行"这个词。但为什么?
让我们用一个直观的比喻来理解。
给 AI 没有规划的指令:
就像你走进一家建材超市,对导购说:"帮我买一些建房子的东西。"
导购会一脸懵:什么类型的房子?多大的房子?什么风格?预算多少?
AI 面对模糊指令时也是一样——它会用自己的"默认假设"来填充你没说清楚的地方,而这些默认假设很可能不符合你的实际需求。
给 AI 有规划的指令:
就像你走进建材超市,拿着一张建筑图纸,上面标注了具体的用料和尺寸,对导购说:"按这张图给我准备材料。"
结果会精确得多。
具体来说,"规划"在 Vibe Coding 中意味着三份文档:
graph LR
A["PRD\n需求文档"] --> D["AI 开始写代码"]
B["技术方案\nTech Spec"] --> D
C["实施计划\nTask List"] --> D
A --> A1["你要做什么\n用户是谁\n边界条件是什么"]
B --> B1["用什么技术栈\n架构怎么设计\n哪里有坑"]
C --> C1["分几个任务\n每个任务的输入输出是什么\n依赖关系是什么"]
有了这三份文档:
- AI 知道方向(PRD)
- AI 知道路线(技术方案)
- AI 知道每一步该做什么(实施计划)
这就是 Vibe Coding 能产生高质量结果的关键。
案例解析:同一个项目,规划前后的对比
项目需求:做一个简单的 To-do List Web App
方案 A:无规划直接 Vibe Coding
你:帮我做一个 Todo List App
AI:好的,这是代码...(生成了 500 行 HTML+CSS+JS)
你:但我想要用 React
AI:好的,帮你改成 React...
你:但是还需要用户登录
AI:好的,加上登录功能...
你:数据要存在服务器上,不是本地 LocalStorage
AI:好的,我改一下...
(三天后,代码改了七八遍,各种不一致)
最终结果:代码能运行,但结构混乱,Bug 多,维护困难。
方案 B:规划先行后 Vibe Coding
第一步:花 30 分钟写 PRD(让 AI 帮你写)
功能范围:创建/编辑/删除/完成任务,用户登录注册
不包括:多用户协作、提醒通知
技术栈:React + Node.js + PostgreSQL
第二步:花 20 分钟写技术方案(让 AI 帮你写)
前端:React 18 + Tailwind CSS + React Query
后端:Express.js + JWT 鉴权
数据库:PostgreSQL + Prisma ORM
部署:Vercel(前端)+ Railway(后端)
第三步:把项目拆成 10 个独立任务
Task 1: 初始化项目(前后端目录结构)
Task 2: 数据库 Schema 设计(用户表、任务表)
Task 3: 用户注册/登录 API
Task 4: JWT 鉴权中间件
Task 5: 任务 CRUD API
Task 6: 前端登录注册页面
Task 7: 前端任务列表组件
Task 8: 前端任务增删改查功能
Task 9: 前后端接口对接
Task 10: 部署上线
执行:按顺序给 AI 执行每个任务
最终结果:代码结构清晰,Bug 少,每个任务独立完成,整体开发时间反而缩短了 40%。
实操指南:开始你的角色转变——三个思维练习
练习一:切换观察角度
今天在工作中,每当你要写一段代码,先暂停 10 秒,问自己:
"这段代码的意图是什么?我能不能用一句话说清楚这段代码要做什么?"
如果能用一句话说清楚,那这段代码就可以交给 AI。
如果说不清楚,那说明你还没想清楚自己要做什么,先想清楚再说。
练习二:写一个"意图陈述"
对于你下一个要开发的功能,在写任何代码之前,写一段"意图陈述":
我要做的是:[功能名称]
它的输入是:[什么数据进来]
它的输出是:[什么数据出去]
它需要处理的边界情况是:[哪些情况需要特殊处理]
它不需要处理的是:[范围排除]
把这个意图陈述告诉 AI,看看它生成的代码是否符合你的期望。
练习三:验证而非实现
找一段你最近写过的代码,尝试让 AI 重新实现它。
然后不要问"代码对不对",而是问:
"这段代码实现了我的意图吗?哪些地方我没说清楚,导致 AI 的实现和我想的不一样?"
这个练习会帮助你快速提升"表达意图"的能力。
易错点与避坑指南
误区一:建筑师不需要懂建筑知识
建筑师虽然不亲自搬砖,但他必须懂建筑结构、材料特性、力学原理。
同样,Vibe Coder 虽然不亲自写每一行代码,但他必须懂系统架构、代码质量、安全原则——因为他需要判断 AI 写的代码是否符合这些标准。
Vibe Coding 需要的技术深度变了,但不代表不需要技术深度。
误区二:拆解任务是没有技术含量的工作
恰恰相反。把一个复杂项目拆解成 AI 能独立完成的小任务,是极高技术含量的工作。
它需要你:
- 理解系统的依赖关系(任务顺序很重要)
- 判断任务的粒度(太大 AI 做不好,太小效率低)
- 预见潜在的集成问题
这是一种高阶的系统思维能力。
误区三:验证代码不重要,反正 AI 会修复
不对。AI 修复代码的前提是你能发现问题、描述清楚问题。
如果你无法判断 AI 生成的代码在功能上是否正确,在安全性上是否有问题,在性能上是否有瓶颈,那你就无法指挥 AI 做出高质量的代码。
验证能力,是 Vibe Coding 时代程序员的核心竞争力。
延伸思考:Vibe Coding 如何改变团队的分工
如果整个开发团队都采用 Vibe Coding 的工作方式,团队的分工结构会发生什么变化?
传统团队结构:
产品经理(定义需求)
↓
技术负责人(架构设计)
↓
高级工程师(核心模块开发)
↓
初级工程师(边缘功能开发)
↓
QA(测试)
Vibe Coding 时代的团队结构:
产品架构师(定义需求 + 系统架构 + AI 任务编排)
↓
AI 引擎(代码生成 + 单元测试 + 代码审查)
↓
验证工程师(质量验收 + 安全审计 + 性能测试)
人的数量减少了,但每个人的价值密度更高了。
本讲小结
mindmap
root((Vibe Coding本质))
角色转变
工匠模式→建筑师模式
实现者→验证者和指挥者
代码思维→意图思维
定义
意图驱动的开发方式
自然语言表达意图
AI负责代码实现
三个层次
工具层-代码补全
流程层-功能开发
架构层-Agent系统
规划先行
PRD需求文档
技术方案
任务拆解清单
新的核心能力
定义问题的准确性
拆解任务的颗粒度
判断结果的判断力
思考题
-
在你现在的工作中,有多少比例的时间花在"代码实现"上,有多少花在"思考设计"上?你理想的比例是多少?
-
"建筑师不搬砖,但必须懂建材"——对于 Vibe Coder,等价的说法是什么?你认为 Vibe Coder 必须懂的技术基础是什么?
-
如果 Vibe Coding 让每个开发者的产出提升 5 倍,公司会需要 5 倍更少的开发者,还是会开始做 5 倍更多的事情?你倾向于哪个判断,为什么?
下一讲预告
我们现在知道了 Vibe Coding 是什么。
但并不是所有场景都适合 Vibe Coding。
有些场景用了会极大提升效率,有些场景用了会适得其反。
下一讲,我们来做一个实用的"Vibe Coding 适用边界地图"——5种典型场景的判断框架,帮你在正确的地方用正确的方式。