從2011年5月買了第一本《Python學習手冊(第四版)》開始,我閱讀過大量和Python有關的紙質書和開源圖書。為什么要買書來看?我認為不外乎兩個原因:有趣和能學到東西。技術書肯定不會太有趣,那么最重要的就是能學到東西。市面上Python相關的書相當多,但是有些內容陳舊或者不符合國情,經常能看到并非開發第一線的人寫或者翻譯的書,這些書顯然價值就要低一些;其次是同質化和向入門級別靠攏,市面上關于Python入門或者教授語法知識的書不少,而再深入一點的就很匱乏了。還有一點,現在為了提高書的銷量,書名都起的非常有破壞力,很吸引眼球,可是內容完全不夠書名的檔次。
不知道一些回答推薦書籍問題的人是怎么想的,反正話說起來很廉價,又不用負責。但是會給看這些答案的人誤解,甚至要白白浪費大家的錢和閱讀時間,我非常樂于給「沒有幫助」。
知乎上已經有一些問題,也有很多人推薦。我沒有達到流暢的閱讀英文原版的能力,所以本文更接地氣一點,介紹的是中文書籍。本文將從如下三部分推薦技術書籍。
Python初學者
初學Python首先的是要熟悉Python語法和語言的關鍵內容,推薦如下三本書:
1.《Python學習手冊》。應該是對Python介紹最全面的書了,包含了絕大多數Python語言的關鍵內容。
2. 《Python核心編程(第二版)》。 需要注意,《Python核心編程(第二版)》是經典的Python指導書,出版于2008年,有很多內容已經不再適用現在的環境,所以以了解概念和原理為主。現在已經出版了一本《Python核心編程 第3版》,這是《Python核心編程 第一版》卷二的第三版。所以不要以為這是再版的《Python核心編程(第二版)》, 具體的內容可以查看「正在預售的《Python核心編程》到底是不是第三版?」。
3. 《Python語言及其應用》。感謝@PiGu提醒,也可以作為新手入門的書籍。
PS: 《Python基礎教程》。 有知友私信我,提到這本書,我之前看過一遍,覺得很一般就如實說了,想想覺得得對大家負責,這幾天特意翻了一遍。在這里再嘮嘮,它雖然是一個經典的入門教程,寫作風格也相對輕松幽默,但是由于本書寫作于2010年,書中有大量內容已經過時,所以不推薦!
說到這里,很傷心。因為現在大部分市面上見到的書都存在過時的問題。一是翻譯的書落地需要時間,另外一個是國內的互聯網技術環境發展并不比國外發展慢。甚至于我們在很多領域都要超前很多,很多外來的內容對我們來說本身就是過時的。而國內優秀的Python書籍又非常匱乏。
Python進階者
當你對Python有了一定了解,在實際的工作中用過一段時間,那么就應該考慮進階相關的書籍了。進階推薦的書有如下幾本:
1. 《Python高級編程》。這本書副標題叫做「Best practices for designing, coding, and distributing your Python software」,其實感覺更適合這個名字。它是10年出版的,時間特蠻長了,但是我依然要首先推薦,因為這本書可以說對我影響非常大,以至于當時我讀了好幾遍,每次讀完都覺得有很大收獲,幫助我之后的Python之路少走了很多彎路。
2. 《Python高手之路》。本書的作者是開源項目OpenStack的PTL(項目技術負責人)之一的 Julien Danjou。我一直說,一定要看書及其技術評審的作者的經歷和經驗,這本書雖然只有2百多頁,但是本書對項目的結構設計,對模塊和庫的管理,如何編寫文檔,如何分發,以及如何通過虛擬環境對項目進行測試都有自己的見解。此外,本書還涉及了很多高級主題,如性能優化、插件化結構的設計與架構、Python 3的支持策略等。值得一提的,本書的評審包含Python核心開發者Nick Coghlan、Doug Hellmann以及Victor Stinner等,所以書的作者是圈內人
。
3. 《Python編程實戰:運用設計模式、并發和程序庫創建高質量程序》。這本書有Doug Hellmann作序。書中的設計模式、并發變成和擴充Python都是非常通用的技術,是難得深入講解如此深入的一本好書。
4. 《Python標準庫》。這本書是Doug Hellmann寫的,介紹Python 2標準庫的使用,最初是PYMOTW網站上的一系列文章,后來成書。現在作者已經出版了Python 3版本的《The Python Standard Library by Example》。這是學好Python的必經之路,如果英文不過關,買本書花一段時間好好看這些標準庫的使用方法,對于未來寫代碼和閱讀開源項目以及其他同事寫的項目都有非常大的幫助。
5. 《Effective Python:編寫高質量Python代碼的59個有效方法》。 這本書雖然不太知名,但是相信大部分開發者看完都會有所收獲,可以提高Python代碼質量的。
6. 《Python Web開發實戰》。好吧,這是一個廣告!這是我寫的一本書,馬上預售了。不說太多,有興趣的可以去看介紹,尤其是看作序和推薦的人都有誰就好了 ^.^
Python 3相關
Python 3是未來這毋庸置疑,市面上也有一些書以Python 3作為賣點。但是目前為止,我還沒有發現一本好的中文書籍。期待中...
編程其實重在對編程思想的理解和經驗的積累,Python 2/3的思想基本是共通的,只有少量的語法有差別甚至不兼容。學好Python 2分分鐘去寫Python 3的代碼,其實不必糾結Python 3這件事。
最后分享一個我2年前在公司做過的《Python高級編程》的視頻。
作者:董偉明
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。