如果你是一個程序員, 除了編碼之外,你還需要大量的閱讀。今天我要為大家介紹幾本值得一讀的書,包括《The Pragmatic Programmer》,《The Mythical Man-month: Essays on Software Engineering》和《Clean Code: A Handbook of Agile Software Craftsmanship》。

《The Pragmatic Programmer》

絕對是書籍中的瑰寶!這不是常規(guī)地建議你編碼,編碼還是編碼的編程書。事實上,它并不限定于某種特定的編程語言:在這本書中的智慧適用于所有編程語言。
這本書對許多有趣的領(lǐng)域都提出了真知灼見,如各種探索性編程,在代碼中編碼,從模型中分離的觀點,昂貴的工具并不產(chǎn)生更好的設(shè)計,開發(fā)一個偉大的團隊,管理預(yù)期,避免知識的重復(fù)等。
這本書不僅可以幫助改變編碼的習慣,還可以改變你作為一個程序員的性格。它充滿了關(guān)于如何改進自己和代碼的實用建議。
還有一個總結(jié)了提示和檢查清單的小冊子。
《The Mythical Man-month》: 關(guān)于軟件工程的散文集

非常經(jīng)典,被奉為軟件行業(yè)的圣經(jīng)。第一次出版于1970年,但是里面的內(nèi)容比起以前,可能更適用于現(xiàn)在!
《Clean Code》: 敏捷軟件工藝的手冊

這是一本關(guān)于軟件工藝史詩般的書籍。這本書不僅會告訴你如何編寫好的代碼,而且還提供了軟件開發(fā)的高效途徑。照著去做的話,必將改變你的工作前景。
書中描述了編寫干凈代碼的原則、模式和做法。里面一些關(guān)于整潔代碼的幾個案例都是開發(fā)人員寶貴的經(jīng)驗教訓。
請注意,雖然在這本書中的所有實例都是關(guān)于Java的,但是從中學到的經(jīng)驗教訓可以應(yīng)用于任意的編程語言。
這篇文章所列出的這些書籍中,這本書出版得比較晚,所以可能更能引起年輕開發(fā)人員的共鳴。
《The Clean Coder》:專業(yè)程序員的行為守則

此列表中Rob Martin的第二本書。建議你在讀了《Clean Code》后,再讀這本書?!禖lean Code》講的是代碼,而這本書是關(guān)于“Coder”。
《Refactoring》:改善已有代碼的設(shè)計

不管你怎么努力,除非改進它,否則,你交付的代碼不會是最優(yōu)化的。有時即使工作正常,也會實施重構(gòu)。
這本書從重構(gòu)的通用原則說起:為什么以及什么時候重構(gòu),如何處理有關(guān)重構(gòu)的管理等等。然后講述了如何實現(xiàn)改進的過程。
這是改進現(xiàn)有代碼必讀的書。請注意,所有的代碼示例用的都是Java,但現(xiàn)在復(fù)制起來也很方便!
《Working Effectively With Legacy Code》

如何修改遺留代碼?如何識別需要重構(gòu)的代碼部分?如何破壞重構(gòu)代碼之間的依賴關(guān)系?如何確保新的代碼能完成預(yù)期的工作?如何一次一小步地重構(gòu)遺留代碼?
在這本杰出的書中,只是回答了一些關(guān)鍵的問題。如果非要用一句話總結(jié)這本書的精華,那就是“寫單元測試,重構(gòu)代碼,確保測試都通過。”
遺留代碼不是一個神話,它是一個活著的傳奇!在軟件行業(yè)中沒有什么比遺留代碼更能經(jīng)受測試的考驗了——Deepak Karanth
《Code Complete》:軟件構(gòu)建的實用手冊

在一個龐大的作品中,如果你想要閱讀所有關(guān)于編程結(jié)構(gòu)和最佳實踐的內(nèi)容,那么這是本必讀書。真正的百科全書式書籍——其最新版本有多達960頁!不要被這本書的厚度嚇倒,你可以按照自己的節(jié)奏閱讀。最后,你會慶幸你閱讀了這本書。
書中解釋了軟件開發(fā)的每個方面。從代碼結(jié)構(gòu),代碼格式化,到變量、方法和類的命名,再一路說到管理一個團隊,對所有一切都提出了實用的建議。
《Head First Design Patterns》

這本書雖然沒有覆蓋所有存在于這個世界的模式,但是會涵蓋所有你可能需要用于解決現(xiàn)實問題的模式。它將幫助你創(chuàng)建功能性的,優(yōu)雅的,可重用的和靈活 的軟件。每個模式的優(yōu)劣也被明確指出。大多數(shù)關(guān)于設(shè)計模式的書籍談?wù)摰氖侨绾螌崿F(xiàn)模式,但這本書的作者同時還解釋了為什么以及怎么樣。
最新版本包括針對Java 8的更新——主要是Lambda。
《Peopleware: Productive Projects and Teams》

這本書并非關(guān)于編程。這是一本有關(guān)管理和激勵程序員的書籍。開發(fā)人員也應(yīng)該閱讀。很多時候,開發(fā)人員,尤其是那些沒有經(jīng)驗的開發(fā)人員,不理解管理的思維過程。
《Soft Skills: The Software Developer’s Life Manual》

同樣的,這也不是一本關(guān)于編程的書。但是,卻是每一個程序員都應(yīng)該閱讀的書。
這本偉大的書著重于管理開發(fā)人員生活的“其他”方面??梢允悄闵畹拿恳粋€方面——事業(yè)、生活、身體、頭腦,以及不管你相信與否——還有靈魂。
作者他自己也遵循這些技術(shù),并且獲得了成功。他的網(wǎng)站上說,他能夠在他30出頭的時候放棄他的日常工作。該作者將他的生活經(jīng)驗整理成整齊的,主題內(nèi) 容為Career、Marketing yourself、Learning、Productivity、Finances, Fitness和Spirit的短章。每個篇章都很短,可以在休息時間閱讀,非常方便。
你會是一個更加滿意和快樂的人,如果你按照這本書的建議去做的話,那么你將成為一個更令人滿意和幸福的人和程序員。
最后我們強調(diào)的基礎(chǔ)知識穩(wěn)扎穩(wěn)打,實踐要花時間練習,練習在練習。不要博要專,安安心心的學習一門編程基礎(chǔ),然后側(cè)類旁通。多思考,編程的精髓在與思考,明白做什么、怎么做最重要。