哪個行業的平均工資最高?
計算機。
國家統計局的數據顯示,2016 年信息傳輸、軟件和信息技術服務業年平均工資為 122478 元,首超金融行業,并于 2017 年再次奪魁。
在互聯網和人工智能浪潮的推動下,一大批年輕人選擇了 CS(計算機科學) 專業,這里面還包括各種轉專業的學生。
此前營長也給大家推薦過很多學習資源,但是大多都是單個資源,比較零散。其實,很多讀者需要的是建議,而不僅僅是資源。
特別是對于自學的小伙伴來說,為什么要學習 CS?應該學習什么?如何選擇教材或者視頻課程?都是讓人困擾的問題。
現在,營長特意為這些小伙伴準備了一套大餐,希望能幫你厘清方向,消除困惑。
為什么要學好 CS?
首先,為什么要學習 CS?
我們知道,任何行業的從業人員的專業水平都是參差不齊的。有人將軟件工程師也分成了兩類:一類是對 CS 這門學科理解透徹,可以勝任各種挑戰性和創新性的工作;另一類則僅僅是對一些高級工具比較熟悉而已。
雖然兩者都自稱為軟件工程師,而且一開始的起薪都差不多,但是第一類工程師顯然有更大的發展空間。
比如 WhatsApp 一天要處理 420 億條信息(2016 年 2 月),但當時 WhatsApp 只有 57 名工程師,要完成這個挑戰靠第二種類型的工程師是不太可能的。
因此,如果你想成為第一種類型的軟件工程師,踏踏實實學好 CS 才是正途。
怎樣學好 CS?
在回答了為什么要學習 CS 這個問題之后,接下來要怎么學?
其實 CS 不只是編程,還涉及到很多知識。本文將重點介紹編程、計算機架構、算法和數據結構、數學、操作系統、計算機網絡、數據庫、計算機語言和編譯器、以及分布式系統。接下來我們一一分析。
編程
大多數的 CS 本科課程都是從介紹計算機編程開始的。營長推薦 Structure and Interpretation of Computer Programs 這本書。
視頻則推薦伯克利大學 Brian Harvey 的 SICP 課程。建議至少學完 SICP 的前三章,并把練習題做完。如果你覺得 SICP 的課程太難,可以選擇 How to Design Programs。
傳送門:
https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book.html
https://archive.org/details/ucberkeley-webcast-PL3E89002AA9B9879E?sort=titleSorter
http://www.htdp.org/
計算機系統結構
計算機系統結構是最容易被自學者忽略的,但是它其實非常重要。營長推薦 The Elements of Computing Systems 這本書,建議至少看完前 6 章并完成相應的作業。不過這本書并不是完全免費,因此也可以選擇伯克利大學的 CS61C 課程:Great Ideas in Computer Architecture,而且可以下載之前的講義。
傳送門:
https://www.nand2tetris.org/
http://inst.eecs.berkeley.edu/~cs61c/sp15/
算法和數據結構
學好算法和數據結構,將有助于培養你解決問題的能力。營長推薦 The Algorithm Design Manual 這本書,但是真的很貴。不過,這本書的作者很慷慨把這本書的配套視頻免費共享到了網上。如果你想練練手,則可以選擇刷 Leetcode。
傳送門:
http://www3.cs.stonybrook.edu/~algorith/video-lectures/
https://leetcode.com/
數學
雖然很多人對畏懼數學,但是“計算機之父”馮·諾依曼曾經說過:如果人們不相信數學有多簡單,那是因為他們沒意識到生活有多復雜。
圖片來源:AZ QUOTES
跟計算機最相關的數學知識當屬“離散數學”以及“線性代數”。
如果你想學好離散數學,可以閱讀匈牙利的數學家 László Lovász 關于離散數學的課程講義。如果你還想更進一步,則可以選擇麻省理工的 Mathematics for Computer Science,而且有配套的視頻課程。
至于線性代數,則建議從 Essence of linear algebra 視頻系列開始,然后是麻省理工的相關視頻課程。
傳送門:
http://www.cs.elte.hu/~lovasz/dmbook.ps
https://courses.csail.mit.edu/6.042/spring17/mcs.pdf
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/video-lectures/
https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab
https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/video-lectures/
操作系統
關于操作系統有很多經典書籍,比如 Operating System Concepts和 Modern Operating Systems,但是都價格昂貴,這里營長給大家推薦一本免費的作為替代:Three Easy Pieces。
傳送門:
http://pages.cs.wisc.edu/~remzi/OSTEP/
計算機網絡
計算機網絡是 CS 學科里最有價值的領域之一。營長推薦 Computer Networking: A Top-Down Approach 這本書以及搭配的練習題,不過這本書實在太貴。你也可以選擇斯坦福的在線課程:Introduction to Computer Networking。想要學好計算機網絡,最重要的是多做項目。
傳送門:
http://www-net.cs.umass.edu/wireshark-labs/
https://lagunita.stanford.edu/courses/Engineering/Networking-SP/SelfPaced/about
數據庫
自學數據庫還是比較難的。營長建議自學者不要直接看教材,而是通過在線視頻來學習,比如伯克利的 CS168 課程。那些想了解 RDBMS(關系型數據庫管理系統)的讀者,一定要看一下 Architecture of a Database System 這篇論文。此外,Readings in Database Systems 也值得一讀。
傳送門:
https://archive.org/details/UCBerkeley_Course_Computer_Science_186
http://db.cs.berkeley.edu/papers/fntdb07-architecture.pdf
http://www.redbook.io/
計算機語言和編譯器
對于自學者,營長推薦斯坦福的在線課程:Compilers。關于練手項目,營長建議你從 Make a Lisp 開始。
傳送門:
https://lagunita.stanford.edu/courses/Engineering/Compilers/Fall2014/about
https://github.com/kanaka/mal
分布式系統
分布式系統的教材可以選擇 Distributed Systems, 3rd Edition,而且是免費的。同時你也可以選擇麻省理工的在線課程:6.824。而且營長還準備了一份論文清單,供你參考。
傳送門:
https://www.distributed-systems.net/index.php/books/distributed-systems-3rd-edition-2017/
https://www.youtube.com/watch?v=hBWfjkGKRas&list=PLkcQbKbegkMqiWf7nF8apfMRL4P4sw8UL
http://dsrg.pdos.csail.mit.edu/papers/
其他
現在 AI 確實很火,營長以往也給大家推薦過不少學習資源,今天再給大家推薦幾個:
人工智能:伯克利的 Intro to AI 在線課程,以及教材 Artificial Intelligence: A Modern Approach(很貴)。
機器學習:吳恩達的機器學習和深度學習課程。(《感動!有人將吳恩達的視頻課程做成了文字版》)
計算機圖形學:伯克利的 CS184 在線課程。
傳送門:
http://ai.berkeley.edu/
http://inst.eecs.berkeley.edu/~cs184/fa12/onlinelectures.html
寫在最后
有人可能會問,應該從那一門開始學起?然而這并不是最重要的,克服拖延癥,行動起來才是關鍵,而且每一門都需要全身心投入至少 100~200 小時的時間。
2018 即將過去,大家共勉。
-
CS
+關注
關注
0文章
54瀏覽量
24496 -
計算機網絡
+關注
關注
3文章
336瀏覽量
22126 -
編譯器
+關注
關注
1文章
1618瀏覽量
49057
原文標題:如何自學CS?
文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論