我們都知道 Rust 是入門難度比較高的一門語言,前期需要不斷跟編譯器做鬥争,在艱難的思維轉換中逐漸才能柳暗花明,體會到 Rust 的設計魅力。
除了普遍覺得不好學的所有權和生命周期以外,不同語言背景還會有不同的難點:
- C 開發者,難點是類型系統和泛型程式設計;
- C++ 開發者,難點主要在類型系統;
- Python/Ruby/JavaScript 開發者,難點在并發處理、類型系統及泛型程式設計;
- Java 開發者,難點在異步處理和并發安全的了解上;
- Golang 開發者,難點在類型系統和泛型程式設計。
而且說真的,中文的 Rust 資料不多,不适合入門,也不系統,比較有名的是張漢東的《Rust 程式設計之道》,難度系數比較大,我啃得也很艱難。後來看到和張漢東一起研究 Rust 的另一位大佬「陳天」,很早就關注了他的知乎,看過不少他分享的 Rust 入門難點解讀,講得很透。
他在極客時間寫了個專欄《陳天 · Rust 程式設計第一課》,最近剛更新完,我已經開始二刷。不得不說,這課可謂全網最好的 Rust 入門教程,沒有之一!
專欄結合了陳天 18 年深度使用多種語言的經驗,以先行者的身份輸出了一份「Rust 學習路徑圖」,看下面:
整個專欄由淺入深,對比多種語言,帶你攻克 Rust 程式設計 10 大難點,有 100+ 原理圖,詳解 Rust 設計理念。最後通過 4 個項目實操訓練,理論與實戰兩手抓,真正讓你掌握 Rust 開發精髓。
作者「陳天」
作為北美最大的免費流媒體服務TubiTV 的研發副總裁,有人說他是矽谷華人工程師的的典範,刻苦而努力,堅韌而不拔。而在我眼裡,他是一個低調有禮的布道師,毫無保留地分享着 18 年工作經驗累計的工程方法。
他一直主張“以合适的工具解決合适的問題”,是以,當面對不同的工作需求,他堅持深度使用形态和機理都大相徑庭的開發語言。
- 用 C 和彙編打造過各種網絡協定,維護過嵌入式作業系統 ScreenOS;
- 用 Python/Javascript 撰寫過途客圈;
- 用 Node.js/Elixir 打造過 TubiTV 高并發的後端核心;
- 用 Elixir 打造過區塊鍊架構 Forge;
- 也研究過 Haskell/F#、Clojure/Racket、Swift、Golang 和 C#等其他語言。
可以說,他對各個語言都了如指掌,這種資曆的大佬能出來開課,把自己獨特的 Rust 學習方法和經驗共享出來,真的很難得。
我為什麼說這是「最好的 Rust 入門教程」
現在專欄已經更新完畢,一共 58 講。跟着讀下來,最大的感觸是,這個老師太會講了,大家都知道 Rust 入門難,不好講透,陳天能講得通俗易懂、明明白白,且講述中處處呈現他的思維方式、拆解問題的方法。
專欄特色一:夯實基礎+圖文并茂
承擔着「Rust 第一課」的使命,陳天講得通俗易懂,把各個知識點類比到不同的語言中,設計了很多小而美的示例代碼,引入 Rust 标準庫的源代碼進行分析,并且還精心繪制了大量的原理圖。
每一講都遵循「表層知識 → 解讀源碼 → 底層設計」的思路,力求幫你了解 Rust 繁多概念背後的設計邏輯。
專欄特色二:工程方法+項目實操
即使你看了再多的書,刷了再多的視訊,你的 Rust 其實還是一地稀碎。紙上得來終覺淺,絕知此事要躬行,隻有實踐+學以緻用才是最好的學習方式!
是以專欄每一子產品都設計了實踐内容,帶你把 Rust 應用在生産環境中,以及用 Rust 解決實際問題。老師的思維方式拆解問題的方法都毫無保留的分享出來,值得反複去閱讀、反複了解。
專欄特色三:刻意練習+答疑解惑
每個章節都會留個符合内容的思考題,老師在課程答疑時間不比打磨正文少,甚至在課程完結後老師還會去更新課程的代碼,大家紛紛表示:愛了
而且課程中沒有了解透徹的問題,都會在評論區找到陳天給的答案。可以說幫到不少人,截了些評價供你參考。
剛上線的時候是 40 講,老師邊寫邊延展内容,完結時已經 58 講啦!這種單純的分享精神,也是很走心了。看看目錄吧: