大一新生 AI 编程快速上手指南:用 OpenCode 和 Cursor + Cline 写出第一个程序
Posted on 日 30 8月 2026 in AI
| Abstract | 大一新生 AI 编程快速上手指南 |
|---|---|
| Authors | Walter Fan |
| Category | AI / learning note |
| Version | v1.0 |
| Updated | 2026-08-30 |
| License | CC-BY-NC-ND 4.0 |
大一新生 AI 编程快速上手指南
大一第一次写程序,最容易遇到的不是“不会写循环”,而是项目还没开始,环境已经报了五个错:Python 版本不对、终端不会用、依赖装不上,最后只好把“Hello World”写在纸上,和高等数学一起接受审阅。
现在可以换一种练习方式:让 AI coding agent(能读项目、改文件、运行命令的编程助手)陪你做一个小项目。不过有一句话要先钉在墙上:AI 可以替你敲键盘,不能替你承担理解。
本文用 DeepSeek-V4-Flash 做模型,以 OpenCode 和 Cursor 里的 Cline 为例,带你完成四个小任务:
- 用 OpenCode 写一个 Python 命令行记账程序;
- 用 OpenCode 写一篇项目说明博客;
- 用 Cursor + Cline 写一个网页计分器;
- 用 Cursor + Cline 写一篇复盘博客。
这篇文章最想教的不是四个工具名,而是一套可以反复使用的动作:说清楚需求 → 让 AI 先列计划 → 一次只做一小步 → 运行并测试 → 把错误贴回去 → 用自己的话写下来。
你不需要先学完一门编程语言,但需要愿意逐行阅读、亲自运行、主动修改。否则,AI 只是一个很勤快的同学,而你只是把作业复制得更快。
先学会和 AI 合作,而不是只会“生成”
一个好提示词有五个零件
第一次使用 AI,不要追求“神奇提示词”。把下面五件事说清楚,已经足够完成大多数入门任务:
| 零件 | 要说明什么 | 例子 |
|---|---|---|
| 身份 | 希望 AI 扮演什么角色 | “你是一位耐心的 Python 助教” |
| 目标 | 想做什么 | “做一个命令行记账程序” |
| 环境 | 在哪里运行 | “Python 3.11,不安装第三方库” |
| 规则 | 哪些事情必须满足 | “金额不能小于等于 0” |
| 验收 | 怎样算完成 | “给出运行命令,并写 3 个测试” |
可以直接套用这个模板:
你是一位耐心的编程助教。我使用【语言/版本/工具】。
我想完成【一个小目标】。
请遵守【2~5 条规则】。
请先给出计划,不要马上改文件;等我确认后再执行。
完成后请告诉我:改了哪些文件、如何运行、如何测试、还有什么没解决。
AI 回答后,固定追问四句话
当你看不懂或不知道下一步时,不要只说“继续”。用下面四句话,学习效果会好很多:
- “请用大一新生能听懂的话解释这段代码。”
- “请只解释这一个函数,并举一个输入输出例子。”
- “请先告诉我错误原因,不要马上改代码。”
- “请给我一个最小修改,并说明为什么这样改。”
这四句话把 AI 从“自动售货机”变成“助教”。你不是按一下按钮等答案,而是在训练自己提出问题。
先弄明白三件事
OpenCode、Cursor、Cline 分别是什么
OpenCode 是在终端里工作的开源 AI 编程助手。终端就是那个黑底白字的窗口:你输入命令,它执行命令并显示结果。OpenCode 更像一个“项目里的协作者”,能根据当前目录里的文件来完成任务。
Cursor 是一个带 AI 功能的代码编辑器,使用方式接近 VS Code。Cline 是可以安装在 Cursor/VS Code 里的扩展,它有 Plan 和 Act 等工作模式:前者先讨论方案,后者才修改文件、运行命令。
三者不要混成一个东西:
| 工具 | 主要界面 | 适合的第一次体验 |
|---|---|---|
| OpenCode | 终端 | 从空目录创建项目、运行测试、查看 Git diff |
| Cursor | 图形化编辑器 | 阅读代码、边看边改、查看预览 |
| Cline | Cursor 里的扩展 | 把需求拆成计划,再让助手执行 |
DeepSeek-V4-Flash 是模型,不是编程环境
模型负责理解你的话、生成代码和提出修改建议;OpenCode、Cursor、Cline 负责把模型接到文件、终端和编辑器上。DeepSeek 官方 API 文档列出的模型 ID 是 deepseek-v4-flash,接口地址是 https://api.deepseek.com,支持 OpenAI 兼容接口。具体价格、限额和模型版本会变化,使用前应以官方模型与价格页面为准。
API Key 是密码,不是纪念品
API Key(调用模型服务的密钥)一旦泄露,别人可能用你的余额调用模型。不要把它提交到 Git,不要发到群里,也不要写进公开博客。本文所有 <YOUR_DEEPSEEK_API_KEY> 都只是占位符。
写文章也用同一个闭环
AI 写文章最常见的失败方式,是只给它一个题目:“帮我写一篇关于编程的文章。”这样得到的通常是一篇四平八稳、但和你没有关系的文章。
正确的入门流程是:
- 自己提供事实:做了什么、遇到什么错误、最后怎样解决;
- 让 AI 列提纲:要求它先问你缺少哪些信息;
- 分段生成:一次写一个小节,并保留你的例子;
- 自己核对:没有做过的事情不能写成已经完成;
- 最后润色:让 AI 改病句,但不要让它替你编经历。
记住一个简单比例:事实和观点由你提供,结构和表达可以请 AI 帮忙。下面两篇博客练习,都是从程序文件和真实测试结果出发,而不是凭空生成。
准备工作:少装一点,先跑起来
准备以下东西:
- 一台能联网的电脑;
- 一个 DeepSeek API 账号和 API Key;
- Git;
- Python 3.11 或更新版本;
- OpenCode;
- Cursor,以及 Cursor 里的 Cline 扩展。
OpenCode 的安装方式请看官网文档。Cursor 可以从官方页面下载安装,Cline 从扩展市场安装。不同操作系统和版本的安装命令可能变化,别把三年前的博客命令当圣旨。
建议先建一个练习目录:
mkdir ai-freshman-lab
cd ai-freshman-lab
Windows PowerShell 可以使用:
mkdir ai-freshman-lab
cd ai-freshman-lab
配置 OpenCode 使用 DeepSeek-V4-Flash
启动 OpenCode:
opencode
在 OpenCode 中输入:
/connect
如果列表里有 DeepSeek,选择它并输入 API Key;如果没有,选择 Other,自己填写 provider ID,例如 deepseek。官方文档说明,凭据可以通过 /connect 保存,再在项目目录的 opencode.json 中配置 provider。
一种可读性较好的 opencode.json 配置如下:
{
"$schema": "https://opencode.ai/config.json",
"model": "deepseek/deepseek-v4-flash",
"provider": {
"deepseek": {
"npm": "@ai-sdk/openai-compatible",
"name": "DeepSeek",
"options": {
"baseURL": "https://api.deepseek.com/v1"
},
"models": {
"deepseek-v4-flash": {
"name": "DeepSeek V4 Flash",
"limit": {
"context": 1048576,
"output": 32768
}
}
}
}
}
}
这里的 deepseek/deepseek-v4-flash 是“provider ID / model ID”的组合。baseURL 是否需要 /v1,要以当前 OpenCode 与 DeepSeek API 的兼容方式为准;如果出现 404,先检查接口地址和 OpenCode 版本。OpenCode 官方文档对自定义 OpenAI-compatible provider 的字段说明见这里。
然后输入:
/models
选择 DeepSeek V4 Flash。能得到模型回复只是第一关,还要确认它能读取项目、创建文件和运行命令。OpenCode 默认可能允许执行工具操作,建议新手先把权限设为询问:
{
"permission": {
"edit": "ask",
"bash": "ask"
}
}
每次它要删文件、安装依赖、执行命令时,你先看清楚再确认。这个确认按钮不是装饰品。
练习一:让 OpenCode 写一个 Python 记账程序
在 ai-freshman-lab 下建立目录:
mkdir opencode-expense
cd opencode-expense
opencode
不要只说“帮我写个记账软件”。好需求至少包含输入、输出、约束和验收标准。把下面这段提示词发给 OpenCode:
请在当前目录创建一个 Python 3.11 命令行记账程序。
要求:
1. 文件名为 expense.py,不使用第三方依赖;
2. 支持 add <金额> <分类> <备注>,例如 add 12.5 food 午餐;
3. 支持 list,按时间列出记录,并显示总金额;
4. 数据保存到当前目录 expenses.json;
5. 金额必须大于 0,金额格式非法时给出友好提示;
6. 把核心计算写成函数,并创建 test_expense.py,至少覆盖正常输入、非法金额和总金额计算;
7. 先说明计划,等我确认后再创建文件;
8. 创建后运行测试,并告诉我每个文件的作用。
你要重点观察三件事:
- 它有没有先解释计划,而不是直接改一堆文件;
- 它有没有处理非法输入,而不只是演示“12.5 food 午餐”;
- 测试是不是验证了行为,而不是只测试代码能 import。
运行程序:
python expense.py add 12.5 food 午餐
python expense.py add 8.0 book 课本
python expense.py list
python -m unittest -v
如果出错,把完整错误信息贴回去,并问:“请先解释错误原因,再给出最小修改。”不要只说“修一下”。你是在练排错,不是在抽签。
练习二:让 OpenCode 写一篇博客
仍在 opencode-expense 目录,要求它根据真实代码写说明文档:
请阅读当前目录的 expense.py 和 test_expense.py,创建 README.md。
读者是刚学 Python 的大一新生。文章必须包括:
1. 这个程序解决什么问题;
2. 如何运行三个示例命令;
3. expenses.json 的数据格式;
4. 金额校验为什么重要;
5. 测试覆盖了什么,没覆盖什么;
6. 一个“我下一步会怎么改”的小节。
不要编造没有实现的功能,不要声称代码“绝对安全”或“适合生产环境”。先给出提纲,确认后再写。
生成后自己做三遍检查:代码块能不能复制运行,文字有没有把“计划中的功能”写成“已经实现”,以及文章里有没有一句你自己真正理解的话。最后这一遍最重要。
配置 Cursor + Cline 使用 DeepSeek-V4-Flash
这里要说清一个边界:Cursor 的“自带模型 API Keys”功能和 Cline 的 provider 配置不是一回事。Cursor 官方文档列出了它支持的 API 提供商;对 DeepSeek 这种 OpenAI-compatible endpoint,最稳妥的路径是:在 Cursor 中安装 Cline,然后在 Cline 的设置面板里配置。
打开 Cursor,安装 Cline 扩展,点击 Cline 的齿轮图标,在 API Provider 中选择:
- API Provider:
OpenAI Compatible - Base URL:
https://api.deepseek.com/v1 - API Key:你的 DeepSeek API Key
- Model ID:
deepseek-v4-flash - Context Window:按 DeepSeek 官方当前限制填写;本文写作时可见的资料为 1M
- Max Output Tokens:先填 32768 或更小,遇到限制时按接口返回调整
点击 Verify。如果提示 Model Not Found,优先检查 Model ID 是否精确为 deepseek-v4-flash;如果 404,检查 Base URL 是否多写或少写了 /v1。Cline 的OpenAI Compatible 官方配置说明明确要求配置 Base URL、API Key 和 Model ID。
注意:Cline 的复杂 Agent 工作流依赖工具调用,不是每个兼容接口都完全支持。能聊天,不代表能可靠地改文件、跑命令。第一次让它操作时,先选择 Plan 模式,确认计划后再进入 Act 模式。
练习三:让 Cline 写一个网页计分器
在 Cursor 中打开新目录 cline-scoreboard,给 Cline 发送:
请先用中文给出实现计划,不要修改文件。
我要做一个篮球练习计分器,面向刚学 HTML/CSS/JavaScript 的大一新生。
要求:
1. 使用原生 HTML、CSS、JavaScript,不安装框架;
2. 页面显示主队和客队比分;
3. 每队都有 +1、+2、+3 和撤销按钮;
4. 分数不能低于 0;
5. 点击“重新开始”时弹出确认;
6. 页面要适合手机屏幕;
7. 创建 README.md,解释 DOM、事件和状态分别是什么;
8. 创建至少一个简单测试方案,说明如何手动验证。
等我确认计划后再进入 Act 模式。
这一次你要打开生成的 index.html,亲手点击每个按钮。特别测试:连续点击撤销、比分为 0 时撤销、刷新页面、手机宽度下的布局。AI 生成的代码看起来像代码,不等于它已经通过了你的使用场景。
练习四:让 Cline 写一篇复盘博客
让 Cline 只根据当前项目写一篇 learning-note.md:
请根据当前项目的实际文件,写一篇 800~1200 字的中文学习笔记,标题为“我用 AI 做了第一个网页计分器”。
文章要回答:
1. 我原来不会什么;
2. 我给 AI 的需求如何从模糊变具体;
3. 哪一处代码需要我亲自测试;
4. 一个真实的失败或边界情况;
5. 我从 HTML、CSS、JavaScript 各学到什么;
6. 下一次我会先自己写哪一部分。
不要杜撰测试结果、学习时长或不存在的功能。凡是当前文件无法证明的内容,用“待我补充”标记。
这篇文章的价值不在于“写得像博客”,而在于它逼你回答:我究竟学会了什么?如果你只会复制粘贴提示词,复盘通常会很短;如果你真的点过按钮、看过报错,文章自然会长出细节。
两个工具怎么选
| 场景 | 更适合 | 原因 |
|---|---|---|
| 从空目录搭小项目 | OpenCode | 终端、文件和命令在同一条流程里 |
| 想边看代码边修改 | Cursor + Cline | 编辑器能直接展示文件和预览 |
| 想先讨论方案 | 两者都可以 | 先要求计划,再允许写文件 |
| 想学习排错 | 两者都可以 | 要求解释原因和最小修改 |
真正重要的不是工具品牌,而是工作节奏:需求 → 计划 → 修改 → 运行 → 测试 → 复盘。少一步,最后都可能变成“看起来完成了”。
新生最容易踩的坑
把 AI 当搜索框
搜索框回答问题,coding agent 会改变你的项目。凡是涉及写文件、执行命令、删除内容,都先让它说明将要做什么。
一次提出一个学期的需求
“帮我做一个校园社交平台”不是入门任务,是把数据库、登录、权限、前端、后端和部署打包成一个焦虑。先做一个能运行的 50 行程序,再增加一个功能。
不看 diff,不跑测试
diff 是修改前后的差异。养成习惯:每次 AI 改完,先看它改了哪些文件,再运行程序和测试。你不需要一开始就读懂全部代码,但必须知道变化发生在哪里。
把 API Key 提交到 Git
使用环境变量或工具自己的凭据存储;检查 .gitignore;发布代码前搜索 sk- 等疑似密钥前缀。如果密钥已经泄露,不要只删文件,要立即在服务端撤销并重新生成。
把模型上下文当成永久记忆
一次对话很长,不代表模型永远记得项目规则。把运行方式、目录结构和约束写进 README;每次新任务都说明验收标准。好项目靠文件留痕,不靠聊天记录祈祷。
给大一新生的七天练习表
| 天数 | 动作 | 交付物 |
|---|---|---|
| 第 1 天 | 配好工具,运行 Hello World | 能启动 OpenCode 和 Cline |
| 第 2 天 | 修改一个 Python 小程序 | 一次真实的 Git diff |
| 第 3 天 | 为程序补 3 个测试 | 测试输出截图或日志 |
| 第 4 天 | 做一个 HTML 页面 | 浏览器中可操作 |
| 第 5 天 | 让 AI 解释一段代码 | 一页自己的笔记 |
| 第 6 天 | 故意制造一个错误并修复 | 错误原因和修复记录 |
| 第 7 天 | 写复盘博客 | 一篇不编造结果的学习文章 |
结语:把方向盘留在自己手里
大一学编程,不必从“我能不能独立写出一个大系统”开始。先完成一个小闭环:提出需求,读懂计划,允许修改,亲自运行,发现错误,再做一次修改。
OpenCode 也好,Cursor + Cline 也好,DeepSeek-V4-Flash 也好,都是工具。工具能把第一公里铺平,却不能替你走完大学四年。今天请完成一个最小动作:让 AI 写出一个程序,然后故意改坏它,再自己把它修回来。
你真正学会编程的那一刻,通常不是程序第一次运行,而是它第一次出错时,你没有关掉终端。
交作业前的检查清单
- [ ] 我知道每个文件负责什么;
- [ ] 我能不用 AI 解释程序的输入、输出和主要流程;
- [ ] 我运行过正常路径和至少两个异常路径;
- [ ] 我看过 AI 的文件修改和命令;
- [ ] API Key 没有出现在代码、截图和 Git 历史里;
- [ ] 博客只写已经发生、已经验证的事情;
- [ ] 我能说出下一次准备自己完成哪一部分。
本文中的配置、模型 ID 和服务能力可能随版本变化。动手前请优先核对 DeepSeek API 文档、OpenCode provider 文档、Cursor API Keys 文档 和 Cline OpenAI Compatible 文档。
本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。