深圳幻海软件技术有限公司 欢迎您!

13年资深开发者分享一年学习Rust经历:从必备书目到代码练习一网打尽

2023-02-28

如何学习Rust,HackerNews上有这么一篇教程火了。它不同于网络上类似的几小时速成教程,而是通过自己的学习经历向大家指出一条学习Rust的路径。教程发出之后,网友们也在HackerNews上贴出了自己的学习经历。了解Rust相关的书籍和教程很方便,即使在没有网络,离线的时候也可以学习。我在没

如何学习Rust,Hacker News上有这么一篇教程火了。

它不同于网络上类似的几小时速成教程,而是通过自己的学习经历向大家指出一条学习Rust的路径。

教程发出之后,网友们也在Hacker News上贴出了自己的学习经历。

了解Rust相关的书籍和教程很方便,即使在没有网络,离线的时候也可以学习。我在没有WiFi的长途飞行中学到了Rust的基础知识。确实是个打发时间的好方法!

阅读相关书籍以及编写代码对于学习一门编程语言来说都必不可少,二者交替学习对掌握Rust至关重要。

资深开发者Eli Bendersky在他的网站上撰写了很多篇关于代码语言的博客,其中就有一篇关于他自己为期一年学习Rust的经历。

一起来看看吧。

相关书目黑红榜

首先,Eli在教程中对他所读过的Rust相关书目做了评价。

Programming Rust一般是作为入门书籍来看,这是Eli学习Rust时所读的第一本书。

书中初步介绍了Rust,内含Rust1.50的全面概述和参考。

虽说它是入门书籍,但还是需要一定的编程基础,熟悉低级编程,尤其是内存管理。

总体而言,对于一个有经验的开发人员(最好具有C++背景)知道如何在项目中使用替代资源,这本书是对Rust的一个很好而全面的概述。

其次是The Rust Programming Language,相较于Programming Rust,Eli认为这本书会是一个更好的参考,虽然他还没有完整地读过整本书,但已经浏览了它的主要部分。

这本书在谷歌中的排名也名列前茅,很多人都将其列为Rust入门指南,由Rust核心团队的两名成员编写,42名社区成员反馈和贡献。

同样的是,阅读这本书也需要有编程基础,这意味着这些材料对于具有各种编程背景的开发人员来说都是有用的。

总结下来,如果想要阅读这些入门Rust书籍,就得先有一定的编程基础在。

接下来再来讲Rust in Action,它是关于Rust的一本中级书籍,包含系统编程领域的几个重要项目。

这本书中,介绍的方法很有趣,很适合已经初步了解Rust的人群阅读。

除此之外,它还专注于系统编程,并且写出了很多真正有用的代码。

但美中不足的是,由于这本书还很新,里面有许多错别字、混淆、代码清单和随附的存储库之间的严重不匹配等。

最后来讲一讲Rust for Rustaceans这本书,先说结论,不推荐阅读。

Eli很喜欢这本书的作者Jon Gjengset以前发布的一些视频,但是看完这本书却大失所望。

这本书混合了Rust官方书中解释得更好的材料和过于专业的材料,只是一层又一层的文字,几乎没有图表和代码示例,几乎没有任何可编译的项目去做一些有用的事情。

已经了解了学习Rust的相关书籍,在阅读之余也要适当练习练习编写代码。

编写代码练习

既然如此,我们该如何有效练习呢?Eli也根据自己的经验推荐了一些渠道。

如果开始学习Rust时,可以先用rustlings,它是用来阅读和编写Rust代码片段的小练习。虽然不是很全面,但对于刚入手的小白来说还是挺有用的。

网站附于文末。

再来说说Advent of Code,2021年版很适合用来练习Rust,一共有25个问题,根据它里面的指示来编写代码,完成任务。

通过解决AOC的问题,可以很好地学习和练习编程语言。

Eli已经完成了前面的18个问题,在博客中他也提到,很可能会再次在Rust中处理AOC2022,保持他的手感。

The Ray Tracer Challenge book,这本书由一系列“单元测试”和易于翻译成任何语言的伪代码组成,可以用来指导我们使用编程语言来实现光线追踪器。

在学习新的编程语言的同时,我们还可以构建一些可视化的东西,不会很快觉得枯燥。

但是,这本书着墨解释为什么它提供的公式和伪代码有效,无助于培养直觉。

这导致调试问题时会发生严重的差错。由于没有开发直觉,因此调试的唯一方法是将代码与书中的伪代码进行细致的比较,以确保在转录过程中没有丢失或输入错误的内容。

当然总体来说,还是值得一读的。

最后来讲一讲Crafting Interpreters,在这本书中,作者从头到尾为该语言开发了两个完整的解释器,包括所有前端和后端部分。

在书中,两个解释器的所有代码都完全包含在文本中并分段呈现。并不需要翻阅外部的存储库。直接阅读并将代码复制到自己的编辑器中即可运行。

Eli也对这本书抱有很高的评价,他认为这本书是在他看过的许多编译器书籍中,迄今为止最实用的。

除了以上这些,Eli还做了很多实验,编写代码来探索Rust的各个领域。