共计 1644 个字符,预计需要花费 5 分钟才能阅读完成。
背景
近几个月,笔者开始学习 Rust,并用 Rust 开始写一些代码。学到现在,不说对 Rust 有很深的理解,但是日常用来写一些代码是没有问题的,并且也能够根据需要进行下一步的学习。在学习的过程中,笔者也看了许多的资料,但是始终没有找到一个清晰的学习路径,可以帮助在学和写之间配合起来,所以笔者根据自己的学习经验,制作了这一份 Rust 的学习路径,配合一些实践和测试题,帮助大家学习 Rust。同时笔者也在这里推荐一下 PingCAP 的学习课程,其中的 Rust 课程质量很高,但是需要有一定的 Rust 基础,所以这也是笔者将其放在 RoadMap 最后面的原因,有经验的读者可以直接跳过前面进行 PingCAP 课程的学习
本路线并不是最终版本,日后会根据各种资源和需求的变化进行调整
RoadMap One
此路线比较适合习惯先了解全貌再去实践的同学,在入门级的课程中不包括各种 Rust 的例子,而是旨在了解 Rust 的语法、语义、类型系统等,它与 RoadMap Two 的区别在于,学习资料的顺序是颠倒的,实际上的知识点没有区别
基础知识
- 先阅读 The Rust Reference,重点了解 Rust 的各种语法和语义结构,有一个大概的认知
- 参照 Rust Language Cheat Sheet,对步骤一进行总结
- 阅读 The Rust Programming Language,重点放在各种特性以及例子的实现
- 跟随 Rust by Example,结合步骤三进行实践
- 完成本节课程
测试题
测试题没有先后区分,只要能够完成一道题就可以进行后面的学习
- 使用 Rust 编写一个 LinkList,要求所有的节点需要分配在堆上,需要实现 pop、push 方法
- 使用 Rust 编写双链双端队列以及对应的方法
扩展阅读
扩展阅读部分是一些 Rust 的借用和所有权的一些文章,用来帮助读者了解相关知识
- rust-means-never-having-to-close-a-socket
- Fearless-Concurrency
- RAII
RoadMap Two
此路线比较适合习惯先实践的同学,但是因为 Rust 与平常我们学习的语言有较大出入,我不建议直接进行实践。所以此路线还是会先进行 Rust 各项特性、基础的学习,但是会在学习的过程中让学习者进行实践操作,它与 RoadMap One 的区别是,学习资料的顺序是颠倒的,实际上的知识点没有区别
基础知识
- 阅读 The Rust Programming Language,重点放在各种特性以及例子的实现
- 阅读 The Rust Reference,重点了解 Rust 的各种语法和语义结构,有一个大概的认知
- 参照 Rust Language Cheat Sheet,对步骤二进行总结
- 跟随 Rust by Example,进行实践
- 完成本节课程
测试题
测试题没有先后区分,只要能够完成一道题就可以进行后面的学习
- 使用 Rust 编写一个 LinkList,要求所有的节点需要分配在堆上,需要实现 pop、push 方法
- 使用 Rust 编写双链双端队列以及对应的方法
扩展阅读
扩展阅读部分是一些 Rust 的借用和所有权的一些文章,用来帮助读者了解相关知识
- rust-means-never-having-to-close-a-socket
- Fearless-Concurrency
- RAII
进阶
完成路线一或者路线二的学习之后,可以进行进阶的学习,进阶部分不需要再学习新的资料,只需要完成两项训练即可,如有兴趣,可以再进行扩展部分的学习 (强烈推荐)。
目标
可以使用 Rust 进行日常开发,熟悉 Rust 的各项特性、语法和语义,使用 Cargo 进行项目搭建,代码检测,版本发布
内容
rustlings 训练
阅读并实践本书前 6 节
扩展
扩展部分强烈建议学习,本扩展是用来学习 Rust 配套的 Cargo 工具。Cargo 除了可以用作包管理外还有其他许多强大的功能可以帮助开发者开发 Rust 程序。
PS: 本节内容没有测试
最终目标
完成 PingCAP 本门课程
额外部分,选修
- Rust 异步编程,阅读本书
- UnSafe Rust, 阅读本书
- Rust 宏,阅读本书
- Rust 的编程范式,本书