每個程式設計師應該閱讀的10本經典書籍

2016-02-28    分類:推薦閱讀、程式設計師人生、首頁精華12人評論發表於2016-02-28

本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃

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

書籍是知識和智慧的重要來源。但不幸的是,現在很多人已經不願意看書了。程式設計師更是罕見地會去讀書,最常見的依靠網際網路搜尋結果來找尋答案。

技術向前的步伐比人類歷史上的任何時候都要走得更快。用不了幾個月,就會有新的程式語言和工具問世,彌補現有語言、工具和方法的缺陷。

事實上,許多偉人都已經遇到過差不多的問題,並指出瞭解決這些問題的最佳途徑。而這些方法和解決方案都收錄在一些超棒的書籍中。

下面就是在這個行業中開發人員應該閱讀的一系列偉大的書籍。

《The Pragmatic Programmer》

絕對是書籍中的瑰寶!這不是常規地建議你編碼,編碼還是編碼的程式設計書。事實上,它並不限定於某種特定的程式語言:在這本書中的智慧適用於所有程式語言。

這本書對許多有趣的領域都提出了真知灼見,如各種探索性程式設計,在程式碼中編碼,從模型中分離的觀點,昂貴的工具並不產生更好的設計,開發一個偉大的團隊,管理預期,避免知識的重複等。

這本書不僅可以幫助改變編碼的習慣,還可以改變你作為一個程式設計師的性格。它充滿了關於如何改進自己和程式碼的實用建議。

還有一個總結了提示和檢查清單的小冊子。

《The Mythical Man-month》: 關於軟體工程的散文集

非常經典,被奉為軟體行業的聖經。第一次出版於1970年,但是裡面的內容比起以前,可能更適用於現在!

有聽說過這些話嗎?它們均摘自於這本書!

“所有的程式設計師都是樂觀的:一切都會順利。”

“新增人手到一個延遲的專案中只會導致完成得更慢。”

“生一個孩子總是需要九個月的時間,不管安排多少個女性。”

“一個煎蛋,承諾在兩分鐘內完成,但如果兩分鐘後還是沒有準備好,那麼客戶有兩種選擇——等待或吃半熟品,軟體客戶也只能這樣選擇。”

不幸的是,一年又一年地過去,而我們總是在軟體開發中犯著相同的錯誤。這本書是每一個專案經理和開發人員都必須閱讀的。

正從標題中所說的那樣,這是一本散文集。文辭優美。這本書唯一的缺點就是引用了年邁25的古老技術。但是,這並不影響這本書的魅力。

《Clean Code》: 敏捷軟體工藝的手冊

有沒有在看他人程式碼的過程中,不由自主地發出“哦,天哪,這是什麼?”的經歷,那麼這個人肯定沒有閱讀過《Clean Code》。

這是一本關於軟體工藝史詩般的書籍。這本書不僅會告訴你如何編寫好的程式碼,而且還提供了軟體開發的高效途徑。照著去做的話,必將改變你的工作前景。

書中描述了編寫乾淨程式碼的原則、模式和做法。裡面一些關於整潔程式碼的幾個案例都是開發人員寶貴的經驗教訓。

請注意,雖然在這本書中的所有例項都是關於Java的,但是從中學到的經驗教訓可以應用於任意的程式語言。

這篇文章所列出的這些書籍中,這本書出版得比較晚,所以可能更能引起年輕開發人員的共鳴。

《The Clean Coder》:專業程式設計師的行為守則

此列表中Rob Martin的第二本書。建議你在讀了《Clean Code》後,再讀這本書。《Clean Code》講的是程式碼,而這本書是關於“Coder”。

該書探討了一些程式設計師經常忽視的主題。

  • 成為專業的程式設計師意味著什麼?
  • 如何打磨自己成為一個真正的軟體工匠
  • 衝突和緊張的日程處理
  • 如何管理你的時間?如何擴張技能?
  • 何時說“不”
  • 避免倦怠
  • ..以及更多。

你可能並不總是同意作者的觀點,但它提供了良好的精神食糧。這可能並非你所期望的,但可能正是你所需要的。

《Refactoring》:改善已有程式碼的設計

不管你怎麼努力,除非改進它,否則,你交付的程式碼不會是最優化的。有時即使工作正常,也會實施重構。

這本書從重構的通用原則說起:為什麼以及什麼時候重構,如何處理有關重構的管理等等。然後講述瞭如何實現改進的過程。

  • 程式碼的設計缺陷指標是什麼?
  • 如何構建類、方法和其他的邏輯塊?
  • 單元測試
  • 如何將功能從一個物件移動到另一個?
  • 重構工具
  • ..以及更多

這是改進現有程式碼必讀的書。請注意,所有的程式碼示例用的都是Java,但現在複製起來也很方便!

《Working Effectively With Legacy Code》

我們都必須工作於一些我們痛恨的東西——對於大多數人而言,遺留程式碼真是令人頭痛無比。

如何修改遺留程式碼?如何識別需要重構的程式碼部分?如何破壞重構程式碼之間的依賴關係?如何確保新的程式碼能完成預期的工作?如何一次一小步地重構遺留程式碼?

在這本傑出的書中,只是回答了一些關鍵的問題。如果非要用一句話總結這本書的精華,那就是“寫單元測試,重構程式碼,確保測試都通過。”

遺留程式碼不是一個神話,它是一個活著的傳奇!在軟體行業中沒有什麼比遺留程式碼更能經受測試的考驗了——Deepak Karanth

《Code Complete》:軟體構建的實用手冊

在一個龐大的作品中,如果你想要閱讀所有關於程式設計結構和最佳實踐的內容,那麼這是本必讀書。真正的百科全書式書籍——其最新版本有多達960頁!不要被這本書的厚度嚇倒,你可以按照自己的節奏閱讀。最後,你會慶幸你閱讀了這本書。

書中解釋了軟體開發的每個方面。從程式碼結構,程式碼格式化,到變數、方法和類的命名,再一路說到管理一個團隊,對所有一切都提出了實用的建議。

提供了覆蓋特定主題的豐富參考和補充材料,這些也非常值得一讀。

只有一小部分的軟體開發人員會讀這本書,所以如果你也是他們中的一個,那麼你就有了優勢。通過閱讀這本書,你就可以獲得許多年寶貴經驗。

《Head First Design Patterns》

看上去最不像技術的程式設計書籍!每個頁面都包含塗鴉、圖片以及其他一些吸引眼球的東西。可能給人的印象是一本閱讀起來很輕鬆的書,但事實上它會討論程式設計的一些核心主題——設計模式

這本書雖然沒有覆蓋所有存在於這個世界的模式,但是會涵蓋所有你可能需要用於解決現實問題的模式。它將幫助你建立功能性的,優雅的,可重用的和靈活的軟體。每個模式的優劣也被明確指出。大多數關於設計模式的書籍談論的是如何實現模式,但這本書的作者同時還解釋了為什麼以及怎麼樣。

最新版本包括針對Java 8的更新——主要是Lambda。

《Peopleware: Productive Projects and Teams》

很棒的一部作品。這本書並非關於程式設計。這是一本有關管理和激勵程式設計師的書籍。開發人員也應該閱讀。很多時候,開發人員,尤其是那些沒有經驗的開發人員,不理解管理的思維過程。

軟體開發是一個創造性的過程。但是,大多數管理人員把它當作是流水線。開發人員被視為是機器上可替換的齒輪零部件。管理人員普遍性地會給予一個緊迫的時間期限,當作促進積極性唯一途徑。他們對開發人員的工作不感興趣,甚至可悲的是,他們也不會試著去理解開發人員或他們自己的工藝。

如果你想成為一個想要的是質量,而不僅僅是數量的管理人員,那麼請立刻閱讀這本書!

作者解釋了管理者應該如何以一種可持續的方式使他們的軟體開發團隊認識到他們的潛力。

《Soft Skills: The Software Developer’s Life Manual》

同樣的,這也不是一本關於程式設計的書。但是,卻是每一個程式設計師都應該閱讀的書。

這本偉大的書著重於管理開發人員生活的“其他”方面。可以是你生活的每一個方面——事業、生活、身體、頭腦,以及不管你相信與否——還有靈魂。

作者他自己也遵循這些技術,並且獲得了成功。他的網站上說,他能夠在他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
翻譯作者:碼農網 – 小峰
轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]

相關文章