Rust 学习技能树

更新日期: 2026-04-04
当前版本: v0.1.0


学习路线

基础 (第 1-5 章) 🟢
       ↓
进阶 (第 6-10 章) 🟡
       ↓
高级 (第 11-15 章) 🔴
       ↓
实战项目 (第 16+ 章) 🔴

基础部分 🟢

前置要求:有基础编程概念(变量、循环、函数)

第 1 章:变量与表达式 ✅ 完成

  • 难度: 🟢 入门
  • 前置: 无
  • 预计时间: 1-2 小时
  • 练习: 3 个知识检查题
  • 检查点:
    • 理解 let 关键字
    • 区分可变/不可变变量
    • 了解 const

第 2 章:数据类型 ✅ 完成

  • 难度: 🟢 入门
  • 前置: 变量
  • 预计时间: 2-3 小时
  • 检查点:
    • 理解 i32, String, bool
    • 区分类与结构体
    • 了解 Vec

第 3 章:所有权 ✅ 完成

  • 难度: 🟡 中级
  • 前置: 变量、数据类型
  • 预计时间: 3-4 小时
  • 检查点:
    • 理解 move 语义
    • 会借用和引用
    • 识别所有权错误

第 4 章:结构体 ✅ 完成

  • 难度: 🟡 中级
  • 前置: 所有权、数据类型
  • 预计时间: 2-3 小时
  • 检查点:
    • 定义 struct
    • 实现方法
    • 使用字段

第 5 章:枚举 ✅ 完成

  • 难度: 🟡 中级
  • 前置: 结构体、所有权
  • 预计时间: 2-3 小时
  • 检查点:
    • 定义 enum
    • 使用 match
    • 理解 Option

进阶部分 🟡

前置要求: 完成基础部分

第 6 章:特征 (Traits) ✅ 完成

  • 难度: 🟡 中级
  • 前置: 结构体、枚举
  • 预计时间: 3-4 小时
  • 检查点:
    • 定义 trait
    • 实现特征
    • 使用特征作为参数

第 7 章:模块系统 ✅ 完成

  • 难度: 🟡 中级
  • 前置: 特征
  • 预计时间: 2-3 小时
  • 检查点:
    • 定义模块
    • 使用 use 导入
    • 控制可见性

第 8 章:泛型 ✅ 完成

  • 难度: 🟡 中级
  • 前置: 特征、结构体
  • 预计时间: 3-4 小时
  • 检查点:
    • 定义泛型函数
    • 理解单态化
    • 使用特征约束

第 9 章:闭包 ✅ 完成

  • 难度: 🟡 中级
  • 前置: 特征、函数
  • 预计时间: 2-3 小时
  • 检查点:
    • 定义闭包
    • 理解 Fn trait
    • 在迭代器中使用

第 10 章:线程与并发 🟡 进行中

  • 难度: 🔴 高级
  • 前置: 线程与并发
  • 预计时间: 4-5 小时
  • 检查点:
    • 创建线程
    • 使用通道
    • 理解 Arc/Mutex

高级部分 🔴

前置要求: 完成基础 + 进阶部分

第 11 章:条件编译 🟡 进行中

  • 难度: 🟡 中级
  • 前置: 模块
  • 预计时间: 1-2 小时

第 12 章:指针与 unsafe 🟡 进行中

  • 难度: 🔴 高级
  • 前置: 所有权
  • 预计时间: 3-4 小时
  • ⚠️ 注意:包含 unsafe 代码

第 13 章:日志记录 🟡 进行中

  • 难度: 🟡 中级
  • 前置: 特征、模块
  • 预计时间: 1-2 小时

第 14 章:追踪 (Tracing) 🟡 进行中

  • 难度: 🔴 高级
  • 前置: 日志记录
  • 预计时间: 2-3 小时

第 15 章:可见性控制 🟡 进行中

  • 难度: 🟡 中级
  • 前置: 模块
  • 预计时间: 1-2 小时

实战项目 🔴

前置要求: 完成进阶部分

项目 1:运行 gRPC 服务器

源码: src/bin/greeter_server.rs

运行:

cargo run --bin greeter_server

学习目标:

  • 理解 gRPC 基本概念
  • 实现协议 buffers 服务
  • 运行异步服务

扩展:

  • 添加自定义服务
  • 实现双向流

项目 2:IPC 通信

源码: src/bin/uds_server.rs, src/bin/uds_client.rs

运行:

# 在一个终端运行服务器
cargo run --bin uds_server

# 在另一个终端运行客户端
cargo run --bin uds_client

学习目标:

  • 理解 Unix 套接字
  • 实现进程间通信

项目 3:算法实现

源码: src/algo/calc_pi_sample.rs

运行:

cargo run --bin calc_pi  # 如果有此二进制
# 或
cd src/algo && rustc calc_pi_sample.rs && ./calc_pi_sample

学习目标:

  • 理解数值算法
  • 使用 rayon 并行

进度追踪

当前总进度: [X/15 章完成]

完成清单

  • 第 1 章:变量与表达式
  • 第 2 章:数据类型
  • 第 3 章:所有权
  • 第 4 章:结构体
  • 第 5 章:枚举
  • 第 6 章:特征
  • 第 7 章:模块系统
  • 第 8 章:泛型
  • 第 9 章:闭包
  • 第 10 章:线程与并发
  • 第 11 章:条件编译
  • 第 12 章:指针与 unsafe
  • 第 13 章:日志记录
  • 第 14 章:追踪
  • 第 15 章:可见性控制

完成 15 章后: 🎉 恭喜!你已经掌握了 Rust 的核心概念!

下一步:

  • 运行实战项目
  • 参与真实项目
  • 贡献开源代码

学习建议

每天学习时间

  • 初学者: 30-60 分钟/天
  • 有经验的开发者: 1-2 小时/天
  • 全职学习: 4-6 小时/天

🧠 基于认知科学的学习方法

Microsoft Rust 培训建议:"Struggling with the borrow checker is part of learning."

15 分钟规则

  1. 先自己写代码,让编译器报错
  2. 仔细阅读错误信息(Rust 编译器是最好的老师)
  3. 如果卡住超过 15 分钟 → 查看答案
  4. 关掉答案,从头自己写一遍

间隔重复

  • 学完一章后,第二天复习 前一章的关键概念
  • 每学完 5 章,做一次 综合复习(见复习章节)
  • 使用知识检查题测试自己的记忆

主动回忆

  • 不要只是阅读代码,自己写一遍
  • 合上教程,尝试凭记忆写出关键概念
  • 使用"费曼技巧":尝试向别人解释这个概念

最佳实践

  1. 边学边练 - 每章都要动手练习
  2. 做笔记 - 记录难点和收获
  3. 提问 - 在 RustCn 社区提问
  4. 复习 - 学完一章后复习前一章
  5. 编译器是你的老师 - 学会阅读错误信息

遇到困难时

  1. 回到前一章巩固基础
  2. 看代码示例(每个章节都有)
  3. 在 community 提问
  4. 休息后再试
  5. 记住:感到困惑是完全正常的! Rust 的学习曲线陡峭,但掌握后你会写出更可靠的代码。

参考资源

官方

中文社区

实践