Rust:香是真的香,不同学习者却各有各的难 | 极客时间
你好,我是陈天,目前是北美最大的免费流媒体服务 TubiTV 的研发副总裁。
十八年以来,我一直从事高性能系统的研发工作,涵盖网络协议、网络安全、服务端架构、区块链以及云服务等方向。
因为喜欢使用合适的工具解决合适的问题,在职业生涯的不同阶段,我深度使用过形态和机理都非常不同的开发语言。
用 C 和汇编打造过各种网络协议;
用 Python/Javascript 撰写过途客圈; 用 Node.js/Elixir 打造过 TubiTV 高并发的后端核心; 用 Elixir 打造过区块链框架 Forge; 也研究过 Haskell/F#、Clojure/Racket、Swift、Golang 和 C#等语言。
现有的编程语言非常多,大家都习惯了要在性能、表达力和内存安全之间取舍,直到 Rust 横空出世。
我是从 18 年开始关注 Rust 的。当时我正在开发 Forge ,深感 Elixir 处理计算密集型功能的无力,在汉东,也是《Rust 编程之道》作者的介绍下,我开始学习和使用 Rust。
对于 Rust 这门语言,很多人可能都听过,但是没用过。实际上,早从 16 年起,Rust 已经连续六年霸榜,被 Stack Overflow 评选为最受开发者喜爱的语言。
当然,它优点确实很多。不夸张地说,用过 Rust 的人都说各种好。
例如,Rust 没有历史包袱,集表达力、高性能、内存安全于一身,可以说,掌握了 Rust,就相当于掌握了很多其他语言的精髓;把 Rust 引入你的技术栈,也让自己职业生涯多一门面向未来的利器。
所以,集表达力、高性能、内存安全于一身的 Rust ,在很多场景里都能大施拳脚。除了在传统的系统开发领域,如操作系统、设备驱动、嵌入式等方向高歌猛进之外,Rust 还在服务端高性能、高并发场景遍地开花。
国内外不少大厂,都在采用 Rust 重构技术栈,比如字节的飞书、Google 的 Fuchsia 等,清华大学也开始让本科生学习 Rust 而不是 C/C++。在可预见的未来,Rust 或在大多数领域代替 C/C++,成为开发者的主力语言。
用起来就有多香,学起来就有多难。Rust 也是公认的难入门,学习曲线很陡峭。除了普遍觉得不好学的所有权和生命周期以外,不同语言背景还会有不同的难点。
C 开发者,难点是类型系统和泛型编程;
C++ 开发者,难点主要在类型系统;
Python/Ruby/JavaScript 开发者,难点在并发处理、类型系统及泛型编程; Golang 开发者,难点在类型系统和泛型编程; Java 开发者,难点在异步处理和并发安全的理解上。
我自己在学习 Rust 的过程中,也经历了从一知半解到了然在胸的过程。在大量阅读各种书籍资料之余,我还广泛阅读 Rust 标准库的源码,从这些源码中汲取第一手的营养。除此之外,我还大量撰写代码,除了在 crates.io 上发布的一些 crate 外,我还用 Rust 写了不少个人项目,涵盖从后端 API / 服务,到 Rust 和 swift / elixir / nodejs 等语言的交互,再到用 Rust 开发 web 前端。
在这个过程中,我总结了不少知识和经验,并且尝试着把这些知识经验传授给更多的人。我给我的同事们培训 Rust,也在我的公众号撰写 Rust 系列文章和在 bilibili 上发布《程序君的 Rust 培训》。我希望,通过这些努力,可以让更多的开发者了解和使用 Rust,帮助他们成为更好的程序员,为他们自己的职业生涯开辟更多的可能性。
但是这些内容还不够系统,不够全面,对初学者不够友好。我也一直在思考怎样把我掌握的 Rust 知识以一种更好的方式展现出来。
后来,我和极客时间合作推出了《陈天 · Rust 编程第一课》专栏。我希望能通过这个专栏,给你一个系统的 Rust 的入门路径,由浅入深,帮助你攻克 Rust 的主要难点,理解其设计理念:
这个专栏上线一年的时间,已经 17600 人看过了,原价 ¥199,现在粉丝福利,限时 6 折秒杀,如果你是新人,到手只要 ¥68!
现在专栏已经更新完毕,一共 64 讲。可放心观看。
承担着「Rust 第一课」的使命,我尽量讲得通俗易懂,把各个知识点类比到不同的语言中,设计了很多小而美的示例代码,引入 Rust 标准库的源代码进行分析,并且还精心绘制了大量的原理图。
即使看了再多的书,刷了再多的视频,你的 Rust 可能还是一地稀碎。纸上得来终觉浅,绝知此事要躬行,只有实践+学以致用才是最好的学习方式!
所以专栏每一模块都设计了实践内容,带你把 Rust 应用在生产环境中,以及用 Rust 解决实际问题。我拆解问题的方法也分享给大家,建议反复阅读、理解。
专栏特色三:刻意练习+答疑解惑
每个章节都会留个符合内容的思考题,我在课程答疑时间不比打磨正文少,在课程完结后还会去更新课程的代码。
让我们携手,为自己交付 “Rust 开发” 这个大技能,让 Rust 成为你的下一门主力语言!
趣的朋友点击「阅读原文」,掌握“Rust 开发" 这个大技能。
微信扫码关注该文公众号作者