文章
学习
从 Python 到 Data/AI 一年计划计划第 2 / 5 篇

学习计划:从 Python开始到认识Data/AI

以 12 个阶段、每周 Know/Build/Think 三级任务和阶段成果组织的 52 周学习计划:从 Python、SQL、数据工程到机器学习、Transformer、RAG 与 Agent,最终交付一个完整 Data/AI 系统。

学习计划PythonSQL数据工程机器学习RAGAgent

我的情况是工作之余学习,所以整个方案围绕三个词:

  • 宽数学:理解、推导、实验、应用。
  • 深工程:真正能独立构建系统。
  • 懂 AI:理解核心原理,会用,会判断,不钻研究细节。

不照搬任何课程,只取与目标匹配的部分:数据库部分参考 CMU 15-445 的方向(Buffer Pool、B+Tree、MVCC、Query Planner),机器学习参考斯坦福 CS229 的主线,语言模型参考 CS336 的 from-scratch 思路,砍掉与目标不匹配的内容。

全年结构

阶段周数核心阶段成果
I1–4Python 深化 + 编程思维Python CLI 工具
II5–8SQL + PostgreSQLSQL 数据分析系统
III9–12数据库原理 + 数据建模完整业务数据库
IV13–16数据工程ETL Pipeline
V17–20概率统计 + 数学实验统计分析项目
VI21–24线代 + 微积分 + 优化数学/ML 实验库
VII25–28Machine Learning手写 ML 项目
VIII29–32数据工程深化 + 分布式完整数据 Pipeline
IX33–36Transformer + LLMMini Transformer
X37–40RAG + AI 应用RAG 系统
XI41–44Agent + AI SystemAgent 系统
XII45–52综合项目完整 Data/AI 系统

一句话压缩:1–16 周建立真正的工程与数据基础;17–28 周用数学建立 ML 能力;29–32 周把数据工程推向完整系统;33–44 周理解并应用 LLM;45–52 周把全部能力合成一个真正的 Data/AI 系统。

执行标准:每周三级任务

每一周都按同一个标准执行:

  • Level 1 — Know:知道是什么。能解释、能使用、能写简单代码、能完成标准题。
  • Level 2 — Build:自己做出来。不看教程,组合多个知识点,解决真实问题,能 Debug、能测试。
  • Level 3 — Think:自己发现问题并解决。没有标准答案,自己设计方案、做实验、比较方案、分析 trade-off、找性能瓶颈、解释失败原因。

真正决定一年后能力的是 Level 3。

计划按任务验收,不按时间。不写"周三学两小时数据库索引",而写"周三理解 B+Tree,给 100 万条数据建不同索引,用 EXPLAIN ANALYZE 比较查询计划,解释为什么联合索引在这个 Query 上有效"。前者是时间管理,后者才是能力训练。

52 周明细

阶段 I · Python(Week 1–4)→ Python CLI 工具

Week 1 · 对象模型与数据结构

  • L1:list/tuple/dict/set、可变性、引用、浅拷贝/深拷贝、函数、作用域。
  • L2:实现 LRU Cache、数据去重、频率统计、多字段排序。
  • L3:设计内存 Key-Value Store(set/get/delete/exists/keys),分析不同数据结构的时间复杂度。验收:解释 dict 平均 O(1),以及这个结论什么时候失效。

Week 2 · 函数、抽象与模块化

  • L1:函数、模块、包、异常、dataclass、type hint。
  • L2:把 Week 1 项目拆成 storage/core/cli/config/tests,加类型检查、logging、配置。
  • L3:设计插件式架构:CSV/JSON/Excel Reader → 统一接口 → Data Processor,新增数据源不修改核心逻辑。重点是设计接口,不是写代码。

Week 3 · 测试与调试

  • L1:pytest、fixture、mock、异常测试。
  • L2:给之前项目补单元、边界、异常、回归测试。
  • L3:故意制造逻辑、性能、数据、并发四类 bug,只允许用日志 + debugger + test 定位,写 Bug→假设→实验→定位→修复 记录。

Week 4 · 算法与性能

  • L1:Big-O、Hash、Heap、二分、BFS/DFS。
  • L2:实现 Top-K、二分、BFS、DFS、LRU 并 benchmark。
  • L3:百万级数据处理任务,比较 Python loop / Pandas / NumPy / Generator / Batch Processing,分析 CPU、内存、IO 和时间复杂度。

阶段 II · SQL + PostgreSQL(Week 5–8)→ SQL 数据分析系统

Week 5 · SQL 核心

  • L1:SELECT、WHERE、GROUP BY、HAVING、JOIN、CASE、NULL。
  • L2:真实业务数据集(客户/合同/订单/商品/销售)完成 20 个分析问题。
  • L3:不用 Pandas,全部用 SQL 完成月度销售趋势、客户复购、Top-N、同比、环比、异常订单。

Week 6 · 高级 SQL

  • L1:CTE、窗口函数、子查询。
  • L2:Ranking、Running Total、Moving Average、Cohort、Retention。
  • L3:沿销售人员→客户→合同→订单→回款链路只用 SQL 分析:哪些客户增长最快、哪些正在流失、哪些合同异常。

Week 7 · 数据建模

  • L1:实体、关系、主键、外键、范式。
  • L2:设计钢贸业务数据库:Customer、Product、Contract、Order、Delivery、Payment、Price。
  • L3:故意制造数据冗余和更新/删除异常,用 1NF→2NF→3NF 解决,再讨论实际系统为什么有时要反范式。

Week 8 · PostgreSQL 与查询优化

  • L1:Index、EXPLAIN、Transaction、View。
  • L2:造 100 万/1000 万数据,比较无索引、单列索引、联合索引。
  • L3:制造一个慢查询,EXPLAIN ANALYZE → 找瓶颈 → 改索引/查询 → benchmark。

阶段 III · 数据库系统(Week 9–12)→ 完整业务数据库

Week 9 · 存储内部结构

  • L1:Page、Tuple、Heap、Buffer、磁盘与内存。
  • L2:用 Python 实现简单 Page Storage:insert/read/update/delete。
  • L3:模拟内存有限时数据库如何管理 Page,实现一个简单 LRU Buffer Pool。对应 CMU 15-445 的 Buffer Pool Manager 方向。

Week 10 · 索引

  • L1:B-Tree、B+Tree、Hash Index。
  • L2:手写简化 B+Tree:insert、search、range query。
  • L3:比较 Linear Search、Hash、B+Tree,实验数据规模扩大 100 倍时性能如何变化。

Week 11 · 事务与 MVCC

  • L1:ACID、隔离级别、脏读、不可重复读、幻读。
  • L2:用 PostgreSQL 制造两个并发事务,观察不同 Isolation Level 的行为。
  • L3:实现简化 MVCC 模拟器:transaction ID、version、visibility、commit、rollback。

Week 12 · 查询计划与恢复

  • L1:Query Planner、Join 算法、Sort、Aggregate、WAL、Checkpoint。
  • L2:用 PostgreSQL 优化 5 个慢查询。
  • L3:设计简化 Query Planner:对 A JOIN B 比较 Nested Loop 和 Hash Join,解释数据库为什么选择这个执行计划。

阶段 IV · 数据工程(Week 13–16)→ 自动化 ETL Pipeline

Week 13 · ETL

  • L1:Extract、Transform、Load、Schema、Validation。
  • L2:构建 CSV/API/Excel → Python → PostgreSQL。
  • L3:Pipeline 支持数据异常检测、类型错误、重复数据、缺失数据、错误日志。

Week 14 · 增量管道

  • L1:Full Load、Incremental Load、Upsert。
  • L2:每天只处理新增/变化数据。
  • L3:保证幂等性——Pipeline 重复运行不产生重复数据。

Week 15 · Airflow

  • L1:DAG、Task、依赖、Scheduler、Retry。Airflow 的本质是用 DAG 表达任务及其依赖,由调度器按依赖触发 Task。
  • L2:把 Week 13–14 的管道改成 Airflow:Extract→Clean→Validate→Load→Quality Check。
  • L3:加 Retry、Timeout、Alert、Backfill、Failure Recovery。

Week 16 · 数据质量

  • L1:Completeness、Accuracy、Consistency、Uniqueness、Validity。
  • L2:建立 Data Quality Framework。
  • L3:设计数据异常自动检测系统,例如今天订单量突然下降 80% 自动报警。

阶段 V · 概率统计(Week 17–20)→ 统计分析项目

Week 17 · 概率基础

  • L1:条件概率、独立性、Bayes。
  • L2:Python 模拟 Monty Hall、生日问题、Bayesian updating。
  • L3:自己设计模拟实验验证 Bayes 定理,对比理论概率与实验概率。

Week 18 · 随机变量与分布

  • L1:PMF、PDF、CDF、期望、方差。
  • L2:实现 Bernoulli、Binomial、Poisson、Gaussian。
  • L3:Monte Carlo 估计 π、积分、概率,分析样本数量与误差的关系。

Week 19 · MLE 与贝叶斯

  • L1:Likelihood、MLE、MAP、Prior、Posterior。
  • L2:推导 Gaussian MLE,用 Python 验证。
  • L3:设计 Bayesian A/B Test,回答"新方案真的比旧方案好吗"。

Week 20 · 统计推断

  • L1:抽样、置信区间、假设检验、p-value。
  • L2:完成 A/B Test 项目。
  • L3:加入 Bootstrap、Statistical Power、Multiple Testing。

阶段 VI · 数学(Week 21–24)→ 数学/ML 实验库

Week 21 · 向量空间

  • L1:向量、矩阵、线性变换、Rank、Basis。
  • L2:NumPy 实现 Projection、Least Squares。
  • L3:从几何角度解释 Linear Regression 为什么是一个 Projection 问题。

Week 22 · 特征值 + SVD + PCA

  • L1:特征值、特征向量、SVD。
  • L2:自己实现 PCA。
  • L3:对真实高维数据做 PCA 降维→可视化→信息损失分析。

Week 23 · 梯度与反向传播

  • L1:偏导、梯度、Jacobian、链式法则。
  • L2:手推两层神经网络的 Backpropagation。
  • L3:只用 NumPy 手写一个 MLP,不能使用自动求导。

Week 24 · 优化

  • L1:Gradient Descent、SGD、Momentum、Adam。
  • L2:比较不同优化器。
  • L3:研究 Learning Rate 对收敛的影响:在 Rosenbrock 等函数上比较 SGD、Momentum、Adam、Newton 的收敛速度、稳定性和最终误差。

阶段 VII · Machine Learning(Week 25–28)→ 手写 ML 项目

Week 25 · Linear Regression

  • L1:Least Squares、Normal Equation、Gradient Descent。
  • L2:NumPy 手写。
  • L3:比较 Normal Equation 与 Gradient Descent 在数据规模、维度、数值稳定性上的差异。

Week 26 · Logistic Regression 与正则化

  • L1:Sigmoid、Log Loss、MLE。
  • L2:手写 Logistic Regression。
  • L3:加入 L1/L2,实验正则化强度与模型泛化的关系。

Week 27 · 树与集成

  • L1:Decision Tree、Entropy、Gini、Random Forest。
  • L2:实现简化 Decision Tree。
  • L3:比较 Logistic、Tree、Random Forest、XGBoost——重点不是准确率,而是为什么这个数据集上某模型更好。

Week 28 · ML 完整项目

  • L1:Data→Cleaning→Feature→Train→Validation→Test 走完一遍。
  • L2:加 Cross Validation、调参、Error Analysis。
  • L3:故意引入 Data Leakage / Distribution Shift,让自己发现问题。

阶段 VIII · 数据工程深化(Week 29–32)→ Batch + Streaming 数据系统

Week 29 · 数据仓库

  • L1:OLTP/OLAP、Fact、Dimension、Star Schema。
  • L2:设计企业销售数仓。
  • L3:实现 ODS→DWD→DWS→ADS,解释每一层为什么存在。

Week 30 · Parquet 与列式存储

  • L1:Row vs Column、压缩、分区。
  • L2:比较 CSV 与 Parquet。
  • L3:构建 Partitioned Data Lake,测试数据规模 × 查询性能 × 存储空间。

Week 31 · Spark

  • L1:DataFrame、Transformation、Action、Lazy Evaluation。
  • L2:把 Pandas Pipeline 迁移到 Spark。
  • L3:制造数据倾斜 / Shuffle,分析 Spark 为什么突然变慢。

Week 32 · Kafka 与流处理

  • L1:Producer、Consumer、Topic、Partition、Offset。
  • L2:实现 Producer→Kafka→Consumer→PostgreSQL。
  • L3:处理 Retry、Duplicate、Ordering、Consumer Failure,想清楚 At-least-once / At-most-once / Exactly-once 到底意味着什么。

阶段 IX · Transformer(Week 33–36)→ Mini Transformer / Mini LLM

Week 33 · Tokenization 与 Embedding

  • L1:Token、Vocabulary、BPE、Embedding。
  • L2:实现一个简单 Tokenizer。
  • L3:分析不同 Tokenizer 对中文/英文/代码的影响。

Week 34 · Attention

  • L1:Q、K、V、Attention Score、Softmax。
  • L2:NumPy 手写 Self-Attention。
  • L3:可视化 Attention Matrix,分析不同 Token 之间为什么产生不同权重。

Week 35 · Transformer

  • L1:Multi-Head Attention、FFN、Residual、LayerNorm、Positional Encoding。
  • L2:PyTorch 实现 Mini Transformer。
  • L3:不用现成 Transformer 库,自己搭完整 forward。

Week 36 · Mini 语言模型

  • L1:Next Token Prediction、Cross Entropy、Training Loop。
  • L2:训练一个小型 Language Model。
  • L3:做 Context Length、Embedding Size、层数、Learning Rate 实验,观察模型容量与 Loss 的关系。

阶段 X · RAG(Week 37–40)→ 可评价的 RAG 系统

Week 37 · Embedding 与向量检索

  • L1:Embedding、Cosine Similarity、Vector DB。
  • L2:实现 Document→Chunk→Embedding→Vector Search。
  • L3:比较不同 Embedding 模型,建立自己的 Evaluation Dataset。

Week 38 · 检索

  • L1:Dense Retrieval、BM25、Hybrid Search。
  • L2:实现 BM25 + Vector。
  • L3:加入 Reranker,比较 Vector、BM25、Hybrid、Hybrid + Rerank。

Week 39 · RAG 评估

  • L1:Recall@K、Precision@K、MRR、NDCG。
  • L2:建立 100–300 条 Ground Truth Query。
  • L3:系统比较 Chunking / Embedding / Retrieval / Reranking,回答到底哪个 RAG 方案最好、为什么。

Week 40 · 生产级 RAG

  • L1:Metadata、Filtering、Query Rewrite、Citation。
  • L2:构建完整链路:Document→Parser→Chunk→Embedding→Vector DB→Retriever→Reranker→LLM。
  • L3:故意制造无答案问题、相似问题、长文档、错误文档、冲突信息,测试幻觉率、Recall、Faithfulness。

阶段 XI · Agent + AI 系统(Week 41–44)→ Agent 系统

Week 41 · Tool Calling

  • L1:Function Calling、Structured Output。
  • L2:让 LLM 调用 SQL、Calculator、Search、API。
  • L3:设计 LLM→判断→工具→结果→再判断的循环,并处理工具失败。

Week 42 · Agent Workflow

  • L1:State、Workflow、Agent Loop。
  • L2:实现 SQL Agent:用户问题→SQL→执行→解释。
  • L3:限制 Agent 不允许随意执行危险 SQL,设计 Permission、Validation、Human Approval。

Week 43 · 评估与可观测性

  • L1:Logging、Tracing、Latency、Cost。
  • L2:记录 Prompt→Model→Tool→Latency→Token→Cost→Answer。
  • L3:建立 Evaluation Dashboard:哪个环节最慢、哪个模型最贵、哪类问题最容易失败。

Week 44 · AI 可靠性

  • L1:Retry、Timeout、Fallback、Cache。
  • L2:加入 Model fallback、API failure、Tool failure 处理。
  • L3:攻击自己的系统:Prompt Injection、Data Leakage、Tool Abuse、Hallucination,然后修复。

阶段 XII · 综合项目(Week 45–52)→ 完整 Data/AI 系统

从这里开始不再学习新知识,把前 44 周的能力压成一个真正的系统:企业数据智能系统,围绕熟悉的业务,使用脱敏/公开/模拟数据。架构:

数据源 → ETL → PostgreSQL → Data Warehouse → ML/Analytics → Embedding → RAG → LLM → Agent → API

Week 45 · 项目设计

  • L1:系统设计图。
  • L2:Database Schema + Data Pipeline 设计。
  • L3:写 Architecture Decision Record,解释为什么这么设计。

Week 46 · Data Layer

  • Raw Data→ETL→Validation→PostgreSQL→Warehouse。
  • 必须支持 Incremental、Idempotency、Data Quality、Backfill。

Week 47 · Analytics / ML Layer

  • SQL Analytics、Feature Engineering、ML Model。
  • 建立自动化 Model Evaluation。

Week 48 · RAG Layer

  • Documents→Embedding→Vector DB→Hybrid Retrieval→Reranker→LLM。
  • 建立 RAG Evaluation Dataset。

Week 49 · Agent Layer

  • LLM→Intent→Tool(SQL / Search / Analytics / Knowledge Base)。
  • 实现 Permission + Validation + Human Approval。

Week 50 · 工程化

  • FastAPI、Docker、Logging、Testing、Config、Monitoring,部署整个系统。
  • 挑战:模拟数据库挂掉、API 挂掉、LLM API 失败、Pipeline 失败,系统必须能够恢复。

Week 51 · 性能与评估

  • Data:Pipeline 速度、Query 速度、Data Quality;ML:Accuracy、Precision、Recall、Error Analysis;RAG:Recall@K、MRR、Faithfulness;AI:Latency、Token、Cost、Failure Rate。
  • 找出至少 3 个系统瓶颈并优化。这是整个项目最重要的一周。

Week 52 · 最终答辩

  • 不再大量写代码,做一次真正的 Technical Review,回答:Python 为什么这样设计;为什么这个 Index 有效;Pipeline 失败怎么办;为什么出现 Overfitting;Gradient Descent 为什么能工作;Attention 到底在做什么;召回结果为什么不好;这个任务为什么需要 Agent;数据量扩大 10 倍怎么办。

一年结束时的产出

不是 52 个 Notebook,而是 7 个东西:

  1. Python 工程项目:真正可用的 CLI/自动化工具。
  2. 数据库项目:PostgreSQL + 数据建模 + SQL 优化 + Transaction。
  3. 数据工程项目:API/File → ETL → Quality → Airflow → PostgreSQL → Spark/Kafka。
  4. ML 项目:数学→NumPy→ML from Scratch→sklearn→真实数据集→Error Analysis。
  5. Mini Transformer:Tokenizer→Embedding→Attention→Transformer→Training→Inference。
  6. RAG / Agent 系统:Knowledge→Retrieval→Reranking→LLM→Tools→Agent→Evaluation。
  7. 最终项目:把以上全部串起来的完整 Data/AI 系统。

最终得到的不是证书和 Demo,而是一个能解释每个设计决策的系统。

贯穿全年的原则

  1. 不追求学完,追求能力闭环。
  2. 每周必须有产出:代码、实验、数据、Benchmark、图表、文档、系统、推导,但不能只有看视频、看书、做笔记。
  3. 每 4 周必须形成一个阶段成果,不能 52 周一直"学习"。
  4. 数学必须落到代码:SVD→PCA→NumPy→数据降维,而不是看完线代教材。
  5. 工程必须落到系统:ETL→Airflow→Retry→Backfill→Data Quality,而不是"我学过 Airflow"。
  6. AI 必须落到理解和使用:Attention→Mini Transformer→RAG→Agent,而不是"我会调用 GPT API"。

来源与延伸阅读

  1. 01Week 1 学习计划|Python 对象模型与数据结构week-1计划
  2. 02学习计划:从 Python开始到认识Data/AI计划
  3. 03Week 1 学习成果|复杂度实测、对象模型与数据结构实战week-1成果
  4. 04Week 2 学习计划|Python 函数、抽象与模块化week-2计划
  5. 05Week 2 学习成果|模块机制、异常体系与工程化重构week-2成果