更新時間:2018-01-05 來源:黑馬程序員 瀏覽量:
人類的成長和進步是離不開書籍的。那是我們進步的階梯,成功的基石。程序員也不外如是。然而,哪些才能真正的開卷有益,可以放心大膽的拿來肆意翻看呢。
現在每年增加的信息量比過去幾百年還要多,不過好書還是那么少,能經得起時間考驗的經典書就更少了,每個領域的經典書就那么幾本,作為初學者應該首先看完該領域的經典書,然后再看其他的流行好書。
選擇經典,是因為躋身于這個站在光速上的互聯網時代,我們實在沒有時間花在爛書上,好書能更快更好的幫助我們理解內容,好書是一種享受,你不會覺得讀書是一種辛苦。選擇英文書是因為,這些經典書的英文都寫得樸實、簡單,不超過大學四級的閱讀水平,長時間侵淫英文書可以為自己以后學習和工作打好基礎。在工作中,最新最好最的資料都是英文的。多多浸染,不無益處。
以下是不管怎么推薦和轉載都不過分好書。
Linux 入門
《Running Linux》 和 《Linux in a Nutshell》 都是很棒的 Linux 入門書,如果你是計算機專業(yè)出身,只需要這兩本書就可以了,這兩本書都包括一些初級系統管理內容,Linux in a Nutshell 稍微難一點,建議閱讀順序是先 Running Linux 后 Linux in a Nutshell.
系統管理和網絡
《UNIX System Administration Handbook 》可能是系統管理方面最權威的的一本大部頭百科全書式著作,第一版本是1989年發(fā)行的,以后一直是 Unix 系統管理的方面的經典,其作者在2002年發(fā)布了對應的 Linux Administration Handbook 第一版,然后又成了 Linux 系統管理的必讀,終于在2010年的時候作者把這兩本書合為一本 UNIX and Linux System Administration Handbook.
《Essential System Administration 》是另一個 Unix/Linux 系統管理的經典書,可以替代 UNIX and Linux System Administration Handbook,不過建議兩本都看看。
《TCP/IP Illustrated, Volume 1: The Protocols 》是理解 TCP/IP 協議的必讀經典,書的內容不涉及具體的網絡管理命令,也不討論如何架設各種服務器,主要討論 TCP/IP 各層協議是如何工作的,不管你是 System Administrator, Network Administrator, DevOps 還是 System Programmer 這本書都必讀,就算今天用 Django, Ruby on Rails 之類的框架編程也應該了解一下底層 HTTP 協議是如何工作的,網絡包是如何一層一層的封裝、解封的。TCP/IP Illustrated 三部曲的另外兩本也很經典,不過太窄太具體,除非你是 TCP/IP 協議設計者或網絡棧碼農,看 《TCP/IP Illustrated, Volume 2: The Implementation》的用處不是很大。
系統編程
《The UNIX Programming Environment 》是兩位 UNIX 大師 Brian W. Kernighan 和 Rob Pike 的合著,UNIX/Linux 編程入門的最好讀物,字里行間里浸透了 UNIX 的哲學和設計思想。
《The C Programming Language》 可能有人會問為啥學 Unix/Linux 要懂 C 語言,C 是 Unix/Linux 的核心,想繼續(xù)深入理解 Unix/Linux 必須懂點 C 語言,不然下面一些書沒法繼續(xù)讀,C 語言還是一種優(yōu)美、高效的語言,每個程序員都應該會(個人觀點)。
《Advanced Programming in the Unix Environment 》是 Unix/Linux 編程的經典必讀書,被譽為業(yè)界圣經,Linux程序員必讀之作。Unix大師級作者 Richard Stevens 的巨著,事實上 Richard Stevens 的每本書都是巨著。
《Unix Network Programming》 是 Richard Stevens 另一巨著,這本經典 Unix 網絡編程書可看作上面那本的補充。
編程還應該包括 shell 編程,這里沒有單獨拿出來推薦是因為因為上面推薦的入門和系統管理書里面都或多或少包括了一些 shell 編程基礎知識。
操作系統原理和內核
《Operating Systems: Design and Implementation》 是操作系統原理的經典書,講系統原理的還有另一本經典恐龍書 Operating System Concepts,我個人更喜歡前一本一些,理論加實踐,書的作者在大學教書的時候沒能找到滿意的操作系統來教學自己寫了一個 Minix,Linus Torvalds 發(fā)現 Minix 太簡單不實用自己寫了一個 Linux,貌似牛人都有共同的特點,不滿意就自己造一個~,修改 Minix 內核是很有趣的事情,換工作后一直沒機會再玩 Minix.
《Linux Device Drivers 》是內核編程的入門讀物,難得這本經典書還是免費的。
《Understanding the Linux Kernel》 是 Linux 內核方面的經典,看這本書之前最好看過一些上面講操作系統原理的書,不要指望看一遍就把這本書都搞懂,理解內核難點的地方在于內核之間的子系統是獨立又是交叉的,又缺少實際可運行可修改的例子,不像 web 編程,改幾行代碼就可以立刻看到效果,所以內核學習是個痛苦的過程,這本書有助于建立一幅完整的 Linux 內核圖景。
本文版權歸黑馬程序員C/C++學院所有,歡迎轉載,轉載請注明作者出處。謝謝!
作者:黑馬程序員C/C++培訓學院
首發(fā):http://c.itheima.com/