§ DSA In Action
Last updated
Last updated
RCS.101 是一份旨在培養軟體工程師對 「資料結構」 與 「演算法」 實作精熟程度的 Roadmap。
在 RCS.101 的四個模組中,RePublic of CS 編排了一系列在系統開發、學習 Standard Library 必不可少的的經典資料結構知識,搭配常見的 Online Judge,來鍛鍊實作能力。
RCS.101 相較於其他屬性各異的教材 (Ex. Introduction to Algorithms 或 九章算法),聚焦在 「理解」 和 「充分熟悉」 經典的 DSA 實作。
因此,RCS.101 有以下的特色:
預期參與者已經掌握基礎的 DSA 理論知識,如時間複雜度、空間複雜度;RCS.101 比起演算法課程,更偏重提供由淺入深的 Lab。
許多在解題、證明、問題分析上經典的知識,如 Dynamic Programming、Divide and Conquer、2 Pointers,是此 Roadmap 不會涵蓋的。而預期未來將它收錄在 RCS.102 上。
簡而言之,RCS.101 與 刷題培訓、演算法面試、LeetCode Grinding ... 這些常見的 DSA 學習場景,是有相當大區別的。RCS.101 的核心精神是想讓軟體工程師能從 DSA = 演算法面試 的困擾中跳脫,真正達到:
讀懂 DSA 的第一手資料
能夠自己設計測試資料,對應的去 benchmark 效能
從 DSA internals 來學習,成為 system、infrastructure hacker
由於此 Roadmap 與 System Programming 預期帶來的銜接,我們會主要推薦參與者使用 Rust、C++、Go,或任何一門非 Just-in-time Compilation 的程式語言來進行學習。
採用較接近系統層的語言,是因為在開發過程中,Benchmark CPU/Memory 的用量都會較可控且容易。 許多經典的資料結構實作,也都是在系統層得到他的最大發揮。