NiQin (blog: 泥芹) shared the aphorism --
I returned and saw under the sun, that the race is not to the swift, nor the battle to the strong, neither yet bread to the wise, nor yet riches to men of understanding, nor yet favour to men of skill; but time and chance happeneth to them all. -- 《圣经》

[Rust] 2021 年,学习 Rust 的网络资源推荐(2)

💥 内容涉及著作权,均归属作者本人。若非作者注明,默认欢迎转载:请注明出处,及相关链接。

Summary: 上文《2021 年,学习 Rust 的网络资源推荐》中,我们介绍了 Stjepan Golemac 和 Luciano Mammino 两位作者整理的 Rust 学习资源,都是优秀且免费的。包括:官方书籍、非官方书籍,以及优秀的开发者博客。本文,我们继续看看 2 位作者推荐的视频流媒体、电子期刊、播客、社区和聚会、练习和研讨会,以及精选开源项目等 Rust 学习资源。另外,本文中还推荐了 Rust 优秀的付费学习资源。

Topics: rust 学习资料

上文《2021 年,学习 Rust 的网络资源推荐》中,我们介绍了 Stjepan Golemac 和 Luciano Mammino 两位作者整理的 Rust 学习资源,都是优秀且免费的。包括:

  • 官方书籍;
  • 非官方书籍;
  • 优秀的开发者博客。

本文,我们继续看看 2 位作者推荐的视频流媒体、电子期刊、播客、社区和聚会、练习和研讨会,以及精选开源项目等 Rust 学习资源。

另外,本文中还推荐了 Rust 优秀的付费学习资源。

原文翻译


视频流媒体(youtube 和 twitch 频道)

如果您喜欢一种更直观的学习方式,或者仅仅是喜欢视频材料,这里有 Youtube 和 Twitch 频道可以提供。

Ryan Levick

我们 2 人最喜欢的 Rust YouTube 频道之一,是 Ryan Levick 的视频讲解 Rust。Ryan 是一名微软公司的工程师,他花了很多时间来制作 Rust 视频。他的视频内容非常丰富,有入门视频,也有更高级的视频,如静/动态调度、FFI 等。我们最喜欢 Ryan 的是:他擅长解释概念,既简单又复杂。每一个视频都是一个小小的宝石,而且总是有关注点的实例。

如果你喜欢看 Ryan 的视频直播,你也可以在 Twitch 上联系他

Ryan Rust 视频

Jon Gjengset

Jon Gjengset 是另一位才华横溢的内容创作者,我们钦佩他,他有将复杂的话题变得简单易懂的能力。关于 Rust 学习视频,他现在有两个主要系列:

目前,《Unsafe 编年史》系列只有一个视频,但作者最近在 Twitter 上宣布将制作更多的《Unsafe 编年史》系列视频,我们应该期待他花更多的时间,创造新的令人兴奋的内容!

Jon Rust 视频

如果你更喜欢看 Jon 的直播,你可以在 Twitch 上联系他

Tim McNamara

Tim 是《Rust in Action》(稍后将详细介绍)一书的作者,但他也是一个多产的视频流作者。他一直在做一个优秀的视频,叫做学习 Rust 编程。我们认为这个系列在 Rust 学习起步方面,是一个非常好的选择。Tim 的视频中,我们最喜欢的是关于 Rust 中的错误处理

如果你想跟着 Tim 一起学习 Rust,你可以在 YouTubeTwitch 上找到他。

Genus-v 程序设计

Genus-v 程序设计是 YouTube 上另一个很棒的频道,有一些有趣的素材。它主要集中在 Rust 的 web 开发上,这可能是它被我们关注的原因。

Genus-v 程序设计的播放列表中,我们最喜欢的是使用 Rust 进行 Web 开发,它展示了如何使用 Actix 构建 GraphQL api,以及身份验证。

Systems with JT

Systems with JT 是 Jonathan Turner 的 YouTube 频道。Jonathan 是一个非常活跃的 Rust 开发者。他是 Nushell 的作者。当然,在他的频道里,有很多关于 Rust 的视频。现在,我们最喜欢的系列是 Jonathan 对《如何在 Rust 中创建一个编辑器》的讲解。

电子期刊

我们推荐两个主要的电子期刊,我们的建议是:Awesome Rust NewsletterThis Week in Rust。两者都是极好的资源,可以让自己跟上 Rust 世界中最新的新闻。

另一个值得推荐的电子期刊资源是 Read Rust,尽管它不是严格意义上的电子期刊,而是提供了一个关于 Rust 的高质量文章的集合。如果您想接收即时通知的新内容,可以进行 RSS 订阅。

播客

据我们所知,现在还没有太多关于 Rust 的播客。我们偶尔收听的两个节目是 Rustacean 电台New Rustacean

另一个很不错的,虽然主题不是 Rust,而是 Bikeshed(译者注:主要为 Ruby、Rails、JavaScript 的开发经验谈),但其中偶尔包含探索 Rust 的情节(见 #133#134)。

社区和聚会

如果你想与 Rust 社区其它开发者有更多的互动,我们可以推荐这几个“地方”。

第一个是官方的 Discord 社区

然后,有几个聚会小组,我们一直零星参加(在这个时间段,都是虚拟聚会。译者注:因为新冠):Rust LondonRust Berlin,以及 Rust Dublin

Rust Dublin

练习和研讨会

学习 Rust 方面,最推荐的的方法是……练习,练习,练习!但有可能,你现在还不知道应做什么……而且,即使你知道,但你具体的想法,却可能不会提供最简单的学习曲线。

如果您愿意不断地编写的 Rust 代码,以更好地使用 Rust,我们可以推荐一些资源。

首先,我们提到的是 Rustlings。这是一个官方资源,允许您通过练习和测试(您可以使用它来验证您的解决方案),以实践 Rust 概念。这些练习与官方 Rust 书籍中涉及的主题相关,因此您可以在阅读官方书籍的过程中进行练习。

另一个有趣的资源是 Luca Palmieri 的一个名为“用 Rust 构建自己的 Jira”的研讨会。在这个研讨会上,你将从一个半成品的项目开始,然后去“填空”。每一个文件都是一个小小的“坑”,通过提供正确的实现,您将学到一两个新概念。

最后,当您开始对 Rust 编程感到舒服一些的时候,我们建议您尝试 Rust 最佳代码挑战活动,这是由 Advent of Code 提议的。我们真的在做这件事,到目前为止,很有趣!

开源项目

另一件有趣的事情是,你可以通过参阅著名的开源项目的代码,以巩固你对 Rust 的理解和学习。

你不必逐行阅读所有的代码,因为有些项目代码量非常庞大。但是,只要随意浏览一下代码中的一些地方,或者简单地查看一下代码结构和文档,都会非常有益,您可以从中学到很多东西。

以下是我们建议您查看的库列表:

  • Tokio、Async-std、Smol(异步运行时,参阅应用示例
  • Serde(序列化/反序列化库,参阅应用示例
  • Clap(CLI 辅助库,参阅应用示例
  • Rand(随机值库,参阅应用示例
  • Chrono(日期和时间库,参阅应用示例
  • Nannou(创意编码框架)
  • Amethyst、Bevy(游戏开发)
  • Sled(嵌入式数据库)
  • mdBook(书籍构建工具,参阅中文资料

付费资源

书籍

如果你更喜欢通过阅读书籍来学习,如下清单应该可以满足你。

Rust in Action(Tim McNamara)

Tim McNamara 编写的 Rust in Action 可能是我们最喜欢的书籍之一。此书已经筹备了好几年,应该很快就会正式出版。目前,这本书已经可以通过 Manning MEAP 计划 购买(你可以得到书籍的数字版本,以及后期的所有更新。然后,当纸质版本出版时,你会通过邮寄方式收到纸质书籍)。

译者注: MEAP 是一个早期阅读计划,边写边读。详见什么是 MEAP

我们之所以如此喜欢这本书,是因为它采取了非常实际的立场。Rust 概念是通过构建有趣的项目来教授的,例如浮点数抽象、CPU 模拟器、自定义文件格式、k-v 数据库等。

Rust in Action

Zero to Production in Rust(Luca Palmieri)

译者注:这本书相当棒,并且以前是可以从 Luca Palmieri 的博客免费阅读,以及下载电子书的——可能目前已有变化,笔者也曾在很长时间内跟随和啃着这本书。这本书的 web 框架是 actix-web,笔者后来转到 Tide,未继续阅读,但还是经常关注。笔者根据个人站点的粗略数据统计,国内还是对 actix-web 感兴趣的朋友多,建议阅读。

Luca Palmieri 自己出版的 Zero to Production in Rust 是一本关于 Rust 后端 web 开发的优秀书籍。我们特别喜欢这本书,有着各种原因。

首先,这显然是一个奉献和爱的过程。我们不止一次有机会和 Luca Palmieri 交谈过,很明显,他在这个项目上投入了大量的时间和精力。

由于这本书是一部正在进行中的作品,你可以在新的章节出版后尽快阅读。很高兴看到社区参与到这个项目中,帮助作者充分完善这本书。

Luca 在这本书中,围绕着一个主要的例子:构建电子邮件订阅平台。乍一看,开发者可能会认为这是一个非常简单的例子。但实际上,这个领域有足够的复杂性,可以用来填满整本书。最重要的是,在这个过程中可以深入学习 Rust!

除此之外,我们还喜欢作者在整本书中所使用的独特风格。在每一章中,在编写任何一段代码之前,都会有一个完整的部分来说明需求是什么,以及为什么我们真的需要构建某个特性。然后,每一段代码都有它自己的测试,实际上,任何迭代都是通过严格的测试驱动方法引入的。这对于一本技术书籍来说,是很不寻常的,但这就是我们喜欢这本书的原因。在阅读时,你似乎正在和你的产品经理,或团队负责人交谈,你意识到你实际上可以在工作中使用 Rust,不会遇到什么大不了的阻碍!

我们认为从这本书中可以学到很多东西,不仅仅是关于 Rust,甚至还有关于产品开发,以及良好的软件工程实践。强烈推荐!

Zero to Production in Rust

Rust 编程

Jim Bland、Jason Orendorff,和 Leonora F.S. Tindall(O’Reilly 出版)联合奉献的《Rust 编程》是最受欢迎的 Rust 书籍之一。我们有机会读了第一版,这是一本非常可靠的书。第二版应该在今年夏天出版。

在第一版中,有一些章节(特别是第一章)有点难以理解,但我们听说作者一直在努力听取读者的反馈,以确保第二版更加完善和可被接受。

鉴于第一版的成功,我们期待着第二版。

Rust 编程

Rust 程序设计语言(Steve Klabnik、Carol Nichols)

这本书既是第一篇博文《2021 年,学习 Rust 的网络资源推荐》中提到的 Rust 团队的官方书籍 Rust book,也有其纸质书籍出版。所以这儿就没有什么需要补充的,如果你喜欢阅读印刷书籍(并且想支持作者),这是一本非常棒的书籍!

Rust 编程

视频课程

为了结束本文,在最后一节中,我们将探讨一些付费视频课程。您可以确认后再决定您是否喜欢,以将视频作为学习材料。

Rust in Motion

Carol Nichols 和 Jake Goulding(Manning)制作的 Rust 视频课程,很棒。这些视频材料是面向初学者的,所以这是学习 Rust 的极佳方式。

在这个视频课程中,我们最喜欢的部分是:对 Rust 生命周期的讲解。我们特别喜欢视频中对生命周期的形象化解释,其中的例子,使得我们很容易理解 Rust 生命周期这个基本概念。

Rust in Motion

使用 Rust 构建 web APIs

Paris Liakos(Udemy)制作的使用 Rust 构建 web APIs 视频系列,是一个非常好的入门级课程,介绍了如何使用 Rocket 作为 web 框架,结合 Diesel ORM 构建 Rust web 应用程序。

这个视频课程中,通过大约 2 个半小时的时间,你就可以感受到,用 Rust 进行 web 开发意味着什么。

结论

我们的学习资源列表,到此就结束了。

我们真的希望,你发现这里所有的资料都有用。我们期待着听到你的反馈,以及了解您如何成为一员“rustacean”的旅程。

如果你遇到了一些其它有趣的 Rust 学习资料,而我们在这篇文章中没有提到,请告诉我们。

在那之前……享受编写 Rust 代码的乐趣吧!

拜拜 👋


译者按

我们可以看到,国外的 Rust 社区发展迅猛,而国内仍然处于萌芽期。如果您有优秀的 Rust 经验心得,或者您遇到了中文方面有趣的 Rust 学习资源,欢迎您投稿或者联系笔者,我们一起集中分享给对 Rust 感兴趣的国内开发者。

谢谢您的阅读!

原文链接:Where to go to learn Rust in 2021


Related Articles

  1. [Rust] iRust.net:基于 Rust-Web 技术栈,及 image-rs、fluent-rs、rhai-script ……
  2. [WebAssembly] yew SSR 服务器端渲染
  3. [Rust] async-std 创建者对于最近“项目是否已死?”,移除对其支持等的答复
  4. [Rust] Rust 1.56.0 版本和 Rust 2021 版次发布,新特性一览,及项目的迁移、升级
  5. [WebAssembly] Rust 和 Wasm 的融合,使用 yew 构建 WebAssembly 博客应用的体验报告
  6. [Rust] Rust 官方周报 399 期(2021-07-14)
  7. [WebAssembly] Rust 和 Wasm 的融合,使用 yew 构建 web 前端(5)- 构建 HTTP 请求、与外部服务器通信的两种方法
  8. [Rust] Rust 官方周报 398 期(2021-07-07)
  9. [Rust] Rust 官方周报 397 期(2021-06-30)
  10. [Rust] Rust 官方周报 396 期(2021-06-23)
  11. [Rust] Rust 官方周报 395 期(2021-06-16)
  12. [Rust] Rust 1.53.0 明日发布,关键新特性一瞥
  13. [Rust] 使用 tide、handlebars、rhai、graphql 开发 Rust web 前端(3)- rhai 脚本、静态/资源文件、环境变量等
  14. [Rust] 使用 tide、handlebars、rhai、graphql 开发 Rust web 前端(2)- 获取并解析 GraphQL 数据
  15. [Rust] 使用 tide、handlebars、rhai、graphql 开发 Rust web 前端(1)- crate 选择及环境搭建
  16. [Rust] Rust 官方周报 394 期(2021-06-09)
  17. [Rust] Rust web 前端库/框架评测,以及和 js 前端库/框架的比较
  18. [WebAssembly] Rust 和 Wasm 的融合,使用 yew 构建 web 前端(4)- 获取 GraphQL 数据并解析
  19. [WebAssembly] Rust 和 Wasm 的融合,使用 yew 构建 web 前端(3)- 资源文件及小重构
  20. [WebAssembly] Rust 和 Wasm 的融合,使用 yew 构建 WebAssembly 标准的 web 前端(2)- 组件和路由
  21. [WebAssembly] Rust 和 Wasm 的融合,使用 yew 构建 WebAssembly 标准的 web 前端(1)- 起步及 crate 选择
  22. [Rust] Rust 官方周报 393 期(2021-06-02)
  23. [Rust] Rust 官方周报 392 期(2021-05-26)
  24. [Rust] Rust 中,对网址进行异步快照,并添加水印效果的实践
  25. [Rust] Rust 官方周报 391 期(2021-05-19)
  26. [Rust] Rust,风雨六载,砥砺奋进
  27. [Rust] 为什么我们应当将 Rust 用于嵌入式开发?
  28. [Rust] Rust 官方周报 390 期(2021-05-12)
  29. [Rust] Rust + Android 的集成开发设计
  30. [Rust] Rust 1.52.1 已正式发布,及其新特性详述
  31. [Rust] 让我们用 Rust 重写那些伟大的软件吧
  32. [Rust] Rust 1.52.0 已正式发布,及其新特性详述
  33. [Rust] Rust 官方周报 389 期(2021-05-05)
  34. [GraphQL] 基于 actix-web + async-graphql + rbatis + postgresql / mysql 构建异步 Rust GraphQL 服务(4) - 变更服务,以及小重构
  35. [Rust] Rust 1.52.0 稳定版预发布测试中,关键新特性一瞥
  36. [Rust] Rust 生态中,最不知名的贡献者和轶事
  37. [Rust] Rust 基金会迎来新的白金会员:Facebook
  38. [Rust] Rustup 1.24.1 已官宣发布,及其新特性详述
  39. [Rust] Rust 官方周报 388 期(2021-04-28)
  40. [Rust] Rust 官方周报 387 期(2021-04-21)
  41. [GraphQL] 构建 Rust 异步 GraphQL 服务:基于 tide + async-graphql + mongodb(4)- 变更服务,以及第二次重构
  42. [Rust] Rustup 1.24.0 已官宣发布,及其新特性详述
  43. [Rust] basedrop:Rust 生态中,适用于实时音频的垃圾收集器
  44. [Rust] Rust 编译器团队对成员 Aaron Hill 的祝贺
  45. [Rust] Jacob Hoffman-Andrews 加入 Rustdoc 团队
  46. [机器人] 为什么应将 Rust 引入机器人平台?以及机器人平台的 Rust 资源推荐
  47. [Rust] rust-lang.org、crates.io,以及 docs.rs 的管理,已由 Mozilla 转移到 Rust 基金会
  48. [Rust] Rust 官方周报 386 期(2021-04-14)
  49. [Rust] Rust 编译器(Compiler)团队 4 月份计划 - Rust Compiler April Steering Cycle
  50. [GraphQL] 基于 actix-web + async-graphql + rbatis + postgresql / mysql 构建异步 Rust GraphQL 服务(3) - 重构
  51. [Rust] 头脑风暴进行中:Async Rust 的未来熠熠生辉
  52. [GraphQL] 基于 actix-web + async-graphql + rbatis + postgresql / mysql 构建异步 Rust GraphQL 服务(2) - 查询服务
  53. [GraphQL] 基于 actix-web + async-graphql + rbatis + postgresql / mysql 构建异步 Rust GraphQL 服务 - 起步及 crate 选择
  54. [Rust] Rust 2021 版本特性预览,以及工作计划
  55. [Rust] Rust 用在生产环境的 42 家公司
  56. [Rust] 构建最精简的 Rust Docker 镜像
  57. [Rust] Rust 官方周报 385 期(2021-04-07)
  58. [Rust] 使用 Rust 做异步数据采集的实践
  59. [Rust] Android 支持 Rust 编程语言,以避免内存缺陷
  60. [Rust] Android 平台基础支持转向 Rust
  61. [Rust] Android 团队宣布 Android 开源项目(AOSP),已支持 Rust 语言来开发 Android 系统本身
  62. [Rust] RustyHermit——基于 Rust 实现的下一代容器 Unikernel
  63. [Rust] Rustic:完善的纯粹 Rust 技术栈实现的国际象棋引擎,多平台支持(甚至包括嵌入式设备树莓派 Raspberry Pi、Buster)
  64. [Rust] Rust 迭代器(Iterator trait )的要诀和技巧
  65. [Rust] 使用 Rust 极致提升 Python 性能:图表和绘图提升 24 倍,数据计算提升 10 倍
  66. [Rust] 【2021-04-03】Rust 核心团队人员变动
  67. [Rust] Rust web 框架现状【2021 年 1 季度】
  68. [Rust] Rust 官方周报 384 期(2021-03-31)
  69. [Rust] Rust 中的解析器组合因子(parser combinators)
  70. [生活] 毕马威(KPMG)调查报告:人工智能的实际采用,在新冠疫情(COVID-19)期间大幅提升
  71. [Python] HPy - 为 Python 扩展提供更优秀的 C API
  72. [Rust] 2021 年,学习 Rust 的网络资源推荐(2)
  73. [Rust] 2021 年,学习 Rust 的网络资源推荐
  74. [生活] 况属高风晚,山山黄叶飞——彭州葛仙山露营随笔
  75. [Rust] Rust 1.51.0 已正式发布,及其新特性详述
  76. [Rust] 为 Async Rust 构建共享的愿景文档—— Rust 社区的讲“故事”,可获奖
  77. [Rust] Rust 纪元第 382 周最佳 crate:ibig 的实践,以及和 num crate 的比较
  78. [Rust] Rust 1.51.0 稳定版本改进介绍
  79. [Rust] Rust 中将 markdown 渲染为 html
  80. [生活] 国民应用 App 的用户隐私数据窥探
  81. [GraphQL] 构建 Rust 异步 GraphQL 服务:基于 tide + async-graphql + mongodb(3)- 重构
  82. [GraphQL] 构建 Rust 异步 GraphQL 服务:基于 tide + async-graphql + mongodb(2)- 查询服务
  83. [GraphQL] 构建 Rust 异步 GraphQL 服务:基于 tide + async-graphql + mongodb(1)- 起步及 crate 选择
  84. [Rust] Rust 操控大疆可编程 tello 无人机

Topics

rust(84)

graphql(17)

rust-官方周报(17)

webassembly(16)

wasm(10)

tide(9)

async-graphql(9)

yew(9)

rust-web(8)

rust-官方博客(8)

this-week-in-rust(6)

mysql(5)

actix-web(5)

rbatis(5)

android(4)

mongodb(3)

json-web-token(3)

jwt(3)

cargo(3)

技术延伸(3)

rust-wasm(3)

trunk(3)

handlebars(3)

rhai(3)

async-std(3)

用户隐私(2)

学习资料(2)

python(2)

ai(2)

人工智能(2)

postgresql(2)

rust-compiler(2)

rust-基金会(2)

rust-foundation(2)

rustup(2)

rust-toolchain(2)

rust-工具链(2)

rust-游戏开发(2)

rust-区块链(2)

rust-2021(2)

graphql-client(2)

surf(2)

rust-game(2)

rusthub(2)

tello(1)

drone(1)

无人机(1)

隐私数据(1)

markdown(1)

html(1)

crate(1)

async(1)

异步(1)

旅游(1)

不忘生活(1)

葛仙山(1)

hpy(1)

python-扩展(1)

正则表达式(1)

解析器组合因子(1)

组合器(1)

regular-expression(1)

parser-combinator(1)

regex(1)

官方更新(1)

rust-工作招聘(1)

rust-技术资料(1)

rust-周最佳-crate(1)

rust-web-框架(1)

rust-web-framework(1)

rust-核心团队(1)

rust-core-team(1)

rust-language-team(1)

pyo3(1)

rust-python-集成(1)

python-性能改进(1)

迭代器(1)

iterator-trait(1)

国际象棋(1)

chess(1)

游戏引擎(1)

game-engine(1)

虚拟化(1)

unikernel(1)

rustyhermit(1)

linux(1)

virtualization(1)

sandboxing(1)

沙箱技术(1)

数据采集(1)

异步数据采集(1)

docker(1)

镜像(1)

生产环境(1)

rust-评价(1)

rust-2021-edition(1)

rust-2021-版本(1)

graphql-查询(1)

vision-doc(1)

愿景文档(1)

代码重构(1)

steering-cycle(1)

方向周期(1)

隐私声明(1)

机器人(1)

robotics(1)

rustdoc(1)

rust-编译器(1)

实时音频(1)

real-time-audio(1)

变更服务(1)

mutation(1)

查询服务(1)

query(1)

rust-贡献者(1)

rust-轶事(1)

rust-稳定版(1)

rust-预发布(1)

rust-测试(1)

安全编程(1)

可信计算(1)

安全代码(1)

secure-code(1)

rust-android-integrate(1)

rust-embedded(1)

rust-嵌入式(1)

rust-生产环境(1)

rust-production(1)

网页快照(1)

网页截图(1)

水印效果(1)

图片水印(1)

yew-router(1)

css(1)

web-前端(1)

wasm-bindgen(1)

区块链(1)

blockchain(1)

dotenv(1)

标识符(1)

rust-1.53.0(1)

rust-1.56.0(1)

rust-项目升级(1)

异步运行时(1)

ssr(1)

tokio(1)

warp(1)

reqwest(1)

graphql-rust(1)


Elsewhere

- Open Source
  1. github/zzy
  2. github/sansx
- Learning & Studying
  1. Rust 学习资料 - iRust.net