1. 程式人生 > >大三開學前,反思linux網路程式設計學習方向、方法

大三開學前,反思linux網路程式設計學習方向、方法

大三前感悟

最近,我剛剛看完《UNIX網路程式設計 卷1》,感覺應該要停一下,思考下一步應該學什麼,怎麼學。

目前已經看完《鳥叔linux》和《UNP 卷1》了。在看這兩本大塊頭的時候,心情是比較浮躁的。剛剛開始時我的熱情很高,效率也不低。然而學習一段時間,由於書很厚,加之基礎知識很多,全都是新的知識,記憶負擔有點大。雖然說是可以不用全部記憶的,用時再查即可,然而即使是想要把知識點串起來也很難。新知識也不是一讀就能理解的。這種情況造成自己內心很急燥,想要儘快把書看完,前面章節又不全理解。心情浮躁導致的最嚴重後果是完全沒有心情去看書了,只想躺著….時間並不會等人,壓力並不會自行離開,想要克服這種情況就應該要改變思想,還有想辦法解決大塊頭。(下文學習方法處再提解決方法)

為了追求看書效率,儘快補完linux後臺開發基礎知識,就沒有時間打程式碼了。我指的打程式碼,是指完整的專案程式碼,書本上的程式碼有註釋,很容易讀懂,感覺沒有重複再寫的必要,只是會認真的做筆記。沒有打程式碼,另一方面也導致我看大塊頭時候熱情的下降。每天都是看書看書看書…

不知不覺到了大三,大三下學期就要正式找實習了。很希望能夠去到BAT或者其他好的公司實習。剩下的時間不多,一個學期多一點。最近看了幾篇別人的部落格,感覺他們分享出來的面試時遇到的問題都好難…

即使再困難也沒辦法,只能頂著壓力上。

學習方向

其實學習的方向早就定好了,就是linux後臺開發。最開始程式設計是從做網頁開始的,接觸了html、css、php,主要負責使用php完成後端業務邏輯,資料庫操作等,期間為了配合前端開發,也學習過js、jquery、ajax。然後,隨著見識廣了些,發現php處理的網頁後臺並非是後臺開發,後臺開發應該偏向網路程式設計。對前端也沒有興趣,在大二下學期就慢慢傾向linux及網路程式設計。

決定了這個方向,就要知道要學些什麼東西了。為此我專門看了騰訊校招要求,也在知乎上找相關的東西。很幸運有許多巨人前輩的經驗分享,讓我們這些小白知道路怎麼走。

第一個部落格廢話好多…談談接下來要讀的書單:

linux:《UNP 卷2》

tcp/ip:《tcp/ip 卷1》、《effective tcp/ip》

c++:《effective c++》、《STL原始碼解析》

設計模式:《大話設計模式》

面試演算法備考:《劍指offer》

系統:《深入理解計算機系統》

談談要做的專案:

  1. 學習網路程式設計庫。

  2. 實現一個簡單的http伺服器。(具體怎麼做還不清楚)

  3. 閱讀lighttpd原始碼、muduo原始碼。

做這些事情是有順序的,因為c++書籍閱讀比較困難(之前effective c++和STL原始碼解析都接觸過),所以應該放在unp、tcp/ip的後面看完unp、tcp/ip之後,就去學習網路程式設計庫。之後,可以一邊實現http伺服器,一邊閱讀c++(實現伺服器為主),最後在閱讀別人的原始碼。

方法

希望可以經常反省,掌握好的方法,提高學習效率。

  1. 針對大塊頭的方法:

    思想上:套用傅園慧的話,之所以還在掙扎,是因為自己還沒有放棄。
    方法上:

    • 讀大塊頭期間,可以常寫寫部落格,反思下怎樣提高效率。
    • 可以刷刷別人的部落格,看有什麼好經驗分享。多點運動。
    • 還有最重要的一點是,要意識到,並非整本書幾百頁都需要一字不漏的看要抓住主線、原理性的內容,對具體實現只粗略做筆記。也只理解自己相關的部分,譬如TCP/UDP的知識。ip、多播、sctp什麼亂七八糟的,有需要時再看吧。
    • 再者,別再擔心知識點會串不起來,看書過程中,記錄好筆記,另一方面,看完書後,可以刷部落格看別人總結好的,站在巨人的肩膀上,追求最高效率。
  2. 堅持在印象筆記上做筆記,要改變的時,不需要全部知識記錄,而是隻記錄 是什麼,為什麼,缺陷是什麼

  3. 多點運動。

  4. 休息好,狀態才會好,才會有學習的節奏。

目標:騰訊後臺實習生,最期待部門是QQ音樂、微信。

真心希望自己在騰訊校招實習生前,能夠完成上面的任務。

2016.08.31
yxc