478 lines
30 KiB
Markdown
478 lines
30 KiB
Markdown
---
|
||
id: plan.index
|
||
title: 转岗计划总纲
|
||
type: index
|
||
domain: plan
|
||
stack: []
|
||
---
|
||
|
||
# 转岗计划总纲:Python AI 应用 / Agent 开发为主,Go 全栈为辅(16 周)
|
||
|
||
这是整个计划的入口文件。换了电脑或者隔一段时间回来,先看第 13 节“进度记录”,再打开当前所在周的计划文件继续做。
|
||
|
||
**状态**:未开始 / 进行中 / 已完成( )
|
||
**开始日期**:
|
||
**当前所在周 / 天**:
|
||
|
||
---
|
||
|
||
## 1. 背景、起点和目标
|
||
|
||
### 背景
|
||
|
||
- 7 年 Web 前端(Vue / React),本科。
|
||
- AI 写代码越来越多,“只会把页面写出来”的价值在下降,需要往“能设计、能交付、能讲清原理”的方向走。
|
||
- 第 4 节的招聘调研显示:AI Agent 岗位的主语言是 **Python**,Go 多数只是加分项。所以本计划以 **Python + AI 应用**为求职主线;Go 压缩到 3 周,做出一个完整的全栈项目作为基础和加分项。
|
||
|
||
### 起点(已经具备,不用从零学)
|
||
|
||
- 能独立开发和改通业务前端,能和后端 Agent 网关联调接口。
|
||
- 在公司里接触过真实的多 Agent 产品链路:意图识别 → 多角色研讨 → 总结 / 交付 / 过程报告。
|
||
- 踩过真实的生产问题:流式连接断开、模型额度不足、状态没有回写、数据库表结构和代码不一致、关掉页面后编排中断。
|
||
|
||
这些经历是转岗最大的本钱,后面会把它们整理成“案例卡”,并做成可以公开演示的项目(**全部脱敏**,见第 10 节)。
|
||
|
||
### 目标岗位(按优先级)
|
||
|
||
1. AI Agent 开发 / 大模型应用开发工程师(应用侧)
|
||
2. AI 全栈工程师(前端 + Python 或 Go 后端 + 大模型集成)
|
||
3. 全栈工程师(前端 + Go / Python 后端)
|
||
|
||
### 终点(4 条必须同时满足,才算这条路径走完)
|
||
|
||
1. **能讲清**:一张架构图 + 三分钟口述“多 Agent 如何状态机化、状态存在哪、失败怎么办”。
|
||
2. **能做小**:一个**不带公司业务外壳**的多 Agent 项目,本地可跑,覆盖编排 + 持久化 + 断点续跑(或写清降级策略)。
|
||
3. **能举证**:2 到 3 个“问题 → 根因 → 方案”的案例,优先来自自己在工作中遇到的真实问题(脱敏后)。
|
||
4. **能对标岗位**:简历和面试条目写得像“应用侧 Agent 工程师 / AI 全栈工程师”,而不是“改过公司某个页面”。
|
||
|
||
另外还有两个作品:项目一“团队任务看板”(Go 后端 + Vue 前端)和项目二“RAG 知识库问答”(Python 后端 + React 前端)。
|
||
|
||
任意一条没满足,都不要提前宣布“学完了”。
|
||
|
||
### 非目标(故意不做)
|
||
|
||
- 不以模型预训练、微调为主业。
|
||
- 不把公司业务代码开源,也不整仓搬进作品集。
|
||
- 不深入 Kubernetes、服务网格、多云部署(微服务、消息队列做到“能讲清概念和取舍、跑过最小示例”)。
|
||
|
||
---
|
||
|
||
## 2. 技术栈(已确定)
|
||
|
||
| 用途 | 选择 | 说明 |
|
||
| --- | --- | --- |
|
||
| **求职主语言** | **Python 3.12** | 第 4 周开始,AI 岗位的主要要求 |
|
||
| Python 工具 | uv(主)、pip / poetry(会看)、ruff、pyright、pytest | |
|
||
| Python Web | FastAPI + Uvicorn | 招聘里 FastAPI、Flask 都常见,会一个另一个很快 |
|
||
| RAG | 手写主流程 + LangChain 对照;Chroma(默认),了解 Milvus、pgvector;BM25 混合检索、重排 | |
|
||
| Agent 框架 | **LangGraph**(主),先手写一遍循环理解原理 | 招聘普遍要求 LangChain / LangGraph 实际经验 |
|
||
| 工具与协议 | Function / Tool Calling、MCP | |
|
||
| 低代码平台 | Dify 或 Coze(体验 1~2 天) | 能讲清和写代码的取舍 |
|
||
| 加分语言 | Go + Gin | 第 1~3 周 |
|
||
| 数据库 | PostgreSQL(主学)+ MySQL(差异、索引、事务、隔离级别);SQLite(Agent 项目演示) | 招聘里 MySQL 更多,SQL 大部分通用 |
|
||
| 缓存 / 队列 | Redis(缓存、限流、锁、会话记忆、Streams);RabbitMQ 动手、Kafka 概念 | |
|
||
| 前端 | Vue 3 + React 19 + TypeScript(你的强项),Vite、pnpm monorepo、Vitest | 第 7 周查漏补缺 |
|
||
| 部署 | Docker、Docker Compose、Nginx、Linux 服务器、CI/CD | |
|
||
| AI 编程工具 | Cursor / Cursor CLI / Grok Build | 让 AI 写,你负责设计、审查、调试;简历里也写上 |
|
||
|
||
---
|
||
|
||
## 3. 十六周总路线
|
||
|
||
```text
|
||
第一段 Go 全栈基础(第 1~3 周) → 项目一:团队任务看板(Go + PostgreSQL + Redis + 队列 + Docker)
|
||
第二段 Python、RAG、前端(第 4~7 周) → 项目二:RAG 知识库问答(FastAPI + Chroma + Redis)+ 两个项目的前端
|
||
第三段 Agent 主线(第 8~13 周)
|
||
阶段0 盘点 + 阶段1 读通画图(第 8 周)
|
||
阶段2 五个重点 A~E + 案例卡(第 9 周)
|
||
阶段3 多 Agent 项目(第 10~13 周)★主交付 → 项目三
|
||
第四段 后端补强、包装与求职(第 14~16 周) 阶段4 + 终点验收 + 投递
|
||
```
|
||
|
||
| 周 | 主题 | 产出 | 计划文件 |
|
||
| --- | --- | --- | --- |
|
||
| 1 | Go 基础语法 + Gin 写 REST 接口(内存存储)+ 接前端 | `go-learning/`、`todo-api/` | `week01-go-gin.md` |
|
||
| 2 | PostgreSQL(兼顾 MySQL):表设计、索引、EXPLAIN、迁移、pgx、事务 + 注册登录 JWT | `todo-api/` 用上数据库和鉴权 | `week02-db-auth.md` |
|
||
| 3 | 项目一:看板权限、Redis 缓存 / 限流 / 锁、Redis Streams 队列、Docker + Nginx、CI | `task-board/` | `week03-project1.md` |
|
||
| 4 | Python 速成:uv、类型、pytest、asyncio、pydantic、httpx、FastAPI(依赖注入、中间件、鉴权、SSE) | `py-learning/` | `week04-python.md` |
|
||
| 5 | 项目二(上):手写 RAG——加载、切分、Chroma、检索、带引用生成、接口、流式 | `rag-qa/` 可用 | `week05-rag-1.md` |
|
||
| 6 | 项目二(下):评测、BM25 混合检索、重排、多轮记忆、Redis 缓存、LangChain 对照、Milvus / pgvector、部署 | `rag-qa/` 完成 | `week06-rag-2.md` |
|
||
| 7 | 前端工程化查漏:pnpm monorepo、TS、ESLint / Prettier、SSE、Vue 看板、React 问答、Vite vs Webpack、性能、SSR、Vitest、CI | `web/` | `week07-frontend.md` |
|
||
| 8 | 阶段 0 盘点 + 脱敏钩子 + 阶段 1 读通与画图 | `notes/00`、`notes/01`、`tools/` | `week08-inventory-architecture.md` |
|
||
| 9 | 阶段 2:五个重点 A~E 的小实验 + 案例卡 | `notes/cards/` | `week09-case-cards.md` |
|
||
| 10 | 项目三 M1:手写工具调用循环、手写多 Agent 循环、MCP 服务 | `agent-mini/`(手写版 + MCP) | `week10-agent-m1-tools-mcp.md` |
|
||
| 11 | 项目三 M2:LangGraph 多 Agent 编排、MCP 工具接入 | LangGraph 版跑通 | `week11-agent-m2-langgraph.md` |
|
||
| 12 | 项目三 M3:检查点续跑、interrupt 人机协作、后台作业 + 租约、SSE、长期记忆 | 可演示崩溃恢复 | `week12-agent-m3-persistence.md` |
|
||
| 13 | 项目三 M4:评测集、可观测性、文档和映射表、Docker + Dify / Coze 体验 | 项目三完成 | `week13-agent-m4-eval-lowcode.md` |
|
||
| 14 | 后端补强:RabbitMQ / Kafka、gRPC、Redis 和 MySQL 面试专题、全部项目部署、CI/CD、(可选)Go 网关 | `backend-extend/`、`deploy/` | `week14-backend-extend-deploy.md` |
|
||
| 15 | 阶段 4(上):作品集、简历、STAR 经历、口述稿 | `career/` | `week15-package-resume.md` |
|
||
| 16 | 阶段 4(下):面试笔记、模拟面试、终点验收、投递 | 开始投递 | `week16-interview.md` |
|
||
|
||
精力不够时可以整体拉长,但顺序不要变,也不要跳过验收。
|
||
|
||
---
|
||
|
||
## 4. 岗位要求对照
|
||
|
||
### 调研说明
|
||
|
||
- 来源:智联招聘,2026-10-22 检索“AI Agent开发”和“Go全栈”,共约 17 个岗位。BOSS 直聘需要登录,没有拿到数据。
|
||
- 样本不大,只能看出方向,不代表整个市场。下面只写这次实际看到的内容,没有额外统计数字。建议每过一个月自己再搜一次,更新这一节。
|
||
|
||
### 学历和经验
|
||
|
||
- 学历:约 95% 的岗位写的是“本科”;有 1 个要求统招硕士,1 个标注统招本科;没看到要求 985 / 211 的。
|
||
- 经验:大多要求 3~5 年。
|
||
|
||
### AI Agent 开发岗位(按出现频率从高到低)
|
||
|
||
| 要求 | 本计划在哪一周覆盖 |
|
||
| --- | --- |
|
||
| Python + FastAPI / Flask | 第 4 周;第 5~6、10~13 周项目里持续用 |
|
||
| RAG + 向量数据库(Milvus / Chroma) | 第 5~6 周 项目二(Chroma 实现,Milvus / pgvector 对照) |
|
||
| LangChain、LangGraph(要求实际项目经验) | 第 6 周 LangChain 对照实现;第 11~13 周 LangGraph 多 Agent 项目 |
|
||
| LlamaIndex;Dify / Coze / RAGFlow / FastGPT | 第 6 周了解 LlamaIndex;第 13 周第 6~7 天动手搭 Dify 或 Coze |
|
||
| Function / Tool Calling、MCP | 第 10 周(手写工具调用循环、写 MCP 服务),第 11 周接入 LangGraph |
|
||
| Prompt / Context Engineering、Agent 评测 | 第 5 周(提示词、上下文拼接)、第 6 周(RAG 评测)、第 11 周(调提示词)、第 13 周(Agent 评测、可观测性) |
|
||
| 工作流编排、Memory、多 Agent(加分项) | 第 11 周(编排)、第 6 周(短期记忆)、第 12 周(长期记忆、持久化、人机协作) |
|
||
| Docker、Linux、Git | 第 3 周(Docker、Compose、Nginx、CI),第 6、13、14 周部署;Git 全程 |
|
||
| AI 编程工具(Cursor / Claude Code) | 全程使用;第 10 周把自己的 MCP 服务接进 Cursor |
|
||
| Go / Java(加分项) | 第 1~3 周 Go;第 14 周可选 Go 网关 |
|
||
|
||
### Go 全栈岗位
|
||
|
||
| 要求 | 本计划在哪一周覆盖 |
|
||
| --- | --- |
|
||
| 后端语言多为“Java / Go / Node / Python 任选其一”,很少只要 Go | Go(第 1~3 周)+ Python(第 4 周起),两门都能拿出项目 |
|
||
| React / Vue + TypeScript | 已有强项;第 7 周工程化查漏,两个项目的前端 |
|
||
| MySQL、Redis(PostgreSQL 只出现过一次) | 第 2 周数据库(附 MySQL 差异)、第 3 周 Redis;第 14 周 MySQL / Redis 专题 |
|
||
| 微服务、消息队列 | 第 3 周 Redis Streams 入门;第 14 周 RabbitMQ 动手、Kafka 概念、gRPC |
|
||
| RESTful 接口 | 第 1~3 周 |
|
||
| Docker、CI/CD | 第 3 周、第 14 周 |
|
||
| “AI 全栈”:RAG / 大模型集成 | 第 5~6 周 项目二 |
|
||
|
||
### 岗位要求 → 延伸技术栈
|
||
|
||
招聘里一个词背后往往是一串技术点,面试会顺着问下去。下表是每个要求要准备的延伸内容和学习位置;每周文件里每个知识点都按“解释说明 / 案例 / 代码示例 / 易错点和面试常问”写。
|
||
|
||
| 岗位要求 | 延伸技术栈(要会的) | 在哪一周 |
|
||
| --- | --- | --- |
|
||
| Vue / React | Vite、Webpack(能讲差异和常用配置)、TypeScript 严格模式、Pinia / Vuex、Vue Router / React Router、组件库(Element Plus 按需引入)、SSR 基础(Nuxt / Next.js)、性能优化(拆包、懒加载、虚拟列表)、ESLint / Prettier、pnpm monorepo、Vitest 组件测试 | 第 7 周 |
|
||
| Python | uv / pip / poetry、类型标注(typing、Protocol)、asyncio、pytest(夹具、参数化、异步测试)、pydantic(校验、配置) | 第 4 周,之后全程 |
|
||
| FastAPI | Uvicorn、依赖注入、中间件、鉴权(JWT、HTTPBearer)、生命周期 lifespan、后台任务、SSE、TestClient | 第 4 周第 7 天;第 5、12 周 |
|
||
| RAG | 嵌入(Embedding)、切分(chunking)、重排(reranker)、向量库 Milvus / Chroma / pgvector、BM25 + 向量混合检索(RRF)、评测(Hit@K、MRR、拒答) | 第 5~6 周 |
|
||
| LangChain / LangGraph | LCEL、工具(tools)、记忆(短期:检查点;长期:Store)、checkpointer、interrupt、LangSmith 等可观测性 | 第 6 周(LCEL)、第 11~13 周 |
|
||
| MCP | 传输方式 stdio / Streamable HTTP;三类能力:tools、resources、prompts;客户端调用、接入 Cursor 和 LangGraph | 第 10~11 周 |
|
||
| Docker | Dockerfile 多阶段构建、Compose、Nginx 反向代理(含 SSE 配置)、Linux 常用命令、CI/CD | 第 3 周、第 14 周 |
|
||
| Redis | 五种数据结构和用途、缓存模式(旁路缓存、穿透 / 击穿 / 雪崩)、分布式锁(SET NX PX + Lua 释放)、限流、Streams 消费组 | 第 3 周、第 6 周、第 14 周 |
|
||
| MySQL | 索引(B+ 树、联合索引最左前缀、覆盖索引)、EXPLAIN、事务和隔离级别、MVCC、锁、与 PostgreSQL 的差异 | 第 2 周、第 14 周 |
|
||
| 微服务 / 消息队列 | RabbitMQ(交换机、队列、确认、死信)、Kafka(主题、分区、消费组、位移)概念、幂等消费、gRPC 基础(proto、一元调用、流式) | 第 3 周、第 14 周 |
|
||
|
||
### 对学习重点的影响
|
||
|
||
1. Python 是主语言,Go 是加分项;Go 只用 3 周,做到“能做出一个带数据库、鉴权、缓存、队列、部署的完整项目”为止。
|
||
2. RAG 和 LangChain / LangGraph 是硬要求,单独做成项目二和项目三。
|
||
3. 工具调用、MCP、评测、记忆这些“新要求”都要有能演示的代码,而不是只看过文章。
|
||
4. 前端是差异化优势,第 7 周把工程化短板补齐,两个项目都有像样的界面。
|
||
|
||
---
|
||
|
||
## 5. 学习原则和每周文件的写法
|
||
|
||
1. **每一步都落到文件**:每天都有“学习内容 / 要建的文件 / 运行方式 / 完成标准”。禁止“只看不写”。
|
||
2. **每个知识点四件套**:解释说明(是什么、为什么)→ 案例(用在什么场景)→ 代码示例(最小、能运行)→ 易错点 / 面试常问。
|
||
3. **AI 写,你审**:代码可以让 AI 生成,但每个文件你都要能讲清楚每一行在做什么,面试时这是最大的区分点。
|
||
4. **先手写,再用框架**:RAG 和 Agent 都先手写一遍核心流程,再用 LangChain / LangGraph 重写。
|
||
5. **先有评测,再谈优化**:优化要拿数字说话,数字必须是自己跑出来的。
|
||
6. **以官方文档为准**:LangChain、LangGraph、MCP、Vite 等更新很快。计划里的代码在 2026-10 按当时的版本实际跑过,文件里标了版本和文档链接;你学的时候如果版本变了,以官方文档为准,并把差异记进对应周的笔记。
|
||
7. **边上班边学**:工作日每天 1.5~2 小时,周末多投入一些。不建议裸辞。
|
||
8. **只砍不加**:进度落后时按第 6 节砍范围;新想法记到第 12 节“完成后的下一步”。
|
||
9. **代码和计划都进 Git**:全部推到 `zhuangang` 仓库,换设备直接接着做。
|
||
|
||
---
|
||
|
||
## 6. 时间不够怎么砍
|
||
|
||
按顺序砍,越靠前越先砍:
|
||
|
||
1. 所有标了“可选”的内容:第 14 周 Go 网关、Milvus / pgvector 实现、第 7 周 SSR 动手部分(保留概念)。
|
||
2. 第 14 周的 Kafka 和 gRPC 动手(保留概念表和面试答案),RabbitMQ 只跑一个例子。
|
||
3. 第 7 周:会的部分只做“查漏清单”打勾,不重写;React 问答界面可以简化成一个页面。
|
||
4. 第 3 周的 CI 配置(保留本地脚本)、第 2 周的 MySQL 小练习(保留差异速查表,第 14 周再补)。
|
||
5. 第 13 周 Dify / Coze 压缩为 1 天,只做知识库问答。
|
||
6. **不能砍**:项目二评测、项目三的续跑 / interrupt / SSE、MCP 服务、案例卡、Agent 评测集、简历和口述稿。
|
||
|
||
整体时间不够时,宁可把 16 周拉成 20 周,也不要跳过第 8~13 周。
|
||
|
||
---
|
||
|
||
## 7. 阶段 0~4 和五个学习重点
|
||
|
||
| 阶段 | 周 | 做什么 | 验收要点 |
|
||
| --- | --- | --- | --- |
|
||
| 0 盘点 | 第 8 周前 2 天 | 一句话目标岗位、模块清单(通用名)、A~E 自评 | `notes/00-inventory.md` |
|
||
| 1 读通画图 | 第 8 周 | 架构图、接口职责表、断点标注、状态机 | 能口述主流程;图上标出“关页面时断在哪一层” |
|
||
| 2 案例卡 | 第 9 周 | A~E 每个重点一个小实验 + 案例卡 | 每张卡有“若重做的设计” |
|
||
| 3 项目三 | 第 10~13 周 | 多 Agent 项目 M1~M4 | 崩溃恢复可演示、评测有对比、映射表 ≥ 5 条 |
|
||
| 4 终点 | 第 14~16 周 | 部署、作品集、简历、面试、投递 | 第 14 节清单全部打勾 |
|
||
|
||
**五个学习重点(始终抓住这 5 条)**
|
||
|
||
| # | 重点 | 在工作中的抓手(通用叫法) | 学完应能回答的一句话 |
|
||
| --- | --- | --- | --- |
|
||
| A | 多 Agent 编排 | 链式 / DAG 编排、主角色派活、各角色交付、共识 | “角色怎么分工、什么时候结束、怎么避免同一个任务被跑两次” |
|
||
| B | 状态与权威源 | 草稿 / 作业 / 任务,谁说了算 | “刷新或关页后为什么丢进度,权威数据写在哪” |
|
||
| C | 流式与长任务 | SSE、连接断开处理、浏览器里循环 vs 后台作业 | “为什么编排不该只活在浏览器里” |
|
||
| D | 人机协作 | 意图澄清、等待用户输入、模型切换 | “Agent 什么时候必须停下来问人” |
|
||
| E | 与业务系统集成 | 过程报告、任务状态、鉴权隔离 | “LLM 的结果怎样落到可审计的业务对象上” |
|
||
|
||
项目三里每个重点都有对应的实现(映射表见第 13 周)。
|
||
|
||
---
|
||
|
||
## 8. 案例卡模板(直接复制)
|
||
|
||
每张卡一个文件,放在 `notes/cards/`。仓库里只放脱敏版本。
|
||
|
||
```text
|
||
标题:
|
||
对应重点:A / B / C / D / E
|
||
现象:
|
||
根因(一层):
|
||
根因(系统层,可选):
|
||
当时怎么处理 / 未处理:
|
||
可迁移结论(面试一句):
|
||
若重做的设计:
|
||
关联代码/路径:(私有,只写在 notes/private/ 里,不进仓库)
|
||
日期:
|
||
```
|
||
|
||
优先写成卡的题目(来自你已经遇到过的问题):
|
||
|
||
1. 关掉浏览器后,多轮研讨就停了(编排跑在前端)。
|
||
2. 分析已经进行到第三步,但任务状态还是“未开始”(权威源 / 回写缺失)。
|
||
3. 模型额度或鉴权失败,以及“换模型后恢复”。
|
||
4. 主分支升级后某张表缺字段导致接口 500(应用依赖和数据库迁移)。
|
||
|
||
---
|
||
|
||
## 9. 每周节奏和戒律
|
||
|
||
| 日 | 做什么 |
|
||
| --- | --- |
|
||
| 周一 | 定本周重点(第 8 周以后只选第 7 节中的一条,或一个里程碑) |
|
||
| 周二~周四 | 写代码 / 做实验 / 写案例卡 |
|
||
| 周五 | 验收:本周有没有“可展示的产出”;没有的话,周末只补交付,不学新东西 |
|
||
| 周日 | 30 分钟回顾:对照终点清单调整下一周范围(只砍不加),更新进度记录并 `git push` |
|
||
|
||
每周文件按“第 1 天~第 7 天”走,周五和周日的检查照做。
|
||
|
||
**戒律**
|
||
|
||
- 同一周不同时开“新框架 + 新业务功能 + 新论文”。
|
||
- 公司需求和学习冲突时:学习这边只保“案例卡或项目提交”,不保阅读量。
|
||
- 概念类资料每个重点最多读 1 篇,读完必须写进案例卡或项目文档。
|
||
- 不拿“无状态的聊天界面教程”当主线,最多用来对比“为什么不够”。
|
||
|
||
---
|
||
|
||
## 10. 脱敏和保密
|
||
|
||
- 仓库里**不放**:公司代码片段、公司项目名和仓库名、内网地址和端口、真实接口路径、服务器路径、真实任务 / 客户数据、密钥、截图里的业务内容。
|
||
- 案例卡只写机制:“草稿状态没有回写到任务表”可以写;具体表名、接口路径、字段名不写。
|
||
- 私有细节写在 `notes/private/`(已加入 `.gitignore`),只留在公司电脑上。
|
||
- 项目二、三的文档素材、题目、提示词都用公开或自己写的内容,不复制公司的。
|
||
- 第 8 周会装一个提交前检查钩子 `tools/check_sensitive.py`;每次 `git push` 前再看一眼 `git diff --cached`。
|
||
|
||
---
|
||
|
||
## 11. 简历和投递建议
|
||
|
||
**学历**
|
||
|
||
- 简历上写“本科”,加上学校、专业、起止时间即可。
|
||
- 标了“统招本科”“统招硕士”的岗位也可以投递试试;以项目和经验为重点准备,结果以对方反馈为准。
|
||
- 这次调研没看到要求 985 / 211 的岗位,竞争点主要在项目和经验上。
|
||
|
||
**经验**
|
||
|
||
- 招聘多要求 3~5 年。你有 7 年工作经验:简历里把公司多 Agent 产品的经历写在最前面(做了什么、解决了什么问题),这是“AI 应用经验”,不只是“前端经验”。
|
||
|
||
**项目(简历的重心)**
|
||
|
||
- 项目三(多 Agent)放第一,项目二(RAG)第二,项目一(Go 全栈)第三。
|
||
- 每个项目写:解决什么问题 → 关键设计(用岗位里的关键词:LangGraph、RAG、Chroma、MCP、Tool Calling、评测、Redis、Docker)→ 可验证的结果(评测数字、演示链接、仓库地址)。数字必须是你自己跑出来的,没有就写现象,不要编。
|
||
- 公司经历按 STAR 写三条:编排可靠性、状态权威、业务落地,内容来自案例卡(脱敏)。
|
||
- 技能栏顺序:Python / FastAPI → LangChain / LangGraph / RAG / MCP → 前端(Vue / React / TS / Vite)→ Go → MySQL / PostgreSQL / Redis / 消息队列 → Docker / Linux / Git → AI 编程工具。
|
||
|
||
**投递**
|
||
|
||
- 主投:AI Agent 开发、大模型应用开发、AI 全栈;中小公司、创业团队、AI 应用团队。
|
||
- 兼投:全栈(前端 + Go / Python)。
|
||
- 每个月按第 4 节的方法重新搜一次岗位要求,更新对照表,调整简历关键词。
|
||
|
||
详细做法见 `week15-package-resume.md` 和 `week16-interview.md`。
|
||
|
||
---
|
||
|
||
## 12. 仓库结构、文件清单和换设备
|
||
|
||
### 仓库结构(`zhuangang`)
|
||
|
||
```text
|
||
zhuangang/
|
||
├── .gitignore # 至少包含 notes/private/、.env、*.db、data/、node_modules/、.venv/
|
||
├── README.md # 仓库入口
|
||
├── CONTRIBUTING.md # 内容规范(目录、frontmatter、各类型写法)
|
||
├── catalog.json # 内容目录(tools/build_catalog.py 生成)
|
||
├── schema/ # frontmatter 的 JSON Schema
|
||
├── tools/ # build_catalog.py、run_examples.py、check_sensitive.py
|
||
├── plan/ # 本计划:总纲 + 16 个周文件(见下面的文件清单)
|
||
├── topics/ # 专项学习:<领域>/<技术栈>/ 课程、场景、面试题、示例
|
||
├── scenarios/ # 跨技术栈的企业服务场景
|
||
├── go-learning/ # 第 1 周:Go 语法练习
|
||
├── todo-api/ # 第 1~2 周:Gin 接口 + PostgreSQL + JWT
|
||
├── task-board/ # 第 3 周:项目一后端
|
||
├── py-learning/ # 第 4 周:Python 练习 + FastAPI
|
||
├── rag-qa/ # 第 5~6 周:项目二
|
||
├── web/ # 第 7 周:pnpm monorepo(shared、board-vue、rag-react)
|
||
├── notes/ # 第 8~9 周:盘点、架构图、案例卡(脱敏);低代码体验笔记
|
||
│ ├── cards/
|
||
│ └── private/ # 不进仓库
|
||
├── agent-mini/ # 第 10~13 周:项目三(含 MCP 服务、评测集)
|
||
├── lowcode/ # 第 13 周:Dify / Coze 导出的配置(去掉密钥)
|
||
├── backend-extend/ # 第 14 周:RabbitMQ、gRPC、Redis / MySQL 专题练习
|
||
├── deploy/ # 第 14 周:服务器上的总 Compose、Nginx、部署说明
|
||
└── career/ # 第 15~16 周:简历、口述稿、面试笔记
|
||
```
|
||
|
||
**周计划和专题的关系**:周文件是“日程”——每天做什么、建哪些文件、怎么验收;概念讲解、企业场景和面试题在 `topics/` 和 `scenarios/` 里,周文件开头的“本周相关专题”列出了链接。单独补某个技术栈时直接从 [topics/index.md](../topics/index.md) 进入。
|
||
|
||
### 计划文件清单(`plan/`)
|
||
|
||
| 文件 | 内容 |
|
||
| --- | --- |
|
||
| `README.md` | 本文件:总纲、岗位对照、进度记录、终点清单 |
|
||
| `week01-go-gin.md` | Go 基础 + Gin REST 接口 |
|
||
| `week02-db-auth.md` | PostgreSQL / MySQL + 注册登录 JWT |
|
||
| `week03-project1.md` | 项目一:权限、Redis、队列、Docker、CI |
|
||
| `week04-python.md` | Python 速成 + FastAPI |
|
||
| `week05-rag-1.md` | 项目二(上):手写 RAG |
|
||
| `week06-rag-2.md` | 项目二(下):评测、混合检索、重排、记忆、缓存、LangChain、部署 |
|
||
| `week07-frontend.md` | 前端工程化查漏 + 两个项目的界面 |
|
||
| `week08-inventory-architecture.md` | 阶段 0 + 阶段 1 |
|
||
| `week09-case-cards.md` | 阶段 2:A~E 实验 + 案例卡 |
|
||
| `week10-agent-m1-tools-mcp.md` | 项目三 M1:手写循环 + MCP |
|
||
| `week11-agent-m2-langgraph.md` | 项目三 M2:LangGraph |
|
||
| `week12-agent-m3-persistence.md` | 项目三 M3:续跑、人机协作、后台作业、SSE、记忆 |
|
||
| `week13-agent-m4-eval-lowcode.md` | 项目三 M4:评测、可观测性、文档 + Dify / Coze |
|
||
| `week14-backend-extend-deploy.md` | 消息队列、gRPC、Redis / MySQL 专题、部署、CI/CD |
|
||
| `week15-package-resume.md` | 作品集、简历、口述稿 |
|
||
| `week16-interview.md` | 面试准备、终点验收、投递 |
|
||
|
||
### 换设备后如何继续
|
||
|
||
1. 新设备安装:Git、Go(最新稳定版)、**Node.js 24 LTS** 和 pnpm(第 7 周的组件测试在 Node 20 上会报错)、Docker、Python 3.12 和 uv、编辑器(VS Code 或 Cursor)。
|
||
2. 配好能访问 `git.gozeros.com` 的 SSH 密钥,然后克隆仓库:
|
||
|
||
```bash
|
||
git clone ssh://wsk@git.gozeros.com:30023/wsk/zhuangang.git
|
||
# 如果 SSH 端口连不上(比如在外网),改用 HTTPS:
|
||
git clone https://git.gozeros.com/wsk/zhuangang.git
|
||
cd zhuangang
|
||
```
|
||
|
||
3. **重新装脱敏钩子**(钩子文件不随仓库同步),并在 `notes/private/sensitive-words.txt` 重新写好敏感词清单(不进仓库):
|
||
|
||
```bash
|
||
printf '#!/bin/sh\nexec python3 tools/check_sensitive.py\n' > .git/hooks/pre-commit
|
||
chmod +x .git/hooks/pre-commit
|
||
python3 tools/check_sensitive.py --self-test
|
||
```
|
||
|
||
4. 打开本文件第 13 节,找到上次做到哪周哪天;打开对应周的计划文件,从下一天继续。
|
||
5. Go 项目:在项目目录 `docker compose -f docker-compose.dev.yml up -d` 启动数据库和 Redis,再按项目 README 跑迁移。Python 项目:进入项目目录 `uv sync`,复制 `.env.example` 为 `.env`。前端:`cd web && pnpm install`。
|
||
6. 每天学完:更新进度记录 → `git add` → `git commit` → `git push`。
|
||
|
||
### 完成后的下一步(不属于本计划,完成终点验收后再选一个开新路径)
|
||
|
||
- 更完整的评测体系和线上反馈闭环、成本治理。
|
||
- Java / Spring 或 Go 微服务方向的深入,Kubernetes。
|
||
- 模型微调入门。
|
||
|
||
---
|
||
|
||
## 13. 进度记录
|
||
|
||
### 按周
|
||
|
||
每天学完把对应的 ☐ 改成 ☑。
|
||
|
||
| 周 | 主题 | 计划文件 | 每天 | 计划完成日 | 实际完成日 | 产出路径 | 周验收 |
|
||
| --- | --- | --- | --- | --- | --- | --- | --- |
|
||
| 1 | Go 基础 + Gin | week01-go-gin.md | ☐☐☐☐☐☐☐ | | | go-learning/、todo-api/ | ☐ |
|
||
| 2 | 数据库 + JWT | week02-db-auth.md | ☐☐☐☐☐☐☐ | | | todo-api/ | ☐ |
|
||
| 3 | 项目一 | week03-project1.md | ☐☐☐☐☐☐☐ | | | task-board/ | ☐ |
|
||
| 4 | Python + FastAPI | week04-python.md | ☐☐☐☐☐☐☐ | | | py-learning/ | ☐ |
|
||
| 5 | 项目二(上)手写 RAG | week05-rag-1.md | ☐☐☐☐☐☐☐ | | | rag-qa/ | ☐ |
|
||
| 6 | 项目二(下)评测、优化、部署 | week06-rag-2.md | ☐☐☐☐☐☐☐ | | | rag-qa/ | ☐ |
|
||
| 7 | 前端工程化 | week07-frontend.md | ☐☐☐☐☐☐☐ | | | web/ | ☐ |
|
||
| 8 | 阶段0 盘点 + 阶段1 画图 | week08-inventory-architecture.md | ☐☐☐☐☐☐☐ | | | notes/00、01、tools/ | ☐ |
|
||
| 9 | 阶段2 案例卡 A~E | week09-case-cards.md | ☐☐☐☐☐☐☐ | | | notes/cards/ | ☐ |
|
||
| 10 | 项目三 M1 手写 + MCP | week10-agent-m1-tools-mcp.md | ☐☐☐☐☐☐☐ | | | agent-mini/ | ☐ |
|
||
| 11 | 项目三 M2 LangGraph | week11-agent-m2-langgraph.md | ☐☐☐☐☐☐☐ | | | agent-mini/ | ☐ |
|
||
| 12 | 项目三 M3 续跑、中断、SSE、记忆 | week12-agent-m3-persistence.md | ☐☐☐☐☐☐☐ | | | agent-mini/ | ☐ |
|
||
| 13 | 项目三 M4 评测、文档 + Dify/Coze | week13-agent-m4-eval-lowcode.md | ☐☐☐☐☐☐☐ | | | agent-mini/、lowcode/ | ☐ |
|
||
| 14 | 后端补强 + 部署 | week14-backend-extend-deploy.md | ☐☐☐☐☐☐☐ | | | backend-extend/、deploy/ | ☐ |
|
||
| 15 | 阶段4(上)作品集、简历 | week15-package-resume.md | ☐☐☐☐☐☐☐ | | | career/ | ☐ |
|
||
| 16 | 阶段4(下)面试、验收、投递 | week16-interview.md | ☐☐☐☐☐☐☐ | | | career/ | ☐ |
|
||
|
||
### 按阶段
|
||
|
||
| 阶段 | 计划完成日 | 实际完成日 | 产出路径 | 验收 |
|
||
| --- | --- | --- | --- | --- |
|
||
| 第一段 Go 全栈基础(项目一) | | | task-board/ | ☐ |
|
||
| 第二段 Python + 项目二 + 前端 | | | py-learning/、rag-qa/、web/ | ☐ |
|
||
| 0 盘点 | | | notes/00-inventory.md | ☐ |
|
||
| 1 读通与画图 | | | notes/01-*.md | ☐ |
|
||
| 2 案例卡 | | | notes/cards/ | ☐ |
|
||
| 3 项目三(多 Agent) | | | agent-mini/ | ☐ |
|
||
| 4 终点 | | | career/ | ☐ |
|
||
|
||
**项目三路径**:(阶段 3 完成后填写)
|
||
|
||
### 卡住和收获(每天一句)
|
||
|
||
| 日期 | 周/天 | 一句话收获或卡住的地方 |
|
||
| --- | --- | --- |
|
||
| | | |
|
||
|
||
---
|
||
|
||
## 14. 终点验收清单(全部勾选才算完结)
|
||
|
||
**AI 应用能力**
|
||
- [ ] 项目二:RAG 问答可演示,有评测集和对比结果,README 清楚
|
||
- [ ] 项目三:LangGraph 多 Agent 可演示:启动 → 中途杀进程 → 重启续跑 → 结果可查
|
||
- [ ] 写过 MCP 服务,能讲清 Tool Calling 和 MCP
|
||
- [ ] 项目三有评测集,至少两次对比结果
|
||
- [ ] 搭过 Dify 或 Coze 应用,能讲清和写代码的取舍
|
||
- [ ] 架构图最新版已归档,和项目三 README 一致
|
||
|
||
**全栈能力(加分项)**
|
||
- [ ] 项目一部署过,能讲清分层、鉴权、缓存、限流、消息队列、部署
|
||
- [ ] 能讲清 MySQL 和 PostgreSQL 的主要差异、索引和隔离级别
|
||
- [ ] 前端工程化查漏清单全部打勾
|
||
|
||
**参考文档的终点**
|
||
- [ ] 至少 2 张案例卡可以对外讲(已脱敏)
|
||
- [ ] 口述稿计时不超过 4 分钟,覆盖 A / B / C 中至少两项
|
||
- [ ] 第 1 节“终点”四条全部满足
|
||
|
||
**求职**
|
||
- [ ] 简历按第 11 节更新完成,没有编造的数字
|
||
- [ ] 已开始投递
|
||
- [ ] 写下一句“下一步如果继续学”(第 12 节里选一个),作为新路径,不塞进本计划
|
||
|
||
**完结动作**:把本文件开头的状态改成“已完成(YYYY-MM-DD)”,提交并推送。本路径正式结束。
|