不廢話,直接上干貨。首先拿到某985院校的計算機科學與技術的培養方案。拿到最精確的信息,學最重要的知識點。
易道云出品
一、學習好一門編程語言
可以參考我這個回答,這個回答有理有據,通過數據分析,用數據論證了如何選擇編程語言:https://www.bilibili.com/video/BV1T84y117e3/
二、學習網絡編程和網絡原理
目前的互聯網時代,程序基本上都離不開網絡,我個人覺得了解計算機網絡是必須的,在大學的課程中,基本上會開設這門課。
不知道大家有沒有想過,一臺計算機是怎么把數據發給另外的計算機的呢?我們可以把問題再分解一下:
1、兩臺計算機完全沒有連接,怎么通信?
2、全世界有那么多計算機,如何識別呢?---類比到人類,用什么來識別你是一個真真正正存在的人?也就是說如何識別那臺有特點的計算機呢?有人說我們可以用 mac或者 IP 來唯一標識,可是,全世界那么多計算機,有了這個IP,我們如何查詢呢?難道去遍歷嗎?
3、多個程序同時發消息給一臺計算機,計算機是如何準確把這些信息拿到,并分配給這些不同程序的呢?
4、如何處理丟失的信息?
如果說大家把這幾點信息理解了,那么網絡編程的原理就能理解一大半了。在這里我只是舉個例子,具體我不展開了。
關于推薦書籍大家一般都推薦《計算機網絡:自頂向下》、《圖解http》這兩本,但我看了一下,術語太多,難理解,不適合初學者。
我覺得兩本就夠了,尹圣雨《TCP/IP網絡編程》韓國人寫的,都是通過舉例子,寫得非常好,大概一星期就能看完了;第二本就更好了,來自于游雙的《linux高性能服務器》,我就是看了這本書正式從嵌入式端轉為服務器開發的。
具體怎么學?紙上學來終覺淺,絕知此事要躬行。我是把里面的demo代碼一個個敲完的,收獲非常大,強烈推薦。
三、學習操作系統原理
操作系統是真的難理解,所以要選擇一本好的教材是非常非常重要的,我強烈推薦一本寶藏書籍,叫做《操作系統哲學》。我個人建議不要去學那些網上推薦的什么《現代操作系統》、《操作系統—精髓與設計原理》、《深入理解計算機操作系統》,我看過目錄,用一個詞來形容就是:枯燥無味。當我看了《操作系統哲學原理》之后,我真是太佩服這個作者了,能夠把如此索然無味的操作系統寫得如此有趣。
易道云出品
不得不佩服這位大佬的智慧,吐血推薦。說實話,在我畢業之前,我是完全不知道如何去理解操作系統。
四、學習數據結構與算法
數據結構是相互之間存在一種或多種特定關系的數據元素的集合。數據結構是一門研究非數值計算的程序設計問題中的操作對象,以及它們之間的關系和操作等相關問題的學科。那怎么學習數據結構??
1、記憶,記住算法思想
我覺得這個是數據結構與算法學習最基礎的部分。
學完之后,你至少得能給人說明白,什么是”堆棧“,什么是”平衡二叉樹“等等等吧。我之所以說”記住“,是希望這些能夠形成長久記憶,存儲到你的”硬盤“里,而不僅僅在學習的時候過了一遍你的”內存“。
例如,學習哈夫曼樹的時候。哈夫曼樹的定義:WPL(帶權路徑長度)最小的二叉樹;哈夫曼樹的特點:(1)沒有度為1的結點;(2)n個葉子結點的哈夫曼樹共有2n-1個結點;(3)哈夫曼樹的任意非葉節點的左右子樹交換后仍是哈夫曼樹。關于”數據結構“,需要記憶的內容也需要自己在其中慢慢領悟。
至于”記住算法思想“,舉個例子,思考我們如何構造一個”哈夫曼樹“。當然,在知道它的定義后,我們可以自己去設計一個算法。如果,自己可以想出來,恭喜你。如果自己沒想到,再看看先人的解決辦法后,不是僅僅“驚嘆”一聲,更要去記住它。我強調“記住”,并沒有死記硬背的意思,而是,很多東西的理解和創新都是以記憶為前提的。
2、練習,用編程語言去實現某一數據結構上的算法
因為人的精力有限,千萬不要貪多,只需要搞定那些常見的就行了,這就足以去搞定90%以上的公司,如果是算法崗位就當我沒說,如果只是一個開發崗位,那就只需要掌握最常用、最基礎的20個數據結構與算法,學習他們的“來歷”、“特點”、“適合解決什么問題”和“實際的應用場景”。
數據結構:數組、鏈表、棧、隊列、散列表、二叉樹、堆、跳表、圖、Tire樹
算法:遞歸、排序、二分查找、搜索、哈希算法、貪心算法、分治算法、回溯算法、動態規劃、字符串匹配算法。具體分為3個小步驟:
(1)邊學邊練,每周花 1~2 小時集中攻關一個數據結構和算法,全部寫出來。
(2) 多思考、多拓展、多理解,找到適合的方法去解決問題。
(3)自我激勵,每次學習完做一篇學習筆記。
吐血推薦書籍:程杰老師的《大話數據結構》
易道云出品
五、學習設計模式
設計模式是在軟件工程實踐過程中,軟件開發者們總結出的良好的編程方法,使用設計模式能夠增加系統的健壯性,易修改性和可擴展性,當你進行開發的軟件規模比較大的時候,良好的設計模式會給編程帶來便利,讓系統更加穩定。
怎么學習設計模式??
1、記憶,記住典型案例
2、看一些開源代碼,比如redis;
3、練習,用編程語言去實現一些設計模式;
4、吐血推薦書籍:程杰老師的《大話設計模式》
易道云出品
非常非常好的設計模式的入門書。基本上也把每個設計模式講清楚了。國內很多教材和教師講述專業知識都是很枯燥的,就因如此才把很多初學者拒之門外,讓一部分人喪失了學習興趣。而這本書則類似于少數名師一樣,采用交互式及啟發式的講述方式,在不知不覺中向讀者傳授了知識。有些人傾向于像專業論文一般嚴謹的表述方式,但如此以來在理解上就要多花一些工夫了。就目前而言,像這本書一樣,以大家所熟知的例子來描述問題,步步深入,具有中國特色風格的書,才是我們更加需要的。把這些設計模式讀進去了,那么你對編程的理解就會更上一層樓。