这两天我一直在想一个问题:为什么同样是让 AI 做一个软件,有些程序员能把它一路推到上线,有些普通人做出来的东西,看起来像个产品,点几下就开始露馅。
一开始我也会把差距归因到“会不会写代码”。后来发现没这么简单。
AI 现在确实把写代码的门槛降下来了。以前要自己查语法、搭框架、改报错,现在很多步骤可以直接交给 AI 先跑一版。问题是,软件交付的门槛并没有跟着一起消失。
一个真正能用、能上线、能继续迭代的产品,背后不只是页面和按钮。它还包含需求拆解、数据结构、权限设计、异常处理、安全、部署、日志、备份、运维、版本迭代和业务决策。
普通人 VibeCoding 容易卡住的地方,往往不在“代码有没有写出来”,而在“这东西到底能不能放心用”。

对于完全不懂开发的人来说,最容易拖后腿的,其实是判断能力:
- 不知道 AI 给出的架构是否合理;
- 不知道数据库设计以后会不会把路堵死;
- 不知道权限、安全、异常流程有没有漏洞;
- 不知道这份代码是临时拼出来的,还是可以继续扩展;
- 不知道上线以后出了问题该往哪里排查。
所以我现在觉得,普通人学习开发的目标,不一定是转型成为职业程序员。更现实的目标,是建立一套“AI 开发审稿能力”。
对产品经理或者想用 AI 做 MVP 的人来说,这个目标可以说得更具体一点:
能看懂一个软件系统的基本结构,能判断 AI 方案的大方向是否可靠,能发现明显技术风险,能给 AI 下更准确的开发指令,并能参与验收。
为什么要学习一点开发
1. 把产品需求变成 AI 能执行的任务
产品经理通常擅长理解用户、业务流程、场景和优先级。但 AI 开发还需要你把这些信息继续拆下去,拆成页面结构、用户角色、权限规则、数据表、接口列表、状态流转、异常场景和验收标准。
如果只是告诉 AI:“帮我做一个客户下单系统”,它大概率会先把主流程做出来。能注册、能下单、能查看订单,页面看起来也像那么回事。
但真实业务里麻烦的地方往往藏在边角:
- 用户重复点击提交怎么办;
- 支付失败以后订单状态怎么变;
- 客户取消订单后,库存和金额怎么处理;
- 普通员工能不能看到别人的客户数据;
- 数据要不要备份,出了问题怎么恢复。
这些问题如果你不提,AI 很可能不会主动补全。它会优先交出一个“能演示”的版本。
学习开发的意义,就是让你能把一句口语化需求,翻译成 AI 更容易执行的技术任务。

2. 判断 AI 写出来的东西能不能继续用
AI 现在生成代码很快,但它经常为了先跑起来,选择短期写法。
常见情况包括:
- 代码堆在一个文件里;
- 数据表设计不利于扩展;
- 权限只在前端限制;
- 异常流程没有兜底;
- 错误日志不足;
- 环境变量和密钥处理不规范;
- 功能能演示,但很难真正商用。
如果完全不懂开发,就只能看页面是否能点。按钮能点,列表能显示,就觉得差不多了。
但程序员看同一个系统,会多看几层:数据库怎么存,接口怎么拆,权限在哪里校验,失败以后有没有回滚,日志能不能定位问题,部署以后怎么更新。
这就是普通人和程序员 VibeCoding 结果差很多的原因。AI 没有给谁偏心,差别在于两个人给它的约束、检查和追问不一样。

3. 和 AI 形成更稳定的协作关系
AI 更像一个执行能力很强的开发助手。你问得清楚,它能跑得很快。你问得模糊,它也会跑,但方向可能越来越偏。
学一点开发以后,你可以更好地指挥 AI:
- 先让 AI 设计方案,再决定要不要写代码;
- 先审查数据结构和权限,再开发页面;
- 先拆 MVP 范围,再考虑复杂功能;
- 先写验收标准,再让 AI 自测;
- 出错时按模块排查,避免一上来整段重写。
这时候你和 AI 的关系就变了。它会从“帮我生成代码”的工具,变成一个可以被你拆任务、被你审查、被你反复校准的协作者。
为什么建议先从网站入手
网站、APP、小程序是不同产品形态,但底层开发逻辑大致相通。
大多数软件产品都绕不开几层东西:
- 前端界面:页面、按钮、表单、交互;
- 后端接口:登录、查询、提交、修改、删除;
- 数据库:用户、订单、文件、权限、状态;
- 权限体系:谁能看、谁能改、谁能审批;
- 第三方服务:支付、短信、地图、AI 接口;
- 异常处理:失败、重复提交、断网、超时;
- 安全机制:鉴权、防越权、防泄露、防接口滥用;
- 部署运维:上线、日志、备份、监控、版本更新。
网站适合作为第一站,是因为开发和部署链路最清楚,调试方便,资料多,AI 工具也很擅长辅助。尤其是后台系统、管理系统、SaaS、AI 工具类产品,本来就很适合先用网站形态练手。
你先把“需求 → 页面 → API → 数据库 → 权限 → 部署”这一条链路跑通,再看小程序和 APP,就不会被产品形态带偏。
小程序需要额外补平台规则,比如微信或支付宝登录、支付、审核、页面跳转限制、用户隐私授权、包大小限制。
APP 需要额外补设备和应用商店规则,比如 iOS 和 Android 适配、推送通知、手机权限、离线缓存、版本升级、性能、相机、定位、蓝牙等原生能力。
所以比较适合普通人的学习顺序是:
网站开发基础
↓
小程序平台规则
↓
APP 设备能力和应用商店规则
学到什么程度就够了
这套学习的目标,不必设成传统意义上的全栈工程师。至少在第一阶段,我更关心下面几种能力:
1. 看懂一个软件系统由哪些部分组成。 2. 能把产品需求拆成页面、接口、数据、权限、状态和异常。 3. 能判断 AI 给出的技术方案有没有明显漏洞。 4. 能识别数据库、权限、安全、部署上的常见风险。 5. 能用 AI 做出一个小型 MVP,并完成基本验收。 6. 能和开发者、AI 工具进行更高质量的沟通。 7. 能判断一个产品只是“能演示”,还是具备继续商用迭代的基础。
如果能做到这些,已经比单纯会写几段提示词强很多。
第一阶段技术栈怎么选
我会建议先选一套简单、现代、适合 AI 辅助开发的技术栈。不要一上来追求“技术含量最高”,先追求能把完整链路跑通。
比较适合入门的一套组合是:
- Next.js:前后端一体,适合快速做网站和管理系统;
- TypeScript:比纯 JavaScript 更容易发现低级错误;
- React:主流前端框架,资料多,AI 支持好;
- Supabase:快速实现数据库、登录、权限和文件存储;
- PostgreSQL:主流关系型数据库;
- Vercel:适合快速部署网站;
- Git:管理代码版本;
- Docker:后期用来理解本地环境、数据库、Redis、端口和环境变量。
有些东西暂时不用一开始就学:
- C/C++;
- Java 底层;
- 算法刷题;
- Kubernetes;
- 微服务;
- 高并发架构;
- 复杂 CI/CD;
- 云原生全家桶。
这些当然有价值,但普通人用 AI 做 MVP 时,优先级没那么高。先把小系统做完整,比先啃一堆大词更重要。
一个 4 周学习路径
第 1 周:建立 Web 开发全局认知
目标:搞懂一个网站是怎么跑起来的。
重点学习:
- HTML 是页面结构;
- CSS 是页面样式;
- JavaScript 是页面交互;
- HTTP 是前后端通信方式;
- API 是前端调用后端的接口;
- JSON 是常见数据传输格式;
- 数据库负责持久保存业务数据;
- Git 负责记录代码变化;
- 部署是把本地代码放到线上环境运行。
本周验收标准:
- 能说清楚用户点击按钮后,数据如何从页面提交到后端,再保存到数据库;
- 能看懂一个简单页面的代码结构;
- 能理解前端、后端、数据库分别负责什么;
- 能用 AI 解释一段代码的大概作用。
第 2 周:做一个真实 CRUD 小系统
目标:用 AI 辅助做出一个简单但完整的小系统。
可以从自己熟悉的业务里选题,比如:
- 客户资料管理系统;
- 订单录入系统;
- 文件上传与人工校验系统;
- 报价表管理系统;
- 任务审批系统。
这个系统至少要包含登录、新增、查询、编辑、删除、不同角色权限、基础错误提示和数据库保存。
本周验收标准:
- 能说清楚核心数据表有哪些;
- 能说清楚页面分别对应哪些数据操作;
- 能知道哪些功能属于前端,哪些属于后端;
- 能让 AI 输出 API 列表和数据表设计;
- 能发现明显缺失的异常场景。
第 3 周:补数据库、权限和异常处理
目标:从“能跑”提升到“基本可靠”。
重点学习:
- 数据表之间的关系;
- 主键、外键、唯一约束;
- 状态字段设计;
- 用户角色和权限;
- 后端鉴权;
- 防止越权访问;
- 防止重复提交;
- 表单校验;
- 错误码;
- 日志;
- 上传失败、网络失败、接口失败的处理。
本周验收标准:
- 能判断权限是否只做在前端;
- 能检查用户是否可能看到别人的数据;
- 能识别重复提交、状态错乱、数据丢失等风险;
- 能让 AI 按异常场景补充代码;
- 能要求 AI 输出测试用例和验收清单。
第 4 周:部署、环境变量和线上运维
目标:理解一个产品从本地运行到线上使用的全过程。
重点学习:
- 本地环境和线上环境的区别;
- 环境变量;
- API key 和密钥安全;
- 数据库连接;
- Vercel 部署;
- 域名;
- SSL;
- 日志查看;
- 错误排查;
- 数据备份;
- 版本回滚;
- Docker 的基础概念。
Docker 暂时只需要理解几个词:image、container、port、volume、environment、network、Dockerfile、Docker Compose。
本周验收标准:
- 能把一个小项目部署到线上;
- 能知道环境变量在哪里配置;
- 能知道密钥不能写在前端代码里;
- 能查看基础错误日志;
- 能理解数据库为什么需要备份;
- 能让 AI 根据线上报错定位问题。
我建议的 AI 开发协作流程
以后不要一上来就让 AI 写代码。可以按这个顺序来。

第一步:先让 AI 拆需求
先不要写代码。请根据我的需求输出:
1. 功能模块拆分
2. 用户角色和权限表
3. 核心数据表设计
4. 主要业务流程
5. 异常场景清单
6. API 列表
7. 安全和部署风险
8. MVP 第一版范围第二步:让 AI 审查方案
请站在资深架构师角度审查这个方案,指出:
1. 后期最容易重构的地方
2. 数据库设计风险
3. 权限漏洞
4. 并发和重复提交风险
5. 哪些功能不适合第一版做
6. 哪些地方必须补充验收标准第三步:再让 AI 开发
请按照已经确认的 MVP 范围开发。
要求:
1. 先说明目录结构
2. 再说明每个模块负责什么
3. 数据库变更要单独列出
4. 关键权限必须在后端校验
5. 每完成一个模块后给出自测方法第四步:让 AI 自测和修复
请根据以下维度自测:
1. 正常流程
2. 空值和错误输入
3. 重复提交
4. 权限越权
5. 网络失败
6. 数据库写入失败
7. 页面刷新和返回
8. 移动端适配
请列出测试结果、发现的问题和修复方案。每次 AI 写完代码后,至少检查什么
可以直接按下面这份清单过一遍。
需求完整性
- 是否只实现了主流程?
- 是否遗漏异常流程?
- 是否有清晰的 MVP 边界?
- 是否有验收标准?
数据库设计
- 核心对象是否拆清楚?
- 表之间关系是否合理?
- 是否有唯一约束?
- 状态字段是否清晰?
- 删除数据是否会影响历史记录?
权限安全
- 是否区分不同角色?
- 权限是否在后端校验?
- 用户是否可能访问别人的数据?
- 密码是否加密?
- API key 是否暴露在前端?
接口设计
- API 输入输出是否清晰?
- 参数是否校验?
- 错误返回是否明确?
- 是否处理重复请求?
- 是否有日志方便排查?
代码结构
- 是否所有代码都堆在一个文件里?
- 页面、接口、数据库操作是否分开?
- 公共逻辑是否复用?
- 新增字段或角色是否容易修改?
异常处理
- 上传失败怎么办?
- 网络失败怎么办?
- 支付失败怎么办?
- 数据库保存失败怎么办?
- 用户重复点击怎么办?
- 页面刷新后状态是否正确?
部署运维
- 环境变量是否配置清楚?
- 日志在哪里看?
- 数据如何备份?
- 出错后如何回滚?
- 是否有线上和本地环境差异?
适合普通人练手的项目
优先选自己熟悉业务的小型系统,不要从陌生行业开始。
我会推荐这几类:
1. 客户资料管理系统 2. 订单录入和状态跟踪系统 3. 文件上传、AI 识别、人工校验系统 4. 报价单生成系统 5. 内部任务审批系统 6. 文档规则校验系统 7. 简单知识库和搜索系统
这些项目都能训练页面、表单、数据库、权限、文件上传、AI 接口、状态流转、异常处理和部署。
如果你的主业里刚好有类似场景,最好就从主业里找。因为熟悉业务的人更容易发现 AI 漏掉了什么。
最后
学习开发的最终目标,并不在于把所有代码都改成自己手写。
对普通人来说,更有价值的是形成一套判断力:看到一个软件产品,能拆出前端、后端、数据库、权限、接口、部署和风险点。
达到这个程度后,再看网站、APP、小程序,就不会只盯着外壳。它们只是不同的交付容器,真正决定产品能不能继续走下去的,是背后的系统能力。
数据怎么设计,流程怎么运转,权限怎么控制,接口怎么拆分,异常怎么兜底,上线后怎么维护,后续怎么迭代。
这些问题看起来不性感,但会直接决定一个 AI 做出来的 MVP,是只能录个演示视频,还是能真的交给用户试用。
所以我现在对普通人 VibeCoding 的建议很简单:先从网站入手,学完整软件系统的基本结构,再用一个小项目训练 AI 协作和技术验收。
你不需要先成为程序员,但需要慢慢成为一个懂技术边界、懂架构风险、懂交付链路的产品负责人。
夜雨聆风