有哪些你看了以後大呼過癮的編程書?

GitHub上有一位叫皮埃爾·德·沃爾夫(Pierre de Wulf)的童鞋,通過以下方法,檢索到了25本網上引用最多的編程書,相信你看過後一定會大呼過癮!

檢索方法:
1.在搜索引擎檢索 Best Programming Books (最棒的編程書)或類似說法;
2.爬蟲爬取檢索結果;
3.檢索結果去重;
4.根據頁面標題快速刪除不符條件的鏈接;
5.瀏覽器訪問鏈接,並通過CSS選擇器提取文章標題;
6.統計引用次數……(檢索方法的詳解版見文末傳送門)

快隨人郵君一起來揭曉吧!


有哪些你看了以後大呼過癮的編程書?


25本最受推崇的編程書

1. 《程序員修煉之道》(推薦67%)

The Pragmatic Programmer:From Journeyman to Master

有哪些你看了以後大呼過癮的編程書?

作者:[美]Andrew Hunt,David Thomas

內容簡介:

《程序員修煉之道》之所以在全球範圍內廣泛傳播,被一代代開發者奉為圭臬,是因為它可以創造出真正的價值:或編寫出更好的軟件,或探究出編程的本質,而所有收穫均不依賴於特定語言、框架和方法。

“要把低級的知識放在代碼中,它屬於那裡;把註釋保留給其他的高級說明。”
—— 引自 第2章 務實的方法

2.《代碼整潔之道》(推薦66%)

Clean Code:A Handbook of Agile Software Craftsmanship

有哪些你看了以後大呼過癮的編程書?

作者:[美]Robert C. Martin

內容簡介:

乾淨的代碼,既在質量上較為可靠,也為後期維護和升級奠定了良好基礎。作為編程領域的佼佼者,本書作者給出了一系列行之有效的整潔代碼操作實踐,並輔以來自實際項目的正、反兩面的範例。只要遵循這些規則,就能編寫出乾淨的代碼,從而有效提升代碼質量。

“我們都曾經瞟一眼自己親手造成的混亂,決定棄之不顧,走向新一天。 我們都曾經看到自己的爛代碼居然能運行,然後斷言能運行的爛程序總比沒有強。 我們都曾經說過有朝一日再回頭清理。當然,那些日子裡,我們都沒聽過勒布朗( LeBlanc )法則:稍後等於永不( Later equals never.) 。”
——引自 第1章 1.2 糟糕的代碼

3.《代碼大全》(推薦42%)

Code Complete

有哪些你看了以後大呼過癮的編程書?

作者:[美]Steve McConnell

內容簡介:

本書被廣泛認為是編程的最佳實用指南,其十多年來一直幫助開發人員編寫更好的軟件。

這也是一本完整的軟件構建手冊,涵蓋了軟件構建過程中的所有細節。它從軟件質量和編程思想等方面論述了軟件構建的各個問題,並詳細論述了緊跟潮流的新技術、高屋建瓴的觀點、通用的概念,還含有豐富而典型的程序示例。

“有效地管理(需求)變更是實現高質量的一個關鍵。”
——引自 第20章 軟件質量概述

4. 《重構》(推薦35%)

Refactoring: Improving the Design of Existing Code

有哪些你看了以後大呼過癮的編程書?

作者:[美]Martin Fowler

內容簡介:

書中清晰揭示了重構的過程,解釋了重構的原理和實踐方式,並給出了何時以及何地應該開始挖掘代碼以求改善。書中給出了60多個可行的重構,每個重構都介紹了一種經過驗證的代碼變換手法的動機和技術。

本書提出的重構準則將幫助開發人員一次一小步地修改代碼,從而減少開發過程中的風險。

“過去20年,《重構》一直是我案頭必備的圖書。每次重讀,仍有感悟。對我而言,《重構》的意義不只在於指導代碼重構,更在於讓人從一開始就知道什麼是好的代碼,並且儘量寫出沒有'壞味道'的代碼。Martin Fowler這次對本書進行的重構,體現了近年來編程領域的一些思潮變化。看來,既有設計,永遠有改進空間。”
——韓磊,《代碼整潔之道》譯者

5.《深入淺出設計模式》(推薦29.4%)

Head First Design Patterns

有哪些你看了以後大呼過癮的編程書?

作者:[美]Eric Freeman,Bert Bates,Kathy Sierra,Elisabeth Freeman

內容簡介:

本書向您展示了功能強大、優雅、可重用、靈活的設計模式,並利用認知科學和學習理論的最新研究來創造多感官的學習體驗,採用視覺豐富的形式,專門為大腦的工作方式而設計,而不是使您沉入睡眠的繁瑣的文本輸入法形式。

“針對接口編程,而不是針對實現編程。”
——引自 影印版 第11頁

6.《人月神話》(推薦27.9%)

The Mythical Man-Month:Essays on Software Engineering

有哪些你看了以後大呼過癮的編程書?

作者:[美]Frederick P. Brooks Jr

內容簡介:

本書內容源於作者Brooks在IBM公司任System/360計算機系列以及其龐大的軟件系統OS/360項目經理時的實踐經驗。在本書中,Brooks為人們管理複雜項目提供了最具洞察力的見解,既有很多發人深省的觀點,又有大量軟件工程的實踐,為每個複雜項目的管理者給出了自己的真知灼見。

“簡潔和直白來自概念的完整性。每個部分必須反映相同的原理、原則和一致的折衷機制。在語法上,每個部分應使用相同的技巧;在語義上,應具有同樣的相似性。因此,易用性實際上需要設計的一致性和概念的完整性。”
——引自 章節 團隊的性質

7. 《代碼整潔之道:程序員的職業素養》(推薦27.9%)

The Clean Coder:A Code of Conduct for Professional Programmers

有哪些你看了以後大呼過癮的編程書?

作者:[美]Robert C. Martin

內容簡介:

本書是編程大師 Bob 大叔 40 餘年編程生涯的心得體會, 講解成為真正專業的程序員需要什麼樣的態度、原則,需要採取什麼樣的行動。作者以自己以及身邊的同事走過的彎路、犯過的錯誤為例,意在為後來人引路,助其職業生涯邁上更高臺階。

“軟件行業的飛速改變,意味著軟件開發人員必須堅持廣泛學習才不至於落伍。”
——引自 第1章 專業主義

8.《修改代碼的藝術》(推薦26.4%)

Working Effectively with Legacy Code

有哪些你看了以後大呼過癮的編程書?

作者:[美]Michael Feathers

內容簡介:

世界級計算機專家Michael C. Feathers的經典之作,軟件開發大師Robert C. Martin作序傾情推薦,修改遺留代碼的權威指南。深入剖析修改遺留代碼的各種方法和策略,從理解遺留代碼、為其編碼測試、重構及增加特性等方面給出大量實用建議,是所有程序開發人員必讀之作。

“封裝是好事情,但可別對測試人員這麼說,他們可不這樣想。過分龐大的類往往隱藏了過多的東西。”
——引自 第20章 處理大類

9. 《設計模式》(推薦25%)

Design Patterns

有哪些你看了以後大呼過癮的編程書?

作者:[美]Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides

內容簡介:

四位頂尖的設計師在面向對象軟件的設計方面積累了豐富的經驗,針對常見的設計問題提出了一系列簡潔、明瞭的解決方案。這23種設計模式可讓設計人員創建更加靈活,美觀,可重用的設計,而無需自己再尋找解決方案。

“將系統分解成對象集合要考慮許多因素:封裝、粒度、依賴關係、靈活性、性能、演化、複用等等,它們都影響著系統的分解,並且這些因素通常還是互相沖突的。”
——引自 第1章 1.5 組織編目

10. 《程序員面試金典(第6版)》(推薦22%)

Cracking the Coding Interview

有哪些你看了以後大呼過癮的編程書?

作者:[美]Gayle Laakmann McDowell

內容簡介:

本書層層緊扣程序員面試的每一個環節,全面而詳盡地介紹了程序員應當如何應對面試,才能在面試中脫穎而出。

內容主要涉及面試流程解析,面試官的幕後決策及可能提出的問題,面試前的準備工作,對面試結果的處理,以及出自微軟、蘋果、谷歌等多家知名公司的189道編程面試題及詳細解決方案。

第6版修訂了上一版中一些題目的解法,為各章新增了介紹性內容,加入了更多的算法策略,並增添了對所有題目的提示信息。

“我不是招聘人員,我是軟件工程師。因此,我知道要當場提出出色的算法,然後在白板上編寫無瑕的代碼是什麼感覺。 作為候選人和麵試官,我都經歷過這個過程。”
——引自 序

11. 《軟技能》(推薦22%)

Soft Skills:The Sofeware Developer's Life Manual

有哪些你看了以後大呼過癮的編程書?

作者:[美]John Sonmez

內容簡介:

這是一本真正從“人”(既非技術也非管理)的角度關注軟件開發人員自身發展的書。

開發人員兼生活教練John Sonmez就重要的“軟”主題向開發人員提供了建議,例如職業和生產力,個人理財和投資,甚至健身和人際關係。

這本有趣的書以71個簡短章節的集合為基礎,邀請您隨時隨地欣賞。每章末尾的“採取行動”部分向您展示瞭如何快速獲得結果。

“只有你開始把自己當作一個企業去思考時,你才能開始做出良好的商業決策。”
——引自 第2章 從非同凡響開始

12. 《點石成金》(推薦19.1%)

Don't Make Me Think

有哪些你看了以後大呼過癮的編程書?

作者:[美]Steve Krug

內容簡介:

本書是一本關於Web設計原則的書,為你揭示Web設計中重要但卻容易被忽視的問題,只需幾個小時,你便能對照書中講授的設計原則找到網站設計的癥結所在,令你的網站煥然一新。

“我們使用web的三個事實:1.我們不是閱讀,而是掃描;2.我們不做最優選擇,而是滿意即可;3.我們不是追根究底,而是勉強應付。”
——引自 第2章 我們實際上是如何使用Web的

13. 《編碼:隱匿在計算機軟硬件背後的語言》(推薦19.1%)

Code:The Hidden Language of Computer Hardware and Software

有哪些你看了以後大呼過癮的編程書?

作者:[美]Charles Petzold

內容簡介:

一本講述計算機工作原理的書。不過,你千萬不要因為“工作原理”之類的字眼就武斷地認為,它是晦澀而難懂的。作者用豐富的想象和清晰的筆墨將看似繁雜的理論闡述得通俗易懂,你絲毫不會感到枯燥和生硬。

更重要的是,你會因此而獲得對計算機工作原理較深刻的理解。這種理解不是抽象層面上的,而是具有一定深度的,這種深度甚至不遜於“電氣工程師”和“程序員”的理解。

不管你是計算機高手,還是對這個神奇的機器充滿敬畏之心的菜鳥,都不妨翻閱一下本書,讀一讀大師的經典作品,必定會有收穫。

“正如通過研究莫爾斯碼我們可以很方便地瞭解編碼的本質一樣,通過發報機來了解計算機硬件也是個不錯的途徑。”
——引自 第2章 編碼與組合

14.《算法導論》(推薦17.6%)

Introduction to Algorithms

有哪些你看了以後大呼過癮的編程書?

作者:[美]Thomas H. Cormen,Charles E. Leiserson,Ronald Livest,Clifford Stein

內容簡介:

本書將嚴謹性和全面性融為一體,深入討論各類算法;各章自成體系,可以作為獨立的學習單元;算法以英語和偽代碼的形式描述,具備初步程序設計經驗的人就能看懂;說明和解釋力求淺顯易懂,同時又不失深度和數學嚴謹性。

本書對本科生的數據結構課程和研究生的算法課程都是非常實用的教材,在IT專業人員的職業生涯中,本書也是一本案頭必備的參考書或工程實踐手冊。

“動態規劃算法的設計可以分為如下四個步驟:1.描述最優解的結構。2.遞歸定義最優解的值。3.按自底向上的方式計算最優解的值。4.由計算出的結果構造一個最優解。”
——引自 第15章 動態規劃

15. 《人件》(推薦17.6%)

Peopleware:Productive Projects and Teams

有哪些你看了以後大呼過癮的編程書?

作者:[美]Tom DeMarco,Tim Lister

內容簡介:

本書是軟件管理領域的傳奇經典,被譽為“對美國軟件業影響最大的一本書”。

全書從管理人力資源、創建健康的辦公環境、僱用並留用正確的人、高效團隊形成、改造企業文化和快樂工作等多個角度闡釋瞭如何思考和管理軟件開發的最大問題——人(而不是技術),以得到高效的項目和團隊。

“加班就像衝刺:跑馬拉松跑到最後100碼,體力還有剩餘才算有意義。若一開始就衝刺,那你純粹就是浪費時間。讓人們過度衝刺,只能讓大家失去對管理者的尊重。”
——引自 章節 西班牙理論

16.《編程珠璣》(推薦16.1%)

Programming Pearls

有哪些你看了以後大呼過癮的編程書?

作者:[美]Jon Bentley

內容簡介:

本書是計算機科學方面的經典名著,書的內容圍繞程序設計人員面對的一系列實際問題展開。

作者Jon Bentley 以其獨有的洞察力和創造力,引導讀者理解這些問題並學會解決方法,而這些正是程序員實際編程生涯中至關重要的。

本書的特色是通過一些精心設計的有趣而又頗具指導意義的程序,對實用程序設計技巧及基本設計原則進行透徹而睿智的描述,為複雜的編程問題提供清晰而完備的解決思路。

本書對各個層次的程序員都具有很高的閱讀價值。

“將重複性代碼改寫到數組中,封裝複雜的結構,儘可能地使用高級工具,讓數據去構造程序。”
——引自 第3章 數據決定程序結構

17. 《企業應用架構模式》(推薦14.7%)

Patterns of Enterprise Application Architecture

有哪些你看了以後大呼過癮的編程書?

作者:[美]Martin Fowler

內容簡介:

作者是當今面向對象軟件開發的權威,他在一組專家級合作者的幫助下,將40多種經常出現的解決方案轉化成模式,最終寫成這本能夠應用於任何一種企業應用平臺,關於解決方案的不可或缺的手冊。

“關係數據庫的映射開銷大概是程序開發總開銷的 1/3。現代的系統允許把引用完整性檢查延遲到交互結束的時候進行。如果有這個能力,沒有道理不使用它。”


——引自 第2章 組織領域邏輯

18. 《計算機程序的構造和解釋》(推薦13.2%)

Structure and Interpretation of Computer Programs

有哪些你看了以後大呼過癮的編程書?

作者:[美]Harold Abelson、Gerald Jay Sussman、Julie Sussman

內容簡介:

在過去的二十多年裡,《計算機程序的構造和解釋》對計算機科學的教育計劃產生了深刻的影響。這一期待已久的修訂版對全文進行了更改。本書中大多數的主要編程系統都有新的實現方式,包括解釋器和編譯器。作者根據其後十餘年的教學實踐,還對其他許多細節做了相應的修改。

“ 計算機革命是關於我們如何去思考,以及如何去表達自己的思考的。在這個變化裡,最基本的東西就是出現了一種或許最好稱為過程性認識論的現象——如何從命令式的觀點去研究知識的結構,這一觀點與經典數學領域中所採用的更具說明性的觀點是完全不同的。數學為精確處理 ' 是什麼 ' 提供了一種框架,而計算則為精確處理 ' 怎樣做 ' 提供了一種框架。”
——引自 前言

19. 《計算機程序設計藝術》(推薦10.2%)

The Art of Computer Programming

有哪些你看了以後大呼過癮的編程書?

作者:[美]Donald E. Knuth

《計算機程序設計藝術》系列是公認的計算機科學領域經典之作,深入闡述了程序設計理論,對計算機領域的發展有著極為深遠的影響。

“計算機科學既壯觀又幽美,我嘗試儘自己所能,以恰當的方式來解釋我所瞭解的某些片斷。很顯然,我自己並沒有任何超自然能力,但的確很喜歡講述那些似乎靜靜地等待著人們去講出來的故事。寫書跟講故事十分類似。”
——圖靈訪談之專訪Donald E. Knuth

20.《領域驅動設計》(推薦10.2%)

Domain-Driven Design:Tackling Complexity in the Heart of Software

有哪些你看了以後大呼過癮的編程書?

作者:[美]Eric Evans

內容簡介:

本書是領域驅動設計方面的經典之作,全書圍繞著設計和開發實踐,結合若干真實的項目案例,向讀者闡述如何在真實的軟件開發中應用領域驅動設計。書中給出了領域驅動設計的系統化方法,並將人們普遍接受的一些實踐綜合到一起,並融入了作者的見解和經驗,展現了一些可擴展的設計新實踐、已驗證過的技術以及便於應對複雜領域的軟件項目開發的基本原則。

“至少20年前,一些頂尖的軟件設計人員就已經認識到領域建模和設計的重要性,但是令人驚訝的是,這麼長時間以來很少有人寫出點什麼,告訴大家應該做哪些工作以及如何去做。儘管這些工作還沒有被清楚地表述出來,但是一種新的思潮已經形成,它像一股暗流一樣在對象社區中湧動,我把這種思潮稱為 ' 領域驅動設計 ' 。”
——引自 前言

21. 《編程人生》(推薦10.2%)

Coders At Works

有哪些你看了以後大呼過癮的編程書?

作者:[美] Peter Seibel

內容簡介:

這是一本訪談筆錄,記錄了當今世界最具個人魅力的15位軟件先驅的編程生涯,包括DonaldKnuth、Jamie Zawinski、Joshua Bloch、Ken Thompson等在內的業界傳奇人物。

本書為我們講述他們是怎麼學習編程的,在編程過程中發現了什麼以及他們對未來的看法,並對諸如應該如何設計軟件等長久以來一直困擾很多程序員的問題談了自己的觀點。

“真想做到跨平臺的話,就必須同時開發。所謂的移植只會令產品在第二平臺上蹩腳不堪。”
——引自 第1篇 Jamie Zawinski

22. 《快速軟件開發》(推薦8.8%)

Rapid Development:Taming Wild Software Schedules

有哪些你看了以後大呼過癮的編程書?

作者:[美]Steve McConnell

內容簡介:

公司和商業軟件開發團隊都希望找到一個重要問題的解決方案,那就是如何掌控他們的高壓開發進度。在《快速軟件開發》中,作者Steve McConnell談到了通過整體策略,特定的最佳實踐和重要的技巧來解決這個問題,這些技巧有助於縮小和控制開發進度並保持項目的進展。

《快速軟件開發》是有效的應用程序開發指南。

“毫無疑問,激勵是決定工作表現最重要的影響因素。大多數關於生產率的研究表明,激勵對生產率的影響比任何其他因素都大。”
—— 引自 第11章 激勵機制

23. 《Python編程無師自通 專業程序員的養成》(推薦8.8%)

The Self-Taught Programmer:The Definitive Guide to Programming Professionally

有哪些你看了以後大呼過癮的編程書?

作者:[美]Cory Althoff

內容簡介:

本書作者是一名自學成才的程序員,經過一年的自學,掌握了編程技能並在eBay找到了一份軟件工程師的工作。本書是作者結合自己學習編程的過程以及工作經驗寫作而成,旨在幫助讀者從外行成長為一名專業的Python程序員。

本書不僅教讀者如何使用Python語言編程,還會介紹其他書中所忽略的、編程初學者應該瞭解並掌握的其他所有知識點。

“不管你從事什麼工作,編程都有助於你的職業發展。學習編程將給你自己賦能。我喜歡嘗試新想法,時刻都有希望啟動的新項目。學會編程後,我就可以坐下來自己實現,而不需要依賴他人。”
——引自 第1章 1.6 為什麼應該編程

24. 《算法》(推薦8.8%)

Algorithms

有哪些你看了以後大呼過癮的編程書?

作者:[美]Robert Sedgewick,Kevin Wayne

內容簡介:

本書作為算法領域經典的參考書,全面介紹了關於算法和數據結構的必備知識,並特別針對排序、搜索、圖處理和字符串處理進行了論述。第4版具體給出了每位程序員應知應會的50個算法,提供了實際代碼,而且這些Java代碼實現採用了模塊化的編程風格,讀者可以方便地加以改造。

“深入淺出,非常經典。印象最深的是在紅黑樹一章裡面,用了一個 2-3 搜索樹的例子來加強理解,書中所附的代碼都非常簡短精緻。有意在 IT 行業向技術方向發展的同學們都應該讀一下,強烈推薦。”
——讀者·Ted

25. 《持續交付》(推薦8.8%)

有哪些你看了以後大呼過癮的編程書?

作者:[英]Jez Humble,David Farley

內容簡介:

本書講述瞭如何實現更快、更可靠、低成本的自動化軟件交付。

本書由三部分組成。第一部分闡述了持續交付背後的一些原則,以及支持這些原則的實踐。第二部分是本書的核心,全面講述了部署流水線。第三部分圍繞部署流水線的投入產出討論了更多細節,包括增量開發技術、高級版本控制模式,以及基礎設施、環境和數據的管理和組織治理。

“這是一本清晰、準確、精心編寫的書,力求讓讀者明白髮布過程究竟應該是什麼樣子。作者以漸進的方式一步步地闡述了軟件部署中的理想狀態與障礙。本書是每位軟件工程師的必備讀物。”
——Leyna Cotran,加利福尼亞大學歐文分校軟件研究所


分享到:


相關文章: