为什么值得花时间啃 Rust

Rust 的定位不是让你多背一套语法,而是解决一类真实痛点:写底层、高性能或并发程序时,要么用 C/C++ 跟内存泄漏、野指针、段错误死磕,要么用带垃圾回收的语言牺牲确定性延迟。这门课对应的是 O'Reilly《Rust程序设计(第2版)》的配套讲解,它把 Rust 的所有权、借用、生命周期拆成可操作的工程规则,而不是停留在概念演示。如果你的工作场景涉及 CLI 工具、网络服务、嵌入式、WASM 模块,或者要重构一段跑得慢、崩得莫名其妙的 C 代码,Rust 能让你在编译阶段就拦掉大部分内存与并发问题。值不值得学的判断标准很简单:如果你只写脚本或纯业务 CRUD,短期收益有限;如果你要碰性能、系统层、长期维护的底层组件,这门课的投入产出比会随项目复杂度上升而快速变正。

适合什么基础,建议先看哪几块

这份资料不适合完全没写过编译型语言的新手。最顺滑的基础是:你用过 C、C++、Java 或 Go 中的任意一种,知道指针、栈堆分配、泛型大致是怎么回事,写过几千行实际跑起来的代码。如果只碰过 Python 或 JavaScript,建议先补“变量生命周期”和“值传递”的直觉,否则所有权和借用检查器会让你在第三章卡住。建议先看的顺序是:第一章(理解 Rust 为什么这样设计)、第二章(导览,建立整体地图)、所有权与借用相关章节(这是全书的分水岭),然后跳到错误处理和模块组织。类型系统、并发、宏这些可以等手热了再回头啃。不要从头到尾线性读,容易在细节里耗光耐心。

学完能独立做什么,资料怎么配合练习

学完的标准不是“看完所有章节”,而是你能独立完成三件事:第一,写一个带命令行参数解析、读文件、输出结构化结果的小工具;第二,定义自己的 struct 和 trait,用泛型组合出可复用的接口,并让借用检查器不再报错;第三,用 Rust 的错误处理机制替代 panic,写出对调用方友好的库函数。资料里每一章都配有 HTML 正文和对应音频,建议的用法是:先用 HTML 快速扫一遍代码示例和关键概念,动手把示例敲进本地编译器跑通,遇到编译器报错时不要急着跳过——Rust 的报错信息本身就是最好的教材,逐条读懂再改。音频适合通勤时听第二章这种偏概念的部分,但涉及所有权和生命周期的章节一定要回到文本,对照代码逐行看。练习时准备一个本地项目目录,每章挑两三个示例改写,比如把官方示例的函数签名换一种写法,看编译器是否还放行。这种主动试错比被动读完收益大得多,也是把资料转化成实际编码能力的唯一捷径。


Rust程序设计(第2版)

课程目录

*   01 O'Reilly Media, Inc.介绍.html (0.01 MB)

*   01 O'Reilly Media, Inc.介绍.mp3 (0.40 MB)

*   02 专家推荐.html (0.01 MB)

*   02 专家推荐.mp3 (0.61 MB)

*   03 译者序.html (0.01 MB)

*   03 译者序.mp3 (1.49 MB)

*   04 前言.html (0.08 MB)

*   04 前言.mp3 (2.30 MB)

*   05 中文版审读致谢.html (0.01 MB)

*   05 中文版审读致谢.mp3 (0.25 MB)

*   06 第 1 章 系统程序员也能享受美好.html (0.02 MB)

*   06 第 1 章 系统程序员也能享受美好.mp3 (2.34 MB)

*   07 第 2 章 Rust 导览(1).html (0.02 MB)

*   07 第 2 章 Rust 导览(1).mp3 (2.48 MB)

*   08 第 2 章 Rust 导览(2).html (0.55 MB)

*   08 第 2 章 Rust 导览(2).mp3 (12.33 MB)

*   09 第 3 章 基本数据类型.html (0.26 MB)

*   09 第 3 章 基本数据类型.mp3 (11.58 MB)

*   10 第 4 章 所有权与移动.html (0.72 MB)

*   10 第 4 章 所有权与移动.mp3 (8.46 MB)

*   11 第 5 章 引用.html (0.55 MB)

*   11 第 5 章 引用.mp3 (11.47 MB)

*   12 第 6 章 表达式.html (0.06 MB)

*   12 第 6 章 表达式.mp3 (7.23 MB)

*   13 第 7 章 错误处理.html (0.04 MB)

*   13 第 7 章 错误处理.mp3 (6.56 MB)

*   14 第 8 章 crate 与模块(1).html (0.08 MB)

*   14 第 8 章 crate 与模块(1).mp3 (7.22 MB)

*   15 第 8 章 crate 与模块(2).html (0.27 MB)

*   15 第 8 章 crate 与模块(2).mp3 (5.38 MB)

*   16 第 9 章 结构体.html (0.09 MB)

*   16 第 9 章 结构体.mp3 (7.93 MB)

*   17 第 10 章 枚举与模式.html (0.36 MB)

*   17 第 10 章 枚举与模式.mp3 (7.37 MB)

*   18 第 11 章 特型与泛型(1).html (0.15 MB)

*   18 第 11 章 特型与泛型(1).mp3 (7.72 MB)

*   19 第 11 章 特型与泛型(2).html (0.03 MB)

*   19 第 11 章 特型与泛型(2).mp3 (4.27 MB)

*   20 第 12 章 运算符重载.html (0.05 MB)

*   20 第 12 章 运算符重载.mp3 (5.13 MB)

*   21 第 13 章 实用工具特型.html (0.15 MB)

*   21 第 13 章 实用工具特型.mp3 (10.71 MB)

*   22 第 14 章 闭包.html (0.23 MB)

*   22 第 14 章 闭包.mp3 (6.68 MB)

*   23 第 15 章 迭代器(1).html (0.03 MB)

*   23 第 15 章 迭代器(1).mp3 (3.88 MB)

*   24 第 15 章 迭代器(2).html (0.20 MB)

*   24 第 15 章 迭代器(2).mp3 (12.16 MB)

*   25 第 16 章 集合(1).html (0.26 MB)

*   25 第 16 章 集合(1).mp3 (8.52 MB)

*   26 第 16 章 集合(2).html (0.20 MB)

*   26 第 16 章 集合(2).mp3 (5.43 MB)

*   27 第 17 章 字符串与文本(1).html (0.39 MB)

*   27 第 17 章 字符串与文本(1).mp3 (9.36 MB)

*   28 第 17 章 字符串与文本(2).html (0.05 MB)

*   28 第 17 章 字符串与文本(2).mp3 (6.55 MB)

*   29 第 18 章 输入与输出.html (0.20 MB)

*   29 第 18 章 输入与输出.mp3 (8.79 MB)

*   30 第 19 章 并发(1).html (0.77 MB)

*   30 第 19 章 并发(1).mp3 (10.14 MB)

*   31 第 19 章 并发(2).html (0.08 MB)

*   31 第 19 章 并发(2).mp3 (6.84 MB)

*   32 第 20 章 异步编程(1).html (0.38 MB)

*   32 第 20 章 异步编程(1).mp3 (10.56 MB)

*   33 第 20 章 异步编程(2).html (0.15 MB)

*   33 第 20 章 异步编程(2).mp3 (9.01 MB)

*   34 第 20 章 异步编程(3).html (0.22 MB)

*   34 第 20 章 异步编程(3).mp3 (4.41 MB)

*   35 第 21 章 宏.html (0.39 MB)

*   35 第 21 章 宏.mp3 (8.93 MB)

*   36 第 22 章 不安全代码(1).html (0.03 MB)

*   36 第 22 章 不安全代码(1).mp3 (4.25 MB)

*   37 第 22 章 不安全代码(2).html (0.39 MB)

*   37 第 22 章 不安全代码(2).mp3 (11.29 MB)

*   38 第 23 章 外部函数.html (0.07 MB)

*   38 第 23 章 外部函数.mp3 (9.82 MB)

*   39 作者介绍.html (0.01 MB)

*   39 作者介绍.mp3 (0.37 MB)

*   40 封面介绍.html (0.01 MB)

*   40 封面介绍.mp3 (0.29 MB)

*   41 看完了.html (0.01 MB)

*   41 看完了.mp3 (0.14 MB)