总纲重写:Go 压缩为 3 周、新增岗位要求→延伸技术栈对照、学历建议改为如实写本科、更新进度表和文件清单
This commit is contained in:
1 parent
9917c049c1
commit
3094fe152f
1 file changed
+222
-235
+222
-235
@@ -1,10 +1,10 @@
|
|||||||
# 转岗计划总纲:Python AI 应用 / Agent 开发为主,Go 全栈为辅(16 周)
|
# 转岗计划总纲:Python AI 应用 / Agent 开发为主,Go 全栈为辅(16 周)
|
||||||
|
|
||||||
这是整个计划的入口文件。换了电脑或者隔一段时间回来,先看这份文件的“进度记录”,再打开当前所在周的计划文件继续做。
|
这是整个计划的入口文件。换了电脑或者隔一段时间回来,先看第 13 节“进度记录”,再打开当前所在周的计划文件继续做。
|
||||||
|
|
||||||
**状态**:未开始 / 进行中 / 已完成( )
|
**状态**:未开始 / 进行中 / 已完成( )
|
||||||
**开始日期**:
|
**开始日期**:
|
||||||
**当前所在周**:
|
**当前所在周 / 天**:
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -12,9 +12,9 @@
|
|||||||
|
|
||||||
### 背景
|
### 背景
|
||||||
|
|
||||||
- 7 年 Web 前端(Vue / React),成人本科。
|
- 7 年 Web 前端(Vue / React),本科。
|
||||||
- AI 写代码越来越多,“只会把页面写出来”的价值在下降,需要往“能设计、能交付、能讲清原理”的方向走。
|
- AI 写代码越来越多,“只会把页面写出来”的价值在下降,需要往“能设计、能交付、能讲清原理”的方向走。
|
||||||
- 第 3 节的招聘调研显示:AI Agent 岗位的主语言是 **Python**,Go 多数只是加分项。所以本计划以 **Python + AI 应用**为求职主线,Go 全栈作为基础和加分项。
|
- 第 4 节的招聘调研显示:AI Agent 岗位的主语言是 **Python**,Go 多数只是加分项。所以本计划以 **Python + AI 应用**为求职主线;Go 压缩到 3 周,做出一个完整的全栈项目作为基础和加分项。
|
||||||
|
|
||||||
### 起点(已经具备,不用从零学)
|
### 起点(已经具备,不用从零学)
|
||||||
|
|
||||||
@@ -22,13 +22,13 @@
|
|||||||
- 在公司里接触过真实的多 Agent 产品链路:意图识别 → 多角色研讨 → 总结 / 交付 / 过程报告。
|
- 在公司里接触过真实的多 Agent 产品链路:意图识别 → 多角色研讨 → 总结 / 交付 / 过程报告。
|
||||||
- 踩过真实的生产问题:流式连接断开、模型额度不足、状态没有回写、数据库表结构和代码不一致、关掉页面后编排中断。
|
- 踩过真实的生产问题:流式连接断开、模型额度不足、状态没有回写、数据库表结构和代码不一致、关掉页面后编排中断。
|
||||||
|
|
||||||
这些经历是转岗最大的本钱,后面的计划会把它们整理成“案例卡”,并做成可以公开演示的项目。
|
这些经历是转岗最大的本钱,后面会把它们整理成“案例卡”,并做成可以公开演示的项目(**全部脱敏**,见第 10 节)。
|
||||||
|
|
||||||
### 目标岗位(按优先级)
|
### 目标岗位(按优先级)
|
||||||
|
|
||||||
1. AI Agent 开发 / 大模型应用开发工程师(应用侧)
|
1. AI Agent 开发 / 大模型应用开发工程师(应用侧)
|
||||||
2. AI 全栈工程师(前端 + Python 或 Go 后端 + 大模型集成)
|
2. AI 全栈工程师(前端 + Python 或 Go 后端 + 大模型集成)
|
||||||
3. 全栈工程师(前端 + Go 后端)
|
3. 全栈工程师(前端 + Go / Python 后端)
|
||||||
|
|
||||||
### 终点(4 条必须同时满足,才算这条路径走完)
|
### 终点(4 条必须同时满足,才算这条路径走完)
|
||||||
|
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
3. **能举证**:2 到 3 个“问题 → 根因 → 方案”的案例,优先来自自己在工作中遇到的真实问题(脱敏后)。
|
3. **能举证**:2 到 3 个“问题 → 根因 → 方案”的案例,优先来自自己在工作中遇到的真实问题(脱敏后)。
|
||||||
4. **能对标岗位**:简历和面试条目写得像“应用侧 Agent 工程师 / AI 全栈工程师”,而不是“改过公司某个页面”。
|
4. **能对标岗位**:简历和面试条目写得像“应用侧 Agent 工程师 / AI 全栈工程师”,而不是“改过公司某个页面”。
|
||||||
|
|
||||||
另外还有两个作品:项目一“团队任务看板”(Go 全栈)和项目二“RAG 知识库问答”(Python)。
|
另外还有两个作品:项目一“团队任务看板”(Go 后端 + Vue 前端)和项目二“RAG 知识库问答”(Python 后端 + React 前端)。
|
||||||
|
|
||||||
任意一条没满足,都不要提前宣布“学完了”。
|
任意一条没满足,都不要提前宣布“学完了”。
|
||||||
|
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
|
|
||||||
- 不以模型预训练、微调为主业。
|
- 不以模型预训练、微调为主业。
|
||||||
- 不把公司业务代码开源,也不整仓搬进作品集。
|
- 不把公司业务代码开源,也不整仓搬进作品集。
|
||||||
- 不深入 Kubernetes、微服务治理、运维巡检、多云部署(招聘里提到微服务时,能讲清概念和取舍即可)。
|
- 不深入 Kubernetes、服务网格、多云部署(微服务、消息队列做到“能讲清概念和取舍、跑过最小示例”)。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -53,24 +53,58 @@
|
|||||||
|
|
||||||
| 用途 | 选择 | 说明 |
|
| 用途 | 选择 | 说明 |
|
||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| **求职主语言** | **Python 3.12** | 第 6 周开始,AI 相关岗位的主要要求 |
|
| **求职主语言** | **Python 3.12** | 第 4 周开始,AI 岗位的主要要求 |
|
||||||
| Python Web | FastAPI | 招聘里 FastAPI、Flask 都常见,会一个另一个很快 |
|
| Python 工具 | uv(主)、pip / poetry(会看)、ruff、pyright、pytest | |
|
||||||
| Python 工具 | uv、ruff、pyright、pytest | |
|
| Python Web | FastAPI + Uvicorn | 招聘里 FastAPI、Flask 都常见,会一个另一个很快 |
|
||||||
| RAG | 手写主流程 + LangChain 对照;向量库 Chroma(默认),了解 Milvus、pgvector | 招聘里点名的向量库主要是 Milvus 和 Chroma |
|
| RAG | 手写主流程 + LangChain 对照;Chroma(默认),了解 Milvus、pgvector;BM25 混合检索、重排 | |
|
||||||
| Agent 框架 | **LangGraph**(主),先手写一遍循环理解原理 | 招聘普遍要求 LangChain / LangGraph 实际经验 |
|
| Agent 框架 | **LangGraph**(主),先手写一遍循环理解原理 | 招聘普遍要求 LangChain / LangGraph 实际经验 |
|
||||||
| 工具与协议 | Function / Tool Calling、MCP | |
|
| 工具与协议 | Function / Tool Calling、MCP | |
|
||||||
| 低代码平台 | Dify 或 Coze(体验 1~2 天) | 能讲清和写代码的取舍 |
|
| 低代码平台 | Dify 或 Coze(体验 1~2 天) | 能讲清和写代码的取舍 |
|
||||||
| 加分语言 | Go + Gin | 第 1~5 周,全栈基础 |
|
| 加分语言 | Go + Gin | 第 1~3 周 |
|
||||||
| 数据库 | PostgreSQL(主学)+ MySQL 差异速查;SQLite(Agent 项目演示) | 招聘里 MySQL 更多,SQL 大部分通用 |
|
| 数据库 | PostgreSQL(主学)+ MySQL(差异、索引、事务、隔离级别);SQLite(Agent 项目演示) | 招聘里 MySQL 更多,SQL 大部分通用 |
|
||||||
| Go 数据访问 | sqlc + pgx,golang-migrate 管理迁移 | |
|
| 缓存 / 队列 | Redis(缓存、限流、锁、会话记忆、Streams);RabbitMQ 动手、Kafka 概念 | |
|
||||||
| 缓存 / 队列 | Redis(缓存、限流、会话记忆)、Redis Streams(消息队列入门),了解 RabbitMQ 概念 | |
|
| 前端 | Vue 3 + React 19 + TypeScript(你的强项),Vite、pnpm monorepo、Vitest | 第 7 周查漏补缺 |
|
||||||
| 前端 | React 或 Vue + TypeScript(你的强项) | |
|
| 部署 | Docker、Docker Compose、Nginx、Linux 服务器、CI/CD | |
|
||||||
| 部署 | Docker、Docker Compose、Nginx、Linux 服务器、CI | |
|
|
||||||
| AI 编程工具 | Cursor / Cursor CLI / Grok Build | 让 AI 写,你负责设计、审查、调试;简历里也写上 |
|
| AI 编程工具 | Cursor / Cursor CLI / Grok Build | 让 AI 写,你负责设计、审查、调试;简历里也写上 |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 3. 岗位要求对照
|
## 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. 岗位要求对照
|
||||||
|
|
||||||
### 调研说明
|
### 调研说明
|
||||||
|
|
||||||
@@ -79,183 +113,102 @@
|
|||||||
|
|
||||||
### 学历和经验
|
### 学历和经验
|
||||||
|
|
||||||
- 学历:约 95% 的岗位写的是“本科”;只有 1 个要求统招硕士,1 个标注统招本科;没看到要求 985 / 211 的。
|
- 学历:约 95% 的岗位写的是“本科”;有 1 个要求统招硕士,1 个标注统招本科;没看到要求 985 / 211 的。
|
||||||
- 经验:大多要求 3~5 年。
|
- 经验:大多要求 3~5 年。
|
||||||
|
|
||||||
### AI Agent 开发岗位(按出现频率从高到低)
|
### AI Agent 开发岗位(按出现频率从高到低)
|
||||||
|
|
||||||
| 要求 | 本计划在哪一周覆盖 |
|
| 要求 | 本计划在哪一周覆盖 |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| Python + FastAPI / Flask | 第 6 周(Python、FastAPI),第 7~8、11~14 周项目里持续用 |
|
| Python + FastAPI / Flask | 第 4 周;第 5~6、10~13 周项目里持续用 |
|
||||||
| RAG + 向量数据库(Milvus / Chroma) | 第 7~8 周 项目二(Chroma 实现,Milvus / pgvector 对比和可选实现) |
|
| RAG + 向量数据库(Milvus / Chroma) | 第 5~6 周 项目二(Chroma 实现,Milvus / pgvector 对照) |
|
||||||
| LangChain、LangGraph(要求实际项目经验) | 第 8 周第 5 天 LangChain 重写 RAG;第 12~14 周 LangGraph 多 Agent 项目 |
|
| LangChain、LangGraph(要求实际项目经验) | 第 6 周 LangChain 对照实现;第 11~13 周 LangGraph 多 Agent 项目 |
|
||||||
| LlamaIndex;Dify / Coze / RAGFlow / FastGPT | 第 8 周了解 LlamaIndex;第 14 周第 6~7 天动手搭 Dify 或 Coze,其余看文档 |
|
| LlamaIndex;Dify / Coze / RAGFlow / FastGPT | 第 6 周了解 LlamaIndex;第 13 周第 6~7 天动手搭 Dify 或 Coze |
|
||||||
| Function / Tool Calling、MCP | 第 11 周(手写工具调用循环、写 MCP 服务) |
|
| Function / Tool Calling、MCP | 第 10 周(手写工具调用循环、写 MCP 服务),第 11 周接入 LangGraph |
|
||||||
| Prompt / Context Engineering、Agent 评测 | 第 7 周(提示词、上下文拼接)、第 8 周(RAG 评测集)、第 12 周(提示词迭代)、第 14 周(Agent 评测集) |
|
| Prompt / Context Engineering、Agent 评测 | 第 5 周(提示词、上下文拼接)、第 6 周(RAG 评测)、第 11 周(调提示词)、第 13 周(Agent 评测、可观测性) |
|
||||||
| 工作流编排、Memory、多 Agent(加分项) | 第 12 周(LangGraph 编排)、第 8 周(短期记忆)、第 13 周(长期记忆、持久化、人机协作) |
|
| 工作流编排、Memory、多 Agent(加分项) | 第 11 周(编排)、第 6 周(短期记忆)、第 12 周(长期记忆、持久化、人机协作) |
|
||||||
| Docker、Linux、Git | 第 5 周(Docker、Compose、部署、CI),第 8、14、15 周部署 AI 项目;Git 全程 |
|
| Docker、Linux、Git | 第 3 周(Docker、Compose、Nginx、CI),第 6、13、14 周部署;Git 全程 |
|
||||||
| AI 编程工具(Cursor / Claude Code) | 全程使用;第 11 周把自己的 MCP 服务接进 Cursor;简历里写清工作流 |
|
| AI 编程工具(Cursor / Claude Code) | 全程使用;第 10 周把自己的 MCP 服务接进 Cursor |
|
||||||
| Go / Java(加分项) | 第 1~5 周 Go |
|
| Go / Java(加分项) | 第 1~3 周 Go;第 14 周可选 Go 网关 |
|
||||||
|
|
||||||
### Go 全栈岗位
|
### Go 全栈岗位
|
||||||
|
|
||||||
| 要求 | 本计划在哪一周覆盖 |
|
| 要求 | 本计划在哪一周覆盖 |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| 后端语言多为“Java / Go / Node / Python 任选其一”,很少只要 Go | Go(第 1~5 周)+ Python(第 6 周起),两门都能拿出项目 |
|
| 后端语言多为“Java / Go / Node / Python 任选其一”,很少只要 Go | Go(第 1~3 周)+ Python(第 4 周起),两门都能拿出项目 |
|
||||||
| React / Vue + TypeScript | 已有强项;第 2、4、7 周项目里的前端 |
|
| React / Vue + TypeScript | 已有强项;第 7 周工程化查漏,两个项目的前端 |
|
||||||
| MySQL、Redis(PostgreSQL 只出现过一次) | 第 3 周数据库(附 MySQL 差异和练习)、第 5 周 Redis |
|
| MySQL、Redis(PostgreSQL 只出现过一次) | 第 2 周数据库(附 MySQL 差异)、第 3 周 Redis;第 14 周 MySQL / Redis 专题 |
|
||||||
| 微服务、消息队列 | 第 5 周消息队列入门(Redis Streams,了解 RabbitMQ);微服务只讲概念 |
|
| 微服务、消息队列 | 第 3 周 Redis Streams 入门;第 14 周 RabbitMQ 动手、Kafka 概念、gRPC |
|
||||||
| RESTful 接口 | 第 2、4 周 |
|
| RESTful 接口 | 第 1~3 周 |
|
||||||
| Docker、CI/CD | 第 5 周 |
|
| Docker、CI/CD | 第 3 周、第 14 周 |
|
||||||
| “AI 全栈”:RAG / 大模型集成 | 第 7~8 周 项目二 |
|
| “AI 全栈”:RAG / 大模型集成 | 第 5~6 周 项目二 |
|
||||||
| Gin、Kubernetes | 招聘里没有点名;Gin 作为学习用框架保留,Kubernetes 不学 |
|
|
||||||
|
### 岗位要求 → 延伸技术栈
|
||||||
|
|
||||||
|
招聘里一个词背后往往是一串技术点,面试会顺着问下去。下表是每个要求要准备的延伸内容和学习位置;每周文件里每个知识点都按“解释说明 / 案例 / 代码示例 / 易错点和面试常问”写。
|
||||||
|
|
||||||
|
| 岗位要求 | 延伸技术栈(要会的) | 在哪一周 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| 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 是加分项;第 1~5 周的 Go 只学到“能做出一个带缓存、队列、部署的完整项目”为止。
|
1. Python 是主语言,Go 是加分项;Go 只用 3 周,做到“能做出一个带数据库、鉴权、缓存、队列、部署的完整项目”为止。
|
||||||
2. RAG 和 LangChain / LangGraph 是硬要求,单独做成项目二和项目三。
|
2. RAG 和 LangChain / LangGraph 是硬要求,单独做成项目二和项目三。
|
||||||
3. 工具调用、MCP、评测、记忆这些“新要求”都要有能演示的代码,而不是只看过文章。
|
3. 工具调用、MCP、评测、记忆这些“新要求”都要有能演示的代码,而不是只看过文章。
|
||||||
4. 数据库按 PostgreSQL 学,但要能说清和 MySQL 的差异。
|
4. 前端是差异化优势,第 7 周把工程化短板补齐,两个项目都有像样的界面。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 4. 学习原则
|
## 5. 学习原则和每周文件的写法
|
||||||
|
|
||||||
1. **每一步都落到文件**:每天的任务都有明确要建的文件和完成标准;每周至少有一个能运行的提交或一页笔记。禁止“只看不写”。
|
1. **每一步都落到文件**:每天都有“学习内容 / 要建的文件 / 运行方式 / 完成标准”。禁止“只看不写”。
|
||||||
2. **AI 写,你审**:代码可以让 AI 生成,但每个文件你都要能讲清楚每一行在做什么,面试时这是最大的区分点。
|
2. **每个知识点四件套**:解释说明(是什么、为什么)→ 案例(用在什么场景)→ 代码示例(最小、能运行)→ 易错点 / 面试常问。
|
||||||
3. **先手写,再用框架**:RAG 和 Agent 都是先手写一遍核心流程,再用 LangChain / LangGraph 重写,两种都能讲。
|
3. **AI 写,你审**:代码可以让 AI 生成,但每个文件你都要能讲清楚每一行在做什么,面试时这是最大的区分点。
|
||||||
4. **先有评测,再谈优化**:RAG 和 Agent 都有自己的小评测集,优化要拿数字说话(数字必须是自己跑出来的)。
|
4. **先手写,再用框架**:RAG 和 Agent 都先手写一遍核心流程,再用 LangChain / LangGraph 重写。
|
||||||
5. **边上班边学**:工作日每天 1.5 到 2 小时,周末多投入一些。不建议裸辞。
|
5. **先有评测,再谈优化**:优化要拿数字说话,数字必须是自己跑出来的。
|
||||||
6. **代码和计划都进 Git**:全部推到 `zhuangang` 仓库,换设备直接接着做。
|
6. **以官方文档为准**:LangChain、LangGraph、MCP、Vite 等更新很快。计划里的代码在 2026-10 按当时的版本实际跑过,文件里标了版本和文档链接;你学的时候如果版本变了,以官方文档为准,并把差异记进对应周的笔记。
|
||||||
7. **只砍不加**:进度落后时砍范围,不加新内容;新想法记到第 11 节“完成后的下一步”。
|
7. **边上班边学**:工作日每天 1.5~2 小时,周末多投入一些。不建议裸辞。
|
||||||
8. **脱敏**:公司代码、内网地址、真实任务数据、密钥、客户名,一律不进仓库(详见第 9 节)。
|
8. **只砍不加**:进度落后时按第 6 节砍范围;新想法记到第 12 节“完成后的下一步”。
|
||||||
|
9. **代码和计划都进 Git**:全部推到 `zhuangang` 仓库,换设备直接接着做。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 5. 十六周总路线
|
## 6. 时间不够怎么砍
|
||||||
|
|
||||||
```text
|
按顺序砍,越靠前越先砍:
|
||||||
第一段 Go 全栈基础(第 1~5 周) → 项目一:团队任务看板(Go + Redis + 消息队列 + Docker)
|
|
||||||
第二段 Python 与 AI 应用(第 6~8 周) → 项目二:RAG 知识库问答(FastAPI + Chroma + Redis)
|
|
||||||
第三段 Agent 主线(第 9~14 周)
|
|
||||||
阶段0 盘点 + 阶段1 读通画图(第 9 周)
|
|
||||||
阶段2 五个重点 A~E + 案例卡(第 10 周)
|
|
||||||
阶段3 多 Agent 项目(第 11~14 周)★主交付 → 项目三
|
|
||||||
第四段 包装与求职(第 15~16 周) 阶段4 + 终点验收 + 投递
|
|
||||||
```
|
|
||||||
|
|
||||||
| 周 | 主题 | 产出 | 计划文件 |
|
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 和五个学习重点
|
||||||
|
|
||||||
|
| 阶段 | 周 | 做什么 | 验收要点 |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
| 1 | Go 基础语法 | 命令行任务清单 `todo` | `week01-go-basics.md` |
|
| 0 盘点 | 第 8 周前 2 天 | 一句话目标岗位、模块清单(通用名)、A~E 自评 | `notes/00-inventory.md` |
|
||||||
| 2 | Gin 写 HTTP 接口 + 接前端 | 任务清单 Web 版 | `week02-gin-api.md` |
|
| 1 读通画图 | 第 8 周 | 架构图、接口职责表、断点标注、状态机 | 能口述主流程;图上标出“关页面时断在哪一层” |
|
||||||
| 3 | PostgreSQL、SQL、迁移、sqlc、事务 + MySQL 差异 | 任务清单改用数据库 | `week03-postgresql.md` |
|
| 2 案例卡 | 第 9 周 | A~E 每个重点一个小实验 + 案例卡 | 每张卡有“若重做的设计” |
|
||||||
| 4 | 项目一(上):注册登录、JWT、权限、前端 | 团队任务看板功能主体 | `week04-auth-project1.md` |
|
| 3 项目三 | 第 10~13 周 | 多 Agent 项目 M1~M4 | 崩溃恢复可演示、评测有对比、映射表 ≥ 5 条 |
|
||||||
| 5 | 项目一(下):Redis 缓存限流、消息队列入门、Docker 部署、CI | 项目一部署上线 | `week05-project1-redis-docker.md` |
|
| 4 终点 | 第 14~16 周 | 部署、作品集、简历、面试、投递 | 第 14 节清单全部打勾 |
|
||||||
| 6 | Python 速成(asyncio、pydantic、httpx、FastAPI、SSE) | `py-learning/` | `week06-python-basics.md` |
|
|
||||||
| 7 | 项目二(上):手写 RAG 主流程 + 接口 + 前端 | RAG 问答可用 | `rag-project.md` |
|
|
||||||
| 8 | 项目二(下):评测、混合检索、记忆、Redis、LangChain 对照、部署 | RAG 项目完成 | `rag-project.md` |
|
|
||||||
| 9 | 阶段 0 盘点 + 阶段 1 读通与画图 | `notes/00`、`notes/01` | 本文第 6 节 |
|
|
||||||
| 10 | 阶段 2:五个重点 A~E + 案例卡 | `notes/cards/` | 本文第 6 节 |
|
|
||||||
| 11 | 项目三 M1:手写循环 + Tool Calling + MCP | 手写版 + MCP 服务 | `agent-mini-project.md` |
|
|
||||||
| 12 | 项目三 M2:LangGraph 多 Agent 编排 | LangGraph 版跑通 | `agent-mini-project.md` |
|
|
||||||
| 13 | 项目三 M3:检查点续跑、interrupt、后台作业、SSE、长期记忆 | 可演示崩溃恢复 | `agent-mini-project.md` |
|
|
||||||
| 14 | 项目三 M4:评测集、文档、映射表 + Dify / Coze 体验 | 项目三完成 | `agent-mini-project.md` |
|
|
||||||
| 15 | 阶段 4(上):部署作品、整理作品集、简历、口述稿 | `career/` | 本文第 6 节 |
|
|
||||||
| 16 | 阶段 4(下):面试准备、终点验收、投递 | 开始投递 | 本文第 6 节 |
|
|
||||||
|
|
||||||
精力不够时可以再拉长,但顺序不要变,也不要跳过验收。
|
**五个学习重点(始终抓住这 5 条)**
|
||||||
|
|
||||||
### 时间不够时怎么砍(按顺序,越靠前越先砍)
|
|
||||||
|
|
||||||
1. 所有标了“可选”的内容(Milvus / pgvector 实现、Go 网关、`todo_server`、前端重写)。
|
|
||||||
2. 第 5 周的 CI 配置(保留本地脚本)、第 3 周 MySQL 小练习(保留差异速查表)。
|
|
||||||
3. 第 1 周第 6 天的并发练习压缩为半天(第 6 周 asyncio 会再讲并发)。
|
|
||||||
4. **不能砍**:RAG 评测、LangGraph 项目的续跑和 SSE、MCP 服务、案例卡、Agent 评测集。
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 6. 第 9~10 周和第 15~16 周的具体安排
|
|
||||||
|
|
||||||
(第 1~8 周和第 11~14 周见各自的计划文件,这里是没有单独文件的几周。)
|
|
||||||
|
|
||||||
### 第 9 周:阶段 0 盘点(前 2 天)+ 阶段 1 读通与画图(后 5 天)
|
|
||||||
|
|
||||||
**阶段 0 做什么**
|
|
||||||
|
|
||||||
1. 写下一句话目标岗位(参考第 3 节)。
|
|
||||||
2. 列出自己在公司亲自改过、排查过的模块(只写通用名字,例如“前端多 Agent 研讨模块”“Agent 网关的作业接口”)。
|
|
||||||
3. 按第 7 节 A~E 五个重点,填一张“已会 / 模糊 / 不会”三列对照表。
|
|
||||||
4. 确认项目三技术栈:Python + LangGraph(主)+ 先手写循环(已定)。
|
|
||||||
|
|
||||||
文件:`notes/00-inventory.md`
|
|
||||||
|
|
||||||
阶段 0 验收:
|
|
||||||
- [ ] 一句话目标岗位已写下
|
|
||||||
- [ ] A~E 的“已会 / 模糊 / 不会”三列填完
|
|
||||||
- [ ] 项目三技术栈已确认
|
|
||||||
|
|
||||||
**阶段 1 做什么**(重点 A 编排 + B 权威源,先建立全局地图,再钻细节)
|
|
||||||
|
|
||||||
按优先级读公司项目里这几块(在公司电脑上读,笔记只写机制):
|
|
||||||
|
|
||||||
| 优先级 | 要读的模块(通用叫法) | 要搞清的问题 |
|
|
||||||
| --- | --- | --- |
|
|
||||||
| P0 | 前端的多 Agent 功能:意图、多席研讨、草稿、作业 | 几个步骤怎么串起来,谁发起 SSE |
|
|
||||||
| P0 | 前端的会话与交付模块 | 会话状态和交付状态分别存在哪 |
|
|
||||||
| P0 | Agent 网关里多 Agent、意图、作业、草稿相关的接口 | 服务端是“单轮调用”还是“后台作业”;用了什么框架、检查点存在哪 |
|
|
||||||
| P1 | 前端对 Agent 网关的接口契约清单 | 前后端到底约定了哪些接口 |
|
|
||||||
| P2 | 团队里关于“后台挂起 / 后台作业”的设计文档(如果有) | 理想架构和现状差在哪 |
|
|
||||||
|
|
||||||
产出:
|
|
||||||
1. **一张图**(mermaid):用户 → 前端 → Agent 网关 → 草稿 / 作业 / 业务库。文件 `notes/01-architecture.md`
|
|
||||||
2. **一张表**:关键接口(初始化、运行并流式返回、草稿、作业、会话)各自职责。文件 `notes/01-api-table.md`(只写职责,不写真实路径和内网地址)
|
|
||||||
|
|
||||||
阶段 1 验收:
|
|
||||||
- [ ] 不看代码能口述多 Agent 功能的主流程
|
|
||||||
- [ ] 图上标出:**关掉浏览器时,流程断在哪一层**
|
|
||||||
- [ ] 指出至少一处“状态双写或权威来源不清”的位置
|
|
||||||
|
|
||||||
### 第 10 周:阶段 2 五个重点深挖 + 案例卡
|
|
||||||
|
|
||||||
每个重点做一个实验(二选一即可),产出一张案例卡(模板见第 8 节):
|
|
||||||
|
|
||||||
| 天 | 重点 | 必做实验 | 产出 |
|
|
||||||
| --- | --- | --- | --- |
|
|
||||||
| 1~2 | A 多 Agent 编排 | 跟一次完整的多 Agent 流程(或用联调桩),记录派活顺序和结束(共识)条件 | `notes/cards/A-orchestration.md` |
|
|
||||||
| 2~3 | C 流式与长任务 | 故意断网或关页面,记录“单轮继续”和“整个循环停掉”的区别 | `notes/cards/C-streaming.md` |
|
|
||||||
| 4 | B 状态与权威源 | 对比草稿数据和任务 / 过程报告,找出哪些没有回写 | `notes/cards/B-source-of-truth.md` |
|
|
||||||
| 5 | D 人机协作 | 走一遍“需要澄清”或“换模型失败 → 恢复” | `notes/cards/D-human-in-loop.md` |
|
|
||||||
| 6 | E 与业务系统集成 | 跟一次过程报告 / 任务状态:LLM 结果怎样变成业务记录 | `notes/cards/E-integration.md`(可以和 B 合并,但五个重点都要覆盖) |
|
|
||||||
| 7 | 回顾 | 把每张卡的“若重做的设计”汇总成清单,作为项目三的设计输入 | `notes/cards/README.md` |
|
|
||||||
|
|
||||||
一周写五张卡比较紧,写不完的在第 11~13 周每周五补一张,但第 14 周前必须写完。
|
|
||||||
|
|
||||||
阶段 2 验收:
|
|
||||||
- [ ] A~E 每个重点至少一张案例卡
|
|
||||||
- [ ] 每张卡都写了“若重做,我会怎样设计”
|
|
||||||
|
|
||||||
### 第 15 周:阶段 4(上)作品上线和简历
|
|
||||||
|
|
||||||
1. **部署**:项目二、项目三用 Docker Compose 部署到你的服务器;有域名的话配上 HTTPS(Nginx + 证书),没有就保证内网可访问并录好演示视频。
|
|
||||||
2. **作品集整理**:把 `task-board/`、`rag-qa/`、`agent-mini/` 各自同步到公开的 GitHub 仓库(再做一遍脱敏检查),README 顶部放演示动图。
|
|
||||||
3. **简历**(`career/resume.md`),按第 10 节的建议写。
|
|
||||||
4. **口述稿**(`career/pitch.md`):3 分钟架构 + 1 分钟“踩过的最大坑”,计时练习,总长不超过 4 分钟,覆盖 A / B / C 中至少两项。
|
|
||||||
5. 有余力再做 `agent-mini-project.md` 末尾的可选扩展(Go 网关或前端重写)。
|
|
||||||
|
|
||||||
### 第 16 周:阶段 4(下)面试准备、终点验收、投递
|
|
||||||
|
|
||||||
1. 面试笔记 `career/interview-notes.md`,每个主题写“一句话答案 + 我的项目里怎么用的”:
|
|
||||||
- Python:asyncio、类型标注、pydantic、FastAPI。
|
|
||||||
- RAG:切分、向量检索、混合检索、重排、评测指标、拒答。
|
|
||||||
- Agent:工具调用、MCP、LangGraph 的状态 / 检查点 / 中断、记忆、多 Agent 编排、评测、常见失败和处理。
|
|
||||||
- 后端:数据库索引和事务、MySQL 与 PostgreSQL 差异、Redis 缓存问题、消息队列的幂等、Docker。
|
|
||||||
- Go(加分项):goroutine / channel、接口、错误处理。
|
|
||||||
2. 对照第 1 节“终点”四条和第 13 节终点验收清单打勾;缺哪条补哪条,**不开新需求**。
|
|
||||||
3. 开始投递(策略见第 10 节),每次面试后把被问到的问题补进面试笔记。
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 7. 五个学习重点(始终抓住这 5 条)
|
|
||||||
|
|
||||||
| # | 重点 | 在工作中的抓手(通用叫法) | 学完应能回答的一句话 |
|
| # | 重点 | 在工作中的抓手(通用叫法) | 学完应能回答的一句话 |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
@@ -265,7 +218,7 @@
|
|||||||
| D | 人机协作 | 意图澄清、等待用户输入、模型切换 | “Agent 什么时候必须停下来问人” |
|
| D | 人机协作 | 意图澄清、等待用户输入、模型切换 | “Agent 什么时候必须停下来问人” |
|
||||||
| E | 与业务系统集成 | 过程报告、任务状态、鉴权隔离 | “LLM 的结果怎样落到可审计的业务对象上” |
|
| E | 与业务系统集成 | 过程报告、任务状态、鉴权隔离 | “LLM 的结果怎样落到可审计的业务对象上” |
|
||||||
|
|
||||||
项目三里每个重点都有对应的实现(见 `agent-mini-project.md` 的映射表)。
|
项目三里每个重点都有对应的实现(映射表见第 13 周)。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -295,16 +248,16 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 9. 每周节奏、戒律和脱敏
|
## 9. 每周节奏和戒律
|
||||||
|
|
||||||
| 日 | 做什么 |
|
| 日 | 做什么 |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| 周一 | 定本周重点(第 9 周以后只选第 7 节中的一条,或一个里程碑) |
|
| 周一 | 定本周重点(第 8 周以后只选第 7 节中的一条,或一个里程碑) |
|
||||||
| 周二~周四 | 写代码 / 做实验 / 写案例卡 |
|
| 周二~周四 | 写代码 / 做实验 / 写案例卡 |
|
||||||
| 周五 | 验收:本周有没有“可展示的产出”;没有的话,周末只补交付,不学新东西 |
|
| 周五 | 验收:本周有没有“可展示的产出”;没有的话,周末只补交付,不学新东西 |
|
||||||
| 周日 | 30 分钟回顾:对照终点清单调整下一周范围(只砍不加),更新进度记录并 `git push` |
|
| 周日 | 30 分钟回顾:对照终点清单调整下一周范围(只砍不加),更新进度记录并 `git push` |
|
||||||
|
|
||||||
有计划文件的周按文件里的“第 1 天~第 7 天”走,周五和周日的检查照做。
|
每周文件按“第 1 天~第 7 天”走,周五和周日的检查照做。
|
||||||
|
|
||||||
**戒律**
|
**戒律**
|
||||||
|
|
||||||
@@ -313,70 +266,98 @@
|
|||||||
- 概念类资料每个重点最多读 1 篇,读完必须写进案例卡或项目文档。
|
- 概念类资料每个重点最多读 1 篇,读完必须写进案例卡或项目文档。
|
||||||
- 不拿“无状态的聊天界面教程”当主线,最多用来对比“为什么不够”。
|
- 不拿“无状态的聊天界面教程”当主线,最多用来对比“为什么不够”。
|
||||||
|
|
||||||
**脱敏和保密**
|
---
|
||||||
|
|
||||||
- 仓库里**不放**:公司代码片段、内网地址和端口、真实接口路径、真实任务 / 客户数据、密钥、截图里的业务内容。
|
## 10. 脱敏和保密
|
||||||
|
|
||||||
|
- 仓库里**不放**:公司代码片段、公司项目名和仓库名、内网地址和端口、真实接口路径、服务器路径、真实任务 / 客户数据、密钥、截图里的业务内容。
|
||||||
- 案例卡只写机制:“草稿状态没有回写到任务表”可以写;具体表名、接口路径、字段名不写。
|
- 案例卡只写机制:“草稿状态没有回写到任务表”可以写;具体表名、接口路径、字段名不写。
|
||||||
- 私有细节写在 `notes/private/`(已加入 `.gitignore`),只留在公司电脑上。
|
- 私有细节写在 `notes/private/`(已加入 `.gitignore`),只留在公司电脑上。
|
||||||
- 项目二、三的文档素材、题目、提示词都用公开或自己写的内容,不复制公司的。
|
- 项目二、三的文档素材、题目、提示词都用公开或自己写的内容,不复制公司的。
|
||||||
- 每次 `git push` 前看一眼 `git diff --cached`。
|
- 第 8 周会装一个提交前检查钩子 `tools/check_sensitive.py`;每次 `git push` 前再看一眼 `git diff --cached`。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 10. 简历和投递建议
|
## 11. 简历和投递建议
|
||||||
|
|
||||||
**学历**
|
**学历**
|
||||||
- 成人本科满足这次调研里绝大多数岗位的“本科”要求。简历上如实写“本科”和学校、专业、时间,不需要主动标注学习形式,但**也不要写成统招**;面试被问到时如实回答。
|
|
||||||
- 标了“统招本科”“统招硕士”的岗位直接跳过,不浪费时间。
|
- 简历上写“本科”,加上学校、专业、起止时间即可。
|
||||||
- 没看到要求 985 / 211 的岗位,所以竞争点在项目和经验上。
|
- 标了“统招本科”“统招硕士”的岗位也可以投递试试;以项目和经验为重点准备,结果以对方反馈为准。
|
||||||
|
- 这次调研没看到要求 985 / 211 的岗位,竞争点主要在项目和经验上。
|
||||||
|
|
||||||
**经验**
|
**经验**
|
||||||
- 招聘多要求 3~5 年。你有 7 年工作经验,只是方向是前端:简历里把公司多 Agent 产品的经历写在最前面(你做了什么、解决了什么问题),这是“AI 应用经验”,不只是“前端经验”。
|
|
||||||
|
- 招聘多要求 3~5 年。你有 7 年工作经验:简历里把公司多 Agent 产品的经历写在最前面(做了什么、解决了什么问题),这是“AI 应用经验”,不只是“前端经验”。
|
||||||
|
|
||||||
**项目(简历的重心)**
|
**项目(简历的重心)**
|
||||||
|
|
||||||
- 项目三(多 Agent)放第一,项目二(RAG)第二,项目一(Go 全栈)第三。
|
- 项目三(多 Agent)放第一,项目二(RAG)第二,项目一(Go 全栈)第三。
|
||||||
- 每个项目写:解决什么问题 → 关键设计(用岗位里的关键词:LangGraph、RAG、Chroma、MCP、Tool Calling、评测、Redis、Docker)→ 可验证的结果(评测数字、演示链接、仓库地址)。数字必须是你自己跑出来的,没有就写现象,不要编。
|
- 每个项目写:解决什么问题 → 关键设计(用岗位里的关键词:LangGraph、RAG、Chroma、MCP、Tool Calling、评测、Redis、Docker)→ 可验证的结果(评测数字、演示链接、仓库地址)。数字必须是你自己跑出来的,没有就写现象,不要编。
|
||||||
- 公司经历按 STAR 写三条:编排可靠性、状态权威、业务落地,内容来自案例卡(脱敏)。
|
- 公司经历按 STAR 写三条:编排可靠性、状态权威、业务落地,内容来自案例卡(脱敏)。
|
||||||
- 技能栏顺序:Python / FastAPI → LangChain / LangGraph / RAG / MCP → 前端(Vue / React / TS)→ Go → 数据库和中间件 → Docker / Linux / Git → AI 编程工具。
|
- 技能栏顺序:Python / FastAPI → LangChain / LangGraph / RAG / MCP → 前端(Vue / React / TS / Vite)→ Go → MySQL / PostgreSQL / Redis / 消息队列 → Docker / Linux / Git → AI 编程工具。
|
||||||
|
|
||||||
**投递**
|
**投递**
|
||||||
|
|
||||||
- 主投:AI Agent 开发、大模型应用开发、AI 全栈;中小公司、创业团队、AI 应用团队。
|
- 主投:AI Agent 开发、大模型应用开发、AI 全栈;中小公司、创业团队、AI 应用团队。
|
||||||
- 兼投:全栈(前端 + Go / Python)。
|
- 兼投:全栈(前端 + Go / Python)。
|
||||||
- 每个月按第 3 节的方法重新搜一次岗位要求,更新对照表,调整简历关键词。
|
- 每个月按第 4 节的方法重新搜一次岗位要求,更新对照表,调整简历关键词。
|
||||||
|
|
||||||
|
详细做法见 `week15-package-resume.md` 和 `week16-interview.md`。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 11. 仓库结构(`zhuangang`)和换设备
|
## 12. 仓库结构、文件清单和换设备
|
||||||
|
|
||||||
```
|
### 仓库结构(`zhuangang`)
|
||||||
|
|
||||||
|
```text
|
||||||
zhuangang/
|
zhuangang/
|
||||||
├── .gitignore # 至少包含 notes/private/、.env、*.db、data/、node_modules/、.venv/
|
├── .gitignore # 至少包含 notes/private/、.env、*.db、data/、node_modules/、.venv/
|
||||||
├── plan/ # 本计划文件夹
|
├── README.md
|
||||||
│ ├── README.md
|
├── plan/ # 本计划(见下面的文件清单)
|
||||||
│ ├── week01-go-basics.md
|
├── go-learning/ # 第 1 周:Go 语法练习
|
||||||
│ ├── week02-gin-api.md
|
├── todo-api/ # 第 1~2 周:Gin 接口 + PostgreSQL + JWT
|
||||||
│ ├── week03-postgresql.md
|
├── task-board/ # 第 3 周:项目一后端
|
||||||
│ ├── week04-auth-project1.md
|
├── py-learning/ # 第 4 周:Python 练习 + FastAPI
|
||||||
│ ├── week05-project1-redis-docker.md
|
├── rag-qa/ # 第 5~6 周:项目二
|
||||||
│ ├── week06-python-basics.md
|
├── web/ # 第 7 周:pnpm monorepo(shared、board-vue、rag-react)
|
||||||
│ ├── rag-project.md
|
├── tools/ # 第 8 周:check_sensitive.py(提交前脱敏检查)
|
||||||
│ └── agent-mini-project.md
|
├── notes/ # 第 8~9 周:盘点、架构图、案例卡(脱敏);低代码体验笔记
|
||||||
├── go-learning/ # 第 1 周(含 todo 命令行项目)
|
|
||||||
├── todo-api/ # 第 2~3 周
|
|
||||||
├── task-board/ # 第 4~5 周:项目一
|
|
||||||
├── py-learning/ # 第 6 周
|
|
||||||
├── rag-qa/ # 第 7~8 周:项目二
|
|
||||||
├── notes/ # 第 9~10 周:盘点、架构图、案例卡(脱敏);低代码体验笔记
|
|
||||||
│ ├── cards/
|
│ ├── cards/
|
||||||
│ └── private/ # 不进仓库
|
│ └── private/ # 不进仓库
|
||||||
├── agent-mini/ # 第 11~14 周:项目三(含 MCP 服务、评测集)
|
├── agent-mini/ # 第 10~13 周:项目三(含 MCP 服务、评测集)
|
||||||
├── lowcode/ # 第 14 周:Dify / Coze 导出的配置(去掉密钥)
|
├── lowcode/ # 第 13 周:Dify / Coze 导出的配置(去掉密钥)
|
||||||
|
├── backend-extend/ # 第 14 周:RabbitMQ、gRPC、Redis / MySQL 专题练习
|
||||||
|
├── deploy/ # 第 14 周:服务器上的总 Compose、Nginx、部署说明
|
||||||
└── career/ # 第 15~16 周:简历、口述稿、面试笔记
|
└── career/ # 第 15~16 周:简历、口述稿、面试笔记
|
||||||
```
|
```
|
||||||
|
|
||||||
**换设备后如何继续**
|
### 计划文件清单(`plan/`)
|
||||||
|
|
||||||
1. 新设备安装:Git、Go、Node.js、Docker、Python 3.12 和 uv、编辑器(VS Code 或 Cursor)。
|
| 文件 | 内容 |
|
||||||
|
| --- | --- |
|
||||||
|
| `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 密钥,然后克隆仓库:
|
2. 配好能访问 `git.gozeros.com` 的 SSH 密钥,然后克隆仓库:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@@ -386,21 +367,27 @@ zhuangang/
|
|||||||
cd zhuangang
|
cd zhuangang
|
||||||
```
|
```
|
||||||
|
|
||||||
3. 打开 `plan/README.md`,在“进度记录”里找到上次做到哪周哪天。
|
3. **重新装脱敏钩子**(钩子文件不随仓库同步),并在 `notes/private/sensitive-words.txt` 重新写好敏感词清单(不进仓库):
|
||||||
4. 打开对应周的计划文件,从下一天继续。
|
|
||||||
5. Go 项目:在项目目录 `docker compose -f docker-compose.dev.yml up -d` 启动数据库和 Redis,再按项目 README 跑迁移。Python 项目:进入项目目录 `uv sync`,复制 `.env.example` 为 `.env`。
|
```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`。
|
6. 每天学完:更新进度记录 → `git add` → `git commit` → `git push`。
|
||||||
|
|
||||||
**完成后的下一步(不属于本计划,完成终点验收后再选一个开新路径)**
|
### 完成后的下一步(不属于本计划,完成终点验收后再选一个开新路径)
|
||||||
|
|
||||||
- 可观测性:链路追踪、日志、成本统计(如 LangSmith、Langfuse 一类工具)。
|
- 更完整的评测体系和线上反馈闭环、成本治理。
|
||||||
- 更完整的评测体系和线上反馈闭环。
|
- Java / Spring 或 Go 微服务方向的深入,Kubernetes。
|
||||||
- Java / Spring 或 Go 微服务方向的深入。
|
|
||||||
- 模型微调入门。
|
- 模型微调入门。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 12. 进度记录
|
## 13. 进度记录
|
||||||
|
|
||||||
### 按周
|
### 按周
|
||||||
|
|
||||||
@@ -408,30 +395,29 @@ zhuangang/
|
|||||||
|
|
||||||
| 周 | 主题 | 计划文件 | 每天 | 计划完成日 | 实际完成日 | 产出路径 | 周验收 |
|
| 周 | 主题 | 计划文件 | 每天 | 计划完成日 | 实际完成日 | 产出路径 | 周验收 |
|
||||||
| --- | --- | --- | --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- | --- | --- | --- |
|
||||||
| 1 | Go 基础语法 | week01-go-basics.md | ☐☐☐☐☐☐☐ | | | go-learning/ | ☐ |
|
| 1 | Go 基础 + Gin | week01-go-gin.md | ☐☐☐☐☐☐☐ | | | go-learning/、todo-api/ | ☐ |
|
||||||
| 2 | Gin 接口 + 前端 | week02-gin-api.md | ☐☐☐☐☐☐☐ | | | todo-api/ | ☐ |
|
| 2 | 数据库 + JWT | week02-db-auth.md | ☐☐☐☐☐☐☐ | | | todo-api/ | ☐ |
|
||||||
| 3 | PostgreSQL + MySQL 差异 | week03-postgresql.md | ☐☐☐☐☐☐☐ | | | todo-api/ | ☐ |
|
| 3 | 项目一 | week03-project1.md | ☐☐☐☐☐☐☐ | | | task-board/ | ☐ |
|
||||||
| 4 | 项目一(上)鉴权权限 | week04-auth-project1.md | ☐☐☐☐☐☐☐ | | | task-board/ | ☐ |
|
| 4 | Python + FastAPI | week04-python.md | ☐☐☐☐☐☐☐ | | | py-learning/ | ☐ |
|
||||||
| 5 | 项目一(下)Redis、队列、Docker | week05-project1-redis-docker.md | ☐☐☐☐☐☐☐ | | | task-board/ | ☐ |
|
| 5 | 项目二(上)手写 RAG | week05-rag-1.md | ☐☐☐☐☐☐☐ | | | rag-qa/ | ☐ |
|
||||||
| 6 | Python 速成 | week06-python-basics.md | ☐☐☐☐☐☐☐ | | | py-learning/ | ☐ |
|
| 6 | 项目二(下)评测、优化、部署 | week06-rag-2.md | ☐☐☐☐☐☐☐ | | | rag-qa/ | ☐ |
|
||||||
| 7 | 项目二(上)手写 RAG | rag-project.md | ☐☐☐☐☐☐☐ | | | rag-qa/ | ☐ |
|
| 7 | 前端工程化 | week07-frontend.md | ☐☐☐☐☐☐☐ | | | web/ | ☐ |
|
||||||
| 8 | 项目二(下)评测、优化、部署 | rag-project.md | ☐☐☐☐☐☐☐ | | | rag-qa/ | ☐ |
|
| 8 | 阶段0 盘点 + 阶段1 画图 | week08-inventory-architecture.md | ☐☐☐☐☐☐☐ | | | notes/00、01、tools/ | ☐ |
|
||||||
| 9 | 阶段0 盘点 + 阶段1 画图 | README 第 6 节 | ☐☐☐☐☐☐☐ | | | notes/00、01 | ☐ |
|
| 9 | 阶段2 案例卡 A~E | week09-case-cards.md | ☐☐☐☐☐☐☐ | | | notes/cards/ | ☐ |
|
||||||
| 10 | 阶段2 案例卡 A~E | README 第 6 节 | ☐☐☐☐☐☐☐ | | | notes/cards/ | ☐ |
|
| 10 | 项目三 M1 手写 + MCP | week10-agent-m1-tools-mcp.md | ☐☐☐☐☐☐☐ | | | agent-mini/ | ☐ |
|
||||||
| 11 | 项目三 M1 手写 + 工具 + MCP | agent-mini-project.md | ☐☐☐☐☐☐☐ | | | agent-mini/ | ☐ |
|
| 11 | 项目三 M2 LangGraph | week11-agent-m2-langgraph.md | ☐☐☐☐☐☐☐ | | | agent-mini/ | ☐ |
|
||||||
| 12 | 项目三 M2 LangGraph 编排 | agent-mini-project.md | ☐☐☐☐☐☐☐ | | | agent-mini/ | ☐ |
|
| 12 | 项目三 M3 续跑、中断、SSE、记忆 | week12-agent-m3-persistence.md | ☐☐☐☐☐☐☐ | | | agent-mini/ | ☐ |
|
||||||
| 13 | 项目三 M3 续跑、中断、SSE、记忆 | agent-mini-project.md | ☐☐☐☐☐☐☐ | | | agent-mini/ | ☐ |
|
| 13 | 项目三 M4 评测、文档 + Dify/Coze | week13-agent-m4-eval-lowcode.md | ☐☐☐☐☐☐☐ | | | agent-mini/、lowcode/ | ☐ |
|
||||||
| 14 | 项目三 M4 评测、文档 + Dify/Coze | agent-mini-project.md | ☐☐☐☐☐☐☐ | | | agent-mini/、lowcode/ | ☐ |
|
| 14 | 后端补强 + 部署 | week14-backend-extend-deploy.md | ☐☐☐☐☐☐☐ | | | backend-extend/、deploy/ | ☐ |
|
||||||
| 15 | 阶段4(上)部署、作品集、简历 | README 第 6 节 | ☐☐☐☐☐☐☐ | | | career/ | ☐ |
|
| 15 | 阶段4(上)作品集、简历 | week15-package-resume.md | ☐☐☐☐☐☐☐ | | | career/ | ☐ |
|
||||||
| 16 | 阶段4(下)面试准备、验收、投递 | README 第 6 节 | ☐☐☐☐☐☐☐ | | | career/ | ☐ |
|
| 16 | 阶段4(下)面试、验收、投递 | week16-interview.md | ☐☐☐☐☐☐☐ | | | career/ | ☐ |
|
||||||
|
|
||||||
### 按阶段
|
### 按阶段
|
||||||
|
|
||||||
| 阶段 | 计划完成日 | 实际完成日 | 产出路径 | 验收 |
|
| 阶段 | 计划完成日 | 实际完成日 | 产出路径 | 验收 |
|
||||||
| --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- |
|
||||||
| 第一段 Go 全栈基础(项目一) | | | task-board/ | ☐ |
|
| 第一段 Go 全栈基础(项目一) | | | task-board/ | ☐ |
|
||||||
| Python 速成 | | | py-learning/ | ☐ |
|
| 第二段 Python + 项目二 + 前端 | | | py-learning/、rag-qa/、web/ | ☐ |
|
||||||
| 项目二 RAG | | | rag-qa/ | ☐ |
|
|
||||||
| 0 盘点 | | | notes/00-inventory.md | ☐ |
|
| 0 盘点 | | | notes/00-inventory.md | ☐ |
|
||||||
| 1 读通与画图 | | | notes/01-*.md | ☐ |
|
| 1 读通与画图 | | | notes/01-*.md | ☐ |
|
||||||
| 2 案例卡 | | | notes/cards/ | ☐ |
|
| 2 案例卡 | | | notes/cards/ | ☐ |
|
||||||
@@ -448,7 +434,7 @@ zhuangang/
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 13. 终点验收清单(全部勾选才算完结)
|
## 14. 终点验收清单(全部勾选才算完结)
|
||||||
|
|
||||||
**AI 应用能力**
|
**AI 应用能力**
|
||||||
- [ ] 项目二:RAG 问答可演示,有评测集和对比结果,README 清楚
|
- [ ] 项目二:RAG 问答可演示,有评测集和对比结果,README 清楚
|
||||||
@@ -460,7 +446,8 @@ zhuangang/
|
|||||||
|
|
||||||
**全栈能力(加分项)**
|
**全栈能力(加分项)**
|
||||||
- [ ] 项目一部署过,能讲清分层、鉴权、缓存、限流、消息队列、部署
|
- [ ] 项目一部署过,能讲清分层、鉴权、缓存、限流、消息队列、部署
|
||||||
- [ ] 能讲清 MySQL 和 PostgreSQL 的主要差异
|
- [ ] 能讲清 MySQL 和 PostgreSQL 的主要差异、索引和隔离级别
|
||||||
|
- [ ] 前端工程化查漏清单全部打勾
|
||||||
|
|
||||||
**参考文档的终点**
|
**参考文档的终点**
|
||||||
- [ ] 至少 2 张案例卡可以对外讲(已脱敏)
|
- [ ] 至少 2 张案例卡可以对外讲(已脱敏)
|
||||||
@@ -468,8 +455,8 @@ zhuangang/
|
|||||||
- [ ] 第 1 节“终点”四条全部满足
|
- [ ] 第 1 节“终点”四条全部满足
|
||||||
|
|
||||||
**求职**
|
**求职**
|
||||||
- [ ] 简历按第 10 节更新完成,没有编造的数字,学历如实
|
- [ ] 简历按第 11 节更新完成,没有编造的数字
|
||||||
- [ ] 已开始投递
|
- [ ] 已开始投递
|
||||||
- [ ] 写下一句“下一步如果继续学”(第 11 节里选一个),作为新路径,不塞进本计划
|
- [ ] 写下一句“下一步如果继续学”(第 12 节里选一个),作为新路径,不塞进本计划
|
||||||
|
|
||||||
**完结动作**:把本文件开头的状态改成“已完成(YYYY-MM-DD)”,提交并推送。本路径正式结束。
|
**完结动作**:把本文件开头的状态改成“已完成(YYYY-MM-DD)”,提交并推送。本路径正式结束。
|
||||||
Reference in new issue
Block a user