Java 背景友好 · Python 聚焦 AI 应用后端 · FastAPI → 流式接口 → RAG/Agent API → 工程化部署
本仓库按“学习文档 + 项目交付”组织:
learning-goal.md:学习目标、默认节奏和三层路线。progress.md:章节推进状态。review-plan.md:间隔复习计划。mistakes.md:错题本和踩坑复盘。chapters/:每章理论、Demo、验收题、项目任务。chapters/*/review.md:每章复习记录、费曼输出和错题回收。projects/:6 个里程碑项目的真实代码工作区。tools/check_learning_repo.py:检查章节结构、模板化内容和项目目录。
建议先完成 FastAPI + AI 应用主线,不要从第 01 章平均推进到第 60 章:
第一层:01-12、15、19、29、39、41、44、45、46、49、50、51
第二层:13-18、21-28、31-34、47-48、52-56
第三层:35-38、57-60
FastAPI 是本路线的核心框架。Flask 章节保留用于理解 Python Web 历史和框架对比,但不作为主攻方向。
| 模块 | 章节 | 目标 |
|---|---|---|
| Python 基础 | 01-12、15、19 | 写出可读、可测试、类型清晰的 Python 代码 |
| API 基础 | 41、44、49 | 设计请求/响应、错误码、OpenAPI 文档和外部 API 调用 |
| FastAPI 进阶 | 45 | 掌握依赖注入、认证、中间件、后台任务、WebSocket、流式响应 |
| AI API 项目 | 50 | 交付一个 AI 助手 API:聊天、流式输出、任务状态、历史记录 |
| 数据与缓存 | 46-48 | 保存对话、任务、缓存模型响应和检索元数据 |
| 工程化 | 51-56 | 环境、打包、Docker、CI/CD、安全和部署 |
参考官方文档:
- FastAPI BackgroundTasks、依赖注入、StreamingResponse 等能力见 FastAPI 官方文档。
- OpenAI Responses API 支持流式响应、结构化输出和工具调用,适合作为第 50 章 AI API 项目的模型层参考。
运行质量检查:
python tools/check_learning_repo.py如果本机没有 python 命令,使用:
python3 tools/check_learning_repo.py
make all内容维护标准见 docs/CONTENT-QUALITY.md。
| 标记 | 含义 |
|---|---|
| L1 必须掌握 | 日常开发基础,必须熟练 |
| L2 项目常用 | 中高级开发常用,重点学习 |
| L3 面试高频 | 深度原理,面试必考 |
| # | 章节 | 核心主题 | 优先级 | 预计时长 | 状态 |
|---|---|---|---|---|---|
| 01 | 环境搭建与Python初印象 | Python安装、pyenv、pip、venv、第一个程序、REPL | L1 必须掌握 | 3小时 | ⬜ 未开始 |
| 02 | Python基础语法 | 变量、数据类型、运算符、表达式、动态类型 | L1 必须掌握 | 4小时 | ⬜ 未开始 |
| 03 | 控制流程 | if/elif/else、for/while循环、break/continue/pass | L1 必须掌握 | 3小时 | ⬜ 未开始 |
| 04 | 函数基础 | def、参数、返回值、作用域、docstring | L1 必须掌握 | 4小时 | ⬜ 未开始 |
| 05 | 字符串详解 | 字符串方法、f-string、格式化、编码 | L1 必须掌握 | 3小时 | ⬜ 未开始 |
| 06 | 列表与元组 | list/tuple操作、切片、列表推导式 | L1 必须掌握 | 4小时 | ⬜ 未开始 |
| 07 | 字典与集合 | dict/set操作、推导式、常用方法 | L1 必须掌握 | 4小时 | ⬜ 未开始 |
| 08 | 文件与IO操作 | 文件读写、上下文管理器、pathlib | L1 必须掌握 | 3小时 | ⬜ 未开始 |
| 09 | 异常处理 | try/except/finally/raise、自定义异常 | L1 必须掌握 | 3小时 | ⬜ 未开始 |
| 10 | 里程碑:Python SE小项目 | 学生成绩管理系统(CLI)综合实战 | L1 必须掌握 | 6小时 | ⬜ 未开始 |
| # | 章节 | 核心主题 | 优先级 | 预计时长 | 状态 |
|---|---|---|---|---|---|
| 11 | 函数进阶 | *args/**kwargs、闭包、高阶函数、lambda | L1 必须掌握 | 4小时 | ⬜ 未开始 |
| 12 | 推导式与迭代器 | 列表/字典/集合推导式、生成器表达式、iter/next | L1 必须掌握 | 3小时 | ⬜ 未开始 |
| 13 | 生成器与协议 | yield、生成器函数、迭代器协议、send | L2 项目常用 | 4小时 | ⬜ 未开始 |
| 14 | 装饰器 | 函数装饰器、类装饰器、functools.wraps、叠加 | L2 项目常用 | 4小时 | ⬜ 未开始 |
| 15 | 模块与包 | import系统、init.py、all、相对导入 | L1 必须掌握 | 3小时 | ⬜ 未开始 |
| 16 | 正则表达式 | re模块、模式、分组、标志、re.compile | L2 项目常用 | 4小时 | ⬜ 未开始 |
| 17 | 日期时间处理 | datetime、timedelta、时区、strftime | L2 项目常用 | 3小时 | ⬜ 未开始 |
| 18 | 标准库精华 | collections、itertools、functools、operator | L2 项目常用 | 4小时 | ⬜ 未开始 |
| 19 | 类型注解与类型检查 | type hints、mypy、typing模块、泛型 | L2 项目常用 | 3小时 | ⬜ 未开始 |
| 20 | 里程碑:工具库项目 | 自定义工具库(含类型注解、测试、文档) | L2 项目常用 | 6小时 | ⬜ 未开始 |
| # | 章节 | 核心主题 | 优先级 | 预计时长 | 状态 |
|---|---|---|---|---|---|
| 21 | 面向对象入门 | 类、实例、init、实例方法、self | L1 必须掌握 | 4小时 | ⬜ 未开始 |
| 22 | 继承与多态 | 继承、super()、方法重写、isinstance | L1 必须掌握 | 4小时 | ⬜ 未开始 |
| 23 | 魔术方法 | str/repr/len/eq/__iter__等 | L2 项目常用 | 4小时 | ⬜ 未开始 |
| 24 | 属性与描述符 | @property、setter/deleter、描述符协议 | L2 项目常用 | 3小时 | ⬜ 未开始 |
| 25 | 类方法与静态方法 | @classmethod、@staticmethod、类变量 | L2 项目常用 | 3小时 | ⬜ 未开始 |
| 26 | 抽象类与接口 | ABC、abstractmethod、Protocol | L2 项目常用 | 3小时 | ⬜ 未开始 |
| 27 | 数据类与枚举 | @dataclass、Enum、NamedTuple、frozen | L2 项目常用 | 3小时 | ⬜ 未开始 |
| 28 | 设计模式 | 单例、工厂、观察者、策略、装饰器模式 | L3 面试高频 | 5小时 | ⬜ 未开始 |
| 29 | 测试基础(pytest) | unittest、pytest、fixture、mock、参数化 | L1 必须掌握 | 4小时 | ⬜ 未开始 |
| 30 | 里程碑:OOP设计项目 | 图书馆管理系统(设计模式+测试覆盖) | L2 项目常用 | 8小时 | ⬜ 未开始 |
| # | 章节 | 核心主题 | 优先级 | 预计时长 | 状态 |
|---|---|---|---|---|---|
| 31 | 并发基础(threading) | Thread、Lock、Semaphore、Queue、GIL | L2 项目常用 | 4小时 | ⬜ 未开始 |
| 32 | 多进程(multiprocessing) | Process、Pool、Queue、Pipe、共享内存 | L2 项目常用 | 4小时 | ⬜ 未开始 |
| 33 | 异步编程基础(asyncio) | async/await、事件循环、Task、gather | L2 项目常用 | 5小时 | ⬜ 未开始 |
| 34 | 异步进阶(aiohttp) | aiohttp、异步上下文管理器、异步生成器 | L2 项目常用 | 4小时 | ⬜ 未开始 |
| 35 | 元编程 | 元类、new、类装饰器、动态创建类 | L3 面试高频 | 4小时 | ⬜ 未开始 |
| 36 | 函数式编程 | map/filter/reduce、partial、immutable、纯函数 | L2 项目常用 | 3小时 | ⬜ 未开始 |
| 37 | 内存管理 | gc模块、weakref、slots、内存分析 | L3 面试高频 | 3小时 | ⬜ 未开始 |
| 38 | 性能优化 | cProfile、lru_cache、numpy加速、Cython简介 | L3 面试高频 | 4小时 | ⬜ 未开始 |
| 39 | 日志与调试 | logging模块、pdb、调试策略、结构化日志 | L1 必须掌握 | 3小时 | ⬜ 未开始 |
| 40 | 里程碑:并发爬虫项目 | 异步网络爬虫(限速+重试+数据存储) | L2 项目常用 | 8小时 | ⬜ 未开始 |
| # | 章节 | 核心主题 | 优先级 | 预计时长 | 状态 |
|---|---|---|---|---|---|
| 41 | HTTP基础与requests | HTTP协议、requests库、Session、认证 | L1 必须掌握 | 3小时 | ⬜ 未开始 |
| 42 | Flask入门 | 路由、模板、Jinja2、request/response(了解即可,用于和 FastAPI 对比) | L3 面试高频 | 2小时 | ⬜ 未开始 |
| 43 | Flask进阶 | Blueprint、中间件、Flask-Login、扩展(了解即可,不作为主线) | L3 面试高频 | 2小时 | ⬜ 未开始 |
| 44 | FastAPI入门 | 路径参数、Pydantic、依赖注入、文档 | L1 必须掌握 | 4小时 | ⬜ 未开始 |
| 45 | FastAPI进阶 | 认证、中间件、后台任务、WebSocket、SSE流式响应、AI接口封装 | L1 必须掌握 | 8小时 | ⬜ 未开始 |
| 46 | 数据库基础 | SQLite、psycopg2、SQL基础操作 | L1 必须掌握 | 4小时 | ⬜ 未开始 |
| 47 | SQLAlchemy ORM | 模型、Session、关系、迁移(Alembic) | L2 项目常用 | 5小时 | ⬜ 未开始 |
| 48 | Redis与缓存 | Redis基础、redis-py、缓存模式 | L2 项目常用 | 4小时 | ⬜ 未开始 |
| 49 | API设计最佳实践 | RESTful设计、版本控制、错误处理、限流 | L3 面试高频 | 4小时 | ⬜ 未开始 |
| 50 | 里程碑:AI助手API项目 | FastAPI AI应用后端(聊天+流式输出+任务状态+历史记录) | L1 必须掌握 | 14小时 | ⬜ 未开始 |
| # | 章节 | 核心主题 | 优先级 | 预计时长 | 状态 |
|---|---|---|---|---|---|
| 51 | 虚拟环境与依赖管理 | pip、venv、poetry、pyproject.toml | L1 必须掌握 | 3小时 | ⬜ 未开始 |
| 52 | 项目结构与打包 | 包结构、setup.py、pyproject.toml、PyPI | L2 项目常用 | 4小时 | ⬜ 未开始 |
| 53 | Docker与容器化 | Dockerfile、docker-compose、多阶段构建 | L2 项目常用 | 5小时 | ⬜ 未开始 |
| 54 | CI/CD基础 | GitHub Actions、自动化测试、部署流水线 | L2 项目常用 | 4小时 | ⬜ 未开始 |
| 55 | 里程碑:完整微服务项目 | 微服务架构(Docker Compose编排) | L2 项目常用 | 12小时 | ⬜ 未开始 |
| 56 | 安全编程 | 输入验证、SQL注入防御、密钥管理 | L2 项目常用 | 4小时 | ⬜ 未开始 |
| 57 | 数据分析入门 | NumPy基础、Pandas数据清洗与分析 | L2 项目常用 | 5小时 | ⬜ 未开始 |
| 58 | 数据可视化 | matplotlib、seaborn、plotly基础 | L2 项目常用 | 4小时 | ⬜ 未开始 |
| 59 | 系统设计与面试 | Python面试题、系统设计模式、常见陷阱 | L3 面试高频 | 5小时 | ⬜ 未开始 |
| 60 | 总结与进阶路线 | 生态全景、进阶方向、学习资源推荐 | L2 项目常用 | 3小时 | ⬜ 未开始 |
- 总章节: 60章
- 总学习时长: 约 247 小时
- 里程碑项目: 6个(第10、20、30、40、50、55章)
- L1必须掌握: 21章
- L2项目常用: 27章
- L3面试高频: 12章