软件开发项目实训 · 实验 2-2

让 AI 当教练,而不是当枪手
——用 AI + Skill 学习编程

Vibe Coding 让 AI 帮你干活;Vibe Learning 让 AI 帮你变强。
同一套 AI 工具,两种用法,学习效果天差地别。

🛠️ Trae / Claude Code 等编程助手 📚 Agent Skill 教学规范 ⏱️ 约 15 分钟 读完
01

同一个 AI 工具,两种用法VIBE CODING vs VIBE LEARNING

都在"用 AI 写代码",但一个把你变成"提需求的老板",另一个把你变成"会写代码的程序员"。

用 AI 写代码,可以叫 Vibe Coding——AI 是执行者,帮你把项目做出来;也可以叫 Vibe Learning——AI 是教练,带你把能力练出来。两个方向看似相同,教学效果完全不同。
🧭

导航开车的比喻

导航能带你到目的地,但若你从没自己认过路,关掉导航后依旧不知道怎么走。让 AI 代写代码,相当于一路只听导航、从不看地图。

🪑

木匠学徒的比喻

学徒先看师傅完整做一把椅子,看懂流程后再自己动手——复制 AI 给的 Demo 跑一遍、逐行看懂,本身就是学习,不必从第一秒就闭卷操作。

🏋️

健身教练的比喻

教练示范动作、纠正你的姿势,但杠铃必须你自己举。AI 给 Demo、给提示、审代码,但最后动手写、动手改的那一步,必须是你自己。

对比项🛠️ Vibe Coding📚 Vibe Learning
AI 的角色执行者帮你干活,交付成品教练带你练习,练出能力
你的角色提需求、做审核理解、编码、修改
AI 给不给代码给完整可运行代码给 Demo,练习必须自己写
学习闭环看重结果:项目做完看重过程:看懂 → 自己写 → 被审 → 修改
更适合什么做项目、赶进度、交付工具学技术、打基础、练内功
02

为什么不能只让 AI 替你写?DON'T JUST COPY

如果你的目标是交付一个小工具,AI 代写确实快;但如果目标是学会编程,只让 AI 替你写远远不够。

关键不是"有没有复制过",而是复制之后有没有进入下一步。单纯禁止复制粘贴意义不大,有效的路径是:理解 → 参考 → 改编 → 自己实现
👀理解读懂 AI 的 Demo
📄参考对照示例写法
✍️改编迁移到新题目
💪自己实现独立写出答案
题目一变,单纯复制就不够用了

有意义的学习

把 Demo 复制下来、跑通、逐行看懂每一行在干什么——这本身就是理解连接、SQL、参数、结果集、资源关闭之间关系的过程。

⌨️手敲的价值

如果愿意把 Demo 手敲一遍,效果更好,但如果"手敲"成了唯一标准,反而会逼学生做表面功夫。真实开发本就在参考文档和源码。

🎯 Vibe Learning 要避开这四个陷阱

  • 复制后不理解——跑通就以为学会了,没逐行吃透
  • 跳过练习——只看 Demo,不写新题,能力长不到自己身上
  • 只要完整答案——卡住就索要成品,AI 从"教练"退回"枪手"
  • 不做代码复盘——写完不审,同样的问题反复犯
03

课堂上的三步做法THE 3-STEP METHOD

本实验以「JDBC 连接数据库」为例。操作并不复杂,拆成三步,让 AI 从"枪手"变成"助教"。

第一步

让 AI 给一个能跑的 Demo

先建立一个完整的感性认识:JDBC 怎么连数据库?SQL 在哪执行?结果集怎么读?资源为什么关闭?——一个能跑起来的 Demo,比一大段抽象概念更容易建立信心。

教我 JDBC 查询数据库,给我一个最简单能运行的例子。
第二步

让 AI 基于 Demo 出练习题

题目变了,复制就不够用了。要完成练习,必须真正理解原来那段代码的结构,再把它迁移到新问题上。

基于刚才这个 JDBC Demo,给我出几道练习题,难度逐步增加。
第三步

学生自己写,AI 帮忙审

把代码贴给 AI,让它从命名、资源关闭、异常处理、SQL 注入、事务边界等角度给反馈——关键是"先指出哪里要改",而不是直接甩完整答案。

帮我检查这段 JDBC 代码有哪些问题?先别给完整答案,告诉我哪里需要改。
👀看懂 Demo跑通并理解
📄参考写法借鉴结构
✍️自己编码做新练习
🔍收到反馈AI 审核
♻️修改完善自己动手改
真正的学习,就发生在这个循环里
04

8 步工作流:AI 怎么带学生学 JDBCTHE 8-STEP WORKFLOW

为了让过程稳定、可复制,这套流程被固化成一个 Agent Skill。装好后,AI 会按这 8 步引导学习,而不是甩答案。

从"概念"到"最小示例",再到"逐行拆解 → 出题 → 审代码 → 工程化 → 追问 → 综合作业审核",一条完整的由浅入深学习路径。
1

讲概念,建立心智模型 CONCEPT

先别丢代码。把 JDBC 讲清楚——它是 Java 连数据库的"统一插头",再给出整个流程:加载驱动 → 建立连接 → 创建 Statement → 执行 SQL → 处理结果 → 关闭资源。

2

给最小可运行示例 MINIMAL DEMO

一个不追求工程化的最小 Demo,只解决一件事:让学生第一次看到 Java 程序真的把数据库里的数据读出来。这个正反馈很重要。

3

逐行解释代码,提醒常见坑 LINE BY LINE

好解释不止说"这行是什么",还要说"为什么这么写"和"哪里容易出错"——例如连接是重资源,工程化时会引入连接池。

4

出递进练习题 EXERCISES

按难度给 1~5 星题目。原则是:可以问 AI 要提示,但不要直接要完整答案——这样 AI 就从"代写者"变成了"助教"。

5

做代码审核 CODE REVIEW

从代码风格、资源管理、安全问题、异常处理、最佳实践五个维度检查,尽量先指出问题和方向,而不是一次性给完整修改版。

6

从 Demo 升级到工程化写法 ENGINEERING

引导思考:抽 DAO 层、用 PreparedStatement、try-with-resources、配置文件、连接池(HikariCP)、统一异常处理。

7

让 AI 扮演面试官追问 INTERVIEW

基于学生刚写的代码追问:为什么不建议在 Servlet 里直接写 JDBC?Statement 和 PreparedStatement 区别?被问住的地方,就是理解还不牢的地方。

8

综合作业审核 FINAL REVIEW

给出分维度评分、精确到代码位置的问题清单、修改建议和下一步提升方向——让学生在提交前完成一次自我修正。

下面是第 2 步中,AI 给出的那个「最小可运行 JDBC Demo」:

JdbcDemo.java
// 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() 方法,支持按姓名模糊查询
★★★ 进阶写一个分页查询方法,传入页码和每页条数
★★★★ 综合写一个转账方法,要求使用事务,失败时回滚
★★★★★ 项目设计一个简单的图书借阅管理模块,完成增删改查
05

Agent Skill:给 AI 装一套「教学规范」WHAT IS AN AGENT SKILL

这套流程如果每次都靠手动写长提示词,学生容易忘记,也容易把 AI 又用回"直接给答案"模式。于是它被固化成 Skill。

Agent Skill 是 AI 编程助手的可复用能力模块。每个 Skill 由一个 SKILL.md 文件定义,描述了 AI 在特定场景下的行为模式。配置好之后,只需输入一句简短指令,就能触发对应的专业工作流。

在 Trae 里,Skill 放在项目的 .trae/skills/ 目录下。本实验 vibe_learning 模块已预置两个 Skill:

vibe_learning/ └── .trae/skills/ ├── ai-assisted-jdbc-learning/ │ └── SKILL.md # 8 步工作流引导学习 JDBC └── ui-ux-pro-max/ └── SKILL.md # 生成高质量、独特风格的前端 UI
Skill 名称文件路径用途
AI 辅助 JDBC 学习ai-assisted-jdbc-learning/SKILL.md8 步结构化工作流,引导学习 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 生成并预览效果,满意后应用到项目
06

亲手看一遍「教练模式」对话INTERACTIVE DEMO

同一个学生,遇到不同的提示方式,AI 会给出截然相反的反馈。点开演示,看 AI 教练如何"只给提示、不给答案"。

🧪 互动演示 · AI 教练 vs AI 枪手
👆 选一个模式,点击「开始演示」,看 AI 如何回应同一个问题……
学生提问:「我不知道分页 SQL 怎么写」
07

为什么这套方法有效WHY IT WORKS

三个核心原因,其实都指向同一件事:把"看答案"变成"改答案"。

🎁

先给正反馈,再讲概念

传统讲法先把 DriverManager、Connection、Statement、ResultSet 倒给学生,还没看到结果就被概念淹没。反过来:先跑通一个例子,再解释背后的概念,对初学者友好得多。

AI 让反馈变得非常及时

传统学习最怕写错了没人及时指出,等老师批改时错误已成习惯。现在写完一小段代码就能立刻得到反馈——资源没关、SQL 拼接不安全,统统当场暴露。

💪

从"看答案"变成"改答案"

只看 AI 生成的代码会误以为"我懂了",一到自己写就写不出来。关键在于循环里的"自己写"和"自己改"——AI 给 Demo、提示、审查,但最后一步必须由你完成。

一句话总结

让 AI 写 Demo 给你看,让 AI 出题给你练,
让 AI 审你写的代码,但最后的代码要自己写、自己改、自己理解。

AI 时代,编程仍然要学,但学习方式应该升级。真正重要的不是"这节课会不会写 JDBC",而是学会让 AI 帮自己练能力——把 AI 当成教练,而不是答案机器。