同一个 AI 工具,两种用法VIBE CODING vs VIBE LEARNING
都在"用 AI 写代码",但一个把你变成"提需求的老板",另一个把你变成"会写代码的程序员"。
| 对比项 | 🛠️ Vibe Coding | 📚 Vibe Learning |
|---|---|---|
| AI 的角色 | 执行者帮你干活,交付成品 | 教练带你练习,练出能力 |
| 你的角色 | 提需求、做审核 | 理解、编码、修改 |
| AI 给不给代码 | 给完整可运行代码 | 给 Demo,练习必须自己写 |
| 学习闭环 | 看重结果:项目做完 | 看重过程:看懂 → 自己写 → 被审 → 修改 |
| 更适合什么 | 做项目、赶进度、交付工具 | 学技术、打基础、练内功 |
为什么不能只让 AI 替你写?DON'T JUST COPY
如果你的目标是交付一个小工具,AI 代写确实快;但如果目标是学会编程,只让 AI 替你写远远不够。
✅有意义的学习
把 Demo 复制下来、跑通、逐行看懂每一行在干什么——这本身就是理解连接、SQL、参数、结果集、资源关闭之间关系的过程。
⌨️手敲的价值
如果愿意把 Demo 手敲一遍,效果更好,但如果"手敲"成了唯一标准,反而会逼学生做表面功夫。真实开发本就在参考文档和源码。
🎯 Vibe Learning 要避开这四个陷阱
- 复制后不理解——跑通就以为学会了,没逐行吃透
- 跳过练习——只看 Demo,不写新题,能力长不到自己身上
- 只要完整答案——卡住就索要成品,AI 从"教练"退回"枪手"
- 不做代码复盘——写完不审,同样的问题反复犯
课堂上的三步做法THE 3-STEP METHOD
本实验以「JDBC 连接数据库」为例。操作并不复杂,拆成三步,让 AI 从"枪手"变成"助教"。
让 AI 给一个能跑的 Demo
先建立一个完整的感性认识:JDBC 怎么连数据库?SQL 在哪执行?结果集怎么读?资源为什么关闭?——一个能跑起来的 Demo,比一大段抽象概念更容易建立信心。
让 AI 基于 Demo 出练习题
题目变了,复制就不够用了。要完成练习,必须真正理解原来那段代码的结构,再把它迁移到新问题上。
学生自己写,AI 帮忙审
把代码贴给 AI,让它从命名、资源关闭、异常处理、SQL 注入、事务边界等角度给反馈——关键是"先指出哪里要改",而不是直接甩完整答案。
8 步工作流:AI 怎么带学生学 JDBCTHE 8-STEP WORKFLOW
为了让过程稳定、可复制,这套流程被固化成一个 Agent Skill。装好后,AI 会按这 8 步引导学习,而不是甩答案。
讲概念,建立心智模型 CONCEPT
先别丢代码。把 JDBC 讲清楚——它是 Java 连数据库的"统一插头",再给出整个流程:加载驱动 → 建立连接 → 创建 Statement → 执行 SQL → 处理结果 → 关闭资源。
给最小可运行示例 MINIMAL DEMO
一个不追求工程化的最小 Demo,只解决一件事:让学生第一次看到 Java 程序真的把数据库里的数据读出来。这个正反馈很重要。
逐行解释代码,提醒常见坑 LINE BY LINE
好解释不止说"这行是什么",还要说"为什么这么写"和"哪里容易出错"——例如连接是重资源,工程化时会引入连接池。
出递进练习题 EXERCISES
按难度给 1~5 星题目。原则是:可以问 AI 要提示,但不要直接要完整答案——这样 AI 就从"代写者"变成了"助教"。
做代码审核 CODE REVIEW
从代码风格、资源管理、安全问题、异常处理、最佳实践五个维度检查,尽量先指出问题和方向,而不是一次性给完整修改版。
从 Demo 升级到工程化写法 ENGINEERING
引导思考:抽 DAO 层、用 PreparedStatement、try-with-resources、配置文件、连接池(HikariCP)、统一异常处理。
让 AI 扮演面试官追问 INTERVIEW
基于学生刚写的代码追问:为什么不建议在 Servlet 里直接写 JDBC?Statement 和 PreparedStatement 区别?被问住的地方,就是理解还不牢的地方。
综合作业审核 FINAL REVIEW
给出分维度评分、精确到代码位置的问题清单、修改建议和下一步提升方向——让学生在提交前完成一次自我修正。
下面是第 2 步中,AI 给出的那个「最小可运行 JDBC Demo」:
// 1. 加载驱动 Class.forName("com.mysql.cj.jdbc.Driver"); // 2. 建立连接 Connection conn = DriverManager.getConnection(url, user, password); // 3. 执行查询 Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM users"); // 4. 处理结果 while (rs.next()) { System.out.println(rs.getString("name")); } // 5. 关闭资源 rs.close(); stmt.close(); conn.close();
这段代码不引入 DAO、连接池、工具类——它只为一个目标:让学生第一次看到数据真的被读出来了。
| 难度 | 练习题 |
|---|---|
| ★ 入门 | 写一个 insertUser() 方法,向用户表插入一条数据 |
| ★★ 基础 | 写一个 findByName() 方法,支持按姓名模糊查询 |
| ★★★ 进阶 | 写一个分页查询方法,传入页码和每页条数 |
| ★★★★ 综合 | 写一个转账方法,要求使用事务,失败时回滚 |
| ★★★★★ 项目 | 设计一个简单的图书借阅管理模块,完成增删改查 |
Agent Skill:给 AI 装一套「教学规范」WHAT IS AN AGENT SKILL
这套流程如果每次都靠手动写长提示词,学生容易忘记,也容易把 AI 又用回"直接给答案"模式。于是它被固化成 Skill。
在 Trae 里,Skill 放在项目的 .trae/skills/ 目录下。本实验 vibe_learning 模块已预置两个 Skill:
| Skill 名称 | 文件路径 | 用途 |
|---|---|---|
| AI 辅助 JDBC 学习 | ai-assisted-jdbc-learning/SKILL.md | 8 步结构化工作流,引导学习 Java Web 开发 |
| 前端 UI 设计 | ui-ux-pro-max/SKILL.md | 生成高质量、独特风格的前端界面 |
一个 Skill 文件通常定义四类内容:
🎯学习目标
帮助 Java Web 初学者掌握 JDBC 的基本用法和工程化思路。
🔄学习循环
理解、模仿、修改、实现、讲解、扩展——六个动作的闭环。
📋8 步工作流
每一步学生怎么问、AI 应该怎么回应,都写清楚。
⚠️陷阱提醒
复制后不理解、跳过练习、只要完整答案、不做复盘。
🧩 使用 Skill 的办法(以优化 UI 为例)
- 用 Trae 打开 vibe_learning 目录(确保 .trae/skills 在项目根目录下)
- 在 AI 对话框输入一句指令触发,例如:「使用技能 ui-ux-pro-max,帮我修改登录页 login.html 的风格,采用正式、简洁的官方风格」
- 等待 AI 生成并预览效果,满意后应用到项目
亲手看一遍「教练模式」对话INTERACTIVE DEMO
同一个学生,遇到不同的提示方式,AI 会给出截然相反的反馈。点开演示,看 AI 教练如何"只给提示、不给答案"。
为什么这套方法有效WHY IT WORKS
三个核心原因,其实都指向同一件事:把"看答案"变成"改答案"。
先给正反馈,再讲概念
传统讲法先把 DriverManager、Connection、Statement、ResultSet 倒给学生,还没看到结果就被概念淹没。反过来:先跑通一个例子,再解释背后的概念,对初学者友好得多。
AI 让反馈变得非常及时
传统学习最怕写错了没人及时指出,等老师批改时错误已成习惯。现在写完一小段代码就能立刻得到反馈——资源没关、SQL 拼接不安全,统统当场暴露。
从"看答案"变成"改答案"
只看 AI 生成的代码会误以为"我懂了",一到自己写就写不出来。关键在于循环里的"自己写"和"自己改"——AI 给 Demo、提示、审查,但最后一步必须由你完成。
一句话总结
让 AI 审你写的代码,但最后的代码要自己写、自己改、自己理解。
AI 时代,编程仍然要学,但学习方式应该升级。真正重要的不是"这节课会不会写 JDBC",而是学会让 AI 帮自己练能力——把 AI 当成教练,而不是答案机器。