本教程面向完全零基础的开发者,教你用 Claude Code 做一件比"Hello World"更接近真实工作场景的事:把一个你不认识的开源项目读懂,并成功改一行代码、跑通测试。学完后你将掌握安装认证、/init 项目初始化、架构提问、代码追踪、小步改造与验证的完整闭环,理解 AI 编程助手的真实价值边界。适用人群:会用命令行、写过一点代码、但从未用过 AI 编程工具的新手。
cd/ls/git 三条命令即可市面上 90% 的 Claude Code 入门教程都在教"从零创建一个新项目"。这有一个隐藏的坑:新项目里没有"已有代码"需要理解,AI 的核心能力——读懂上下文——根本没被触发。
而你真正会遇到的工作场景,恰恰相反:
这些场景的共同点是:代码已经存在,你的任务是先理解,再动手。所以本教程的反直觉选择是——第一课就用 Claude Code 去啃一个别人写好的项目。这才是它真正不可替代的能力。
Claude Code 在 2026 年提供两条安装路径,任选其一。
macOS / Linux / WSL:
curl -fsSL https://claude.ai/install.sh | bash
Windows(PowerShell):
irm https://claude.ai/install.ps1 | iex
原生安装会把二进制装到 ~/.local/bin/(或 Windows 的用户目录),并自动配置 PATH。
npm install -g @anthropic-ai/claude-code
claude --version
能看到版本号(如 2.x.x)即安装成功。
常见问题与解决:
| 问题 | 原因 | 解决 |
|---|---|---|
command not found: claude |
PATH 未生效 | 重开终端;或手动 export PATH="$HOME/.local/bin:$PATH" |
npm 报权限错误 EACCES |
全局目录无写权限 | 改用原生安装路径 A,或配置 npm prefix 到用户目录 |
| 公司网络下载失败 | 防火墙拦截 | 配置 HTTPS_PROXY 代理环境变量后重试 |
第一次运行 claude,会进入交互式引导:
claude
你会看到两个登录选项:
export ANTHROPIC_API_KEY=sk-ant-xxxxxxxx
新手建议先用订阅账号,因为按 token 计费在你不熟悉时容易超支。
登录成功后,终端底部会出现输入框,光标闪烁,说明 Claude Code 已就绪。
不要一上来就挑战 Kubernetes 这种百万行仓库——上下文会被撑爆,你会怀疑人生。新手练手项目的三个标准:
推荐练手项目(任选其一):
cowsay、figlet 这类单一功能 CLI 工具下面用一个极简的 Express Todo API作为贯穿全篇的示例。先克隆:
git clone https://github.com/example/express-todo-api.git
cd express-todo-api
提示:你也可以换成任意本地已有的小项目,只要
cd进它的根目录即可,后续步骤完全通用。
/init —— 让 AI 先把项目"读薄"进入项目根目录后,启动 Claude Code:
claude
然后在输入框敲第一条命令:
/init
发生了什么? Claude Code 会扫描整个目录结构、读取关键配置文件(package.json/requirements.txt、tsconfig.json、README.md、测试目录),然后在项目根目录生成一个 CLAUDE.md 文件。
CLAUDE.md 是 Claude Code 的"项目记忆",内容大致如下:
# CLAUDE.md
本项目是一个基于 Express 的 Todo REST API。
## 开发命令
- 安装依赖:`npm install`
- 启动开发服务器:`npm run dev`
- 运行测试:`npm test`
- 代码检查:`npm run lint`
## 架构概览
- 入口:`src/app.js`
- 路由层:`src/routes/todos.js`
- 数据层:`src/store/memory.js`(内存存储)
- 测试:`test/todos.test.js`(使用 Jest)
## 约定
- 所有路由返回 JSON
- 错误统一走 src/middleware/errorHandler.js
为什么这一步如此关键?
没有 CLAUDE.md,Claude Code 每次都要重新扫一遍目录,又慢又贵;有了它,后续每次对话都带着这份"项目说明书",回答准确度大幅上升,token 消耗显著下降。这是从"一次性问答玩具"升级为"长期项目助手"的分水岭。
常见问题:
/init 很慢 → 先让它跑完;超大仓库可以手动在 CLAUDE.md 里写明"忽略 node_modules、dist、vendor 目录"。CLAUDE.md 不准 → 它是草稿,你应该手动修正。这是正常的协作过程,不是 bug。/init 之后,开始像问同事一样提问。新手最该问的不是"这段代码啥意思",而是结构性问题——这类问题的答案能一次性建立全局认知。
在输入框依次问:
提问 1(全局):
用三段话概括这个项目的整体架构:它由哪几层组成?数据从请求进来到响应出去,经过哪些环节?
预期输出: Claude Code 会读取 src/app.js、路由文件、中间件,给你一个分层描述:路由层 → 控制器 → 存储层 → 响应封装,并指出关键文件路径。
提问 2(入口定位):
应用启动的入口在哪一行?它注册了哪些中间件、按什么顺序?
提问 3(依赖与约束):
这个项目用了哪些关键依赖?测试框架是什么?有没有数据库?数据存在哪?
这三个问题问完,你对项目的认知,应该比单纯读 README 深一个量级。
技巧:用
@引用文件能让提问更精准,例如@src/app.js 里 app.use 的顺序有什么讲究?。Claude Code 会优先聚焦该文件。
理解架构之后,下一步是"顺着一条真实请求走一遍"。这是读代码最有效的方法——不要横着读(一个个文件看),要纵着读(一个功能贯穿多层)。
提问:
当我用 curl 发起 GET /api/todos 这个请求时,从 HTTP 进入到返回 JSON,代码依次执行了哪些文件、哪些函数?请按执行顺序列出调用链。
预期输出(示意):
1. src/app.js: app.listen(3000) — Express 服务器监听端口
2. src/app.js: 日志中间件 logRequest 记录请求
3. src/app.js: JSON 解析中间件 express.json()
4. src/routes/todos.js: router.get('/', todosController.list)
5. src/controllers/todosController.js: list() 调用 store
6. src/store/memory.js: getAll() 返回数组
7. src/app.js: errorHandler(本次无错误,不触发)
8. 响应: res.json(todos) 返回给客户端
这种"调用链"答案,比任何文档都直观。你可以继续追问任意一环:
src/store/memory.js 里的数据是存在哪的?服务重启会丢失吗?
Claude Code 会告诉你数据存在模块级变量里,进程重启即丢失——这正是它叫 memory.js 的原因。
读到这里你已经理解了项目。现在做一件有成就感的事:加一个真实功能,并验证它生效。
需求: 给每个 todo 的响应增加一个 createdAt 字段,返回 ISO 格式时间戳。
提问:
我想让 GET /api/todos 返回的每个 todo 对象都带上 createdAt 字段(ISO 时间字符串)。
请先告诉我要改哪个文件、怎么改,再帮我改。
注意这个提问的两个要点:先说方案,再动手。这能让你保持对修改的掌控,而不是被动接受一大段 diff。
预期交互:
1. Claude Code 先回答:"需要修改 src/store/memory.js,在创建 todo 时写入 createdAt: new Date().toISOString()。这是只读改动,不影响已有数据结构。"
2. 它请求权限修改该文件——此时终端会弹出确认提示,按 y 同意(这是安全机制,务必看清要改什么)。
3. 修改完成。
接着让它跑测试:
运行测试,确认改动没有破坏现有功能。
Claude Code 会执行 npm test,并告诉你测试结果。如果通过,说明你的第一个开源项目改造闭环成功——从看不懂,到读懂,到改对,到验证。
常见问题:
| 现象 | 原因 | 处理 |
|---|---|---|
| 改完测试报错 | 改动影响了断言 | 让 Claude Code "分析测试失败原因并修复",它会读测试代码 |
| Claude Code 拒绝修改 | 权限模式为只读 | 启动时确认未用 --read-only;或在确认提示选同意 |
| 改动涉及多个文件它只改一个 | 需求描述太笼统 | 明确说"列出所有要改的文件并逐一修改" |
把前面七步串成一个完整可复现的流程,作为你的"第一次实战"模板。
git clone https://github.com/example/express-todo-api.git
cd express-todo-api
npm install
claude
/init
检查生成的 CLAUDE.md,手动补一句约定:"所有新增字段需同步更新 test/todos.test.js。"
- 三段话概括架构
- 入口在哪、注册了哪些中间件
- 依赖、测试框架、数据存储位置
- GET /api/todos 的完整调用链
- 给每个 todo 加 createdAt 字段,先说方案再改
- 运行 npm test
- 用 curl 启动服务并发一个请求,看响应里有没有 createdAt
启动服务并验证:
# 在另一个终端
npm run dev
curl http://localhost:3000/api/todos
预期响应里出现:
[
{ "id": 1, "title": "学习 Claude Code", "createdAt": "2026-06-14T08:30:00.000Z" }
]
看到 createdAt,闭环完成。整个过程,你只写了提问,没有手动改一行代码——但你完全知道改了什么、为什么改、改对没有。这才是 AI 编程助手正确的打开方式。
flowchart TD
A[安装 Claude Code] --> B[认证登录]
B --> C[克隆/进入开源项目]
C --> D[/init 生成 CLAUDE.md 项目记忆/]
D --> E[手动校准 CLAUDE.md]
E --> F[结构性提问: 架构/入口/依赖]
F --> G[追踪一条请求的调用链]
G --> H{是否理解清楚?}
H -- 否 --> F
H -- 是 --> I[提出小改造需求: 先方案后动手]
I --> J[确认权限, 应用修改]
J --> K[运行测试验证]
K --> L{测试通过?}
L -- 否 --> M[让 AI 分析失败并修复]
M --> K
L -- 是 --> N[✅ 读透并改造成功]
/init 生成的 CLAUDE.md 就开始问 —— 它是协作契约,错的契约会带偏所有后续回答。/compact 压缩历史,或 /clear 重开。当你能稳定完成上述闭环,并且出现以下信号时,说明该进入下一阶段:
CLAUDE.md 分层、记忆文件)-p 与子 Agent 编排/commands这些正是后续教程的主题,按需推进即可。
| 维度 | 评估 |
|---|---|
| 适合的训练营类型 | 零基础转码营、前端/后端新手营、开源贡献入门营、企业新人 onboarding 训练 |
| 建议教学时长 | 1 个半天(约 3~4 小时):1 小时讲解 + 2~3 小时动手完成实战案例 |
| 前置门槛 | 低。会用命令行即可,不要求精通某门语言 |
| 考核标准 | 学员能独立完成"克隆项目 → /init → 提问理解 → 改一行 → 跑通测试"全流程,并口述调用链 |
| 延伸方向 | 完成本篇后衔接 Skills 开发、Hooks 自动化、无头模式批量任务三篇进阶教程 |
/init 命令与 CLAUDE.md 生成的中文说明CLAUDE.md 与会话管理的系统性实战手册[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
