不同阶段的人,如何学习Rust?加入非凸,一起学习!

非凸科技 2022-04-18 17:19:53

你在学习 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 中追求 模版编程的效果,那么需要掌握 泛型和过程宏。

 

  1. 只有 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

邮件注明姓名+岗位+来源

 

...全文
85 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

7,267

社区成员

发帖
与我相关
我的任务
社区描述
因为缘分,所以猿粉! 这里有“入门级选手”必备的成长路线图,为“程序员后备队”提供技术大咖直播指导,丰富的学习资料已经等候多时,请查收! 陪伴猿粉共同成长,提升技术不在话下;右边扫码关注微信公众号。
其他 其他
社区管理员
  • 高校俱乐部
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

       2021年“C站百所高校巡讲” “C站名企参观”等活动,火热报名中, 与CSDN创始人蒋涛、各路技术大咖面对面!

       现招募CSDN高校俱乐部的部长并组建本校CSDN高校俱乐部,我们希望你是高校在校生且是IT技术爱好者,校内社交圈,有强烈的责任心,熟悉社团工作,有校园活动组织经验,在高校能够建立长足发展的学习型俱乐部,我们期待您的加入,CSDN高校俱乐部将赋予以下权益:

  • 高校巡讲:骨灰级专家线下巡讲
  • 线上直播:技术大咖线上分享
  • 线下沙龙:学习精英线下沙龙讨论
  • 学习小组:任务驱动,免费学习
  • 能力认证:对标大厂,高薪就业
  • 技术竞赛:竞赛选拔,实战演练
  • 企业游学:到大厂参观并学习
  • 企业招聘:面向俱乐部成员专属招聘
  • 专属博客:给各俱乐部搭建社区云
  • 电子书卡:给俱乐部成员提供学习资源
  • 组织logo:设计旗帜,活动宣传

 联系方式:

  • 电话:张老师-17734567851(同微)
  • 邮箱:student@csdn.net
  • Q Q:1218227747

试试用AI创作助手写篇文章吧