一、知識模組
我在學習時關注的計算機知識模組如下:
基礎知識模組
擴充套件知識模組
二、各模組學習路線
1、C++
- C++ Primer
- 深入探索 c++ 物件模型
- STL 原始碼剖析
- Effective C++、More Effective C++
2、演算法
- 大話資料結構
- 演算法第4版
- 劍指offer + 演算法導論
3、作業系統
- 現代作業系統
4、計算機網路
- 《計算機網路》第七版 和 《計算機網路:自頂向下方法》一起學,比較一下。
- 網路是怎樣連線的
- 圖解HTTP
- 《TCP/IP詳解卷1:協議》
5、資料庫
- 看 W3Schools 的 SQL 教程,掌握基礎語法,會編寫 SQL 語句
- 看書《MySQL必知必會》, 邊學邊用,動手實操。
- 看書《資料庫系統概念》
- 《高效能MySQL(第3版)》、《深入理解MySQL》、Mysql官網等。豐富的經驗
6、系統程式設計
- 深入理解計算機系統
- 程式設計師的自我修養
7、網路程式設計
- TCP/IP網路程式設計
- Linux高效能伺服器程式設計
- Linux多執行緒伺服器程式設計
- Unix網路程式設計
- Unix環境高階程式設計
三、學習感悟
因為學習後如果不及時整理和複習很快就會忘記,隔一段時間後就好像沒看一樣,會感覺自己白看了,做了無用功。所以在開始學習這一系列計算機知識後,我努力讓自己靜下心來做筆記。
一般我會在看完某一章後儘快做一下這章的筆記,有時可能會連續看了許多章後再做,但儘量避免整理筆記的時間和學習的時間相隔太久。
我在整理筆記時所考慮的是:在筆記記完後,當我需要查詢某個知識點時,不需要到書中去找,只需檢視筆記即可找到相關知識點,並且要能在筆記中快速找到並迅速理解。因此在整理筆記時力求全面與簡潔。
在此基礎上,我所做的筆記中,已整理的內容是對書中內容的提煉,包括了我在學習時所認為的書中所有有用的知識點,因此每章的筆記內容都比較多。
對於這些經典的計算機書籍來說,書中有用的知識點太多了,因此做筆記的過程是很慢的。在我學習整理的過程中,平均來看,學習一章內容和整理一章內容的時間比大概在 1:1.5 左右,也就是整理筆記的時間實際上要比學習一遍還要更久。
但是對我來說,整理筆記是十分有用並且必須要做的事情。一方面,整理筆記相當於對學習的內容的一次複習,並且因為整理筆記時需要篩選有用內容並對其儘量提煉、簡化,所以相比於第一遍看書學習,整理筆記也可以看作是更為細緻的第二遍的學習。另一方面,在日後需要查詢書中某個知識點時,筆記可以代替原書成為查詢知識點的參考。而因為筆記是自己整理的,所以相比原書,對筆記中的知識點進行查詢和理解的速度都更快。
但是並非所有的書都要全部整理成筆記,不同的書需要整理的詳細程度也不同。如我對《鳥哥的Linux私房菜》的整理內容較為簡略,因為這本書中對 Linux 的講解十分詳細,但並非所有知識都常用,並且其整理成本非常高,而整理的收效又不大。因此我只選擇其中比較重要、常用的知識進行了整理。
四、書籍筆記索引
下面是到目前已發出的各模組書籍學習筆記的索引。
C/C++
演算法
計算機網路
資料庫
系統程式設計
網路程式設計
Python
《Python程式設計:從入門到實踐》基礎知識部分學習筆記整理
Linux
補充
還有一些已整理但比較零碎的筆記沒有發到部落格上,經過梳理後後續都會補充上來。