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

QbitAl QbitAl     2022-11-30     622

关键词:

Pine 发自 凹非寺
量子位 | 公众号 QbitAI

如何学习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的各个领域。

如果感兴趣的话可以戳下面的链接,进到他的网站查看更多~

参考链接:
rustlings:https://github.com/rust-lang/rustlings
AOC:https://adventofcode.com/
[1] https://eli.thegreenplace.net/2022/how-i-went-about-learning-rust/
[2] https://news.ycombinator.com/item?id=32104764

干货分享:十年大厂资深程序员的开发经验总结

本文由腾讯云加社区整理和发布,原文链接:cloud.tencent.com/developer/article/1004735,内容有删减和改动。1、引言在互联网一线做了十年的程序开发,经历了网易、百度、腾讯研究院、MIG等几个地方,陆续做过3D游戏、2D页游、浏览器... 查看详情

cmuaiphd第一年总结

大家好,我是对白。今天给大家分享一位大佬在Facebook做了四年机器学习,又到CMU攻读AIPhD的经历,希望给后续也想要深造的朋友们一点经验和帮助,以下为原文。作者:SpadeAce|编辑:对白的算法屋https://zhuanlan.zhihu.com/p/519841457不... 查看详情

rust学习教程02-rust语言简介

...速发展,与这一点密不可分)。Rust现在由Rust项目开发者社区维护。大家可能疑惑Rust为啥用了这么久才到1.0版本?与之相比,Go语言2009年发布,却在2012年仅用3年就发布了1.0版本。首先是因为Rust语言特性较为... 查看详情

从传统外企到阿里p9,这位java工程师经历了什么?

...介:肥侠,阿里巴巴集团P9级员工,集团客户体验事业群资深技术专家,10年工作经验,曾在某知名IT外企服务7年。在JDK开发、CRM平台架构领域拥有丰富经验。肥侠与马云画像的合影IT工程师肥侠的2014年过得不太平静,这一年年... 查看详情

毕业一年

从2017年6月毕业一年,准确说到今天2019年1月2日已经毕业一年半了。这一年来经历了毕业,感情失败,工作上从迷茫到适应再到独立挑起事情。看了一位博主的毕业N年系列,我觉得自己也有必要进行时间线的记录,一来记录每年... 查看详情

一个大四实习生从安卓小白到可以独自承担安卓和web前端的一年奋斗之旅

...老铁们!这是一篇无关技术的文章,而是对自己整个大四一年工作经验的总结,记录着自己的学习方法和学习习惯,记录着自己从最开始的一个安卓小白,到现在可以独自承担原生安卓项目。记录着自己在工作之余学习H5前端技... 查看详情

历经一年学弟从家里到了阿里,只要有梦想总会实现的!

...懂小白到BAT大佬,他都经历了什么?今天给大家分享一位学弟小六的超完整学习和求职经验,不需要我太多的介绍,他的故事和干货都在文章里了,希望对大家有帮助。写在前面:自我介绍一下,21借21... 查看详情

gde故事分享|从台下到台上,我成为谷歌开发者专家的经历

.../ 郭树煜 (Asher),Flutter&DartGDE历经一个多月的谷歌开发者专家(GoogleDeveloperExperts,GDE)面试后,我终于在2022年5月末成为了中国第四位Flutter&DartGDE。谷歌开发者专家https://developers.google.cn/community/experts相信很多开 查看详情

gde故事分享|从台下到台上,我成为谷歌开发者专家的经历

.../ 郭树煜 (Asher),Flutter&DartGDE历经一个多月的谷歌开发者专家(GoogleDeveloperExperts,GDE)面试后,我终于在2022年5月末成为了中国第四位Flutter&DartGDE。谷歌开发者专家https://developers.google.cn/community/experts相信很多开 查看详情

总结18,展望19

...于这几天思绪有点混乱,18年注定是对于我来说不平凡的一年,学习进步很大的一年,也是我经历过生死离别后成长最快的一年。  接下来总结下自己18年的成长。在前端开发上,我从简单的react项目开发过渡到能够独立驾驭整... 查看详情

广州h5学习之行成功转行it实现梦想的经历

这是学习H5的第四个月了。2017年是我人生中特殊的一年,我在这一年结束了学习生涯。从一个城到另一个城,辗转经年不过是想有个安身立命之所而已,不至于过得很落拓。从最开始的不适应到现在的渐入佳境,学习H5是我人生... 查看详情

3年以上android开发者,关于学习compose,我的经验总结和建议

缘起又到一年快结束的日子了这一年里经历了裁员,跳槽,跑路,也当过面试官面试一些同学。经历过攻守的角色转换后,沉下心,回顾过往,不由得发出感叹,今年卷的不行。无论是裁员还是跳槽... 查看详情

至2020年互联网创业公司的经历,总结。

...改变的一年。   xx世界500强企业工作4年之久,资深B职位(上升空间很小,很难突破)。   2016年04月25日申请离职,走向改变之路。   随即经过一段时间加入了xx创业公司。   小公司,... 查看详情

回顾这些年的学习技术经历

...科生,对什么物理之类的真的不是很懂,但是我上大学第一年,就遇到了对我来说很难的事,第一年学的是电子技术之类的课程,也就是各类电子元器件,还有实验课,完全不懂,那时候都怀疑自己了,是不是应该回去重新上高... 查看详情

rust编程指南02-进入rust语言世界(代码片段)

...速发展,与这一点密不可分)。Rust现在由Rust项目开发者社区维护。大家可能疑惑Rust为啥用了这么久才到1.0版本?与之相比,Go语言2009年发布,却在2012年仅用3年就发布了1.0版本。首先是因为Rust语言特性较为... 查看详情

做40年程序员是一种什么体验?他给出了13条建议

...等多家公司,目前就职于Shopify。作为一名资深的软件开发者,他一直活跃在开发一线。但与想象中不同,这次他并没有介绍要学习什么语言或框架,而是指出了一些他认为比技术更重要的事。(以下是作者Noah... 查看详情

毕业三年个人经历分享从10k和30k月薪,数据结构与算法真实太tm重要了!

数据结构与算法大家都知道选择合适的数据结构将会显著地提升代码的性能。即使是像数组和集合这样相似的两种数据结构,在高负荷的运行环境下也会表现得天差地别。但是就算数据结构确定了,代码的速度也还会受另一重要... 查看详情

一个开发10年程序员论:学习python最正确的步骤(0基础必备)

很多人都在问Python学习步骤应该如何安排?多长时间可以达到精通呢?如果需要学习资料可以加Python学习交流群:548377875获取小编精心给零基础准备的入门资料。当然了,如果你想要爬虫或者web开发的项目视频源码也可以,都是... 查看详情