了解資料是很重要的一件事, 但了解電腦也是更重要的一件事, 只是若是開出 "計算機概論", 就又太簡單了, 這樣可能 28 堂課不夠, 所以直接跳到計算機組織與結構.
無論如何, 資料工程師大部份時間不是指那些拿出紙筆來計算的工程師, 而是用電腦來計算的工程師, 要讓電腦發揮到最大的效能, 就是要先了解甚麼是計算機的組織與結構, 而經過這半世紀的變化, 從計算機結構 (Structure), 到更多元件組合的計算機組織(Organization), 以及現在稱為 Computer Architecture (計算機架構) 就代表更為複雜.
而這些運算既然都是發生在電腦, 若是對細節與原理能夠更了解, 對於 Hacking Skill 的實作能力會更提升, 也包含對電腦的掌握度與應用能夠更深, 有了這樣的基礎, 就不會有太大的錯誤觀念, 因此我認為一個 Data Engineer 是不得不修計算機組織與結構的.
任何學過計算機的人知道計算機架構分成
但實際上現在的計算機真正的結構已經沒那麼簡單了, 甚至是層層的疊起來的, 在一個 Computer 中, 有上下, 平行太多層的這種結構, 早就無法很單純拆開來看了, 甚至 I/O 本身又有其 CPU 與 Memory, 而 Memory 又有其 CPU 與 I/O, 當然現在的 CPU 早就不單純無法用 Control Unit 或 Arithmetic/Logic Unit 來拆解了.
而推薦的這本書, 嘗試著不去拆解, 但又強調其拆解組合, 用下面幾層來看計算機架構:
大家就可以知道一台電腦不只是一台電腦, 很多台電腦事實上也只是一台電腦, 從這樣的由簡入繁, 到化繁為簡, 是很重要觀念, 很多事情已經無法討論細節, 但要如何掌握細節可以用演化, 用數量來去解讀, 是很不錯的學習方式.
雖然大部份的計算機組織教的都是:
雖然更著重在 CPU 上面, 但要到能夠運作絕不是那麼單純, 而這些也是很基礎的知識, 若要能夠對系統調校更專精與更深入, 這些不能不學阿.
建議線上課程
建議電子書
關鍵字
我覺得計組是重要的,對於資料工程師來說,知識層級至少要能在遇到效能瓶頸時知道是卡在什麼地方。但是要從這個層級來偷效能,應該是系統工程師的工作範疇。