就個人而言,這本書目前為止對我影響醉倒的一本編程書,。 《代碼大全》,、《重構(gòu)》和《設(shè)計模式》這些經(jīng)典書會教給你高效的工作習(xí)慣和交易細(xì)節(jié),。其他像《人件集》、《計算機(jī)編程心理學(xué)》和《人月神話》這些書會深入軟件開發(fā)的心理層面,。其他書籍則處理算法。這些書都有自己所屬的位置,。 然而《計算機(jī)程序的構(gòu)造和解釋》與這些不同,。這是一本會啟發(fā)你的書,它會燃起你編寫出色程序的熱情,;它還將教會你認(rèn)識并欣賞美,;它會讓你有種敬畏,讓你難以抑制地渴望學(xué)習(xí)更多的東西,。其他書或許會讓你成為一位更出色的程序員,,但此書將一定會讓你成為一名程序員。 同時,,你將會學(xué)到其他東西,,函數(shù)式編程(第三章)、惰性計算,、元編程,、虛擬機(jī)、解釋器和編譯器,。 一些人認(rèn)為此書不適合新手,。個人認(rèn)為,雖然我并不完全認(rèn)同要有一些編程經(jīng)驗才能讀此書,,但我還是一定推薦給初學(xué)者,。畢竟這本書是寫給著名的6.001,是麻省理工學(xué)院的入門編程課程,。此書或許需要多做努力(尤其你在做練習(xí)的時候,,你也應(yīng)當(dāng)如此),但這個價是對得起這本書的,。 你還不確信么,?那就讀讀第一版的前言或序言。網(wǎng)上有免費的電子版,。 - Antti Syk?ri
4. 《C程序設(shè)計語言》 推薦數(shù):774 這本書簡潔易讀,,會教給你三件事:C 編程語言;如何像程序員一樣思考,;底層計算模型,。(這對理解“底層”非常重要)—— Nathan
5. 《算法導(dǎo)論》 推薦數(shù):671 《代碼大全》教你如何正確編程;《人月神話》教你如何正確管理,;《設(shè)計模式》教你如何正確設(shè)計…… 在我看來,,代碼只是一個工具,,并非精髓。開發(fā)軟件的主要部分是創(chuàng)建新算法或重新實現(xiàn)現(xiàn)有算法,。其他部分則像重新組裝樂高磚塊或創(chuàng)建“管理”層,。我依然夢想這樣的工作,我的大部分時間(>50%)是在寫算法,,其他“管理”細(xì)節(jié)則留給其他人…… —— Ran Biron
推薦數(shù):617 我想我不得不推薦《重構(gòu)》:改進(jìn)現(xiàn)有代碼的設(shè)計,。—— Martin 我必須承認(rèn),,我最喜歡的編程語錄是出自這本書:任何一個傻瓜都能寫出計算機(jī)能理解的程序,,而優(yōu)秀的程序員卻能寫出別人能讀得懂的程序?!?Martin Fowler
7. 《設(shè)計模式》 推薦數(shù):617 就我而言,,我認(rèn)為四人幫編著的《設(shè)計模式》是一本極為有用的書。雖然此書并不像其他建議一樣有關(guān)“元”編程,,但它強(qiáng)調(diào)封裝諸如模式一類的優(yōu)秀編程技術(shù),,因而鼓勵其他人提出新模式和反模式(antipatterns),并運用于編程對話中,?!?Chris Jester-Young
8. 《人月神話》 推薦數(shù):588
推薦數(shù):542 這是高德納傾注心血寫的一本書?!?Peter Coulton
推薦數(shù):462 我很奇怪,,居然沒人提到龍書。(或許已有推薦,,我沒有看到),。我從沒忘過此書的第一版封面。此書讓我知道了編譯器是多么地神奇絕妙,。- DB
11. 《深入淺出設(shè)計模式(中文版) | 英文影印版》 推薦數(shù):445 我知道四人幫的《設(shè)計模式》是一本標(biāo)準(zhǔn)書,,但倒不如先看看這部大部頭,此書更為簡易,。一旦你了解了解了基本原則,,可以去看四人幫的那本圣經(jīng)了。- Calanus
12. 《哥德爾,、艾舍爾,、巴赫書:集異璧之大成》 推薦數(shù):437 如果下昂真正深入閱讀,我推薦道格拉斯·侯世達(dá)(Douglas Hofstadter)的《哥德爾,、艾舍爾,、巴赫書》,。他極為深入研究了程序員每日都要面對的問題:遞歸、驗證,、證明和布爾代數(shù),。這是一本很出色的讀物,難度不大,,偶爾有挑戰(zhàn),,一旦你要鏖戰(zhàn)到底,將是非常值得的,。 – Jonik
13. 《代碼整潔之道》 推薦數(shù):329 雖然《代碼整潔之道》和《代碼大全》有很多共同之處,但它有更為簡潔更為實際的清晰例子,。 – Craig P. Motlin
14. 《Effective C++》和《More Effective C++》 推薦數(shù):297 在我職業(yè)生涯早期,,Scott Meyer的《Effective C++》和后續(xù)的《More Effective C++》都對我的編程能力有著直接影響。正如當(dāng)時的一位朋友所說,,這些書縮短你培養(yǎng)編程技能的過程,,而其他人可能要花費數(shù)年。 去年對我影響最大的一本書是《大教堂與市集》,,該書教會我很有關(guān)開源開發(fā)過程如何運作,,和如何處理我代碼中的Bug。 – John Channing
15. 《編程珠璣》 推薦數(shù):282 盡管我不得不羞愧地承認(rèn),,書中一半的東西我都沒有理解,,但我真的推薦《編程珠璣》,書中有些令人驚奇的東西,。 – Matt Warren
16. 《修改代碼的藝術(shù)》by Michael Feathers 我認(rèn)為沒有任何一本書能向這本書一樣影響了我的編程觀點,。它明確地告訴你如何處理其他人的代碼,含蓄地教會你避免哪些(以及為什么要避免),。- Wolfbyte 同意,。很多開發(fā)人員討論用干凈的石板來編寫軟件。但我想幾乎所有開發(fā)人員的某些時候是在吃其他開發(fā)人員的狗食,。– Bernard Dy
17. 《編碼:隱匿在計算機(jī)軟硬件背后的語言》 我推薦Charles Petzold的《編碼》,。在這個充滿工具和IDE的年代,很多復(fù)雜度已經(jīng)從程序員那“抽取”走了,,這本書一本開眼之作,。 – hemil
18. 《禪與摩托車維修藝術(shù) / Zen and the Art of Motorcycle Maintenance》 對我影響最大的那本書是 Robert Pirsig 的《禪與摩托車維修藝術(shù)》。不管你做什么事,,總是要力求完美,,徹底了解你手中的工具和任務(wù),更為重要的是,,要有樂趣(因為如果你做事有樂趣,,一切將自發(fā)引向更好的結(jié)果),。 – akr (編注:關(guān)于這本書,也可以看看阮一峰的讀后感,。)
19. 《Peopleware / 人件集:人性化的軟件開發(fā)》 Demarco 和 Lister 表明,,軟件開發(fā)中的首要問題是人,并非技術(shù),。他們的答案并不簡單,,只是令人難以置信的成功。第二版新增加了八章內(nèi)容,。 – Eduardo Molteni
20. 《Coders at Work / 編程人生》 一本非常有影響力的書,,可以從中學(xué)到一些業(yè)界頂級人士的經(jīng)驗,了解他們?nèi)绾嗡伎疾⒐ぷ鳌?– Jahanzeb Farooq
21. 《Surely You’re Joking, Mr. Feynman! / 別鬧了,,費曼先生,!》 雖然這本書可能有點偏題,但不管你信不信,,這本書曾在計算機(jī)科學(xué)專業(yè)課程的閱讀列表之上,。一個優(yōu)秀的角色模型,一本有關(guān)好奇心的優(yōu)秀書籍,。 – mike511
22. 《Effective Java 中文版》 此書第二版教你如何編寫漂亮并高效的代碼,,雖然這是一本Java書,但其中有很多跨語言的理念,。 – Marcio Aguiar
23. 《Patterns of Enterprise Application Architecture / 企業(yè)應(yīng)用架構(gòu)模式》 很奇怪,,還沒人推薦 Martin Fowler 的《企業(yè)應(yīng)用架構(gòu)模式》- levi rosol
24. 《The Little Schemer》和《The Seasoned Schemer》 nmiranda 這兩本是LISP的英文書,尚無中文版,。美國東北大學(xué)網(wǎng)站上也有電子版,。
25. 《交互設(shè)計之路》英文名:《The Inmates Are Running The Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity》該書作者:Alan Cooper,人稱Visual Basic之父,,交互設(shè)計之父,。 本書是基于眾多商務(wù)案例,講述如何創(chuàng)建更好的,、高客戶忠誠度的軟件產(chǎn)品和基于軟件的高科技產(chǎn)品的書,。本書列舉了很多真實可信的實際例子,說明目前在軟件產(chǎn)品和基于軟件的高科技產(chǎn)品中,,普遍存在著“難用”的問題,。作者認(rèn)為,“難用”問題是由這些產(chǎn)品中存在著的高度“認(rèn)知摩擦”引起的,,而產(chǎn)生這個問題的根源在于現(xiàn)今軟件開發(fā)過程中欠缺了一個為用戶利益著想的前期“交互設(shè)計”階段,。“難用”的產(chǎn)品不僅損害了用戶的利益,,最終也將導(dǎo)致企業(yè)的失敗,。本書通過一些生動的實例,,讓人信服地講述了由作者倡導(dǎo)的“目標(biāo)導(dǎo)向”交互設(shè)計方法在解決“難用”問題方面的有效性,證實了只有改變現(xiàn)有觀念,,才能有效地在開發(fā)過程中引入交互設(shè)計,,將產(chǎn)品的設(shè)計引向成功。 本書雖然是一本面向商務(wù)人員而編寫的書,,但也適合于所有參與軟件產(chǎn)品和基于軟件的高科技產(chǎn)品開發(fā)的專業(yè)人士,,以及關(guān)心軟件行業(yè)和高科技行業(yè)現(xiàn)狀與發(fā)展的人士閱讀。 他還有另一本中文版著作:《About Face 3 交互設(shè)計精髓》
26. 《Why’s (Poignant) Guide to Ruby 》 如果你不是程序員,,閱讀此書可能會很有趣,,但如果你已經(jīng)是個程序員,可能會有點乏味,。
27. 《Unix編程藝術(shù)》 It is useful regardless operating system you use. – J.F. Sebastian
28. 《Practices of an Agile Developer / 高效程序員的45個習(xí)慣:敏捷開發(fā)修煉之道》 45個習(xí)慣,,分為7個方面:工作態(tài)度,、學(xué)習(xí),、軟件交付,、反饋、編碼,、調(diào)試和協(xié)作,。 每一個具體的習(xí)慣里,一開始提出一個謬論,,然后展開分析,,之后有正隊性地提出正確的做法,并設(shè)身處地地講出了正確做法給你個人的“切身感受”,,最后列出幾條注意事項,,幫助你修正自己的做法(“平衡的藝術(shù)”)。
29. 《Test-Driven Development by Example. / 測試驅(qū)動開發(fā)》 前面已經(jīng)提到的很多書都啟發(fā)了我,,并影響了我,,但這本書每位程序員都應(yīng)該讀。它向我展示了單元測試和TDD的重要性,,并讓我很快上手,。 – Curro 我不關(guān)心你的代碼有多好或優(yōu)雅。如果你沒有測試,,你或許就如同沒有編寫代碼,。這本書得到的推薦數(shù)應(yīng)該更高些。人們討論編寫用戶喜歡的軟件,,或既設(shè)計出色并健壯的高效代碼,,但如果你的軟件有一堆bug,,談?wù)撃切〇|西毫無意義。– Adam Gent
30. 《Don’t Make Me Think / 點石成金:訪客至上的網(wǎng)頁設(shè)計秘笈》 取決于你所追求的目標(biāo),。我喜歡《代碼大全》是因純編程,,《點石成金》是一本有關(guān)UI設(shè)計的卓越書籍。 – Justin Standard
【更新】:2012年8月17日19:08:39 最近有其他網(wǎng)站轉(zhuǎn)載此文,,但標(biāo)題被改為《一個合格的程序員應(yīng)該讀的30本書》,。這標(biāo)題改的不好,偏離原文意思了,。況且上文中不止提到了30本書,。 今日重看 SO 那個原帖,發(fā)現(xiàn)于今年年初被關(guān)閉了,。不過有人做了匯總,,把其他回復(fù)中提到的書籍,放在投票數(shù)最高的回復(fù)中,。 《Modern C++ Design》 by Andrei Alexandrescu 《Best Software Writing I》 by Joel Spolsky 《The Practice of Programming | 程序設(shè)計實踐》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| 我編程,我快樂:程序員職業(yè)規(guī)劃之道》by Chad Fowler 《Hackers: Heroes of the Computer Revolution | 黑客:計算機(jī)革命的英雄》 《Algorithms + Data Structures = Programs》 《Writing Solid Code》 《JaveScript:The Good Parts | JavaScript語言精粹》 《Getting Real 》by 37 Signals 《Foundations of Programming 》by Karl Seguin 《Computer Graphics: Principles and Practice in C (2nd Edition) | 計算機(jī)圖形學(xué)原理及實踐:C語言描述》 《Thinking in Java | Java編程思想》by Bruce Eckel 《The Elements of Computing Systems》 《Refactoring to Patterns | 重構(gòu)與模式 》 by Joshua Kerievsky 《Modern Operating Systems | 現(xiàn)代操作系統(tǒng)》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 | C++程序設(shè)計語言》by Stroustrup 《Patterns of Enterprise Application Architecture | 企業(yè)應(yīng)用架構(gòu)模式》 《Computer Systems – A Programmer’s Perspective | 深入理解計算機(jī)系統(tǒng)》 《Agile Principles, Patterns, and Practices in C#》 by Robert C. Martin 《Growing Object-Oriented Software, Guided by Tests》 《Framework Design Guidelines | .NET設(shè)計規(guī)范:約定,、慣用法與模式》 by Brad Abrams 《Object Thinking》 by Dr. David West 《Advanced Programming in the UNIX Environment | UNIX環(huán)境高級編程》 by W. Richard Stevens 《Hackers and Painters: Big Ideas from the Computer Age | 黑客與畫家》 《The Soul of a New Machine | 新機(jī)器的靈魂》 by Tracy Kidder 《CLR via C# | 框架設(shè)計》 by Jeffrey Richter 《Design Patterns in C#》 by Steve Metsker 《Alice in Wonderland | 愛麗絲夢游仙境》 by Lewis Carol 《Zen and the Art of Motorcycle Maintenance | 禪與摩托車維修藝術(shù)》by Robert M. Pirsig 《About Face – The Essentials of Interaction Design | About Face3交互設(shè)計精髓》 《Here Comes Everybody: The Power of Organizing Without Organizations | 未來是濕的:無組織的組織力量》 by Clay Shirky 《The Tao of Programming》 《Computational Beauty of Nature》 《Philip and Alex’s Guide to Web Publishing》 《Object-Oriented Analysis and Design with Applications | 面向?qū)ο蠓治雠c設(shè)計》 by Grady Booch 《Effective Java | Effective Java中文版》 by Joshua Bloch 《Computability: An Introduction to Recursive Function Theory》 by N. J. Cutland 《Masterminds of Programming | 編程大師智慧/編程之魂》 《Tao Te Ching | 道德經(jīng)》 《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 | Doom啟示錄》 《Pragmatic Unit Testing in C# with NUnit》 by Andy Hunt and Dave Thomas with Matt Hargett 《How To Solve It: A New Aspect of Mathematical Method | 怎樣解題:數(shù)學(xué)思維的新方法》 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!: Delivering Error Free Code in C and C++》 by David Thielen 《Rework | 重來:更為簡單有效的商業(yè)思維》 by Jason Freid and DHH 《JUnit in Action | JUnit實戰(zhàn)》 【更新】:這篇文章所列書單作為翻譯小組獎勵計劃的書籍列表后,大家的補(bǔ)充如下: @boydwang 推薦《Head First 設(shè)計模式》,,理由:我見過的講設(shè)計模式最棒的書,! @sunbiaobiao 推薦 《HTTP權(quán)威指南》,理由:經(jīng)典,,不多解釋 :) 后語 除這個書單之外,,曾經(jīng)也有微博網(wǎng)友推薦《一些經(jīng)典的計算機(jī)書籍》,大約在50本,。 |
|