10.05 必讀&資源!新手程序員成長之路的五本書籍

全文共3351字,預計學習時長

7分鐘

必讀&資源!新手程序員成長之路的五本書籍

圖片來自Pixabay,IvanPais


書籍可以清晰而有條理地陳訴觀點,紙張上的筆墨也會給人一種不慌不忙的感覺。不過,科技類書籍存在一些嚴重的問題:它們幾乎很快就過時了。由於缺乏交互性,此類書籍無法實時展示其概念(或讓讀者玩味這些概念)。它們的帶寬相對較低——例如,需要將長代碼示例分解為很小的塊,而閱讀這些書便成了件苦差事。

部分科技書籍多年來不斷應對挑戰,保持實用性。這些書籍不再傳授最新編程框架的技術細節,而是闡明軟件開發理念,傳授最佳編程技術與設計技術,向你介紹軟件行業的工作感受,告訴你成為一名程序員意味著什麼。本文將列舉五本相關書籍供你學習參考。

公眾號後臺回覆“20191005”即可獲得電子版圖書下載鏈接。

必讀&資源!新手程序員成長之路的五本書籍


1. 《程序員修煉之道》(The Pragmatic Programmer)

第一版發行後,一本與編程有關的書籍可以在20年後繼續保持實用性嗎?可以,如果這本書具有代碼編寫技術的永恆智慧的話。

必讀&資源!新手程序員成長之路的五本書籍


《程序員修煉之道》能啟發程序員,更為深入地思考如何應對挑戰、與其他人合作以及成為效率更高的程序員。

書中解釋瞭如何對抗軟件衰減——使每個大項目中的代碼逐漸陷入混亂的強大力量。該書簡單介紹了單元測試和重構,並對調試(不要驚慌!)做出合理建議,可有效解決問題,而不會傷害任何程序員自尊。《程序員修煉之道》可幫助你學習一些很酷的程序員術語,比如“正交性”。

該書大約有300頁,看起來似乎並不長,但內容緊湊。幸運的是,你無需從頭讀到尾。每次打開書,淺嘗一下,便可能會得到一些實用的建議。

總結:除了《程序員修煉之道》之外,還有一小部分關於代碼的經典書籍每個人都喜歡推薦(或至少在桌上擺放著)。其中一本是比爾蓋茨最喜歡的睡前讀本《代碼大全》。同《程序員修煉之道》一樣,《代碼大全》提供了寶貴建議,但篇幅更長,內容有點枯燥,讀起來更像是一本教科書。《代碼整潔之道》也是一本質量較高的書,書中部分內容與其他書有所重合,雖然初讀時會感受到時間的痕跡,以及其對Java的密切關注,但絕對值得一讀。

2. 《編碼的奧秘》(Code: The Hidden Language of Computer Hardware and Software)

如果你寫了一本讓程序員和對編程好奇的外行人同樣感興趣的書會怎麼樣?《編碼的奧秘》就是這樣一本書 ——對計算機創造奇蹟的方式展開探索。

必讀&資源!新手程序員成長之路的五本書籍


沒有親自讀過,就很難理解《編碼的奧秘》這本書。我們都讀過有關計算機如何運作的書籍,通常伴隨一些圖表和一行行1和0在內的代碼,但這本書並非如此。《編碼的奧秘》深入研究計算,從莫爾斯代碼開始,最後到構成CPU原理圖。該書讀起來像一本小說——雖然旁白非常詳細。

《編碼的奧秘》的主題為在電子產品中進行信息編碼的方式。很多時候,該書險些成為多餘但有趣的歷史教材。但拉開帷幕後,你會突然發現該書與編碼息息相關,在閱讀過程中一直都在學習現代計算機。《編碼的奧秘》的作者是編碼界的傳奇人物Charles Petzold,也是向倍感沮喪的程序員解釋Windows API的首批開拓者之一。(“在Petzold中查找”在當時成為口頭禪。)幾十年後,他對WPF中的3D編程展開了相似的研究。WPF頗具吸引力,但幾乎每個人都忽略了其棘手程度。

底線是什麼?如果你對電子產品內部如何運行,以及代碼為何這樣編寫頗為好奇,那麼《編碼的奧秘》這本書就可以幫你解開謎團。

3. 《點石成金》(Don’t Make Me Think)

這本書講述了計算機編程的真相。無論是否願意,每個程序員或早或晚都會設計或運行用戶界面。雖然程序員也是用戶,即便創建一個有邏輯、可用的界面是一項簡單任務,但程序員們的首次嘗試可能並不盡如人意。

設計問題就像冰山一樣——從頂上看起來很小,但底部出人意料地巨大與危險。許多程序員討厭設計,因為他們不能使用自身獨特的技能,一旦決策失誤,呈現出的結果就會令人不適。這就是《點石成金》成為廣受歡迎的指南的原因。

必讀&資源!新手程序員成長之路的五本書籍


《點石成金》一書對優秀設計展開探索。書中多是網站示例,但其建議適用於任何類型的軟件——或人類製造的任何類型的產品。《點石成金》的真正訣竅在於激活你已有的、內心深處的那些知識,並將其付諸實踐。學著像可用性方面的專家一樣思考,是一件很有趣的事。事實上,超級有趣。而《點石成金》這本書是其中最為輕鬆、有趣的一本。

4. 《編程人生》(Coders At Work)

《編程人生》旨在傳達的觀點就是:談論代碼很重要,與程序員交談也很重要。該書記錄了對15名認真出色的程序員展開訪談的內容。


必讀&資源!新手程序員成長之路的五本書籍



大多數在職程序員可以分享一些有用的建議。但是《編程人生》能讓你與JavaScript的創造者Brendan Eich、Unix的設計師Ken Thompson這樣傑出的程序員交流,就像你正在與這個星球上最成功的一些程序員展開非正式的對話。你將發現他們如何應對挑戰、解決問題、編寫代碼以及對未來展開預測。

看看他們會在哪些方面產生分歧——有時頗具戲劇性,也很有趣。例如,Dan Ingalls談到當他在面對新挑戰時如何立即開始編碼,而Joshua Block則在編寫單行代碼前仔細繪製API。Donald Knuth更是厲害,他描述了自己在使用計算機前是如何用鉛筆寫出完整的排版系統TeX。

《編程人生》每一章都以訪談形式撰寫,感覺更像是一系列雜誌文章,而非一本關於編程理論的重要書籍。但是,花在這些程序員身上的時間越多,就越能瞭解在眾多不同領域工作的程序員的感受。

5. 《現實世界漏洞追蹤》(Real-World Bug Hunting)

不對安全性的某些方面進行深入研究,就無法列出完整的編程書籍清單。這一方面包含很多好的主題。每個程序員都可從中受益,學習加密基礎、黑客入侵網絡的方式以及有助於代碼防禦攻擊的最佳實踐。但如果想要覆蓋很多內容,而不用陷入過多理論,那麼《現實世界漏洞追蹤》就是一個不錯的選擇。

必讀&資源!新手程序員成長之路的五本書籍


《現實世界漏洞追蹤》一書真實描述了壞人攻擊程序的最常見方式。閱讀後,您會發現驗證效果不佳的輸入可以摧毀數據庫或破壞網站,惡意網站會傳染健康網站,黑客能夠使用洩漏內存控制計算機。有些讀者可能覺得這些場景的技術性太強,但這些都是黑客攻擊的事實——現實世界是最好的老師。

總結:

每個程序員都應該至少學些密碼學——有關安全通信、身份驗證的科學。關於這個主題的書籍有很多,有些歷史悠久,有些是充滿數學元素的教科書,令人生畏。學習初期,要輕鬆一點,建議閱讀帶插圖的《密碼學漫畫教程》。更經典的方法是閱讀由至少三位以上世界領先的密碼學家撰寫的、具有開創性的《密碼學設計》。如果想休息一下,真心推薦《杜鵑蛋》一書,書中講述了天文學書呆子(偶然間成為計算機專家)Clifford Stoll和他在伯克利實驗室檢測到的一名俄羅斯黑客的故事,讀起來令人慾罷不能。這本書也是最適合夏季帶去海灘閱讀的。

作為一名程序員,總會覺得自己離身後即將到來的變革與新技術海嘯僅有半步之遙。但每隔一段時間暫停一下,從不斷追趕新框架、新語言中休息片刻也很重要。閱讀任意一本上述書籍,將收穫與軟件開發技術和職業相關的更為開闊的視角,進而提升編寫代碼的能力。

必讀&資源!新手程序員成長之路的五本書籍


我們一起分享AI學習與發展的乾貨


分享到:


相關文章: