若是你是一個程序員, 除了編碼以外,你還須要大量的閱讀。今天我要爲你們介紹幾本值得一讀的書,包括《The Pragmatic Programmer》,《The Mythical Man-month: Essays on Software Engineering》和《Clean Code: A Handbook of Agile Software Craftsmanship》。html
書籍是知識和智慧的重要來源。但不幸的是,如今不少人已經不肯意看書了。程序員更是罕見地會去讀書,最多見的依靠互聯網搜索結果來找尋答案。程序員
技術向前的步伐比人類歷史上的任什麼時候候都要走得更快。用不了幾個月,就會有新的編程語言和工具問世,彌補現有語言、工具和方法的缺陷。編程
事實上,許多偉人都已經遇到過差很少的問題,並指出瞭解決這些問題的最佳途徑。而這些方法和解決方案都收錄在一些超棒的書籍中。設計模式
下面就是在這個行業中開發人員應該閱讀的一系列偉大的書籍。編程語言
絕對是書籍中的瑰寶!這不是常規地建議你編碼,編碼仍是編碼的編程書。事實上,它並不限定於某種特定的編程語言:在這本書中的智慧適用於全部編程語言。工具
這本書對許多有趣的領域都提出了真知灼見,如各類探索性編程,在代碼中編碼,從模型中分離的觀點,昂貴的工具並不產生更好的設計,開發一個偉大的團隊,管理預期,避免知識的重複等。單元測試
這本書不只能夠幫助改變編碼的習慣,還能夠改變你做爲一個程序員的性格。它充滿了關於如何改進本身和代碼的實用建議。測試
還有一個總結了提示和檢查清單的小冊子。優化
很是經典,被奉爲軟件行業的聖經。第一次出版於1970年,可是裏面的內容比起之前,可能更適用於如今!網站
有據說過這些話嗎?它們均摘自於這本書!
「全部的程序員都是樂觀的:一切都會順利。」
「添加人手到一個延遲的項目中只會致使完成得更慢。」
「生一個孩子老是須要九個月的時間,無論安排多少個女性。」
「一個煎蛋,承諾在兩分鐘內完成,但若是兩分鐘後仍是沒有準備好,那麼客戶有兩種選擇——等待或吃半熟品,軟件客戶也只能這樣選擇。」
不幸的是,一年又一年地過去,而咱們老是在軟件開發中犯着相同的錯誤。這本書是每個項目經理和開發人員都必須閱讀的。
正從標題中所說的那樣,這是一本散文集。文辭優美。這本書惟一的缺點就是引用了年邁25的古老技術。可是,這並不影響這本書的魅力。
有沒有在看他人代碼的過程當中,不禁自主地發出「哦,天哪,這是什麼?」的經歷,那麼這我的確定沒有閱讀過《Clean Code》。
這是一本關於軟件工藝史詩般的書籍。這本書不只會告訴你如何編寫好的代碼,並且還提供了軟件開發的高效途徑。照着去作的話,必將改變你的工做前景。
書中描述了編寫乾淨代碼的原則、模式和作法。裏面一些關於整潔代碼的幾個案例都是開發人員寶貴的經驗教訓。
請注意,雖然在這本書中的全部實例都是關於Java的,可是從中學到的經驗教訓能夠應用於任意的編程語言。
這篇文章所列出的這些書籍中,這本書出版得比較晚,因此可能更能引發年輕開發人員的共鳴。
此列表中Rob Martin的第二本書。建議你在讀了《Clean Code》後,再讀這本書。《Clean Code》講的是代碼,而這本書是關於「Coder」。
該書探討了一些程序員常常忽視的主題。
成爲專業的程序員意味着什麼?
如何打磨本身成爲一個真正的軟件工匠
衝突和緊張的日程處理
如何管理你的時間?如何擴張技能?
什麼時候說「不」
避免倦怠
..以及更多。
你可能並不老是贊成做者的觀點,但它提供了良好的精神食糧。這可能並不是你所指望的,但可能正是你所須要的。
無論你怎麼努力,除非改進它,不然,你交付的代碼不會是最優化的。有時即便工做正常,也會實施重構。
這本書從重構的通用原則提及:爲何以及何時重構,如何處理有關重構的管理等等。而後講述瞭如何實現改進的過程。
代碼的設計缺陷指標是什麼?
如何構建類、方法和其餘的邏輯塊?
單元測試
如何將功能從一個對象移動到另外一個?
重構工具
..以及更多
這是改進現有代碼必讀的書。請注意,全部的代碼示例用的都是Java,但如今複製起來也很方便!
咱們都必須工做於一些咱們痛恨的東西——對於大多數人而言,遺留代碼真是使人頭痛無比。
如何修改遺留代碼?如何識別須要重構的代碼部分?如何破壞重構代碼之間的依賴關係?如何確保新的代碼能完成預期的工做?如何一次一小步地重構遺留代碼?
在這本傑出的書中,只是回答了一些關鍵的問題。若是非要用一句話總結這本書的精華,那就是「寫單元測試,重構代碼,確保測試都經過。」
遺留代碼不是一個神話,它是一個活着的傳奇!在軟件行業中沒有什麼比遺留代碼更能經受測試的考驗了——Deepak Karanth
在一個龐大的做品中,若是你想要閱讀全部關於編程結構和最佳實踐的內容,那麼這是本必讀書。真正的百科全書式書籍——其最新版本有多達960頁!不要被這本書的厚度嚇倒,你能夠按照本身的節奏閱讀。最後,你會慶幸你閱讀了這本書。
書中解釋了軟件開發的每一個方面。從代碼結構,代碼格式化,到變量、方法和類的命名,再一路說到管理一個團隊,對全部一切都提出了實用的建議。
提供了覆蓋特定主題的豐富參考和補充材料,這些也很是值得一讀。
只有一小部分的軟件開發人員會讀這本書,因此若是你也是他們中的一個,那麼你就有了優點。經過閱讀這本書,你就能夠得到許多年寶貴經驗。
看上去最不像技術的編程書籍!每一個頁面都包含塗鴉、圖片以及其餘一些吸引眼球的東西。可能給人的印象是一本閱讀起來很輕鬆的書,但事實上它會討論編程的一些核心主題——設計模式。
這本書雖然沒有覆蓋全部存在於這個世界的模式,可是會涵蓋全部你可能須要用於解決現實問題的模式。它將幫助你建立功能性的,優雅的,可重用的和靈活 的軟件。每一個模式的優劣也被明確指出。大多數關於設計模式的書籍談論的是如何實現模式,但這本書的做者同時還解釋了爲何以及怎麼樣。
最新版本包括針對Java 8的更新——主要是Lambda。
很棒的一部做品。這本書並不是關於編程。這是一本有關管理和激勵程序員的書籍。開發人員也應該閱讀。不少時候,開發人員,尤爲是那些沒有經驗的開發人員,不理解管理的思惟過程。
軟件開發是一個創造性的過程。可是,大多數管理人員把它看成是流水線。開發人員被視爲是機器上可替換的齒輪零部件。管理人員廣泛性地會給予一個緊迫 的時間期限,看成促進積極性惟一途徑。他們對開發人員的工做不感興趣,甚至可悲的是,他們也不會試着去理解開發人員或他們本身的工藝。
若是你想成爲一個想要的是質量,而不只僅是數量的管理人員,那麼請馬上閱讀這本書!
做者解釋了管理者應該如何以一種可持續的方式使他們的軟件開發團隊認識到他們的潛力。
一樣的,這也不是一本關於編程的書。可是,倒是每個程序員都應該閱讀的書。
這本偉大的書着重於管理開發人員生活的「其餘」方面。能夠是你生活的每個方面——事業、生活、身體、頭腦,以及無論你相信與否——還有靈魂。
做者他本身也遵循這些技術,而且得到了成功。他的網站上說,他可以在他30出頭的時候放棄他的平常工做。該做者將他的生活經驗整理成整齊的,主題內 容爲Career、Marketing yourself、Learning、Productivity、Finances, Fitness和Spirit的短章。每一個篇章都很短,能夠在休息時間閱讀,很是方便。
你會是一個更加滿意和快樂的人,若是你按照這本書的建議去作的話,那麼你將成爲一個更使人滿意和幸福的人和程序員。
譯文連接:http://www.codeceo.com/article/10-classic-books-programmer-read.html
英文原文:10 Classic Books Every Serious Developer Should Read