From 091ccf8b333607864543ebd7511ef37740cb8837 Mon Sep 17 00:00:00 2001 From: LiuQidong <2548818216@qq.com> Date: Thu, 25 Apr 2024 10:16:08 +0800 Subject: [PATCH] =?UTF-8?q?20240425=E5=88=98=E5=90=AF=E4=B8=9C=E6=8F=90?= =?UTF-8?q?=E4=BA=A42024=E5=BC=80=E6=BA=90=E6=93=8D=E4=BD=9C=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E8=AE=AD=E7=BB=83=E8=90=A5=E4=B8=80=E9=98=B6=E6=AE=B5?= =?UTF-8?q?=E6=80=BB=E7=BB=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...66\346\256\265\346\200\273\347\273\223.md" | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 "source/_posts/2024\346\230\245\345\255\243\345\274\200\346\272\220\346\223\215\344\275\234\347\263\273\347\273\237\350\256\255\347\273\203\350\220\245\345\210\230\345\220\257\344\270\234\344\270\200\351\230\266\346\256\265\346\200\273\347\273\223.md" diff --git "a/source/_posts/2024\346\230\245\345\255\243\345\274\200\346\272\220\346\223\215\344\275\234\347\263\273\347\273\237\350\256\255\347\273\203\350\220\245\345\210\230\345\220\257\344\270\234\344\270\200\351\230\266\346\256\265\346\200\273\347\273\223.md" "b/source/_posts/2024\346\230\245\345\255\243\345\274\200\346\272\220\346\223\215\344\275\234\347\263\273\347\273\237\350\256\255\347\273\203\350\220\245\345\210\230\345\220\257\344\270\234\344\270\200\351\230\266\346\256\265\346\200\273\347\273\223.md" new file mode 100644 index 00000000000..7df405419ac --- /dev/null +++ "b/source/_posts/2024\346\230\245\345\255\243\345\274\200\346\272\220\346\223\215\344\275\234\347\263\273\347\273\237\350\256\255\347\273\203\350\220\245\345\210\230\345\220\257\344\270\234\344\270\200\351\230\266\346\256\265\346\200\273\347\273\223.md" @@ -0,0 +1,95 @@ +--- +title: 2024春季开源操作系统训练营刘启东一阶段总结 +date: 2024-04-25 09:13:51 +tags: +--- +# Rust一阶段总结 + +# 零、个人照片 + +随便放张生活照吧,很久之前拍的了,呵呵~时间过得真快 + +![](https://ikun-1322198038.cos.ap-guangzhou.myqcloud.com/undefined202404242218564.jpg) + +# 一、本次参赛情况概述 + +本人也是上届训练营参营成员,不过那时候是和一个水友组的队,基本只有我一个人在努力写题。想起上次训练营我啥也不会,也没看过[《Rust语言程序设计》](https://rustwiki.org/zh-CN/book/title-page.html),抱着[《Rust圣经》](https://course.rs/about-book.html)+ChatGPT硬啃,勉强过了一阶段的100题,后面由于二阶段实在是有点复杂,迫于学业和项目组项目压力,勉强做了两个就做不下去了。 + +这次拉了两个工作室成员,都是有一定工程基础的,有一位成员在此之前接触过Rust,所以这次一阶段至少还算轻松,不会了线下相互请教一下,最终也是慢悠悠地过了一阶段。当然这次总结我倒不打算主要讲Rust代码上的东西,哈哈,相比较于程序设计,我倒感觉思想上的收获更多。 + + + +# 二、rustlings任务完成心得 + +这次任务,我将之前的(多)线程、外部导入函数、裸指针、所有权与借用以及模式匹配更层次地理解了一遍。想起我上次都是靠GPT撑过来的,属实确实有点搞笑了,这里我总结一下如何跟着这个Rust训练营的学习方法: + + + +## 2.1看官方文档 + +这里的官方有多个含义。 + +首先是训练营官方给出的环境搭建文档,跑软件不可避免要进行环境搭建,最简单也得学会用docker,学会了搭建最基础的环境,才能整式开始学习之旅。 + +然后是看《Rust程序设计》这本mdbook,一阶段很多知识点,其实可以从这本书找到答案,换句话说,这本书相当于rustlings的提示手册了,仔细钻研这本书,还是可以学到很多东西的,如果直接去看《Rust圣经》 对没有基础的同学来说还是容易劝退 + +最后就是看Rust语言的官方文档了,有中英双语版本,可以看到每个函数的具体解释,这里我推荐使用`zeal`这个[软件](https://zealdocs.org/download.html)安装Rust的文档进行查看,不需要联网,支持全局查找,还是很不错的 + + + +## 2.2看他人博客 + +虽然很多文档都有,但是大部分都是英文的,可惜我们一组3个成员英语都不太好,只能硬啃文档。另一种好的方法是去找别人学习源码的笔记,一遍写得好的笔记也是能传递很多知识的,我在仔细翻阅他们的笔记之后,加深了对所有权和一些陷阱的理解 + + + +## 2.3多动手实验 + +当然,理工科的东西还是以动手为主。我们由于本身有工程基础,于是乎就开始拉几台服务器自己装下环境,在ubuntu装,在windows装,在WSL装,在classroom装,都装一遍,写好通用的执行流程和坑点,加深对Rust的理解。 + +不过说实话,如果操作系统训练营要成为一门面向大众的训练营,以目前的文档详细程度来说,其实在文档上面下的功夫依旧不够,代入一个新手的视角来看,配置gitHub秘钥是陌生的,github进在线classroom运行时陌生的,git是陌生的,如果仅仅只有LInux基础还是很容易劝退,这就必须要个人有一点自主学习,热爱钻研的能力才能坚持下去,很多工程新手要完成这个阶段也得两三天。就我个人刚入门工程项目的时候,我自学git就很容易犯低级错误,或者进行不规范的操作,我觉得训练营至少要给出一遍基础操作,这样就能带动更广泛的学生参与进来。只要过了环境配置,后面通过一阶段那就只是坚持下去就能完成的事情了。 + + + +# 三、完成rustlings过程中遇到的困难 + +## 3.1语法不熟悉 + +其实环顾rustlings和《Rust语言程序设计》,这两者都没有重点讲Option是什么,Result是什么,unwarp()是什么,都需要自己去找额外的文档进行理解,很多需要的函数,不如trip(),insert(),get_mut(),as_mut(),as_ref()这些奇怪的函数,但是其实这些挺基础的,如果不会这些,不知道某些函数的返回值是什么类型,OPtion有什么用,其实是很难写下去的。鉴于以往学C++的经验,我自己重新学习了一下Rust的基本数据结构,以及基本数据结构的内置方法,还有一些通用方法和获取指针的方法,这些都是比较重要的。 + + + +## 3.2STL不会用 + +这次新增了一些算法题,颇有种使用C构建数据结构写算法的感觉,不过还好是填空的模式,对于没有掌握全部数据结构的我来说,还是能勉强接受的。致辞的算法题都是基于基本的容器进行操作的,比如bfs就是基于queue,算法里面使用deque,还有后面使用vec充当邻接表,还用到了hashMap当做node进行映射,不会使用容器做这些还是稍微有些困难的,当然,稍微学学容器方法还是可以写出来的 + +# 四、本次一阶段的收获 + +这次一阶段,我个人和另外的成员承担的项目任务更轻松了一点,拉了两个人来一起学习,还是蛮不错的 + +掌握了更多的学习途径和方法,从“正确的方向”巩固了Rust的语言基础,我现在感觉Rust+cargo越来越好用了,中途踩了几个小坑,每犯一次错误都能学到东西,嘿嘿~ + + + +# 五、自己找的学习资源汇总 + +权当分享啦~ + +5.1[Rust 程序设计语言 - Rust 程序设计语言 中文版 (rustwiki.org)](https://rustwiki.org/zh-CN/book/title-page.html) + +5.2[std - Rust (rustwiki.org)](https://rustwiki.org/zh-CN/std/index.html) + +5.3[Rust 中文文档 | Rust 文档网 (rustwiki.org)](https://rustwiki.org/docs/) + +5.4[关于本书 - Rust语言圣经(Rust Course)](https://course.rs/about-book.html) + +5.5[Rust入门第一课 - Rust入门秘籍 (junmajinlong.com)](https://rust-book.junmajinlong.com/ch1/00.html) + +5.6[介绍 - Rust精选 (rustmagazine.github.io)](https://rustmagazine.github.io/rust_magazine_2021/index.html) + +5.7[简介 - 通过例子学 Rust 中文版 (rustwiki.org)](https://rustwiki.org/zh-CN/rust-by-example/index.html) + + + + +