1. 1. 《代码大全》 史蒂夫·迈克康奈尔

    推荐数:1684

    “优秀的编程实践的百科全书,《代码大全》注重个人技术,其中所有东西加起来,就是我们本能所说的“编写整洁的代码”。这本书有50页在谈论代码布局。” —— Joel Spolsky

    对于新手来说,这本书中的观念有点高阶了。到你准备阅读此书时,你应该已经知道并实践过书中99%的观念。– esac

    2. 《程序员修炼之道》

    推荐数:1504

    对于那些已经学习过编程机制的程序员来说,这是一本卓越的书。或许他们还是在校生,但对要自己做什么,还感觉不是很安全。就像草图和架构之间的差别。虽然你在学校课堂上学到的是画图,你也可以画的很漂亮,但如果你觉得你不太知道从哪儿下手,如果某人要你独自画一个P2P的音乐交换网络图,那这本书就适合你了。—— Joel

    3. 《计算机程序的构造和解释》

    推荐数:916


    就个人而言,这本书目前为止对我影响醉倒的一本编程书。

    代码大全》、《重构》和《设计模式》这些经典书会教给你高效的工作习惯和交易细节。其他像《人件集》、《计算机编程心理学》和《人月神话》这些书会深入软件开发的心理层面。其他书籍则处理算法。这些书都有自己所属的位置。

    然而《计算机程序的构造和解释》与这些不同。这是一本会启发你的书,它会燃起你编写出色程序的热情;它还将教会你认识并欣赏美;它会让你有种敬畏,让你难以抑制地渴望学习更多的东西。其他书或许会让你成为一位更出色的程序员,但此书将一定会让你成为一名程序员。

    同时,你将会学到其他东西,函数式编程(第三章)、惰性计算、元编程、虚拟机、解释器和编译器。

    一些人认为此书不适合新手。个人认为,虽然我并不完全认同要有一些编程经验才能读此书,但我还是一定推荐给初学者。毕竟这本书是写给著名的6.001,是麻省理工学院的入门编程课程。此书或许需要多做努力(尤其你在做练习的时候,你也应当如此),但这个价是对得起这本书的。

    你还不确信么?那就读读第一版的前言或序言。网上有免费的电子版。 - Antti Sykäri

    4. 《C程序设计语言》

    推荐数:774

    这本书简洁易读,会教给你三件事:C 编程语言;如何像程序员一样思考;底层计算模型。(这对理解“底层”非常重要)—— Nathan

    5. 《算法导论》

    推荐数:671

    《代码大全》教你如何正确编程;《人月神话》教你如何正确管理;《设计模式》教你如何正确设计……

    在我看来,代码只是一个工具,并非精髓。开发软件的主要部分是创建新算法或重新实现现有算法。其他部分则像重新组装乐高砖块或创建“管理”层。我依然梦想这样的工作,我的大部分时间(>50%)是在写算法,其他“管理”细节则留给其他人…… —— Ran Biron

    6. 《重构:改善既有代码的设计》

    推荐数:617

    我想我不得不推荐《重构》:改进现有代码的设计。—— Martin

    我必须承认,我最喜欢的编程语录是出自这本书:任何一个傻瓜都能写出计算机能理解的程序,而优秀的程序员却能写出别人能读得懂的程序。—— Martin Fowler

    7. 《设计模式》

    推荐数:617

    就我而言,我认为四人帮编著的《设计模式》是一本极为有用的书。虽然此书并不像其他建议一样有关“元”编程,但它强调封装诸如模式一类的优秀编程技术,因而鼓励其他人提出新模式和反模式(antipatterns),并运用于编程对话中。—— Chris Jester-Young

    8. 《人月神话》

    推荐数:588

    9. 《计算机程序设计艺术》

    推荐数:542

    这是高德纳倾注心血写的一本书。—— Peter Coulton

    10. 《编译原理》(龙书)

    推荐数:462

    我很奇怪,居然没人提到龙书。(或许已有推荐,我没有看到)。我从没忘过此书的第一版封面。此书让我知道了编译器是多么地神奇绝妙。- DB

    11. 《深入浅出设计模式》

    推荐数:445

    我知道四人帮的《设计模式》是一本标准书,但倒不如先看看这部大部头,此书更为简易。一旦你了解了解了基本原则,可以去看四人帮的那本圣经了。- Calanus

    12. 《哥德尔、艾舍尔、巴赫书:集异璧之大成》

    推荐数:437

    如果下昂真正深入阅读,我推荐道格拉斯·侯世达(Douglas Hofstadter)的《哥德尔、艾舍尔、巴赫书》。他极为深入研究了程序员每日都要面对的问题:递归、验证、证明和布尔代数。这是一本很出色的读物,难度不大,偶尔有挑战,一旦你要鏖战到底,将是非常值得的。 – Jonik

    13. 《代码整洁之道》

    推荐数:329

    虽然《代码整洁之道》和《代码大全》有很多共同之处,但它有更为简洁更为实际的清晰例子。 – Craig P. Motlin

    14. 《Effective C++》和《More Effective C++》

    推荐数:297

    在我职业生涯早期,Scott Meyer的《Effective C++》和后续的《More Effective C++》都对我的编程能力有着直接影响。正如当时的一位朋友所说,这些书缩短你培养编程技能的过程,而其他人可能要花费数年。

    去年对我影响最大的一本书是《大教堂与市集》,该书教会我很有关开源开发过程如何运作,和如何处理我代码中的Bug。 – John Channing

    15. 《编程珠玑》

    推荐数:282

    尽管我不得不羞愧地承认,书中一半的东西我都没有理解,但我真的推荐《编程珠玑》,书中有些令人惊奇的东西。 – Matt Warren

    16. 《修改代码的艺术》by Michael Feathers

    我认为没有任何一本书能向这本书一样影响了我的编程观点。它明确地告诉你如何处理其他人的代码,含蓄地教会你避免哪些(以及为什么要避免)。- Wolfbyte

    同意。很多开发人员讨论用干净的石板来编写软件。但我想几乎所有开发人员的某些时候是在吃其他开发人员的狗食。– Bernard Dy

    17. 《编码:隐匿在计算机软硬件背后的语言》

    我推荐Charles Petzold的《编码》。在这个充满工具和IDE的年代,很多复杂度已经从程序员那“抽取”走了,这本书一本开眼之作。 – hemil

    18. 《禅与摩托车维修艺术 / Zen and the Art of Motorcycle Maintenance》

    对我影响最大的那本书是 Robert Pirsig 的《禅与摩托车维修艺术》。不管你做什么事,总是要力求完美,彻底了解你手中的工具和任务,更为重要的是,要有乐趣(因为如果你做事有乐趣,一切将自发引向更好的结果)。 – akr

    (编注:关于这本书,也可以看看阮一峰的读后感。)

    19. 《Peopleware / 人件集:人性化的软件开发》

    Demarco 和 Lister 表明,软件开发中的首要问题是人,并非技术。他们的答案并不简单,只是令人难以置信的成功。第二版新增加了八章内容。 – Eduardo Molteni

    20. 《Coders at Work / 编程人生》

    一本非常有影响力的书,可以从中学到一些业界顶级人士的经验,了解他们如何思考并工作。 – Jahanzeb Farooq

    21. 《Surely You’re Joking, Mr. Feynman! / 别闹了,费曼先生!》

    虽然这本书可能有点偏题,但不管你信不信,这本书曾在计算机科学专业课程的阅读列表之上。一个优秀的角色模型,一本有关好奇心的优秀书籍。 – mike511

    22. 《Effective Java 中文版》

    此书第二版教你如何编写漂亮并高效的代码,虽然这是一本Java书,但其中有很多跨语言的理念。 – Marcio Aguiar

    23. 《Patterns of Enterprise Application Architecture / 企业应用架构模式》

    很奇怪,还没人推荐 Martin Fowler 的《企业应用架构模式》- levi rosol

    24. 《The Little Schemer》和《The Seasoned Schemer》 nmiranda

    这两本是LISP的英文书,尚无中文版。美国东北大学网站上也有电子版。

    25. 《交互设计之路》英文名:《The Inmates Are Running The Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity》该书作者:Alan Cooper,人称Visual Basic之父,交互设计之父。

    本书是基于众多商务案例,讲述如何创建更好的、高客户忠诚度的软件产品和基于软件的高科技产品的书。本书列举了很多真实可信的实际例子,说明目前在软件产品和基于软件的高科技产品中,普遍存在着“难用”的问题。作者认为,“难用”问题是由这些产品中存在着的高度“认知摩擦”引起的,而产生这个问题的根源在于现今软件开发过程中欠缺了一个为用户利益着想的前期“交互设计”阶段。“难用”的产品不仅损害了用户的利益,最终也将导致企业的失败。本书通过一些生动的实例,让人信服地讲述了由作者倡导的“目标导向”交互设计方法在解决“难用”问题方面的有效性,证实了只有改变现有观念,才能有效地在开发过程中引入交互设计,将产品的设计引向成功。

    本书虽然是一本面向商务人员而编写的书,但也适合于所有参与软件产品和基于软件的高科技产品开发的专业人士,以及关心软件行业和高科技行业现状与发展的人士阅读。

    他还有另一本中文版著作:《About Face 3 交互设计精髓》

    26. 《Why’s (Poignant) Guide to Ruby 》

    如果你不是程序员,阅读此书可能会很有趣,但如果你已经是个程序员,可能会有点乏味。

    27. 《Unix编程艺术》

    It is useful regardless operating system you use. – J.F. Sebastian
    不管你使用什么操作系统,这本书都很有用。 – J.F. Sebastian

    28. 《Practices of an Agile Developer / 高效程序员的45个习惯:敏捷开发修炼之道》

    45个习惯,分为7个方面:工作态度、学习、软件交付、反馈、编码、调试和协作。

    每一个具体的习惯里,一开始提出一个谬论,然后展开分析,之后有正队性地提出正确的做法,并设身处地地讲出了正确做法给你个人的“切身感受”,最后列出几条注意事项,帮助你修正自己的做法(“平衡的艺术”)。

    29. 《Test-Driven Development by Example. / 测试驱动开发》

    前面已经提到的很多书都启发了我,并影响了我,但这本书每位程序员都应该读。它向我展示了单元测试和TDD的重要性,并让我很快上手。 – Curro

    我不关心你的代码有多好或优雅。如果你没有测试,你或许就如同没有编写代码。这本书得到的推荐数应该更高些。人们讨论编写用户喜欢的软件,或既设计出色并健壮的高效代码,但如果你的软件有一堆bug,谈论那些东西毫无意义。– Adam Gent

    30. 《Don’t Make Me Think / 点石成金:访客至上的网页设计秘笈》

    取决于你所追求的目标。我喜欢《代码大全》是因纯编程,《点石成金》是一本有关UI设计的卓越书籍。 – Justin Standard

    最近有其他网站转载此文,但标题被改为《一个合格的程序员应该读的30本书》。这标题改的不好,偏离原文意思了。况且上文中不止提到了30本书。

    今日重看 SO 那个原帖,发现于今年年初被关闭了。不过有人做了汇总,把其他回复中提到的书籍,放在投票数最高的回复中。

    《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| 我编程,我快乐:程序员职业规划之道》by Chad Fowler

    《Hackers: Heroes of the Computer Revolution | 黑客:计算机革命的英雄》

    《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) | 计算机图形学原理及实践:C语言描述》

    《Thinking in Java | 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 | C++程序设计语言》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 | .NET设计规范:约定、惯用法与模式》 by Brad Abrams

    《Object Thinking》 by Dr. David West

    《Advanced Programming in the UNIX Environment | UNIX环境高级编程》 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

    《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 |About Face3交互设计精髓》

    《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 | 面向对象分析与设计》 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 | 道德经》

    《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 | 怎样解题:数学思维的新方法》 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 | 重来:更为简单有效的商业思维》 by Jason Freid and DHH

    《JUnit in Action | JUnit实战》

    后语

    除这个书单之外,曾经也有微博网友推荐《一些经典的计算机书籍》,大约在50本。

国外程序员推荐:每个程序员都应读的书相关推荐

  1. 学习C语言的教材、如何成为一名优秀的C程序员、激发程序员创意的6本书、国外程序员推荐:每个程序员都应读的书

    学习C语言的教材 我的C语言是自学的,这些年看过不少教材. 下面,我对其中一些教材做个点评. 1. How to Think Like a Computer Scientist: C version ...

  2. 国外程序员推荐:每个程序员都应读的书(作为一个码奴,这个也留着)(转)

    国外程序员推荐:每个程序员都应读的书(作为一个码奴,这个也留着)(转)来源: 方健的日志 国外程序员推荐:每个程序员都应读的书 来自:http://www.williamlong.info/archi ...

  3. 每个程序员都应读的书

    国外程序员推荐:每个程序员都应读的书 作者 fmms 2012-03-18 21:33:31 编者按:2008年8月4日,StackOverflow 网友 Bert F 发帖提问:哪本最具影响力的书, ...

  4. 国外程序员推荐:每个程序员都应读的书!!!

    1. <代码大全> 史蒂夫·迈克康奈尔 推荐数:1684 "优秀的编程实践的百科全书,<代码大全>注重个人技术,其中所有东西加起来,就是我们本能所说的"编写 ...

  5. 每个程序员都应该读的书

    在国外一网站stackoverflow看到了一篇贴子,<每个程序员都应该阅读的书>,里面有上百种书,部分图书已由图灵教育出版.因为除了这里面的书,图灵教育认为还有一些值得程序员去阅读的书, ...

  6. 你们这些程序员,真得每天都在读代码吗?

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 近日,外媒上的一篇文章震惊了我,它赤裸裸地写道:你们这些程序员们,真得每天都在读代码吗?多数 ...

  7. 每个Web开发者都应读的文章:HTML5设计原理

    [url=http://www.cn-cuckoo.com/]李松峰[/url]最近翻译了两篇关于HTML5的文章,尤其是[url=http://my.opera.com/BB9z/blog/the- ...

  8. 【赶紧收藏】大学生都在读什么书?让Python用数据告诉你

    知乎里有个问题:有没有推荐的大学生书单? 看了下,回答里推荐的书都比较主观.其实我觉得,书也要讲究在对的时间读到合适的书,在人的成长阶段中,对你帮助最大的,并不一定是该领域经典的书,而应该是现阶段适合 ...

  9. StackOverflow程序员推荐:每个程序员都应读的30本书

    1. <代码大全>史蒂夫·迈克康奈尔 2. <程序员修炼之道> 3. <计算机程序的构造和解释> 4. <C程序设计语言> 5. <算法导论> ...

最新文章

  1. 直击灵魂!统计学知识十问十答,你都会吗?
  2. c# ifram 刷新父页面
  3. R语言画图功能到底有多厉害,看看就知道了
  4. Android(安卓)一个简单的聊天界面的实现(eclipse实现)
  5. 修改Cmder命令提示符
  6. 优先级反转实验,使用信号量实现【RT-Thread学习笔记 5】
  7. 源码分析Dubbo服务注册与发现机制RegistryDirectory)
  8. 软件工程学习进度第七周暨暑期学习进度之第七周汇总
  9. 3dmax 对模型做bool运算
  10. 记录linux历史命令,Linux历史记录命令
  11. CMD和AMD的区别
  12. 2020年下半期第一次实训
  13. 《强化学习周刊》第3期:深度强化学习如何提升鲁棒性和性能
  14. h5活动是什么意思_H5活动页面可以有哪些作用
  15. druid源码学习2-DruidDataSource.DestroyTask
  16. 【论文笔记】Radatron: Accurate Detection Using Multi-Resolution Cascaded MIMO Radar
  17. python培训深圳周末班
  18. 2019数据结构考研复习指导习题代码(王道论坛)
  19. php对接支付宝当面付接口视频教程,支付宝当面付接口demo(面对面扫码支付)
  20. Wordpress建站流程-最新手把手详细教程

热门文章

  1. php predis连接超时,如何解决redis连接超时问题
  2. 古代情感诗词top100
  3. RTXa1000和a2000差距
  4. Yolov5身份证检测——模型训练
  5. python处理excel多重筛选
  6. 解决Chrome、360自动填充用户名和密码行为带来的困扰
  7. 哔哩哔哩“2021.07.13 我们是这样崩的”报告的学习-1
  8. 第四章 06 打印星号
  9. 巴别时代php面试题,巴别时代遇到的函数
  10. win10的怎么调计算机亮度,Win10系统调节屏幕亮度的三种方法【图文】