关于rust:不同阶段的人如何学习Rust加入非凸一起学习

5次阅读

共计 1697 个字符,预计需要花费 5 分钟才能阅读完成。

你在学习 Rust 的过程中,是否会感觉到艰巨、苦楚或迷茫呢?以下内容或者对你有帮忙~

尽管当初 Rust 学习材料十分丰盛,但 Rust 是一门学习老本绝对比拟高的语言。面对不同语言教训的人,学习老本略有差异。

在学习 Rust 之前,须要理解你将会在 Rust 学习过程中付出什么样的心智老本。一是零根底的人,须要补足一些必要的计算机科学相干的根底,以及建设对编程的了解。初学编程自身就是一项很大的挑战。二是有肯定编程根底的人,尽管对学习 Rust 有肯定帮忙,但还是会有一些妨碍。

1. 只有 C 教训的人,学习 Rust 语法时候,有如下挑战:
(1)Rust 编程范式。c 语言是过程式,而 Rust 是混合编程范式,反对面向对象和函数式编程格调。c 语言过去的人,很容易把 Rust 写成过程式格调,尽管用过程式也能够用 Rust 写出残缺性能,但在代码架构上会损失 Rust 的劣势。和编程范式相干的概念:泛型 / trait / 错误处理 / 构造体 / 枚举。

(2)所有权和借用查看。c 外面是 手动治理内存,然而 Rust 是用所有权来治理。c 外面都是用指针,然而在 Rust 里,将指针进行了平安形象变成了援用,须要有借有查看。这些都是 c 开发者必须要把握的概念。

(3)Unsafe Rust 平安形象。c 语言开发者要了解 Unsafe Rust 的编码标准,了解如何进行平安形象,这一点比拟重要,尤其是和 C 互相调用时。

(4)宏。Rust 中申明宏相似于 C 语言的申明宏,都是代码替换,然而性能比 C 的弱小,这些应该也算一个学习挑战。Rust 还有性能更弱小的过程宏,能够在后期学习的时候不必思考,前期再学。

2. 有 Cpp 教训的人,默认其对 C 有肯定理解,学习 Rust 语法时,有如下挑战:
(1)Rust 编程范式。Rust 的混合范式 和 Cpp 的混合范式不同。Rust 不是纯正的面向对象语言,没有构造函数。Rust 中的泛型、trait、枚举 和 错误处理 对于 Cpp 开发者同样是重点。

(2)所有权和借用查看。因为 Rust 也引入了 和 Cpp 11 引入的 基于 RAII 机制的智能指针,所以在内存治理方面,对 Cpp 11 及以上版本有教训的人更容易了解。然而没有这方面教训的 Cpp 开发者就有肯定难度了。

(3)Unsafe Rust 平安形象。这一点和 C 语言开发者一样,是须要对 Unsafe Rust 的编码标准有肯定了解。

(4)泛型 和 过程宏。Cpp 开发者有模版,然而 Rust 中有泛型。Rust 中泛型的性能没有 Cpp 模版弱小,然而有过程宏能够补救。也就是说 Cpp 模版编程 等价于 Rust 的泛型和过程宏的联合。如果 Cpp 开发者也想要在 Rust 中谋求 模版编程的成果,那么须要把握 泛型和过程宏。

3. 只有 GC 语言应用教训的人,比方 Java、Python、Ruby、Haskell 等,学习 Rust 语法面临的挑战和 Cpp 基本相同,但因为应用 GC 语言的人,大部分对底层内存治理没有足够深刻的理解,入门曲线会更加平缓。

所以,Rust 入门曲线平缓与否,除了语言自身的复杂性之外,也跟每个人的编程根底无关。

非凸科技次要应用 Rust 语言,次要为了进步工作效率,以及为了促成各部门及上下游的单干不便。Rust 在高频量化交易畛域的利用,非凸科技算是先驱者,谋求高效和极致。

如果你对 Rust 感兴趣,也想退出量化行业,那么欢送退出!共创将来!

招聘岗位:Rust 开发工程师

工作内容:
1. 设计并开发基于 Rust 的高性能,低时延算法交易系统;
2. 设计并开发数据处理平台,监控运维平台;
3. 设计并开发面向客户的高可用交易工具等;
4. 设计并开发策略相干的回测平台。

岗位要求:
1. 本科及以上学历(985 优先),编程根底扎实,具备良好的计算机实践根底;
2. 熟练掌握 Linux 操作,性能剖析,具备 Rust/C++/Java/Go 丰盛开发教训,相熟罕用的设计模式,有分布式相干教训加分;
3. 有研发高性能,低时延零碎教训加分;
4. 对技术充满热情,思考深刻,自我驱动,能疾速学习陈腐事物。

Base range:
30K-60K+ 期权激励 + 年终奖 + 员工福利

工作地点:北京、上海、成都、新加坡
简历发送至:recruit@ft.tech
微信沟通:354334592
邮件注明:姓名 + 岗位 + 起源

正文完
 0