该问题来自于 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 高级环境编程》

也是经典。

以下是原书单,序号不代表优先次序:

  1. Code Complete (2nd edition) by Steve McConnell

  2. The Pragmatic Programmer

  3. Structure and Interpretation of Computer Programs

  4. The C Programming Language by Kernighan and Ritchie

  5. Introduction to Algorithms by Cormen, Leiserson, Rivest & Stein

  6. Design Patterns by the Gang of Four

  7. Refactoring: Improving the Design of Existing Code

  8. The Mythical Man Month

  9. The Art of Computer Programming by Donald Knuth

  10. Compilers: Principles, Techniques and Tools by Alfred V. Aho, Ravi Sethi and Jeffrey D. Ullman

  11. Gödel, Escher, Bach by Douglas Hofstadter

  12. Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin

  13. Effective C++

  14. More Effective C++

  15. CODE by Charles Petzold

  16. Programming Pearls by Jon Bentley

  17. Working Effectively with Legacy Code by Michael C. Feathers

  18. Peopleware by Demarco and Lister

  19. Coders at Work by Peter Seibel

  20. Surely You're Joking, Mr. Feynman!

  21. Effective Java 2nd edition

  22. Patterns of Enterprise Application Architecture by Martin Fowler

  23. The Little Schemer

  24. The Seasoned Schemer

  25. Why's (Poignant) Guide to Ruby

  26. The Inmates Are Running The Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity

  27. The Art of Unix Programming

  28. Test-Driven Development: By Example by Kent Beck

  29. Practices of an Agile Developer

  30. Don't Make Me Think

  31. Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin

  32. Domain Driven Designs by Eric Evans

  33. The Design of Everyday Things by Donald Norman

  34. Modern C++ Design by Andrei Alexandrescu

  35. Best Software Writing I by Joel Spolsky

  36. The Practice of Programming by Kernighan and Pike

  37. Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Hunt

  38. Software Estimation: Demystifying the Black Art by Steve McConnel

  39. The Passionate Programmer (My Job Went To India) by Chad Fowler

  40. Hackers: Heroes of the Computer Revolution

  41. Algorithms + Data Structures = Programs

  42. Writing Solid Code

  43. JavaScript. The Good Parts

  44. Getting Real by 37 Signals

  45. Foundations of Programming by Karl Seguin

  46. Computer Graphics: Principles and Practice in C (2nd Edition)

  47. Thinking in Java by Bruce Eckel

  48. The Elements of Computing Systems

  49. Refactoring to Patterns by Joshua Kerievsky

  50. Modern Operating Systems by Andrew S. Tanenbaum

  51. The Annotated Turing

  52. Things That Make Us Smart by Donald Norman

  53. The Timeless Way of Building by Christopher Alexander

  54. The Deadline: A Novel About Project Management by Tom DeMarco

  55. The C++ Programming Language (3rd edition) by Stroustrup

  56. Patterns of Enterprise Application Architecture

  57. Computer Systems. A Programmer's Perspective

  58. Agile Principles, Patterns, and Practices in C# by Robert C. Martin

  59. Growing Object-Oriented Software, Guided by Tests

  60. Framework Design Guidelines by Brad Abrams

  61. Object Thinking by Dr. David West

  62. Advanced Programming in the UNIX Environment by W. Richard Stevens

  63. Hackers and Painters: Big Ideas from the Computer Age

  64. The Soul of a New Machine by Tracy Kidder

  65. CLR via C# by Jeffrey Richter

  66. The Timeless Way of Building by Christopher Alexander

  67. Design Patterns in C# by Steve Metsker

  68. Alice in Wonderland by Lewis Carol

  69. Zen and the Art of Motorcycle Maintenance by Robert M. Pirsig

  70. About Face. The Essentials of Interaction Design

  71. Here Comes Everybody: The Power of Organizing Without Organizations by Clay Shirky

  72. The Tao of Programming

  73. Computational Beauty of Nature

  74. Writing Solid Code by Steve Maguire

  75. Philip and Alex's Guide to Web Publishing

  76. Object-Oriented Analysis and Design with Applications by Grady Booch

  77. Effective Java by Joshua Bloch

  78. Computability by N. J. Cutland

  79. Masterminds of Programming

  80. The Tao Te Ching

  81. The Productive Programmer

  82. The Art of Deception by Kevin Mitnick

  83. The Career Programmer: Guerilla Tactics for an Imperfect World by Christopher Duncan

  84. Paradigms of Artificial Intelligence Programming: Case studies in Common Lisp

  85. Masters of Doom

  86. Pragmatic Unit Testing in C# with NUnit by Andy Hunt and Dave Thomas with Matt Hargett

  87. How To Solve It by George Polya

  88. The Alchemist by Paulo Coelho

  89. Smalltalk-80: The Language and its Implementation

  90. Writing Secure Code (2nd Edition) by Michael Howard

  91. Introduction to Functional Programming by Philip Wadler and Richard Bird

  92. No Bugs! by David Thielen

  93. Rework by Jason Freid and DHH

  94. JUnit in Action

最后的话

书这么多,这辈子估计都看不完,不过,时间挤一挤总是有的,可以先列一个代读清单,排排优先级,然后一个一个划掉,随着时间的流逝,书中的知识也被我们吸收。

先关注公众号「Python七号」,然后回复「送书」抽奖。

参考资料

[1]

stackoverflow: https://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read

每个程序员都应该阅读的最有影响力的书是什么?相关推荐

  1. 为什么C/C++程序员都要阅读Redis源码之:Redis学习事件驱动设计

    0. 为什么我说C/C++程序员都要阅读Redis源码 主要原因就是『简洁』.如果你用源码编译过Redis,你会发现十分轻快,一步到位.其他语言的开发者可能不会了解这种痛,作为C/C++程序员,如果你 ...

  2. c++ 多线程 类成员函数_为什么我说C/C++程序员都要阅读Redis源码之:通过Redis学习事件驱动设计

    0. 为什么我说C/C++程序员都要阅读Redis源码 主要原因就是『简洁』.如果你用源码编译过Redis,你会发现十分轻快,一步到位.其他语言的开发者可能不会了解这种痛,作为C/C++程序员,如果你 ...

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

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

  4. 老程序员都去哪儿了?

    摆在老程序员们面前有三条路,一是转行,二是继续钻研成为技术大牛,三是转型为管理人员. 我最近采访了十五位30岁以上的老程序员们,在此我想发表下我的观点. 网络上总有这类观点-- 「如果所有的技术都想着 ...

  5. 优秀的程序员都在哪里 如何寻找优秀的程序员?

    优秀的程序员都在哪里 这是你第一次公开招募雇员.如同大多数人一样,你会发布广告,可能也会浏览一些大型的网上论坛,然后你就收到了一吨的简历. 一份份看下去,你会想:"嗯嗯嗯,这人应该可以.&q ...

  6. 程序员都讨厌写文档?这4个工具让你事半功倍

    长按识别上方二维码,关注公众号:后端面试那些事 回复"报告",获取你的GitHub年度报告! 对于一般的程序员来说,花费数小时来创建代码或修改现有代码只是一天工作中的一部分,简而言 ...

  7. 每个程序员都必读的10篇文章

    作为一名Java程序员和软件开发人员,那些每个程序员都应该知道的XXX的文章教会了我不少东西,它们提供了某个特定领域的一些实用的并且有深度的信息,这些东西通常很难找到.在我学习的过程中我读到过许多非常 ...

  8. javascript技术教程蔡敏_程序员都必掌握的前端教程之JavaScript基础教程(上)

    阅读本文约需要10分钟,您可以先关注我们,避免下次无法找到. 本篇文章成哥继续带大家来学习前端教程之JavaScript,网页的动态事件基本上都是靠它来实现的.下面我们就一起来学习内容吧! 01 Ja ...

  9. java cron表达式_Java 程序员都应该去使用一下这款强大的国产工具类库

    大家好,我是你们的导师, 我会坚持每天给大家整理一些干货内容(当然周末也要允许老师休息一下哈). 今天给大家分享一个很棒的Java工具类库:Hutool.可能有很多朋友已经知道这个类库了,甚至在已经在 ...

最新文章

  1. 出现link错误,说找不到IPHlpApi.Lib(VC6.0)
  2. swift入门之TableView
  3. GPU CUDA 经典入门指南
  4. [高并发]Java高并发编程系列开山篇--线程实现
  5. 各地女孩被刮开短裙的反映
  6. math.floor实现四舍五入
  7. 解放双手,基于github travis-ci docker自动化部署java项目
  8. 快播(QvodPlayer)最新版 v5.20.234 官方版
  9. 详解netty原理分析
  10. 与大学生谈学习BIM软件开发所需要的准备
  11. Power query (Power BI)一步到位傻瓜式合并工作簿,史上最好用
  12. 个人支付免费开通支付宝付款功能(免费签约)支付宝当面付开通集成到网站教程
  13. uva 11538 Chess Queen
  14. 毕业设计 - 基于机器视觉的12306验证码识别
  15. 码蹄集 - MT2165 - 小码哥的抽卡之旅1
  16. 财富管理技术服务商NewBanker完成千万级美元 Pre-C 轮融资...
  17. 看了《天道》,我买了这套书,据说有八卷
  18. 怎么画学计算机的男孩形象,怎么一步一步教大班幼儿画自己的画像:小男孩简笔画(步骤图解)...
  19. 超人前传第一至十季/全集Smallville迅雷下载
  20. 程序员的算法课(6)-最长公共子序列(LCS)

热门文章

  1. Centos7 设置开机自启的几种方式
  2. html5里面的圆点和方块,HTML基础 ul type 项目符号为圆圈与方块
  3. mc服务器语音,《我的世界》语音聊天Mod安装使用教程
  4. InvalidArgumentError: You must feed a value for placeholder tensor ‘conv2d_12_input‘ with dtype floa
  5. 计算机剪切功能是哪个组合键,剪切快捷键是哪个?电脑剪切快捷键大全
  6. 内网渗透之PPT票据传递攻击(Pass the Ticket)
  7. java阿里云短信服务SDK使用方法
  8. java实现斗地主洗牌发牌功能
  9. 『墨菲安全』10 分钟对心爱的 GitLab 代码仓库来一次全量体检
  10. 网店新规的误读与媒体的谎言