Vibe Coding 时代程序员:第一课,Prompt Engineering!
从生日贺卡应用开始,我才清晰的意识到:Prompt 不只是一句话,而是一份迷你 PRD。
AI 越强,越会放大会不会使用 AI 的差距。
Prompt Engineering 的核心,不是把提示词写得更漂亮,而是用流程化、结构化的方式,把模糊需求变成清晰表达。
它不仅帮助 AI 更准确地完成任务,也逼着我们重新确认自己真正想要什么、正在做什么样的产品。
能用 AI 和会用 AI 是两回事
AI 是工具,但它不是普通工具。越强大的工具,越会放大"能用"和"会用"之间的差距。
会用 AI,不只是知道 Prompt、Context、Harness 这些概念,也不是背几个万能模板。更重要的是,你能不能主动思考:我该如何给 AI 更清晰的目标、更明确的边界,让它更稳定、更准确地完成我的任务。
同样是让 AI 做一个网页,之前我可能只会说:
text
帮我做一个生日贺卡应用。
现在我会先想清楚:目标是什么,用户要输入什么,程序要输出什么,页面怎么布局,这个应用有什么特色。
两次都是我在用 AI,但我给 AI 的任务质量完全不同,最后得到的结果也自然不同。

从古法编程到 Vibe Coding:从代码开发到需求分析
Vibe Coding 不是随便和 AI 聊天,而是用自然语言驱动软件生成。
过去的"古法编程",更像是人把需求翻译成代码。你要理解语法、算法、数据结构,然后一行一行把程序写出来。
现在的 Vibe Coding,更像是人把需求翻译成自然语言,再交给 AI 去生成代码。
变化的是代码生成方式,但其本质要求没有消失。无论是哪种方式,我们都必须先知道需求是什么,明白自己要实现的东西是什么。
甚至可以说,AI 把"写代码"的门槛降低后,反而把另一个问题推到了我们面前:你到底会不会定义需求,或者说你是否了解你要做的产品?
需求拆解、流程规划、迭代反馈、结果验收,这些听起来更像 PM 的工作。但在 Vibe Coding 时代,程序员也需要更早地承担这些工作。
生日贺卡应用让我理解:Prompt 不只是一句话
生日贺卡这个小项目看起来很简单,但它让我意识到,Prompt Engineering 不是所谓的语言技巧,它更深层是需求拆解能力。
把需求拆成模块,不只是为了让 LLM 更好执行,也是为了倒逼自己真正想清楚要做什么。
比如一个模糊 Prompt 是:
text
帮我做一个生日贺卡网页。
这个 Prompt 当然能生成东西。它可能会生成一个能运行的网页:有输入框,有按钮,也能生成一句祝福语。

但它大概率只是"能用"。它不知道用户除了名字还要不要输入年龄和爱好,不知道祝福语要不要有趣,不知道页面要不要像真正的贺卡,也不知道旧贺卡是否需要保留。
而结构化 Prompt 会提前告诉 AI:
text
创建一个网页来帮我写生日贺卡。
当我输入一个人的姓名、年龄和爱好后,它应该返回一条有趣的消息。
使用喜庆的标题和颜色。
把贺卡显示在右侧,并且让它看起来像生日贺卡的内页。
在页面顶部添加一个有趣的标题。
另外不要替换旧的贺卡,而是保留它们的显示状态,把它们堆叠在新贺卡的下方。
这种 Prompt 会让结果更接近一个产品,而不只是一个页面。

它提前定义了用户要输入什么、输出应该是什么、页面如何组织、哪些行为不能被忽略。最后的差别,不只是页面好不好看,而是产品思考有没有被表达出来。
如何写 Prompt:模块化、流程化
开发者在写 Prompt 时,本质上是在做 PM 的工作。
Goal / Input / Output / Layout / Features 不是凭空而来的模板,而是一个项目真正需要被定义的几个模块。

Goal:确定这个应用到底解决什么问题Input:确定用户需要提供什么信息Output:确定程序最终生成什么结果Layout:确定页面内容如何组织Features:确定这个项目和普通项目有什么不同
回到生日贺卡应用,它可以被拆成这样:
Goal:做一个生日贺卡网页,用户输入基本信息后生成有趣的生日祝福。Input:姓名、年龄、爱好。Output:一段个性化生日祝福语。Layout:左侧输入区,右侧贺卡展示区,顶部有喜庆标题。Features:旧贺卡不替换,保留并堆叠展示;整体视觉像真正的生日贺卡内页。
当我们用这五个部分组织 Prompt 时,其实已经不是在"提一句需求",而是在写一份迷你 PRD。
这也是我这节课最重要的收获:Prompt 的质量,不只取决于文字本身,更取决于你对需求的理解质量。
Vibe Coding 的工作流:不是一次写完,而是持续收束
Vibe Coding 不是一次性写出完美 Prompt,然后等 AI 给出完美结果。
更真实的过程是:先给出基本需求,看 AI 的第一版结果,再根据结果继续补充约束、调整方向、修正细节。

比如生日贺卡应用可以这样迭代:
第一轮,先说清楚目标和输入:我要一个网页,用户输入姓名、年龄和爱好,生成生日祝福。
第二轮,再补充布局和风格:页面要有喜庆的颜色,贺卡展示在右侧,看起来像真正的生日贺卡内页。
第三轮,最后增加特色功能:旧贺卡不要被替换,而是继续保留并堆叠展示。
每一轮看起来都是在修改 Prompt,本质上都是在细化需求。
AI 在生成代码,人类在定义方向。这才是 Vibe Coding 真正有效的地方。
AI 时代,真正重要的是体系化、流程化地使用 AI
AI 的能力会继续进化,但这不代表方法论失效。
相反,越是强大的工具,越需要体系化、流程化的使用方式。学习 Prompt Engineering,不只是学习怎么写提示词,更重要的是学习如何把模糊想法变成清晰流程。
以前我以为 Prompt Engineering 是让 AI 更听话。学完这节课后,我发现它真正训练的是人表达需求的能力。
AI 时代,程序员当然还要懂代码。但更早被放大的能力,已经变成了定义问题、拆解需求、约束边界和验收结果的能力。
如果说代码是实现,那么 Prompt 就是需求表达的入口。
从这节课开始,我对 Vibe Coding 的理解变了:它不是"随便说一句,让 AI 帮我写"。它更像是一种新的开发协作方式,人负责把问题想清楚,AI 负责把结果生成出来。
而 Prompt Engineering,就是这个协作关系里的第一课。
本文思考来自吴恩达 DeepLearning.ai 课程:AI for Everyone。