有史以来最受欢迎的 25 本编程书籍

推特上一位名为 Pierre de Wulf 的网友突发奇想,有史以来最受欢迎的编程书籍到底是哪些?为了找到程序员们最为推崇的那些编程书籍,他使用 Python编写了脚本,拉取了大量的相关数据,最终得出了这 25 本技术好书。以下是推荐结果。

作者:David Thomas & Andrew Hunt,67% 推荐度

《程序员修炼之道》由一系列的独立部分组成,涵盖的主题从个人责任、职业发展,直到用于使代码保持灵活、并且易于改编和复用的各种架构技术。利用许多富有娱乐性的奇闻轶事、有思想性的例子以及有趣的类比,全面阐释了软件开发的许多不同方面的最佳实践和重大陷阱。无论你是初学者,是有经验的程序员,还是软件项目经理,本书都适合你阅读。

作者:Robert C. Martin,66% 推荐度

软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关。这一点,无论是敏捷开发流派还是传统开发流派,都不得不承认。本书提出一种观念:代码质量与其整洁度成正比。干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好基础。作为编程领域的佼佼者,本书作者给出了一系列行之有效的整洁代码操作实践。这些实践在本书中体现为一条条规则(或称“启示”),并辅以来自现实项目的正、反两面的范例。只要遵循这些规则,就能编写出干净的代码,从而有效提升代码质量。

作者:Steve McConnell,42% 推荐度

这是一本完整的软件构建手册,涵盖了软件构建过程中的所有细节。它从软件质量和编程思想等方面论述了软件构建的各个问题,并详细论述了紧跟潮流的新技术、高屋建瓴的观点、通用的概念,还含有丰富而典型的程序示例。这本书中所论述的技术不仅填补了初级与高级编程技术之间的空白,而且也为程序员们提供了一个有关编程技巧的信息来源。这本书对经验丰富的程序员、技术带头人、自学的程序员及几乎不懂太多编程技巧的学生们都是大有裨益的。可以说,无论是什么背景的读者,阅读这本书都有助于在更短的时间内、更容易地写出更好的程序。

作者:Martin Fowler,35% 推荐度

重构,一言以蔽之,就是在不改变外部行为的前提下,有条不紊地改善代码。多年前,正是本书原版的出版,使重构终于从编程高手们的小圈子走出,成为众多普通程序员日常开发工作中不可或缺的一部分。本书也因此成为与《设计模式》齐名的经典著作,被译为中、德、俄、日等众多语言,在世界范围内畅销不衰。

作者:Eric Freeman / Bert Bates / Kathy Sierra / Elisabeth Robson,29.4% 推荐度

《深入浅出设计模式》(影印版) 的编写运用许多最新的研究,包括神经生物学、认知科学以及学习理论,这使得《深入浅出设计模式》(影印版) 能够将这些设计模式深深地烙印在你的脑海中,不容易被遗忘。你将会更擅长于解决软件设计中的问题,并能够和你的团队成员用模式的语言来更好地沟通。

作者:Frederick P. Brooks Jr,27.9% 推荐度

作者为人们管理复杂项目提供了颇具洞察力的见解,既有很多发人深省的观点,也有大量的软件工程实践。书中的内容来自布鲁克斯在 IBM 公司 System 360 家族和 OS 360 中的项目管理经验。初版的 20 年后,布鲁克斯重新审视了他原先的观点,增加了一些新的想法和建议。新增加的章节包括:原著中一些核心观点的精华;在经过了一个时代以后,Brooks 博士对原先观点新的认识;1986 年的经典文章《没有银弹》;对 1986 年所下论断(在 10 年内不会出现银弹)现在的认识。

作者:Robert Martin,27.9% 推荐度

本书是编程大师 Bob 大叔 40 余年编程生涯的心得体会, 讲解成为真正专业的程序员需要什么样的态度、原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来人引路,助其职业生涯迈上更高台阶。本书适合所有程序员,也可供所有想成为具备职业素养的职场人士参考。

作者:Michael Feathers,26.4% 推荐度

本书是继《重构》和《重构与模式》之后探讨修改代码技术的又一里程碑式的著作,书中不仅讲述面向对象语言(Java、C#和 C++)代码,也有专章讨论 C 这样的过程式语言。作者将理解、测试和修改代码的原理、技术和最新工具(自动化重构工具、单元测试框架、仿对象、集成测试框架等),与解依赖技术和大量开发和设计优秀代码的原则、最佳实践相结合,许多内容非常深入,而且常常发前人所未发。书中处处体现出作者独到的洞察力,以及多年开发和指导软件项目所积累的丰富经验和深厚功力。通过这部集大成之作,你不仅能掌握最顶尖的修改代码技术,还可以大大提高对代码和软件开发的领悟力。

作者:Erich Gamma / Richard Helm / Ralph Johnson / John Vlissides,25% 推荐度

这本书结合设计实作例从面向对象的设计中精选出 23 个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。书中分类描述了一组设计良好、表达清楚的软件设计模式,这些模式在实用环境下特别有用。此书适合大学计算机专业的学生、研究生及相关人员参考。书中涉及的设计模式并不描述新的或未经证实的设计,只收录了那些在不同系统中多次使用过的成功设计。

作者:Gayle Laakmann McDowell,22% 推荐度

本书是原谷歌资深面试官的经验之作,层层紧扣程序员面试的每一个环节,全面而详尽地介绍了程序员应当如何应对面试,才能在面试中脱颖而出。第 1~7 章主要涉及面试流程解析、面试官的幕后决策及可能提出的问题、面试前的准备工作、对面试结果的处理等内容;第 8~9 章从数据结构、概念与算法、知识类问题和附加面试题 4 个方面,为读者呈现了出自微软、苹果、谷歌等多家知名公司的 150 道编程面试题,并针对每一道面试题目,分别给出了详细的解决方案。

  • 软技能 : 代码之外的生存指南,22% 推荐度Soft Skills by John Sonmez
  • 点石成金 : 访客至上的网页设计秘笈,19.1% 推荐度Don’t Make Me Think by Steve Krug
  • 编码,19.1% 推荐度Code by Charles Petzold
  • 算法导论,17.6% 推荐度Introduction to Algorithms by Thomas H. Cormen / Charles E. Leiserson / Ronald L. Rivest / Clifford Stein
  • 人件,17.6% 推荐度Peopleware by Tom DeMarco & Tim Lister
  • 编程珠玑,16.1% 推荐度Programming Pearls by Jon Bentley
  • 企业应用架构模式,14.7% 推荐度Patterns of Enterprise Application Architecture by Martin Fowler
  • 计算机程序的构造和解释,13.2% 推荐度Structure and Interpretation of Computer Programs by Harold Abelson / Gerald Jay Sussman / Julie Sussman
  • 计算机程序设计艺术,10.2% 推荐度The Art of Computer Programming
  • 领域驱动设计 : 软件核心复杂性应对之道,10.2% 推荐度Domain-Driven Design by Eric Evans
  • 编程人生 : 15 位软件先驱访谈录,推荐度 10.2%Coders at Work by Peter Seibel
  • 快速软件开发 : 有效控制与完成进度计划,推荐度 8.8%Rapid Development by Steve McConnell
  • The Self-Taught Programmer,8.8% 推荐度(暂无中文版)
  • 算法,8.8% 推荐度Algorithms by Robert Sedgewick & Kevin Wayne
  • 持续交付 : 发布可靠软件的系统方法,8.8% 推荐度Continuous Delivery by Jez Humble & David Farley

以上的编程经典,你看过哪几本?还有哪些中文作者的编程书籍是你强烈推荐的?

关注我并转发此篇文章,私信我“领取资料”,即可免费获得InfoQ价值4999元迷你书!

计算机专业怎么学编程?

  • 数据结构
  • 算法
  • 计算机网络
  • 学习一门编程语言
  • 操作系统

打好C语言基础是在为学数据结构做准备,C语言学得差不多了,就可以开始学习数据结构。数据概念

细分为以下这五个方面

  • 数据
  • 数据项
  • 数据元素
  • 数据对象
  • 数据类型

数据:

数据是信息的载体,是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据不仅仅包括整形、实型等数值类型,还包括字符及声音、图像、视频等非数值类型

数据项:

构成数据元素不可分割的最小单位

数据元素:

1.是数据的基本单位,在计算机程序中通常作为一个整体考虑而处理

2.也被称为元素,或称为记录,结点或顶点。

3.一个数据元素可由若干个数据项组

数据对象:

是性质相同的数据元素的集合,是数据的一个子集

列如:

整数数据对象是集合N={-1,0,1,23,4..}

人员表也可看做一个数据结构

它们四个之间的关系 数据>=数据对象>数据元素>=数据项

对 C 语言还不太熟练的时候,学习数据结构时可以找一本经典的数据结构书,看完一个数据结构后用 C 语言将其实现。开始时的实现肯定会有困难,那么请 google 下会有很多优秀的数据结构源码的。

小白轻松入门c语言13天 :C语言基础教程【源码,笔记,软件,案例全,初学者最值得收藏】

C语言数据结构 :C语言数据结构 培养架构师思维

一.入门系列

推荐理由:通过图片,打比方等通俗易懂的方法讲述算法的书籍让你能达到懂一些基础算法,线性表,堆栈,队列,树,图,DP算法,背包问题等,不要求会实现,但是看过以下这些书对于之后实现算法打下坚实的思维基础。

1.1《啊哈!算法 啊哈磊》

1.2《算法图解》

1.3《妙趣横生的算法(C语言实现 第2版)》

1.4《趣学算法》

1.5《大话数据结构》

二.进阶系列推荐理由:在基本入门算法书的调教和领悟下,渐渐懂得一些基础算法是什么,现在就是进阶系列可以参阅,力荐《算法导论》《编程原本》,经典款不解释,当然这些书最好是在入门后再看合适,还有王晓东那本算法书也很不错,有几个版本,可以挑选看还附有课后答案。

2.1《算法导论英文版第三版》2.1《算法导论中文版》2.2《算法 (第4版)》2.3《数据结构与算法 Java版》2.4《Algorithms算法概论中文版》2.5《算法心得-高效算法的奥秘(原书第2版)》

三.算法题系列推荐理由:一些题海讲解具体的算法思想应用在题目上是怎么求解的,想刷题的可以看看结合各大OJ+leetCode一起学习。多刷题总不会错。3.1《挑战程序设计竞赛(第2版)》3.2《算法艺术与信息学竞赛(清华大学出版社)》3.3《算法谜题》3.4《编程高手箴言》四.实用工作系列推荐理由:在面试和工作中经常要用到的算法讲解,以及一些过来人工程师的心血总结,建议在面试前翻看,提升思维广度,外加一些实操。4.10《算法与数据结构-实用算法基础教程》4.1《编程之法 面试和算法心得》4.2《程序员代码面试指南 IT名企算法与数据结构题目最优解 》4.3《算法Ⅰ-Ⅳ(C++ 实现)–基础、数据结构、排序和搜索(第三版)》4.4《程序员实用算法》4.5《编程珠玑(第2版)》五.算法奇门遁甲系列推荐理由:包括一些可能在图形学,游戏设计,数据挖掘方面的算法书,偏冷门,乃大佬可以赏读的系列书籍5.1《matlab数学建模算法》5.2《常用数据挖掘算法总结及ython实现》5.3《机器学习十大算法》5.4《计算机程序设计艺术 The Art o Comuter rogramming 第2卷(第3版)》5.5《算法百科 Encycloeia o Algorithms》总结:例如对于平衡树,可能你跟着书本的代码实现之后,过阵子你就忘记,不过这不要紧,虽然你忘记了,但是如果你之前用代码实现过,理解过,那么当你再次看到的时候,会很快就记起来,很快就知道思路,而且你的抽象能力等等会在不知不觉中提升起来。之后再学习红黑树啊,什么数据结构啊,都会学的很快。

https://visualgo.net/en 可视化学习网站

https://algs4.cs.princeton.edu/home/ 算法官网

书籍入门可参考以下:

如果你是非计算机专业的小白,对于计算机网络一窍不懂,连最基本的HTTP都没听过,那我建议你先去看看《网络是怎样连接的》。

网络是怎样连接的

这本书会从总体为你讲清楚计算机发送请求的整个过程!

图片收集网络

推荐java和python,java怎么学都不会错,想在学习时间上短点选python。

java相关:

操作系统的核心,就是由下面这些东西构成的:

  • 管理程序运行:线程管理、进程管理
  • 管理内存资源:内存管理
  • 管理硬盘资源:文件系统
  • 管理网卡资源:网络协议栈
  • 管理输入输出:中断管理、同步与异步
  • 为应用程序提供接口:系统调用

转csdn:一名教师的建议:

想学操作系统的同学,推荐以下教材供选择:

概念和理论:《现代操作系统》、《操作系统概念》

基于Unix:《Unix操作系统设计》

基于Linux:《深入理解Linux内核》

基于Windows:《深入解析Windows操作系统》

操作系统设计:《操作系统设计与实现》

源代码分析:《Linux内核源代码情景分析》相关教程:

最后共勉一句人生感悟:不要因为怕伤害别人就把会让自己为难的事情应承下来,很多时候该说就得说,该拒绝就得果断拒绝。自己忙的不可开交的时候,就不要答应到处救火;触碰底线的时候,就该果断指出;没法回应的感情就该早些把话说清。扭捏最终只会导致伤人伤己,说出来反而会更好,学会拒绝是必修课。

持续输出惊喜文章,喜欢可以关注三宝哟

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。