【自學 CS 懶人包】國外資工系在學啥?史丹佛、柏克萊重點書單、課程影片全整理 | TechOrange 科技報橘
Search
Close this search box.

【自學 CS 懶人包】國外資工系在學啥?史丹佛、柏克萊重點書單、課程影片全整理

圖片來源:Unsplash

【我們為什麼挑選這篇文章】資工系一直是一個極為熱門的科系,尤其在數據為導向、AI 浪潮襲捲的時代,更凸顯對這類人才的需求。許多人畢業之後,會希望到國外再拿個 CS 學位,但是疫情或是經濟壓力之下,讓出國拿學位變成了遙不可及的夢,如果你也為此感到煩惱,那麼以下 9 類別清單請收藏起來,乾脆就來自學 CS 吧!(責任編輯:徐宇儂)

本文經 AI 新媒體量子位(公眾號 ID:QbitAI)授權轉載,轉載請連繫出處
作者:量子位

出國深造,費用太高?(疫情持續,甚至難以出國?)

自學資訊相關課程又不知道從何入手?

現在,最系統的資訊工程學習路線圖來啦!9 門資工必學基礎學科清單,附史丹福大學、加州大學柏克萊分校、MIT 麻省理工學院等名校影片課程和參考教材,不出國你也能擁有在世界一流大學學習資訊工程的完美體驗,CS 成神之路近在眼前。

自學教材推薦

來看看,要學習的 9 門學科中,都有哪些相關資料。(文末附書籍連結)

△ 9 門學科教材和影片清單

寫程式

△ 《計算機程序的構造和解釋》作者 Alan J. Perlis


關於程式的經典模型和基礎計算機術語,這本書基本都有介紹,不少人表示,這本書顛覆了他們對 Coding 的基本認知。

當然,如果不需要對寫程式深入了解的話,學完書本前三章,基本就了解相關概念了。

搭配的影片教學建議是史丹佛大學開設的 SICP 課程視頻。

計算機系統

△ 《深入理解計算機系統》作者Randal E. Bryant / David O’Hallaron


如果想要快速了解軟體底層視角,這本書是非常不錯的推薦。透過這本書的前六章,基本就掌握了軟體編寫所需要了解的大部分計算機系統的知識。

搭配影片是柏克萊大學的「計算機架構中的偉大思想」課程。

算法與資料結構

△ 《算法設計手冊》作者 Steven S. Skiena


如果你已經對大量的公式和定理證明感到厭倦,這本書不失為一個好選擇。書中對於算法相關定理和公式講解的所有目的,都是為了解決實際問題。

搭配影片是史丹佛大學的算法設計課程。

數學理論

△ 《計算機科學中的數學》作者 Eric Lehman 等


雖然如今數學理論已經不再是成為工程師的必備知識,但學好數學對於寫好程式碼而言,仍然有著巨大的幫助。

搭配影片是 MIT 麻省理工學院的同名課程。

操作系統

△ 《操作系統導論》作者 Remzi H. Arpaci-Dusseau 等

相較於更經典的基本操作系統教材而言,這本書最大的優勢在於它的易讀性。不僅結構清晰,而且習題含金量高,有助於快速理解操作系統的內容。

搭配操作系統的教學影片來自柏克萊大學。

計算機網路

△ 《計算機網絡:自頂向下方法》作者 James F. Kurose / Keith W. Ross

據說這是所有 9 門學科中,學後最有成效的一科。無論是計算機行業中相關專業名詞術語、還是某些晦澀的協定,在學完這本書後,你的問題都能得到解答。

搭配影片教學是史丹佛大學的計算機網路概論。

資料庫

△ 《Readings in Database Systems》作者 Joseph M. Hellerstein 等


還在為學習資料庫犯愁?別怕,這是一門大多數人都要花點心思的學科,因為相比於其他學科,自學資料庫有一定難度。

相比於書面教材,先從影片課程開始學習、並獨立完成一個資料庫管理系統,會是更好的選擇。

搭配教學是柏克萊大學的資料庫影片課。

程式語言與編譯器

△ 《編譯原理(龍書)》 ,一款經典書籍,不推薦新人自學


學會這門學科,你就擁有了更快適應新一門程式語言的能力。

事實上,更推薦新人學習的是 Bob Nystrom 的《Crafting Interpreters》(獲取方法見文末)。

搭配影片是史丹佛大學在 MOOC 平台開設的相關課程。

分散式系統

△ 《數據密集型應用系統設計》作者 Martin Kleppmann


想要統籌兼顧,讓很小的程式也能在多台設備上運行,那麼你需要掌握這門學科的相關知識。

搭配課程是麻省理工有關分散式系統的影片教學。

當理論遇上現實

儘管從理論上來看,這份學習規劃幾乎已經無懈可擊。

然而,在實際應用層面呢?

有網友認為,這份學習規劃很好,但從教育學的角度來說,可能需要再調整。

這份資料清單建議挺不錯的。但是,相較於抱著書本和影片硬幹 1000 小時,我認為可以多運用一些學科相關的趣味小項目/練習,反而更能加快上手的進度。

也有網友表示,這個清單有點言過其實。在清單介紹裡,對軟體工程師這一行的現狀似乎有什麼誤解。

照你這意思,目前自學的軟件工程師們連「遞迴」程式碼都寫不出來?

這有點過分了吧。一個能解決實際問題的軟體工程師,難道連棧、串列和樹都不知道是什麼嗎?

除此之外,還有一個更現實的問題擺在眼前。

事實上,相較於你的技能而言,老闆們可能更看重你的學歷(國內外無差)。

要求漲薪:「非資工系就值這價」

要求升職:「抱歉,這工作要求相關科系畢業」

換工作:「抱歉,我們已經招了一名資工系畢業的人」

約會對象:「你連 CS 大學學歷都沒有?」

……

沒錯,技能固然重要,但對於不了解資訊工程的老闆而言,他們也許更看重你的學歷。

當然,如果實作能力和學歷都不是你放在眼裡的問題,只是你還想更系統的了解 CS 理論知識的話,這份清單就完全是你的菜了,請多加利用。

作者介紹

△ 作者Ozan Onay

Ozan Onay 和 Myles Byrne,來自 Bradfield School of Computer Science(舊金山)的兩位講師,負責軟體工程師進修計算機學習的專業指導,旨在幫助軟體開發人員生產更持久的高品質軟體,成為具有高影響力的工程師。

與此同時,Ozan Onay 和 Myles Byrne 也希望加深學生們對操作系統、計算機體系結構和資料庫等基礎學科的重視程度。

他們希望能以自己的經驗,為剛畢業的學生提供更好的創新動力、以及生產高品質軟體的技術指導。

傳送門:

資料清單:資訊
https://teachyourselfcs.com/

中文版資料清單:
https://github.com/keithnull/TeachYourselfCS-CN/blob/master/TeachYourselfCS-CN.md

(本文經 AI 新媒體量子位 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈最系統的計算機科學專業學習規劃:斯坦福大學,UCB等世界一流大學CS課程| 附教材書單〉)

看更多 Coding 好文

• 【Debug 不再心累?】把 Python 程式設計「可視化」,竟出自瑞士理工學院大一新生之手
• 【後浪推前浪】比起很會寫 Code,善用「無程式碼工具」才是未來職場的必備條件?
• GitHub 年度程式語言黑馬誕生:TypeScript 超越 C#、PHP,一年內躍升三名!