aresbit / cs-rs

teach yourself cs by rust

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

cs-rs

teach yourself cs by rust 用rust深入学习计算机科学

为什么要学计算机科学

软件工程师有两种类型: 一种是对计算机科学有足够的了解,能够从事具有挑战性的、创新性的工作; 另一种是仅仅因为熟悉一些高级工具而勉强度日的人。他们都自称为软件工程师,而且在职业生涯的早期,他们的薪水都差不多。但是随着时间的推移,第一类型工程师会朝着更有成就感和报酬丰厚的工作方向发展,不管是有价值的商业工作还是突破性的开源项目、技术领导力还是高质量的个人贡献。1型工程师通过传统的方式或者在他们的职业生涯中不懈的学习,找到了深入学习计算机科学的方法。类型2工程师通常留在表面,学习特定的工具和技术,而不是他们的基础,只有在技术时尚的风向变化时才学习新的技能。目前,进入该行业的人数正在迅速增加,而 CS 毕业生的数量相对静止。类型2工程师的过度供应开始减少他们的就业机会,并使他们远离行业中更令人满意的工作。无论你是努力成为一名 i 型工程师还是仅仅为了寻找更多的工作保障,学习计算机科学是唯一可靠的途径。

[自学计算机科学指南]https://teachyourselfcs.com/

Why Rust

杀手级特性: Rust 是一个可以直接访问硬件和内存的低级语言,它给你提供了 c 和 c + + 在更加注重内存安全的情况下所具有的同样的能力。通过防止在编译时出现数据竞争,Rust 也使编写并发程序变得更加容易。Rust 的另一个优点是,它是一种低级语言,但它从高级语言(OCaml,Haskell)中抽象出来,且没有任何性能牺牲(零成本抽象)。锈是通用的,可以用于几乎任何事情,从嵌入式系统、构建操作系统到通过网络组件在浏览器上运行。可能性是无限的。

学习计算机科学的第一门语言为什么不能是rust呢?

国内传统的大学计算机教育一般会教C语言作为计算机入门第一课,理由无非是C语言亦是一个可以直接访问硬件和内存的低级语言,然后随着课程深入,以指针和链表构造结束了入门课程,然而,按照** too-many-lists**的说法,结合Bjarne Stroustrup 的演讲,链表的确非常适合教学目的,适合构建并发数据结构,但实事求是的说,链表场景对于几乎任何C++ \ Rust 开发都是很少遇到的,99% 的场景你可以使用 Vec 来替代,然后 1% 中的 99% 可以使用 VecDeque。 由于它们具有更少的内存分配次数、更低的内存占用、随机访问和缓存亲和特性。

一般认为 Rust 是一种系统编程语言,在你能有效地使用它之前,几乎必须先有一个强大的计算机编程背景。既然如此,不如直接用rust来学习计算机科学各个课程。

如何设计rust版计算机科学自学课程

遵循 ACM & IEEE 计算机科学课程2013年指导方针,按照给定的顺序研究材料。每个部分包含学术课程和相关的 Rust 实现,即cs theory part和rust practice part。

引用借鉴Open Source Society Universityhttps://github.com/ossu/computer-science/ 和Teach Yourself Computer Sciencehttps://teachyourselfcs.com/课程资料组织和建议

先决条件

大学学历,一定的大学数学物理理论基础,抽象能力和逻辑能力是必须的,成长心态和动手能力很重要。

入门部分

todo()

...

About

teach yourself cs by rust