教程介绍
我在汽车嵌入式行业做了多年系统架构。在这个领域,C 语言长期统治着一切——功能安全标准、实时操作系统、底层驱动,无不用 C 写成。它足够快,足够直接,但它也足够危险:一个野指针、一次越界访问,都可能在量产车辆上酿成故障。
第一次接触 Rust 时,我的感受是:这正是我一直在等的东西。
它和 C 一样快,和 C 一样接近硬件,却在编译器层面拒绝了那些让人夜不能寐的内存 bug。这不是理论上的承诺——Rust 的所有权系统是一套经过严格设计的类型论,它把「内存安全」从程序员的责任转移到了编译器的职责。
这套教程,是我把 Rust 引入工程实践过程中的思考总结。
这套教程是什么
一套互动式 Rust 教程。每篇文章里的代码都可以直接在浏览器里运行,不需要配置任何环境;练习题可以直接在页面上编辑和提交;选择题会即时反馈答案和解析。
学习一门语言,光看是不够的。你需要动手,需要看到错误,需要理解编译器在说什么。这套教程的设计目标,就是让这个过程尽可能流畅。
和官方文档有什么不同
Rust 官方 The Book 是极好的参考资料,但它是一本书——它假设你会从头到尾顺序阅读,它追求严谨完整。
这套教程做的是另一件事:用更口语化的方式把概念讲透,配上可以立刻运行的代码、可交互的测试题,让你在理解之前就先感受到,学完教程就能做开发。
对于重要的概念,我们会反复从不同角度解释。对于容易犯错的地方,我们会故意给出会报错的代码,让你看到编译器的反应。这不是坏事——学会读懂编译器的报错信息,是学 Rust 最重要的技能之一。
你需要准备什么
什么都不需要。有浏览器就够了。
如果你有任何编程基础——不管是 Python、Java、C 还是 JavaScript——都可以直接开始。如果你有 C/C++ 背景,某些概念你会理解得更快,但这不是前提条件。
一点期待
Rust 的学习曲线在前期是真实存在的。所有权系统是一套新的思维方式,和大多数语言都不一样。你会遇到编译器拒绝你认为「完全没问题」的代码的情况,这很正常。
但一旦那个转折点到来——你开始感觉编译器是在帮你,而不是在为难你——你会发现这门语言真的很好用。
希望这套教程能帮你更快到达那个转折点。
—— 雪云飞星(付皓文)
如何学习 Rust
学习 Rust 需要什么基础
本教程假设你:
- 有过至少一门编程语言的经验(不限语言)
- 了解基本的编程概念(变量、函数、循环)
不需要:
- 操作系统或编译原理知识
- 任何 Rust 相关经验
如果你完全没有编程基础,建议先学一门入门语言(Python 或者 C 是个不错的选择),再来学 Rust。
完成本教程需要多长时间
本教程的设计学习周期是 1-2 个月,每天投入 1-2 小时。
具体节奏参考:
| 阶段 | 内容 | 建议时间 |
|---|---|---|
| 入门阶段 | Rust 基础、安装环境、变量与类型、控制流 | 第 1-2 周 |
| 核心阶段 | 所有权、借用、生命周期(Rust 最难的部分) | 第 3-5 周 |
| 进阶阶段 | 结构体、枚举、trait、泛型、错误处理 | 第 6-7 周 |
| 实战阶段 | 完成所有练习题,尝试写一个小项目 | 第 8 周 |
不要着急。核心阶段(所有权和借用)是绝大多数人卡住的地方,在这里多花一倍时间是完全正常的。
Rust 的学习曲线是什么样的
坦率地说:Rust 的学习曲线比大多数语言都陡。但它陡的方式比较特殊——它难在前期,而不是后期。
一旦跨过所有权这道坎,后面的内容反而会越来越流畅。很多 Rust 开发者的反馈是:写了一段时间后,感觉编译器越来越像一个会指出你错误的代码审查者,而不是障碍。
熟练掌握 Rust 要多久
这里做一个横向对比,前提是每天有 1-2 小时的学习和练习时间:
| 目标程度 | Python | C 语言 | Rust |
|---|---|---|---|
| 能写出能跑的程序 | 1-2 周 | 2-4 周 | 1-2 月 |
| 能独立完成中型项目 | 2-3 月 | 4-6 月 | 4-6 月 |
| 达到生产级熟练度 | 6-12 月 | 1-2 年 | 1-2 年 |
Rust 的入门期明显比 Python 长,但和 C 语言相比,达到生产级熟练度的时间其实差不多——因为 Rust 编译器会帮你排查掉大量 C 语言里需要靠经验积累才能避免的问题。
从实战角度:如果你有 C/C++ 背景,适应 Rust 通常需要 1-3 个月;如果你只有 Python/Java 背景,需要 2-4 个月才能感觉”顺手”。但这个时间投入是值得的——Rust 程序一旦编译通过,出 bug 的概率远低于等效的 C 代码。
学习建议
不要跳过错误信息
Rust 的编译器报错信息是业界最详细的。每次报错都仔细读一遍,时间久了你会发现自己越来越能预判编译器会说什么。
所有权卡住了就多读几遍
所有权章节不是一遍能懂的,多数人需要读 2-3 遍、写几段代码之后才会真正明白。这是正常现象,不是你的问题。
动手比阅读重要
每篇文章的练习题不要跳过,即使看起来很简单。Rust 的很多概念,你以为你懂了,但动手写的时候才会发现真正的理解在哪里。
推荐学习资源
| 资源 | 链接 | 说明 |
|---|---|---|
| Rust 官方 The Book | doc.rust-lang.org/book | 最权威的入门读物,本教程的主要参考来源 |
| Rust 中文 The Book | rustwiki.org/zh-CN/book | 上面的中文译版,质量较高 |
| Rust by Example | doc.rust-lang.org/rust-by-example | 以代码示例为主,适合对照查阅 |
| Rustlings | github.com/rust-lang/rustlings | 小练习题集,适合巩固基础 |
| Rust Playground | play.rust-lang.org | 在线运行 Rust 代码,无需安装环境 |
| Comprehensive Rust | google.github.io/comprehensive-rust | Google 出品的 Rust 课程,结构清晰 |
| Rust 标准库文档 | doc.rust-lang.org/std | 遇到不认识的类型和方法就查这里 |
遇到问题善用社区
- Rust 官方论坛:友好,适合提问
- Rust 中文社区:中文资源
- Stack Overflow:具体技术问题
加博主微信(和大家交个朋友)
由于博主平时也需要忙自己的工作,所以目前有点处理不过来大家的消息。微信是想和大家交个朋友,大家如果有技术上的问题,还请到微信群里向大家提问,加群请勿催促,博主会统一拉大家进群
加好友请备注“Rust“,否则通不过
微信号:xyfx18909025121(雪云飞星)