Rust学习心得

我分享一下一年的Rust学习经历,从书到代码都一网打尽。

关于新手如何学习Rust,我之前在Hacker News上看到了这么一篇教程:

这篇教程与其他教程不同的时,他不是一个速成教程,而是通过自己的学习经历,向需要学习Rust的网友分享一些学习心得。短时间内就有广大Hacker News网友分享出了自己学习Rust的经历。

我们都知道,学习一门编程语言,阅读书籍和编写代码是大多数人的学习方式;同样这两者的交替学习对掌握Rust也同样重要。

我学习Rust读的第一本书是“Programming Rust”,这也是我学Rust的入门书籍。

这本书初步介绍了Rust,包含对Rust 1.5的全面概述和参考。

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

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

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

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

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

总结下来,如果想要阅读这些入门Rust书籍,就必须要具备一定的编程基础。

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

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

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

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

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

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

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

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

编写代码练习

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

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

网站附于在回答文末。

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

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

我已经完成了前面的18个问题,很可能会再次在Rust中处理AOC 2024,来保持我编写Rust代码的感觉。

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

在学习新的编程语言的时,我们还可以构建一些可视化的项目,至少不会很快会感觉枯燥。

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

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

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/636666.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

常用的框架——— Android UtilCode

AndroidUtilCode是一个功能强大且易于使用的Android库。该库封装了Android开发中经常使用的具备完整演示和单元测试的功能。经过使用其封装的API,能够大大提升开发效率。该程序主要由两个模块组成,utilcode(一般在开发中使用)和su…

【C语言】实现贪吃蛇--项目实践(超详细)

前言: 贪吃蛇游戏大家都玩过吧?这次我们要用C语言来亲手制作一个!这个项目不仅能让我们复习C语言的知识,还能了解游戏是怎么一步步做出来的。我们会一起完成蛇的移动、食物的生成,还有碰撞检测等有趣的部分。准备好了…

LeetCode 79.单词搜索

原题链接:. - 力扣(LeetCode) 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内…

基于51单片机的音乐喷泉

基于51单片机的音乐喷泉 (程序+原理图+PCB+设计报告) 功能介绍 具体功能: 1.检测音乐信号的声音强度,使喷头的水柱能够根据音乐的节奏和音量起伏; 2.系统将声音强度转化为模拟信…

【云原生】Kubeadm部署k8s

目录 一、部署步骤 二、部署kubernetes 2.1、所有节点关闭防火墙 核心防护 iptables规则 swap交换 2.2、修改主机名并添加主机映射 2.3、调整内核参数 三、安装Docker 3.1、所有节点安装docker 3.2、所有接点添加镜像加速器 3.3、开启docker、并设置开机自启、查看状态…

Visual Studio中MP编译参数

MP通常与OpenMP(Open Multi-Processing)关联,它是用于多平台共享内存并行编程的一个API。 在编译C或C代码时使用OpenMP,通常需要特定的编译参数来启用这一功能。对于GCC和G编译器,这些参数包括: -fopenmp…

【全开源】Java情侣飞行棋系统微信小程序+H5+微信公众号+APP 源码

情侣飞行棋系统源码:共享欢乐时光的数字新选择 引言 在这个数字化时代,人们越来越追求独特的娱乐方式,与伴侣共度美好时光。情侣飞行棋系统源码应运而生,它不仅仅是一款游戏,更是情侣间增进感情、共享欢乐时光的桥梁…

C++的线程安全队列模板类封装

目录 1 线程安全队列封装一 2 线程安全队列封装二 3 线程安全队列封装三 1 线程安全队列封装一 /*** ** Copyright (c) Huawei Technologies Co., Ltd. 2020-2022. All rights reserved.** Redistribution and use in source and binary forms, with or without* modif…

机器学习(五) -- 监督学习(3) -- 决策树

系列文章目录及链接 上篇:机器学习(五) -- 监督学习(2) -- 朴素贝叶斯 下篇:机器学习(五) -- 监督学习(4) -- 集成学习方法-随机森林 前言 tips&#xff1a…

JAVA面试题大全(九)

1、为什么要使用 spring? 方便解耦,便于开发支持aop编程声明式事务的支持方便程序的测试方便集成各种优秀的框架降低JavaEE API的使用难度 2、解释一下什么是 aop? AOP 是 Aspect-Oriented Programming 的缩写,中文翻译为“面向…

Java CRM客户关系管理系统源码:基于Spring Cloud Alibaba与Spring Boot,专为成长型企业设计

项目名称:CRM客户关系管理系统 功能模块及描述: 一、待办事项 今日需联系客户:显示当日需跟进的客户列表,支持查询和筛选。分配给我的线索:管理分配给用户的线索,包括线索列表和查询功能。分配给我的客户…

EDM图纸管理软件_图纸文档管理软件

图纸文档管理软件是一种用于管理和组织各种类型的图纸和文档的工具。它提供了一种集中存储、查找、共享和版本控制图纸和文档的方式,以便团队成员可以更有效地进行协作和管理。 以下是一些常见的图纸文档管理软件: 彩虹EDM系统:这是一款图纸文…

K8S认证|CKA题库+答案| 5. 创建 Ingress

5 . 创建 Ingress 您必须在以下Cluster/Node上完成此考题: Cluster Master node Worker node k8s master …

java项目之图书管理系统源码(springboot+vue+mysql)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的图书管理系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 系统主要分为管理员角色和用…

六种常用设计模式

单例设计模式 单例模式指在整个系统生命周期里,保证一个类只能产生一个实例,确保该类的唯一性。 单例模式分类 单例模式可以分为懒汉式和饿汉式,两者之间的区别在于创建实例的时间不同: 懒汉式:指系统运行中&#…

基于Python实现 HR 分析(逻辑回归和基于树的机器学习)【500010104】

介绍 数据集说明 此数据集包含与员工有关的综合属性集合,从人口统计细节到与工作相关的因素。该分析的主要目的是预测员工流动率并辨别导致员工流失的潜在因素。 在这个数据集中,有14,999行,10列,以及这些变量:满意度…

【Python】 如何使用逗号作为千位分隔符打印数字

基本原理 在Python中,打印数字时自动添加千位分隔符可以提高数字的可读性,尤其是在处理大数字时。Python提供了多种方法来实现这一功能,包括使用内置的format()函数、f-string(格式化字符串字面量)以及locale模块。 …

数据量较小的表是否有必要添加索引问题分析

目录 前言一、分析前准备1.1、准备测试表和数据1.2、插入测试数据1.3、测试环境说明 二、具体业务分析2.1、单次查询耗时分析2.2、无索引并发查询服务器CPU占用率分析2.3、添加索引并发查询服务器CPU占用率分析 三、总结 前言 在一次节日活动我们系统访问量到达了平时的两倍&am…

50道题目!Python、SQL数据库、AB测试、业务分析、机器学习都在这里了!

介绍 每日一题系列已经更新了50道题目啦! 题目难度为初级到中级,涵盖了Python、SQL数据库、AB测试、业务分析、机器学习五大主题,适合初学者和有一定基础的朋友。 原文链接: 50道题目!Python、SQL数据库、AB测试、业务分析、机器…

达梦数据库详解

达梦认证是指针对中国数据库管理系统(DBMS)厂商达梦公司所推出的数据库产品,即达梦数据库(DMDB),进行的一种官方认证体系。达梦认证旨在验证数据库管理人员对达梦数据库产品的掌握程度,及其在数…