該問題來自于 stackoverflow[1],目前狀態已經關閉,排名第一的答案獲得了 1745 的投票,給出的書單非常的經典,供 94 本,雖然是英文,但是你很容易知道是哪本書,
這里從中挑出 10 本最經典的,推薦大家去閱讀,如果需要電子版的,可以加我微信「somenzz」,回復對應的書名即可,我會在方便的時候發你電子書,
1.《代碼大全2》,作者:史蒂夫·麥康奈爾
自從有了《代碼大全2》,程式員就分兩種:一種是看過《代碼大全2》的,一種是沒有看過的,猶如蒙娜麗莎的微笑,本書從語言基礎到創建高質量代碼,到變數、陳述句、代碼優化、系統考量和軟體工藝,全方面涵蓋關于軟體構建的種種細節,細節是決定卓越與平庸的分水嶺,不管是盧浮宮琥珀色的古老建筑與鉆石般奪目的玻璃金字塔,還是卓有成效的程式員,
這本書很經典,公眾號回復「送書」抽獎包郵送一本,
2.《程式員修練之道》
本書適合各層次軟體開發人員閱讀,也適合高等院校計算機專業學生和教師閱讀,本書之所以在全球范圍內廣泛傳播,被一代代開發者奉為圭臬,蓋因它可以創造出真正的價值:或撰寫出更好的軟體,或探究出編程的本質,而所有識訓均不依賴于特定語言、框架和方法,時隔20年的新版,經過全面的重新選材、組織和撰寫,覆寫哲學、方法、工具、設計、解耦、并發、重構、需求、團隊等務實話題的最佳實踐及重大陷阱,以及易于改造、復用的架構技術,本書極具洞察力與趣味性,適合從初學者到架構師的各階層讀者潛心研讀或增廣見聞,
3.《計算機的構造和解釋》
《計算機程式的構造和解釋》成型于美國麻省理工學院(MIT)多年使用的一本教材,1984年出版,1996年修訂為第二版,在過去的二十多年里,該書對于計算機科學的教育計劃產生了深刻的影響,
在第二版中,大部分重要程式設計系統都重新修改并做過測驗,包括各種解釋器和編譯器,作者根據其后十余年的教學實踐,還對其他許多細節做了相應的修改,
經典中的經典,必讀,
4.《演算法導論》
美國的本科生教材,這本書應該也是中國計算機學生的教材,
在有關演算法的書中,有一些敘述非常嚴謹,但不夠全面;另一些涉及了大量的題材,但又缺乏嚴謹性,本書將嚴謹性和全面性融為一體,深入討論各類演算法,并著力使這些演算法的設計和分析能為各個層次的讀者接受,全書各章自成體系,可以作為獨立的學習單元;演算法以英語和偽代碼的形式描述,具備初步程式設計經驗的人就能看懂;說明和解釋力求淺顯易懂,不失深度和數學嚴謹性,
全書選材經典、內容豐富、結構合理、邏輯清晰,對本科生的資料結構課程和研究生的演算法課程都是非常實用的教材,在IT專業人員的職業生涯中,本書也是一本案頭必備的參考書或工程實踐手冊,
5.《設計模式》
這本書是面向物件設計的經典書籍,結合設計實體從面向物件的設計中精選出23個設計模式,總結了面向物件設計中最有價值的經驗,并且用簡潔可復用的形式表達出來,書中分類描述了一組設計良好、表達清楚的軟體設計模式,這些模式在實用環境下特別有用,此書適合大學計算機專業的學生、研究生及相關人員參考,
書中涉及的設計模式并不描述新的或未經證實的設計,只收錄了那些在不同系統中多次使用過的成功設計,
6.《重構》
書中清晰揭示了重構的程序,解釋了重構的原理和實踐方式,并給出了何時以及何地應該開始挖掘代碼以求改善,書中給出了60多個可行的重構,每個重構都介紹了一種經過驗證的代碼變換手法的動機和技術,本書提出的重構準則將幫助開發人員一次一小步地修改代碼,從而減少了開發程序中的風險,
7.《人月神話》
在軟體領域,很少能有像《人月神話》一樣具有深遠影響力和暢銷不衰的著作,Brooks博士為人們管理復雜專案提供了最具洞察力的見解,既有很多發人深省的觀點,又有大量軟體工程的實踐,本書內容來自Brooks博士在IBM公司SYSTEM/360家族和OS/360中的專案管理經驗,該專案堪稱軟體開發專案管理的典范,該書英文原版一經面世,即引起業內人士的強烈反響,后又譯為德、法、日、俄、中、韓等多種文字,全球銷售數百萬冊,確立了其在行業內的經典地位,
8.《代碼整潔之道》
軟體質量,不但依賴架構及專案管理,而且與代碼質量緊密相關,這一點,無論是敏捷開發流派還是傳統開發流派,都不得不承認,本書提出一種觀點:代碼質量與其整潔度成正比,干凈的代碼,既在質量上較為可靠,也為后期維護、升級奠定了良好基礎,作為編程領域的佼佼者,本書作者給出了一系列行之有效的整潔代碼操作實踐,這些實踐在本書中體現為一條條規則(或稱“啟示”),并輔以來自實際專案的正、反兩面的范例,只要遵循這些規則,就能撰寫出干凈的代碼,從而有效提升代碼質量,
9.《Effective C++》/《More Effective C++》
C++ 中兩本經典得不能再經典的書,也許你覺得 C++ 復雜,但這兩本書中帶來對代碼穩定性的探索方式讓人受益,因為這種思維方式同樣可以用在其它地方,以至于各種模仿者,比如《Effective Java》也是一本經典書,
10. 《Unix 編程藝術》、《Unix 高級環境編程》
也是經典,
以下是原書單,序號不代表優先次序:
Code Complete (2nd edition) by Steve McConnell
The Pragmatic Programmer
Structure and Interpretation of Computer Programs
The C Programming Language by Kernighan and Ritchie
Introduction to Algorithms by Cormen, Leiserson, Rivest & Stein
Design Patterns by the Gang of Four
Refactoring: Improving the Design of Existing Code
The Mythical Man Month
The Art of Computer Programming by Donald Knuth
Compilers: Principles, Techniques and Tools by Alfred V. Aho, Ravi Sethi and Jeffrey D. Ullman
G?del, Escher, Bach by Douglas Hofstadter
Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
Effective C++
More Effective C++
CODE by Charles Petzold
Programming Pearls by Jon Bentley
Working Effectively with Legacy Code by Michael C. Feathers
Peopleware by Demarco and Lister
Coders at Work by Peter Seibel
Surely You're Joking, Mr. Feynman!
Effective Java 2nd edition
Patterns of Enterprise Application Architecture by Martin Fowler
The Little Schemer
The Seasoned Schemer
Why's (Poignant) Guide to Ruby
The Inmates Are Running The Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity
The Art of Unix Programming
Test-Driven Development: By Example by Kent Beck
Practices of an Agile Developer
Don't Make Me Think
Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin
Domain Driven Designs by Eric Evans
The Design of Everyday Things by Donald Norman
Modern C++ Design by Andrei Alexandrescu
Best Software Writing I by Joel Spolsky
The Practice of Programming by Kernighan and Pike
Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Hunt
Software Estimation: Demystifying the Black Art by Steve McConnel
The Passionate Programmer (My Job Went To India) by Chad Fowler
Hackers: Heroes of the Computer Revolution
Algorithms + Data Structures = Programs
Writing Solid Code
JavaScript. The Good Parts
Getting Real by 37 Signals
Foundations of Programming by Karl Seguin
Computer Graphics: Principles and Practice in C (2nd Edition)
Thinking in Java by Bruce Eckel
The Elements of Computing Systems
Refactoring to Patterns by Joshua Kerievsky
Modern Operating Systems by Andrew S. Tanenbaum
The Annotated Turing
Things That Make Us Smart by Donald Norman
The Timeless Way of Building by Christopher Alexander
The Deadline: A Novel About Project Management by Tom DeMarco
The C++ Programming Language (3rd edition) by Stroustrup
Patterns of Enterprise Application Architecture
Computer Systems. A Programmer's Perspective
Agile Principles, Patterns, and Practices in C# by Robert C. Martin
Growing Object-Oriented Software, Guided by Tests
Framework Design Guidelines by Brad Abrams
Object Thinking by Dr. David West
Advanced Programming in the UNIX Environment by W. Richard Stevens
Hackers and Painters: Big Ideas from the Computer Age
The Soul of a New Machine by Tracy Kidder
CLR via C# by Jeffrey Richter
The Timeless Way of Building by Christopher Alexander
Design Patterns in C# by Steve Metsker
Alice in Wonderland by Lewis Carol
Zen and the Art of Motorcycle Maintenance by Robert M. Pirsig
About Face. The Essentials of Interaction Design
Here Comes Everybody: The Power of Organizing Without Organizations by Clay Shirky
The Tao of Programming
Computational Beauty of Nature
Writing Solid Code by Steve Maguire
Philip and Alex's Guide to Web Publishing
Object-Oriented Analysis and Design with Applications by Grady Booch
Effective Java by Joshua Bloch
Computability by N. J. Cutland
Masterminds of Programming
The Tao Te Ching
The Productive Programmer
The Art of Deception by Kevin Mitnick
The Career Programmer: Guerilla Tactics for an Imperfect World by Christopher Duncan
Paradigms of Artificial Intelligence Programming: Case studies in Common Lisp
Masters of Doom
Pragmatic Unit Testing in C# with NUnit by Andy Hunt and Dave Thomas with Matt Hargett
How To Solve It by George Polya
The Alchemist by Paulo Coelho
Smalltalk-80: The Language and its Implementation
Writing Secure Code (2nd Edition) by Michael Howard
Introduction to Functional Programming by Philip Wadler and Richard Bird
No Bugs! by David Thielen
Rework by Jason Freid and DHH
JUnit in Action
最后的話
書這么多,這輩子估計都看不完,不過,時間擠一擠總是有的,可以先列一個代讀清單,排排優先級,然后一個一個劃掉,隨著時間的流逝,書中的知識也被我們吸收,
先關注公眾號「Python七號」,然后回復「送書」抽獎,

參考資料
[1]
stackoverflow: https://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/387817.html
標籤:其他
