Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

English Original

学习路径与资源建议

你将学到什么: 为前 90 天制定的结构化学习路线图、推荐书籍,以及如何避免被“借用检查器(Borrow Checker)”劝退。

难度: 初级

每个从 C# 转向 Rust 的开发者通常都会遵循一条可预测的路径:起初满怀热情,在第 3 周左右遇到“借用检查器之墙”,随后如果你能坚持下来,大约在第 3 个月时一切都会豁然开朗。本章节就是你的学习路线图。


1. 90 天学习路线图

第 1-2 周:夯实基础

  • 目标:让代码能够编译通过。
  • 核心:基础语法、结构体(Structs)、枚举(Enums)以及简单的所有权(Ownership)概念(理解什么时候传引用,什么时候传值)。
  • 任务:完成 Rustlings 教程中的前 20 个练习。

第 1 个月:深入标准库

  • 目标:能够高效地处理数据。
  • 核心VecHashMap 以及 迭代器 (Iterator) 模式(这相当于 Rust 版的 LINQ)。
  • 任务:编写一个简单的命令行工具,用于读取并统计文件中单词出现的频率。

第 2 个月:Trait 与泛型

  • 目标:编写可重用的代码。
  • 核心:实现常见的 Trait(如 DebugCloneDefault)并学习如何创建自己的 Trait(类似于 C# 中的接口)。
  • 任务:重构你的命令行工具,使用 Trait 来抽象数据的输入来源(比如支持文件输入和内存输入)。

第 3 个月:异步编程与生态

  • 目标:构建生产级别的服务。
  • 核心:使用 Tokio 处理异步/等待(async/await),使用 Serde 处理 JSON,使用 Axum 构建 Web API。
  • 任务:构建一个小型 REST API,并使用 SQLx 连接到数据库。

2. 推荐资源列表

资源名称类型推荐理由
《The Rust Programming Language》在线教程 (免费)Rust 官方权威教材,建议从头到尾阅读。
Rustlings交互式练习通过修复编译器报错的小练习来快速上手。
Rust by Example参考示例非常适合查找“在 Rust 中该如何实现 X 功能?”
《Programming Rust》纸质/电子书 (付费)对内存管理等底层机制进行了非常深入的技术讲解。

3. 面向 C# 开发者的顶级技巧

  1. 仔细阅读报错信息:Rust 的编译器报错提供了关于如何修复代码的详细指令。请务必逐行仔细阅读!
  2. 不要逃避“所有权”:虽然通过 .clone() 消除报错很诱人,但请不要这样做。停下来,花点时间理解为什么借用请求会被拒绝。
  3. 务必安装 rust-analyzer:这是一款 VS Code 插件,它就像是 Rust 领域的 ReSharper 或 IntelliCode,是开发必备神器。
  4. 积极参与社区:Rust 的官方论坛和各个中文社区对新人都非常友好且乐于助人。

C# 开发者总结表

  • 这是一场马拉松,而非短跑:Rust 的学习曲线确实比 C# 更陡峭,但它在代码质量和性能上带来的收益是巨大的。
  • 一次只关注一个重点:在第一个月里,不要急着去学 UnsafeMacros(宏),先打好基础。
  • 在实践中学习:Rust 是一门需要大量动手操作的语言。单纯阅读文档是学不会的,你必须亲手写代码并从编译器的反馈中汲取养分。

练习:开启你的征程

挑战:使用 rustup 安装 Rust 环境,在你的 IDE 中安装 rust-analyzer 插件,并执行 cargo new my_first_app。恭喜你,从现在起,你正式成为一名 Rustacean(Rust 开发者)了!

关键理解:每一位 Rust 专家都曾是一个在面对借用检查器的各种报错时,依然拒绝选择放弃的初学者。坚持住,你一定可以!