鱼皮AI导航
鱼皮AI导航
  • 主页
  • 社区
  • AI工具
  • AI知识库
  • AI提示词
  • MCP
  • Skills
  • AI学习资源
  • AI资讯
  • GitHub开源
登录/注册
站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
4
6

8. 从零到一 AI Coding 面试高分 Prompt 手册

执笔经年
执笔经年
2026-09-16 14:21
阅读 927
执笔经年
2026-09-16 14:21
阅读 927

title: 从零到一 AI Coding 面试高分 Prompt 手册 created: 2026-09-16 updated: 2026-09-16 tags:

  • AI编程
  • 提示词
  • 面试
  • VibeCoding
  • 从零到一

[!note] 📎 姊妹篇 本文是《[[7. AI Coding 面试高分 Prompt 手册]]》的从零到一(Greenfield)专用版。那一篇讲"在已有代码上做功能改造",这一篇讲"面试官只给一句话需求、没有代码库、从空目录开始实现"。两者工作机制差别很大,建议对照阅读。

从零到一 AI Coding 面试高分 Prompt 手册

适用于允许使用 AI 编程工具、题目为"从零实现一个东西"的前端、后端、全栈和原型开发面试。

从零到一的题目,最诱人也最危险的姿势就是:把题目原封不动丢给 AI,让它"帮我写一个完整的 XX 系统"。 结果通常是:AI 兴奋地铺开二十个文件、引入五个你没把握装上的依赖,十五分钟后你得到一个既跑不起来、你也讲不清的项目。

从零题考的不是"能不能生成代码",而是三件事:

  1. 你能不能把一句模糊需求收敛成可交付的 MVP;
  2. 你能不能在无历史包袱的情况下做出并解释技术选型;
  3. 你能不能先让它跑起来,再一圈一圈长出来。

稳定的工作循环:

定边界 → 砍 MVP → 定选型 → 骨架先跑 → 定契约 → 排实现顺序 → 小步长肉 → 验证 → 审查 → 演示汇报


一、两种玩法:从零到一 vs 改造现有代码

很多人在从零题上翻车,是因为套用了"改代码"的习惯。先看清差别:

维度改造现有代码从零到一
事实来源代码库本身就是事实,先读再动只有一句题目,事实要你自己建立
主要风险破坏既有行为、踩坏调用方做不完、跑不起来、过度设计
架构决策沿用现有约定,决策成本低你得现场定,并且讲得出为什么
AI 的典型失效虚构不存在的函数/文件生成巨型脚手架、引入装不上的重依赖
验证方式跑既有测试你得自己定义"能跑"并证明它
时间杀手理解陌生代码装环境、选型摇摆、返工数据模型
高分关键最小 diff最小可运行切片 + 清晰取舍

一句话区别:改造题考"别碰坏东西",从零题考"别造多余的东西"。


二、面试官在从零题里真正看什么

能力高分表现低分表现
需求收敛主动砍需求,说清 MVP 和非目标题目说什么就全做,最后一样没做完
提问能力开场 3 分钟问清用户、持久化、形态、限制闷头开写,做完了才发现方向错
技术选型2 个方案对比后拍板,讲清取舍AI 推荐什么用什么,答不出理由
架构骨架先定目录、数据模型、接口契约,再排实现顺序想到哪写到哪,中途反复推倒
先跑起来第 10 分钟左右、最晚第 16 分钟有一条端到端可运行路径半小时还在搭脚手架
小步推进每步都能运行、都能演示一次性生成整个项目再调试
验证能力种子数据 + 手动路径 + 测试都有证据"应该能跑吧"
边界与错误覆盖空、非法、重复、失败路径只做 happy path
沟通能力全程说明在做什么、为什么砍全程沉默,AI 输出即最终答案
时间管理宁可少一个功能,也要可演示前半程铺摊子,最后没有可运行成果

一句话原则:从零题里,你的价值是"决定做什么、不做什么、以及为什么",不是打字速度。


三、万能 Prompt 结构(从零版)

从零题的 Prompt 要补上改造题没有的两块:使用者与场景、技术选型。

▼
text
复制代码
目标:一句话说清用户最终能完成什么。 场景:谁用、在什么环境下用、使用频率与规模。 范围:MVP 必须做什么,明确不做什么。 选型:语言、框架、存储、运行方式,以及为什么。 约束:依赖限制、时间限制、代码风格、安全红线。 验收:可观察的完成标准 + 演示路径。 工作方式:先出方案还是直接写、每步如何验证、最终如何汇报。

可直接复制的总控 Prompt(从零版)

▼
text
复制代码
你是我的结对编程助手。当前目录是空的,我们要从零实现一个项目。请帮我快速交付一个 可运行的最小版本,但不要替我做未确认的产品或架构决定。 【用户与场景】 <谁在用,核心使用场景是什么,规模多大> 【MVP 必须做到】 - <核心功能 1,必须是能演示的一条完整路径> - <核心功能 2> - <关键边界条件> 【本轮明确不做】 - 登录/权限/多用户 - 数据库迁移、消息队列、缓存、容器化 - 国际化、主题、移动端适配、导出功能 - 任何需要联网申请 key 的第三方集成 【技术选型(已定,不要推翻)】 - 语言与运行时:<如 Python 3.11 / Node 20 / Java 17 + Spring Boot> - 框架:<如 FastAPI / Express / Spring Boot> - 存储:<内存 / 本地文件 / SQLite> - 测试:<pytest / vitest / JUnit> - 启动方式:一条命令,如 `npm run dev` 【工程约束】 - 优先标准库和我已熟悉的依赖;新增依赖必须说明理由和替代方案 - 依赖必须能在 5 分钟内安装完成,否则换方案 - 目录结构扁平清晰,不要过早抽象分层 - 显式处理输入校验、空状态、错误状态和重复操作 - 不要生成 README、CI、Dockerfile 等本轮用不上的文件 【验收标准】 - <可观察结果 1,例如:POST /tasks 后 GET /tasks 能看到它> - <可观察结果 2> - 一条命令能启动,并能用我给的演示路径走通 【工作方式】 1. 先用不超过 5 行复述你要建的东西,并列出你的假设。 2. 输出目录结构和启动命令,我确认后再写代码。 3. 第一步只做"能启动 + 一条最小端到端路径",跑通后停下汇报。 4. 定完数据模型和接口契约后,先给出按依赖排序的实现步骤清单,我删减确认后再动手。 5. 之后每步只实现一个能力,每步结束都要能运行、能演示。 6. 完成后审查全部代码,并按"结果、证据、取舍、未完成项"汇报。

[!tip] 为什么"本轮不做"要写得这么狠 从零题里 AI 的默认倾向是补全一个"完整工程":登录、权限、Docker、CI、README 全给你安排上。这些东西每一个都在偷走你的面试时间,而且面试官不会因为文件多给你加分。先把它们列进黑名单,AI 才不会自由发挥。


四、MVP 砍需求三刀 + 选型定桩卡

4.1 砍需求三刀

拿到题目,先砍三刀再动手,把"一个系统"砍成"一个能跑的切片":

刀砍什么换成什么
第一刀:砍角色多用户、多角色、权限体系只有一个使用者,不做登录
第二刀:砍持久化MySQL/Redis/消息队列内存、本地文件或 SQLite
第三刀:砍集成第三方 API、支付、短信、对象存储本地 mock / 假数据 / 固定返回

砍完还剩什么?一条从输入到输出的完整路径。这就是 MVP。

砍需求不是偷偷少做,而要当着面试官的面砍:

我先把范围收敛一下:本题核心是 XX,所以我第一轮只做单用户、内存存储、命令行/单页交互,登录、持久化和导出我列为非目标。如果您更想看其中某一项,我可以换进来。

这句话本身就是加分项——它证明你在管理范围,而不是被题目牵着走。

4.2 选型定桩卡

从零题里最贵的错误是选型跟着 AI 漂流:AI 说用 Next.js 就用 Next.js,最后你连为什么要 SSR 都答不上。

动手前先填完这张卡(写进 Prompt,也写进代码注释或项目根目录的 NOTES.md——不要为了它单独生成一个 README):

▼
text
复制代码
【选型定桩卡】 - 语言/运行时: - 框架: - 存储: - 是否要界面(CLI / 单页 / 全栈): - 测试方式: - 启动命令: - 选它的理由: - 我放弃的方案及原因: - 这个选型的已知局限:

三条硬规矩:

  1. 只用你能在 5 分钟内装好的东西。 面试环境网络不确定,装不上的依赖等于自杀。
  2. 优先你真正熟悉的栈。 从零题要的是"能讲清楚",不是"看起来先进"。
  3. 选型一旦定桩,中途不许换。 中途换栈是从零题最常见的时间黑洞。

五、面试现场 Prompt 链

0. 开场三分钟:先问面试官(不是问 AI)

▼
text
复制代码
我想先确认几个会影响架构的问题: 1. 这个东西的核心用户是谁?最典型的一条使用路径是什么? 2. 需要持久化吗?重启后数据要不要还在? 3. 交付形态有要求吗?命令行、接口,还是需要页面? 4. 语言或框架有限制吗? 5. 这轮时间大概多少?您更想看完整功能,还是看我的工程过程?

高分点:从零题里提问质量本身就是评分项。问完立刻用一句话复述:"所以我要做的是 XX,对吗?"

1. 把题目压缩成 MVP 规格

▼
text
复制代码
请把下面这道面试题压缩成一个 60 分钟内能做完并演示的最小规格,不要扩展需求。 【题目】 <原题> 输出: 1. 一句话用户目标; 2. 3~5 条可观察的验收标准(每条都要能演示出来); 3. 一条完整的端到端演示路径(从输入到可见输出的具体步骤); 4. 正常路径、空状态、错误输入、重复操作分别怎么处理; 5. 本轮明确不做的内容,以及你建议我向面试官确认的取舍; 6. 仍存在歧义的地方。 不要开始写代码。

2. 技术选型:让 AI 给两个方案,你拍板

▼
text
复制代码
基于上面的规格,给出两个能在 <语言/环境> 下 60 分钟内跑通的技术方案。 每个方案请说明: - 目录结构(不超过两层); - 依赖项清单,以及安装耗时和失败风险; - 数据如何存储与传递; - 最可能卡住的地方; - 与另一个方案相比的取舍。 最后给出你的推荐及理由。我只需要推荐方案的目录结构和启动命令,暂时不要写代码。

拿到结果后你做三件事:删依赖(能不用就不用)、压层级(目录不要超过两层)、确认启动命令(必须是一条你真能执行的命令)。

3. 骨架先跑起来(Walking Skeleton)

这是从零题最关键的一步:在写任何业务逻辑之前,先让一个空壳端到端跑通。

▼
text
复制代码
现在只做骨架,不要实现任何业务逻辑。 目标:一条命令启动后,能走通"输入 → 处理(可先返回固定值) → 输出"这条链路。 要求: - 按确认的目录结构创建文件; - 每个文件都要有明确职责,暂时没内容的用占位实现并标注 TODO; - 提供明确的启动命令和验证方式(例如 curl 一行、或一个可点击的页面路径); - 不要引入测试框架之外的任何新依赖; - 不要写 README、Dockerfile、CI 配置。 完成后停止,汇报:创建的文件、启动命令、我该如何验证它真的跑起来了。

[!important] 没有跑起来之前,不要写第二个能力 从零题最大的时间黑洞是"写了一堆文件,第一次运行时同时暴露十个错误"。 骨架跑通之后,每一圈加一个能力,任何时刻你都有一个可演示的版本——这是你面对面试官的底气。

4. 数据模型 / 接口契约先行

[!question] 为什么骨架跑通了才定契约,而不是反过来? 因为两步要解决的问题不同:骨架验证"能不能跑"(环境、依赖、启动命令是否 OK),契约定义"跑的东西长什么样"(字段、接口、边界)。 在环境还没验证时就花 5 分钟设计数据模型,一旦技术栈跑不起来,这份契约就白做了。所以顺序是:先让空壳跑通,再往空壳里填真正的数据结构。 只有一种例外:如果题目本身就是数据密集型(报表、ETL、建模题),可以把契约提到骨架之前,因为数据模型就是这类题的骨架。

▼
text
复制代码
在写业务逻辑前,先把数据和契约定下来。 输出: - 核心数据实体、字段、类型与约束(用类型定义或表结构表示); - 实体之间的关系; - 接口清单:方法、路径、入参、成功响应、失败响应; - 每个字段的边界:必填/可选、空值、非法值、长度或范围上限; - 哪些字段是本轮不需要的。 定完后等我确认。如果后续实现需要改动契约,先告诉我改动原因,不要直接改。

高分点:从零题里返工数据模型 = 返工一半代码。先定契约,后面才有资格小步快跑。

5. 让 AI 排出实现顺序,你删减后拍板

骨架跑通、契约定好之后,AI 知道"要建什么"了,但还不知道"按什么顺序建"。这一步必须补上——顺序错了会导致反复返工(比如先写列表页再补创建接口、先上持久化再改数据结构),而每次返工在面试里都是不可逆的时间损失。

▼
text
复制代码
基于已确认的数据模型和接口契约,把 MVP 拆成一份有序的实现清单。 要求: 1. 按依赖关系排序,每一步只产出一个可演示的能力(不要出现"第 3 步:完成所有接口"); 2. 每步列出:目标能力、要改/新建的文件、依赖的上一步、验证方式(能跑什么命令或走什么路径证明它生效); 3. 标出每步最可能失败的地方,以及失败后的回退方案; 4. 给出步骤之间的取舍:哪些是必做,哪些是"时间有余再做",哪些可以合并; 5. 明确告诉我:如果只剩 20 分钟,应该做到第几步停下来最稳; 6. 步骤不超过 6 步,超过说明拆得不够聚焦; 7. 暂时不要写任何代码。 输出格式:编号步骤 + 一句话目标 + 验证方式 + 必做/可选标记。

拿到清单后,你要做三件事,不要直接批准:

动作具体做法
删划掉任何"锦上添花"的步骤(导出、排序、搜索、美化),它们不是 MVP
并把两个 5 分钟能一起做完的小步合并,减少来回确认的开销
排把风险最高、最能暴露架构问题的步骤往前挪——早失败比晚失败便宜

然后向面试官同步这份清单,这本身就是加分项:

我按依赖排了个顺序:1 内存存储层 + 创建接口,2 列表与详情,3 编辑与删除,4 边界与错误处理。前 3 步是必做,第 4 步之后是时间允许项。如果时间紧,我做到第 3 步停下,仍然是一个可演示的 Demo。

[!important] 这份清单是你和面试官的"进度契约" 从零题最怕的不是做不完,而是做完了三件半成品、一件都不能演示。清单按"每步可演示"来排,你随时停下都有一个能跑的版本;面试官也能提前知道你在第几步、还剩多少。

6. 小步长肉:一次只加一个能力

▼
text
复制代码
现在实现第 <N> 步:<该步的能力>(不要实现后面的步骤)。 约束: - 只改实现这个能力必需的文件; - 保留 TODO 占位,不要顺手实现后面的能力; - 显式处理空输入、非法输入、重复操作和依赖失败; - 补一个能证明这个能力生效的检查(测试或可复现的手工步骤); - 每改完立刻用启动命令验证服务仍然可运行。 完成后停止,汇报:改了什么、怎么验证、下一步是什么、当前还剩哪些 TODO。

[!tip] 每步跑通就提交一次(git) git init 之后,每完成一个步骤就 git add -A && git commit -m "step N: xx"。三个好处: ① 改崩了能一步回退到上一个可运行版本,不用让 AI 反向修复; ② 面试官能看到你的推进轨迹,而不是最后一大坨代码; ③ 最终汇报时可以直接说"我做到第 3 步,第 4 步之后是可选"。 从零题里这是成本最低的保险,别嫌麻烦。

7. 精准 Debug(从零版特供:先怀疑环境和依赖)

▼
text
复制代码
出现下面的失败: 【复现步骤】 <如何稳定复现> 【实际结果】 <报错、日志、失败测试或页面现象> 【预期结果】 <正确行为> 先不要改代码。请按这个顺序排查: 1. 环境问题:依赖是否真的装上、版本是否匹配、启动命令是否正确; 2. 契约问题:数据形状、字段名、类型是否和前面定下的契约一致; 3. 逻辑问题:从报错点向上追踪调用链,提出最多 3 个根因假设并排序。 对每个假设给出可证伪的最小检查。选出证据最强的一个,给出最小修复和防止回归的测试。 不要用吞掉异常、删除断言、硬编码结果或"先注释掉"的方式绕过问题。

从零题的坑一半在环境和版本,不在逻辑。报错先问"装上了吗、版本对吗、命令对吗",能省大量时间。

8. 种子数据 + 边界测试

▼
text
复制代码
为演示和测试准备种子数据,并补齐边界测试。 1. 生成一组能覆盖核心展示场景的种子数据(含一条"看起来正常"、一条"空/极少"、一条"超长或异常"); 2. 给出加载种子数据的命令或开关; 3. 按下面的矩阵列出还缺的测试,先给矩阵,我确认后再实现: - 正常路径; - 空值、零值、上限值; - 非法输入与依赖失败; - 重复提交/重复调用。 说明每个测试能捕获哪种具体回归,不要为了覆盖率堆测试。

高分点:从零题的演示环节,空白页面就是事故。种子数据是你的保险。

9. 审查与最终验收

▼
text
复制代码
请以严格代码审查者的视角检查当前全部代码,不要继续加功能。 逐项检查: - 是否完整满足验收标准,有没有实现偏题; - 空、非法、重复、并发/顺序等边界是否显式处理; - 是否有没用上的文件、抽象、依赖或 TODO 残留; - 输入校验、错误信息、敏感信息和资源释放; - 测试是否真的验证行为,而不是只跑通代码; - 有没有为了跑通而硬编码、吞异常或跳过检查的地方。 每个发现给出:严重程度、文件位置、触发条件、影响、修复建议。 如果没有发现,也说明你检查了哪些路径,不要只回"看起来没问题"。

最终验收:

▼
text
复制代码
请执行最终验收: 1. 对照每条验收标准逐项核验; 2. 用一条命令从零启动(含安装与初始化),确认能复现; 3. 走一遍演示路径,给出每一步的预期输出; 4. 运行测试与静态检查; 5. 检查是否有调试代码、临时文件、未使用的依赖。 最后只按以下格式汇报: - 已完成: - 验证证据: - 关键设计取舍: - 已知风险或未验证项: - 如果再有 15 分钟,下一步会做: 任何没有实际运行的检查必须标为"未运行"。

六、不同题型的加分 Prompt

命令行 / 小工具

▼
text
复制代码
实现前先把输入输出契约定死: - 参数与子命令格式、默认值、必填项; - stdin/stdout 的数据格式; - 退出码约定(成功、用法错误、运行失败); - 错误信息是否对人友好、是否给出修复提示。 先输出 `--help` 的内容和三个使用示例(正常、缺参、非法值),再实现。

Web 全栈 CRUD

▼
text
复制代码
实现前先给出: 1. 数据模型与字段约束; 2. 路由/接口表(方法、路径、入参、响应); 3. 页面状态表:加载、成功、空数据、错误、提交中、禁用; 4. 种子数据方案。 要求:后端先返回固定结构并跑通,再接前端;不要在前后端都没跑通时同时调试两边。

算法 / 数据结构

▼
text
复制代码
不要直接给我最终代码。先做三件事: 1. 用一句话说清思路,并给出时间与空间复杂度; 2. 列出需要覆盖的边界(空输入、单元素、重复、极大/极小、已排序、逆序); 3. 给出一个暴力/朴素实现作为对照。 然后实现目标解法,并用随机小数据与暴力实现对拍验证,输出对拍结果。

高分点:算法题里对拍是最强的验证证据——它证明你不是在碰运气。

数据处理 / 脚本

▼
text
复制代码
先确认输入数据的结构、规模和脏数据情况,再设计处理流程。 要求: - 用一个 5~10 行的小样本手工推导预期结果; - 处理 NULL、重复、乱序、编码和时区问题; - 明确是否幂等(重复运行结果是否一致); - 先输出处理前后的对照表,再写代码。 完成后用小样本 + 反例各跑一次。

演示 / 原型

▼
text
复制代码
这是一个演示型任务,可演示性优先。 请先设计一条 30 秒能讲完的演示路径,并准备对应的假数据。 至少覆盖:正常展示、空状态、错误态三种画面。 不要为了视觉效果引入重型 UI 库,优先简洁可读的原生实现。

七、边操作边讲什么

开场提问后

我先确认核心用户和验收标准。从零题最容易做偏,所以我要先知道什么是"做完"。

砍需求时

我把范围收敛到 MVP:单用户、内存存储、一条完整路径。登录、持久化、导出列为非目标,如果时间有余我再补。

选型时

AI 给了两个方案,我选 A 不选 B,因为 B 需要引入 XX 依赖,安装风险高,而本题收益不大。这个选型的局限是 XX,如果后面要 XX 我会换。

骨架跑通时

我先在写业务逻辑之前让骨架跑通。这样后面每一圈加能力,我都能立刻知道是哪一步引入的问题。

排出实现顺序后

我按依赖排了四步,前三步必做,第四步之后是时间允许项。这样我随时停下都有一个能演示的版本,您也能知道我当前在第几步。

长肉时

我现在只加清单里的第 N 步:XX。其他步骤我留着不动,避免多个改动同时出错无法定位。

遇到失败时

我先怀疑环境和依赖,再怀疑数据契约,最后才怀疑逻辑。我会用最小检查逐个证伪,而不是让 AI 随机改。

时间不足时

我优先保证一条可演示路径完整可跑。剩下的能力我会明确列为未完成项,而不是塞半成品进来。

收尾演示时

我从零启动一遍给您看:安装、启动、走这条路径。已验证的是这些,没覆盖的是这个外部依赖场景。


八、60 分钟从零题节奏

时间目标你要留下的证据
0~3 分钟向面试官提问、复述目标用户、场景、限制、时间预算
3~6 分钟砍出 MVP 与非目标3~5 条验收标准、演示路径
6~9 分钟选型定桩选型卡、目录结构、启动命令
9~16 分钟骨架跑通(硬 Deadline)一条命令启动 + 端到端空壳可跑
16~20 分钟定数据模型与接口契约实体/字段、接口清单、边界约定
20~23 分钟让 AI 排实现顺序,你删减拍板编号步骤清单、每步验证方式、必做/可选标记
23~38 分钟按清单小步长肉,一次一个能力每步可运行、可演示,且每步一次 git 提交
38~48 分钟种子数据 + 边界/错误测试测试矩阵与运行结果
48~56 分钟审查全部代码 + 演示走查无残留 TODO、演示路径通畅
56~60 分钟总结汇报结果、证据、取舍、剩余风险

只有 30~45 分钟?砍功能,不砍"骨架先跑"和"最后演示"这两个环节。 从零题没有可运行成果,等于交白卷。

[!warning] 15 分钟红线 如果到第 15 分钟你的项目还启动不起来,立刻停下来做减法:砍掉所有非核心依赖,退回最小栈(标准库 + 内存),先把空壳跑通。一个跑得起来的半成品,远好过一个跑不起来的完整设计。


九、面试官追问怎么接

从零题结束后,追问往往比实现更决定分数。提前准备好这四个:

追问高分回答骨架
为什么选 X 不选 Y?说清两个方案的差异点、本题的实际约束(时间/依赖/规模),以及 X 的局限。承认局限比吹嘘优点更可信。
流量涨 10 倍怎么办?先指出当前瓶颈在哪(内存?单线程?查询?),再给最小改动(换存储、加索引、加缓存),不要一上来就上微服务。
如果 AI 生成的代码有隐藏 bug 呢?讲你的验证策略:契约先行、每步验证、边界测试、对拍/回归测试,以及哪些是你人工复核的。
时间再多你会做什么?按价值排序:先补测试与错误处理,再做持久化,最后才是功能扩展。能说出"为什么是这个顺序"最关键。

还有一句兜底回答,用于被问到不会的细节:

这块我目前是基于 AI 的建议实现的,我对它的把握度不高,我不会假装熟悉。我的验证方式是 XX,如果要上生产,我会先补 XX。

承认不确定 + 给出验证/收敛方案,比硬编一个答案得分高得多。

工具出问题时:应急三招

从零题对工具依赖更重,AI 卡死、网络断了、依赖装不上都可能发生。提前想好,遇事不慌:

情况应急动作
依赖装不上立刻退回最小栈:标准库 + 内存存储 + 命令行输出。宁可功能少,也要有可运行版本。
AI 反复给错方案停止对话式纠缠,把已确认的契约和当前代码贴给 AI,让它只回答一个具体问题;或者直接自己写那 20 行核心逻辑。
AI 完全不可用立刻切"手工模式":按已定的步骤清单,用你最熟的写法实现第 1 步。同时向面试官说明情况——能讲清楚你在做什么,本身就是交付的一部分。

关键心态:AI 是加速器,不是依赖。 你有清单、有契约、有骨架,就算没有 AI 也能往前推。


十、从零题最常见的失分方式

1. 让 AI"帮我写一个完整的 XX 系统"

问题:范围失控,AI 铺开几十个文件,你既跑不起来也讲不清。 改法:先砍 MVP,先要目录结构和启动命令,再写第一行业务代码。

2. 前十分钟还在选框架、装依赖

问题:从零题最贵的资源就是时间,环境问题是无底洞。 改法:只选你 5 分钟内能装好的栈;装到 3 分钟还没成功就立刻换方案,不要死磕——死磕是从零题最常见的时间黑洞。

3. 选型跟着 AI 漂流

问题:AI 推荐什么用什么,面试官一问"为什么"就卡壳。 改法:让 AI 给两个方案 + 取舍,你拍板并写在选型卡里。

4. 数据模型拍脑袋,中途返工

问题:写到一半发现字段不够/关系错了,一半代码要重写。 改法:实现前先定实体、字段、接口契约,改动契约先说明理由。

5. 骨架没跑通就堆功能

问题:第一次运行时同时暴露十个错误,定位不了。 改法:先让"输入 → 固定返回 → 输出"跑通,再一圈一圈长肉。

6. 没有种子数据,演示时一片空白

问题:核心路径明明通了,演示环节却翻车。 改法:提前准备种子数据,并覆盖正常、空、异常三种场景。

7. 只做 happy path

问题:面试官随手输个空值或重复提交就崩。 改法:实现前先列状态表和边界清单,至少覆盖空、非法、重复。

8. 一次性生成整个项目

问题:AI 输出即真相,你对代码没有掌控力。 改法:一次一个能力,每步结束用自己的话解释数据怎么流。

9. 没有实现顺序,想到哪写到哪

问题:先写列表再补创建、先上持久化再改结构,反复返工;也容易中途插入"顺手做一下"的功能,把主线拖死。 改法:契约定完后先让 AI 排出编号步骤清单,自己删/并/排一遍再动手,并同步给面试官作为进度契约。

10. 最后一分钟才第一次运行

问题:没有集成时间,也没有证据。 改法:骨架阶段(第 16 分钟前)必须有可运行版本,之后始终保持可运行。

11. 被问到细节时硬编答案

问题:一个追问就暴露你没真正理解。 改法:直接说明把握度,并给出你的验证方式和收敛计划。


十一、提交前自评分表

每项 0~2 分:0 = 没做,1 = 做了但证据不足,2 = 有清晰证据。

项目分数
我向面试官问清了用户、场景和限制/2
我把题目砍成了一个明确的 MVP 和非目标/2
我能解释技术选型及放弃的方案/2
我在写业务前先跑通了骨架/2
我先把数据模型和接口契约定下来/2
我让 AI 排出实现顺序,并自己删减/重排过/2
每个小步都能运行、都能演示/2
我覆盖了空值、非法输入和重复操作/2
我有种子数据,演示路径走通/2
我审查了全部代码,没有残留 TODO 和死代码/2
我能说清关键取舍和"下一步做什么、为什么"/2

建议目标:18 分以上(满分 22)。低于 14 分,通常不是 AI 不够强,而是你没在管它。


十二、平时怎么练

从零题是可以练出肌肉记忆的。挑一个 45 分钟能做完的小东西,录屏走完整套流程:

练习题库练什么
命令行 Todo(本地文件存储)MVP 收敛、输入输出契约、持久化取舍
URL 短链服务(内存 + 接口)数据模型、ID 生成、冲突处理
简易限流器(固定窗口/令牌桶)边界、并发、可验证性
Markdown 博客生成器文件处理、脏数据、幂等
单页 CRUD + 种子数据状态表、演示路径、前后端联调顺序
日志清洗脚本小样本推导、反例验证

复盘只看五件事:

  1. 我有没有在 AI 写代码之前就定下了"做完"的标准?
  2. 我砍掉了什么?我有没有当着"面试官"的面说明为什么砍?
  3. 我在第几分钟让项目第一次跑起来的?
  4. 我有没有至少一次推翻或修正 AI 的方案,并说清理由?
  5. 断网或 AI 不可用时,我还能不能解释并调试这份代码?

最后记住

从零到一的 Vibe Coding 面试,高分候选人做的事情其实很朴素:

  • 先问清楚,再动手;
  • 先砍需求,再写代码;
  • 先跑骨架,再长功能;
  • 先定契约,再谈实现;
  • 始终有一个可演示的版本,并且说得出每一个取舍。

不要向面试官证明 AI 能生成多少代码,要证明在空目录面前,你依然有章法。

AI
4
6
分享
操作
评论
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
🔥热门工具
朱雀AI检测朱雀AI检测
朱雀AI检测助手朱雀AI检测助手
LovartLovart
老鱼简历老鱼简历
WritePass官网WritePass官网
面多多面多多
CursorCursor
星月写作星月写作
零感AI零感AI
墨得问题墨得问题

目录

🔥 热门文章
1
手把手教你设计一个成熟的 Agent Harness
2500
2
我用 REA 逆向了付费颜色 APP,结果很意外!
570
3
离谱,DeepSeek 崩了 5 小时,大家却喊:梁圣恩情还不完??
420
4
DeepSeek 全新模型发布,性价比最高的一集!
380
5
B 站上 DeepSeek 闹鱼灾了,我发起《大肥鱼清除计划》!
370
6
自己学习ai,直接买cursor 的套餐,还是买gpt 或者claude 的套餐?
360
7
又一个国产版 Codex 神器,也来卷办公了!
330
8
day3-如何写出一个高质量的 Skill(组内分享) 高质量 Skill 不是“一个调得很顺的巨型 Prompt”,而是一个可验证、可回归、可维护的能力包。 先定义“什么算好”,再实现“怎么做好”。评估体系先于 Skill 本身成型。 下面用“故障诊断 Markdown 转 YAML”作为例子,但方法是通用的。 --- 一、先想清楚:Skill 到底是什么 一个 Skill 至少包含四部分: 部分 作用 接口 输入什么、输出什么、边界在哪 流程 分几步做,每步的产物是什么 规则 硬约束、经验规则、失败模式 降级策略 不确定时怎么办,而不是硬编一个看似合理的结果 高质量 Skill 的共同点:职责单一、接口清晰、规则可定位、输出可验证。 反例:把几十条经验全塞进一个主 Prompt,改一条规则要重调整个 Prompt,评估时也不知道是哪条规则退化。 --- 二、核心方法:先建评估,再写 Skill 不要先写转换器再补测试。正确顺序是: 1. 定义输出契约:什么算合法、什么算合格; 2. 建金标准集:一小批人工认可“可放行”的样本; 3. 先写评估 Skill:让它在金标准集上跑出基线; 4. 再迭代生成 Skill:每次修改跑同一套评估,无退化且目标维度提升才算正向。 这就是评估驱动开发:评估是 Skill 的单元测试,金标准集是回归锚点。 --- 三、评估 Skill:三层门禁,逐层递进 前一层不过,后一层不跑。每层留可追溯证据。 第 1 层:确定性硬门禁 用解析器、Schema、校验器完成,不消耗模型成本。 · 输出可解析; · 必填字段齐全,类型/枚举合法; · 引用目标存在,无悬空引用、无不可达节点; · 关键路径至少有一条能到达预期出口。 不通过直接打回。 第 2 层:语义断言 用脚本 + 结构遍历检查“逻辑对不对”,仍然保持确定性。 通用检查项: · 覆盖率:源材料里的关键步骤、分支、条件,输出里是否都有对应? · 完整性:每个判断节点是否都有明确出口?有没有死胡同? · 可达性:每条路径是否都能到达预期终点?有没有无出口循环? · 顺序与依赖:有先后依赖的操作,是否保留了顺序?有没有被拍平成无序列表? 例子:故障诊断转换中,检查“每个判断项是否有是/否/异常出口”“每条路径是否能到根因”。 第 3 层:LLM-as-Judge 只处理解析器表达不了的维度:忠实度、完整性、可执行性。 但 Judge 会漂移,不能单独放行,必须建立在第 1、2 层之上。Judge 的 Prompt、rubric、模型版本都要版本化,换模型必须用金标准集重新校准。 通用 Judge 维度: 维度 问什么 忠实度 输出是否忠实源材料意图?有没有自行发明内容? 完整性 关键步骤、条件、证据是否保留?隐式知识有没有被压成空话? 收敛性 输出是否仍指向原目标,而不是发散? 可执行性 下游不依赖源材料能否直接使用? --- 四、金标准集:回归测试的锚点 不需要一开始就标注几百份。用已认可的样本当种子,扩到 15~30 份,覆盖失败模式而非随机抽样: · 完整正例:典型流程; · 边界/异常分支:异常路径、循环、前置失败回退; · 已知易错模式:实际踩过的坑; · 留出集:不参与调优,只用于最终验收,防过拟合。 金标准不需要完美,只需要当前标准下认可可放行。 回归指标:关键路径用 pass^k(k 次全过),稳定性用 pass@k。 --- 五、工程约束:让批量产出可重放 · 幂等:同输入 + 同 Skill 版本 + 同规则 → 输出一致,否则无法判断变好是 Skill 改了还是随机波动; · 隔离不阻断:单份失败进隔离队列,记录失败层和原因,不阻塞其余; · 版本绑定:规则、rubric、金标准集进 Git;每份报告绑定“源版本 + 生成 Skill 版本 + 评估 Skill 版本 + Judge 模型版本”; · 抽样人工复核:Judge 临界样本 + 易错模式,人工抽检结果反过来校准 rubric。 --- 六、Skill 本身怎么写 · SKILL.md 控制篇幅,写清:输入约定、输出契约、分步流程、硬规则、降级策略; · 经验规则放 references/ 或 rules/,按失败模式分类,不要全塞进主 Prompt; · 不确定时标 needs_review: true,不要硬编看似合理的结果; · 迭代由评估报告驱动:报告告诉你哪层挂了、哪类失败模式,你改对应规则文件,而不是漫无目的调 Prompt。 --- 七、落地顺序(不要反过来) 1. 固化输出契约:Schema + 结构约束; 2. 建金标准集:从已认可的 + 最易出错的样本开始; 3. 先写评估 Skill:跑出基线报告; 4. 再迭代生成 Skill:每次修改对比逐项通过率,无退化且目标提升才算正向; 5. 批量运行 + 隔离回放:失败进队列,结束后人工抽检; 6. 评估 Skill 自身版本化:换 Judge 模型必须重新校准。 --- 八、给组员的三条硬要求 1. 不许凭感觉说“变好了”:每次修改必须附评估报告对比,逐项通过率说话。 2. 不许跳过确定性门禁直接看 Judge 分数:前两层挂了,Judge 分数没有意义。 3. 不许把规则堆进主 Prompt:规则按失败模式分文件,评估报告要能定位到具体文件。 --- 一句话收尾 生成 Skill 决定“能不能做”,评估 Skill 决定“敢不敢用”。 先让评估体系站稳,再让生成器迭代。这样交付的不是一堆“看起来还行”的产出,而是一套可证明、可回归、可交接的 Skill 质量体系。
310
9
AI 越强,被它拒绝的代价就越大 我有时候会想:AI 越来越厉害之后,有些事情,会不会反而越来越难做? 这个想法看起来有点矛盾。AI 明明在降低门槛,让不会写代码的人做出软件,让不会画画的人生成图片,让一个人完成过去需要整支团队才能完成的工作。但今天用 Codex 的时候,AI 拒绝帮我编写 SQL 注入的请求体,而那还是我有源码、在本地跑测试的情况。那么,往后是否只会更难? 我们假设某一天,AI 说:「这个请求违规,我不能帮助你。」到那个时候,你还有多少能力,能绕过它,把事情做完? 这里的「违规」需要打个引号。平台的规则、模型的判断、法律的要求,以及一件事实际有没有造成伤害,彼此之间并不总是画得上等号。一个请求可能确实危险,也可能只是缺少上下文被误判,或者恰好落在某家公司的限制范围里。 无论是哪种情况,随着我们越来越依赖 AI,这句拒绝都可能变得越来越贵。 今天,一个程序员让 AI 帮忙写代码,AI 拒绝了,他大概率还有别的办法:查文档、找开源项目、问同行,或者自己写。麻烦一点,慢一点,但路还在。 可如果十年之后,大部分程序都由 AI 完成,情况就不一样了。 很多人从接触编程的第一天起,就习惯了描述需求、等待生成、运行结果、继续迭代。他们能做出相当复杂的产品,却未必经历过独立处理底层问题的训练。平时,这种能力结构完全够用,效率甚至更高。只有 AI 拒绝的时候,他们才会发现:平常被省掉的那段学习过程,恰好是此刻最需要的东西。 到那时,一次拒绝的成本,可能就从「今晚多花两个小时」,变成「先花半年学会这门技术」。 拿 SQL 注入举个稍显极端的例子:往后,连真正理解这类攻击如何发生、能够独立构造测试的人,会不会也越来越少? 这里也包括那些有正当需求的人。一个开发者想检查自己的旧系统,一个经过授权的安全研究员想复现漏洞,假如 AI 识别到危险模式就拒绝,而使用者又只熟悉「让 AI 帮我检查」,这项原本可以独立完成的工作,就这样卡住了。 但是安全专家不会因此消失,但这类技能可能越来越集中在少数人手里。你仍然可以找专家,只是要付出更多的钱、更多的时间,以及更高的沟通成本。 类似的困境,未必只发生在网络安全领域。 你想从一个停止维护的软件里取回自己的数据,需要解析它的旧文件格式。AI 判断这涉及规避保护措施,拒绝继续。你拥有这些数据,却没有能力把它们读出来。 你买了一台设备,厂商停止提供服务。你想修改程序让它继续运转,过程中需要处理某种访问限制。AI 不愿协助,而你所掌握的维修方式,早已只剩下「把报错发给 AI」。 你想给常用的网站写一个辅助工具,减少重复操作。平台将此归入自动化限制,AI 也据此拒绝。过去会写脚本的人可以自己判断、自己处理;未来的使用者,可能连从哪里开始都不知道。 这些例子有一个共同点:当工具同时承担了「执行工作」和「传授知识」的角色,它的拒绝就不只是挡住了一次任务,也挡住了获得这种能力的机会。 更麻烦的是,这种依赖往往是我们主动选择的,而且每一步都很合理。 既然 AI 几秒钟就能做好,为什么还要花几个月学习?既然公司可以采购成熟的 AI 服务,为什么还要养一支负责基础工作的团队?既然市场上已经很少有人手写这些东西,学校为什么还要花大量时间教? 对个人、公司和学校来说,这些选择都有现实依据。但叠加起来,整个社会保留的独立能力就可能越来越少。等到某项能力突然受到限制,我们才发现,备用方案早已在追求效率的过程中被一点点削掉了。 所以,「AI 越强,做事越便宜」可能只描述了未来的一半。 另一半是:被允许的事情越来越便宜,被拒绝的事情依然需要人工完成,却要面对更少的人才、更高的报价,以及越来越难获得的知识。两边的成本差距,会越拉越大。 有人会说,可以换一个模型,或者用本地模型。这确实是重要的选项。只要工具之间还有充分竞争,开放模型还足够可用,限制就未必能形成真正的门槛。 但备用方案也需要维护。它需要硬件、知识、软件生态,以及一群仍然理解这些系统的人。如果大多数人已经习惯了最方便的商业服务,那么「理论上还有别的办法」和「普通人实际用得起、用得明白」,之间仍然可能隔着很远。 我担心的,正是这段距离。 我不指望 AI 对任何请求都照单全收。对明显会伤害他人的行为设置限制,有充分的理由。但我们也需要关心:限制由谁定义,误判有没有申诉渠道,用户能不能换工具,以及脱离这个工具之后,还剩下多少独立行动的能力。 保留这些能力,平时看起来甚至有点低效,明明可以自动生成,还要理解原理;明明可以一键完成,还要知道手动怎么做。 但这些看似多余的知识,会在工具拒绝、失效、涨价或改变规则的那一刻,成为真正的选择权。 AI 越强,我们可能越需要留意它说「不」的那一刻。 因为那句话的分量,最终取决于:它拒绝之后,我们还能做什么。
310
10
什么是LLM
300