技術人必讀:19本免費指南性編程書籍
原文 http://developer.51cto.com/art/201503/467901.htm
無論是物理實體還是數字化信息,一本優秀的技術書籍總能吸引到編程新手與開發老鳥的關注。也許正因為如此,書籍才能成為真理的載體,幫助讀者在給定時間段之內掌握自己需要了解的議題以及學習途徑。
但從另一個角度出發,編程類書籍往往價格不菲。我案頭這本由Mark Lutz撰寫的《Python學習》大部頭定價高達59.99美元。不過各位無需灰心,涉及編程語言、框架、應用程序、系統以及相關規則的免費電子書及PDF文檔同樣多種多樣。
上面我就結合自己的積累為大家推薦19部免費論著,其難度適用范圍由毫無基礎的初學者到經驗豐富的開發老鳥皆有涵蓋,內容也囊括了大量熱門議題與語言類型。
Python: 《 Python 3深入剖析 》
目前眾多Python開發人員以及一系列Linux發行版本都將Python 3作為優于Python 2的長期開發方案選項,程序員們則亟需一套幫助他們從零入手并對其加以充分運用的指南性文獻。《Python深入剖析》探討的正是這一議題,而且非常適合 作為Python語言的概述資料。書中甚至還通過專門章節介紹由Python 2代碼向Python 3的轉換。
C++/Java/Python: 《 審視Python/C++/Java :如何像計算機科學家那樣思考 》
Python語言的另一套概述性資料名為《審視Python》,其中以更為細化的方式詳盡介紹了該語言的各個側面。作為該文獻的出版方,Green Tea Press還針對 C++ 及 Java 推出了相關資料,并全部由Allen B. Downey主筆。而且歸功于該系列書籍的開源特性,讀者們也可以針對不同的標題提供英語之外的其它翻譯版本。
Git: 《 憑借Git 學習版本控制 》
開源絕不僅僅是一種編程風格,而GitHub(以及作為其基礎的開源工具Git)的迅速風靡也將源代碼及版本控制方案帶入了萬千普通程序員手 中。不過Git的使用感受實在有些棘手,所以這本論著從初學者的角度出發(包括非程序員及項目經理),幫助大家了解Git如何支持程序員完成所開發代碼的 版本控制工作。其適用范圍包括OS X以及命令行用戶,但Windows用戶目前只適用于其中的命令行部分。
C/Python/Ruby: 《勤學苦練》
Zed Shaw的《勤學苦練》系列編程叢書已經擁有了一大批忠實的讀者群體。本系列資料堅持認為,編程語言的學習者應當最大程度增加親手參與練習的可能性,而這一指導思想也與叢書標題完美對應。Shaw在三部論著中分別介紹了 C 語言 、 Python 以及 Ruby 的相關知識。除了討論相關語言的前端與核心之外,他還以鮮見于其它指南資料的詳盡方式深入介紹了這幾種語言的開發細則。
Clojure: 《 Clojure —— 面向JVM 的函數編程 》
作為一款運行在Java虛擬機環境下的類LISP語言,Clojure已經憑借著其出色的函數編程(本身亦是一大熱門議題)實現能力成為開發人 員通往成功的快車票,且允許程序員充分發揮其現有Java生態系統之潛力。不過對于那些不熟悉LISP語法的初學者們來說,Clojure的探索之路實在 堪稱崎嶇而坎坷,因此這部專門引導大家掌握Clojure語法、概念及實現方式的論著也就應運而生。水平較高的Clojure程序員們則可以閱讀 《Clojure烹飪指南》一書,其中提供了大量將該語言應用于實際生產環境當中的優秀實例。
Linux: 《 從零開始學習Linux 》
常言說得好,最理想的學習方式就是實踐,而《從零開始學習Linux》的目標正是引導大家從零基礎開始一步小構建起一套Linux系統。目前幾乎沒有多少 論著會以如此詳盡、深入且全面的方式對Linux加以審視,而且也并不是所有打算在內部生產環境中使用Linux系統的用戶都愿意以如此細致的角度對這套 平臺的目標及功能加以了解。作為這場學習遠征的后續任務,《 從零開始實現Linux攻堅 》與《 從零開始實現Linux自動化 》將幫助大家進一步提升技術水平。
Go: 《 Go 語言編程概述 》
這部論著提供一整套面向Go語言(或者稱為Golang)的簡潔而直觀的多平臺概述。谷歌公司打造的這款類C語言已經引發了越來越多 技術人員的關注與興趣。該書以一整個章節介紹了Go語言的核心關鍵點之一——其并發特性——并以粗細有度的方式講解了Go語言的核心軟件包。如果大家希望 從另一個角度學習Go,也可以參閱《 通過實例學Go 語言 》一書,其中解釋內容較為簡短、但提供豐富的范例資料。
JavaScript: 《 人與JavaScript 》
Douglas Crockford撰寫的《JavaScript:正面解讀》是我在JavaScript學習過程中接觸到近最出色的一本指南。《人與 JavaScript》旨在教育讀者如何更為高效地利用JavaScript開發各類最常見的應用程序:構建具備可讀性及可維護性(也就是‘人’的因素) 的原生HTML 5應用程序。如果大家還希望從更細化角度審視下一代JavaScript的各方面特性,建議各位參閱《掌握ECMAScript 6》一書。
Hadoop: 《 照亮Hadoop 征程 》
這部以Hadoop為核心內容的論著并不僅僅針對技術讀者,同時也適用于其它缺乏技術知識儲備但對大數據頗為關注的群體。《照亮Hadoop征 程》一書確實從極為細致的角度講解了Hadoop生態系統中陸續涌現的多種新元素——例如Spark等——但YARN等要素卻沒能得到應有的關注與介紹篇 幅。不過作為一套自上而下的整體概述資料,其實用性仍然毋庸置疑。
編程理論: 《 計算機程序架構及注釋 》
PDF 格式版本 HTML 5 端口 作為現代計算教科書中的元祖級成員,SICP(縮寫)是一套麻省理工學院用于編程教學的標準化教材。其學習難度較高,而且選擇以LISP為核心介紹編程理論(這一定位本身亦成為潛在劣勢)。但眾多程序員在閱讀之后實現了永久性的思維轉換。該論著目前提供 PDF 格式版本 以及一套 HTML 5 端口 。
原文標題:Free books! 19 no-cost programming guides