前端圈

分享与交流前端开发相关知识

有史以来最受推荐的25本编程书籍

互联网上有无数的列表声称是必读的编程书籍清单,而且似乎所有这些清单总是建议同一本书减去两个或三个奇怪的选择。

寻找好的资源来学习编程总是很棘手的。每个人对于哪种书是最好的书都有自己的看法,正如我们用法语说的那样,“颜色和口味不应该争论”。

但是,我认为信任王冠的智慧并找到那些在“最佳编程书”列表中出现最多的书会很有趣。

如果您想直接获得结果,请在下面查看全部结果。如果您想了解这种方法,请与我同在。

免责声明:我在本文上花费了无数时间,因此我决定放置Amazon隶属关系链接,以查看这些详细的文章是否可以成为可行的收入来源,或者不是♂‍♂️。

方法:

我只是问Google几个查询,例如“最佳编程书籍”及其变体。然后,我已经刮掉了所有这些页面(使用ScrapingBee,这是我正在使用的Web刮擦API)。

我对链接进行了重复数据删除,最终得到了近150个链接。使用页面标题,我还能够快速丢弃:

  • 列表集中于一种特定的技术或平台
  • 名单着重于某一年
  • 清单集中在免费书籍上
  • Quora和Reddit线程

我最终得到了近200个HTML文件。我继续在浏览器中打开所有文件,打开chrome检查器,找到并写了与文章中的书名匹配的CSS选择器。这花了我大约1个小时,几乎每页30秒。

这也使我可以丢弃更多不相关的页面,并且丢弃了很多东西。最后,我将大约70个列表汇总到了该列表中。

目前,我有一个很大的JSON文件,它引用了以前废弃的HTML页面以及一个CSS选择器。

《有史以来最受推荐的25本编程书籍》

使用Python和Beautiful汤,我已经提取了与CSS选择器匹配的DOM元素中的每个文本。最后,我得到了大量的书籍,如果不进行一些后期处理,这些书籍将不可用。

《有史以来最受推荐的25本编程书籍》

为了找到引用最多的入门书籍,我需要对结果进行规范化。

我不得不玩所有不同的变体,例如“ {title} by {author}”或“ {title}-{author}”。

或“ {title}:{subtitle}”和“ {title}”,甚至包含版本号的所有一个。

我最终使用了以下简单的自定义Python函数:

def clean_link(link):
    link = link.encode().decode('ascii', errors='ignore')
    link = link.replace("'", '')
    link = link.lower()
    link = ' '.join([w for w in link.split(' ') if w not in ['the', 'a']])
    link = link.split('by')[0]
    link = link.split(':')[0]
    link = link.split('(')[0]
    link = ' '.join(link.split())
    link = link.replace('-', '_')
    link = ''.join([c for c in link if c.isalpha() or c == '_' or c == ' '])
    link = link.strip()
    link = link.replace(' ', '_')
    link = ''.join([c for c in link if c.isalpha() or c == '_'])
    return link

以及大量的手动清洁。

我的列表现在看起来像这样:

《有史以来最受推荐的25本编程书籍》

从那里很容易计算出最推荐的书。您可以在此仓库中找到用于处理此列表的所有数据。现在让我们看一下列表:

有史以来25本最受推荐的编程书籍

25. Jez Humble和David Farley的连续交付(推荐8.8%)

《有史以来最受推荐的25本编程书籍》

“向用户发布软件通常是一个痛苦,冒险和耗时的过程。这本开创性的新书阐述了原理和技术实践,可以为用户快速,增量地交付高质量,有价值的新功能。建立,部署和测试过程,以及开发人员,测试人员和操作人员之间改进的协作,交付团队可以在几小时甚至有时是几分钟内发布更改,无论项目大小或代码库的复杂程度如何。

Jez Humble和David Farley首先介绍了快速,可靠,低风险的交付过程的基础。接下来,他们介绍了“部署管道”,这是一种用于管理从签入到发布的所有变更的自动化流程。最后,他们讨论了
支持从基础架构,数据和配置管理到治理的持续交付所需的“生态系统” 。” Amazon.com

24. Robert Sedgewick和Kevin Wayne的算法(推荐8.8%)

《有史以来最受推荐的25本编程书籍》
“本书中的算法代表了过去50年来发展起来的知识体系,不仅对于专业程序员和计算机科学专业的学生,​​而且对于任何对科学,数学和工程学感兴趣的学生,更不用说那些在文科中使用计算。” 亚马逊网

23. Cory Althoff 的自学程序员(推荐8.8%)

《有史以来最受推荐的25本编程书籍》
“我是一名自学成才的程序员。经过一年的自学,我学会了编程,足以在eBay上担任II级软件工程师的工作。

到达那里后,我意识到自己准备不足。我需要了解但还没有学到的东西使我不知所措。我学习编程的过程以及我作为软件工程师的第一份工作的经验,都是本书的灵感来源。

这本书不只是学习编程。尽管您将学习编码。如果您想专业地编程,那么学习代码是不够的。这就是为什么除了帮助您学习编程之外,我还将介绍您需要了解的其他有关专业编程的知识,这些内容是课程和书籍不会教您的。

“自学成才的程序员”是一个路线图,是指导您从编写第一个Python程序到通过第一次技术面试的指南。路径就在那里。你会吃吗?” Amazon.com

22. 史蒂夫·麦康奈尔的《快速发展》(推荐8.8%)

《有史以来最受推荐的25本编程书籍》
“公司和商业软件开发团队都希望找到一个重要问题的解决方案,即如何控制高压开发进度。在RAPID DEVELOPMENT中,作者Steve McConnell谈到了有关总体策略,特定最佳实践和有助于缩短和控制开发进度并保持项目进展的宝贵技巧,在内部,您会发现:

  • 可以应用于任何项目和最佳实践的快速发展策略,以使该策略起作用
  • 坦率地讨论出色的发展实践,包括估算,原型设计,强迫加班,动力,团队合作,迅速发展的语言,风险管理等
  • 一系列针对快速开发项目应避免的经典错误,包括不断变化的需求,质量下降和银弹症候群
  • 案例研究生动地说明了哪里可能出错,什么地方可以正确以及如何确定项目的发展方向
  • RAPID DEVELOPMENT是更有效的应用程序开发的真实指南。” Amazon.com

21. 彼得·塞贝尔(Peter Seibel)工作中编码员(建议10.2%)

《有史以来最受推荐的25本编程书籍》
“这是编程界的佼佼者-着迷于世界上最优秀的人才是如何工作的。这本书是根据畅销的Founders in Work进行仿制的,代表了对该行业一些顶尖程序员的两年访谈。我们的时代。” 亚马逊网

20. Eric Evans的域驱动设计(建议10.2%)

《有史以来最受推荐的25本编程书籍》
“领先的软件设计师将域建模和设计作为关键主题已经至少二十年了,但是令人惊讶的是,关于需要做什么或如何做的文章很少。尽管从未明确表述,但是一种哲学已经发展为对象社区中的一种暗流,我称之为“域驱动设计”。

在过去的十年中,我专注于在多个业务和技术领域中开发复杂的系统。我已经尝试了设计和开发过程中的最佳实践,这些最佳实践是从面向对象的开发社区的领导人那里涌现出来的。我的一些项目非常成功。一些失败了。成功的共同特征是丰富的领域模型,该模型通过设计的迭代演变而来,并成为项目结构的一部分。

本书提供了制定设计决策的框架和讨论领域设计的技术词汇。它是广泛接受的最佳实践以及我自己的见解和经验的综合。面向复杂领域的项目可以使用此框架来系统地进行领域驱动的设计。” Amazon.com

19. Donald E. Knuth撰写的《计算机编程艺术》(推荐10.2%)

《有史以来最受推荐的25本编程书籍》
“无数的读者谈到了Knuth的工作所产生的深远个人影响力。科学家对他的分析的优美和优雅赞叹不已,而普通程序员已将他的“食谱”解决方案成功地应用于日常问题。所有人都钦佩Knuth因为他的书有广度,清晰度,准确性和幽默感。” 亚马逊网

18. Harold Abelson / Gerald Jay Sussman / Julie Sussman 的计算机程序结构和解释(建议13.2%)

《有史以来最受推荐的25本编程书籍》
“编译器:原理,技术和工具,被全世界的教授,学生和开发人员称为“龙书”,现已发行新版本。每一章都经过全面修订,以反映软件工程,编程语言和计算机的发展自1986年发布最新版以来,该体系结构就开始出现。作者们意识到很少有读者会继续构建编译器,而将精力集中在软件设计和软件开发所面临的广泛问题上。” 亚马逊网

17. Martin Fowler 的企业应用程序架构模式(推荐14.7%)

《有史以来最受推荐的25本编程书籍》
“企业应用程序开发的实践得益于许多新的支持技术的出现。诸如Java和.NET的多层面向对象的平台已变得司空见惯。这些新工具和技术能够构建强大的应用程序,但是它们的实现不容易实现。企业应用程序中常见的故障经常发生,因为它们的开发人员不了解经验丰富的对象开发人员所学的架构课程。” 亚马逊网

16. 乔恩·本特利(Jon Bentley)编写的《编程珍珠》(推荐16.1%)

《有史以来最受推荐的25本编程书籍》
“计算机程序设计有很多面孔。弗雷德·布鲁克斯(Fred Brooks)在《神话人月》上描绘了全貌;他的论文强调了管理在大型软件项目中的关键作用。这些书是优质软件的关键,也是专业程序员的标志。但是,不幸的是,这些声音工程原理的熟练应用并不总是那么令人兴奋-直到软件按时完成并且毫无意外地工作。

本书中的各列介绍了该行业的一个更为迷人的方面:在洞察力和创造力领域中,编程珍珠的起源不仅仅在于坚实的工程学。正如天然珍珠是从会刺激牡蛎的沙粒中生长出来的一样,这些编程珍珠也是从困扰了真正程序员的实际问题中成长出来的。这些程序很有趣,并且它们教授重要的编程技术和基本设计原理。” Amazon.com

15. Tom DeMarco和Tim Lister的Peopleware(推荐17.6%)

《有史以来最受推荐的25本编程书籍》
“ Mantle和Lichty利用他们在软件开发和管理方面的经验,并强调其他成功经理的见识和智慧,提供了管理和理解人员和团队以成功交付软件和避免项目所需的规则,工具和见解。长期畅销书的独特见解是,软件开发的主要问题是人为的,而不是技术的;它们不是容易的问题;但是要解决这些问题,您将最大程度地获得成功的机会结合了软件工程事实和发人深省的见解,Fred Brooks为管理复杂项目的任何人提供了见解。” 亚马逊网

14. 托马斯·H·科门(Thomas H. Cormen)/查尔斯·E·雷森(Charles E. Leiserson)/罗纳德·里维斯特(Ronald Livest)/克利福德·斯坦(Clifford Stein)的算法简介(推荐17.6%)

《有史以来最受推荐的25本编程书籍》
“一些有关算法的书很严格,但不完整;另一些书涵盖了大量的材料,但缺乏严谨性。《算法导论》将严谨性和全面性独特地结合在一起。这本书涵盖了广泛的算法深度,但使它们的设计和分析可用于所有级别的算法。读者:每一章都是相对独立的,可以作为学习的单元;算法用英语描述,并使用伪代码进行描述,旨在使任何经过一点编程的人都可以读懂。覆盖深度或数学严谨性。

第一版成为全球大学中广泛使用的文本以及专业人士的标准参考书。第二版以新的章节为特色,介绍了算法的作用,概率分析和随机算法以及线性规划。第三版一直在修订和更新中。它包括关于van Emde Boas树和多线程算法的两个全新章节,对递归一章的实质性补充(现称为“分而治之”),以及关于矩阵的附录。它的特点是改进了对动态编程和贪婪算法的处理,并在流网络中的材料中增加了基于边缘的流的新概念。此版本增加了许多练习和问题。国际平装版不再可用;精装书在世界各地都有销售。”Amazon.com

13. Charles Petzold编写的代码(推荐19.1%)

《有史以来最受推荐的25本编程书籍》
“手电筒,英国入侵,黑猫和跷跷板与计算机有什么关系?在CODE中,它们向我们展示了我们操纵语言和发明新的相互交流方式的巧妙方式。通过CODE,我们看到了独创性以及我们对交流的迫切需求推动了过去两个世纪的技术创新。

通过使用日常对象和熟悉的语言系统(例如盲文和摩尔斯电码),作者Charles Petzold为那些对计算机和其他智能机的秘密内部生命感到疑惑的人编织了一个富有启发性的叙述。

这是一个巧妙的插图,非常引人入胜的故事-在整个过程中,您会发现您已经获得了理解当今PC,数字媒体和Internet世界的真实环境。无论您的技术水平如何,CODE都会使您着迷,甚至唤醒内部的技术爱好者。” Amazon.com

12. 史蒂夫·克鲁格(Steve Krug)不要让我思考(建议19.1%)

《有史以来最受推荐的25本编程书籍》
“自从2000年首次发布《不要让我想起》以来,成千上万的Web设计师和开发人员就依靠可用性专家史蒂夫·克鲁格(Steve Krug)的指南来帮助他们理解直观导航和信息设计的原理。机智,常识且非常实用,是该主题上最受欢迎和最受推荐的书籍之一。

现在,史蒂夫以崭新的视角返回,重新审视了使“不要让我思考”成为经典的原则-带有更新的示例和有关移动可用性的新章节。而且它仍然简短,插图丰富,而且是所有阅读中最好的乐趣。

如果您以前阅读过它,那么您将重新发现使《不要让我思考》对全球Web设计师和开发人员如此重要的原因。如果您从未读过它,那么您会明白为什么这么多人说对网站上的任何人都应该要求阅读它。” Amazon.com

11. John Sonmez的软技能(推荐22%)

《有史以来最受推荐的25本编程书籍》
“对于大多数软件开发人员而言,编码是有趣的部分。艰巨的任务是与客户,同行和经理打交道,保持生产力,实现财务安全,保持身材并找到真正的挚爱。这本书在这里可以提供帮助。

软技能:软件开发人员的生活手册是全面,令人满意的技术专家生活指南。在其中,开发人员和生活教练John Sonmez就重要的“软”主题向开发人员提供了建议,例如职业和生产力,个人理财和投资,甚至健身和人际关系。这本有趣的阅读书以71个简短章节的集合为基础,邀请您随时随地欣赏。每章末尾的“采取行动”部分向您展示了如何快速获得结果。软技能将帮助您成为一个更好的程序员,一个更有价值的员工以及一个更快乐,更健康的人。” Amazon.com

10. Gayle Laakmann McDowell撰写的采访访谈(推荐22%)

《有史以来最受推荐的25本编程书籍》
“我不是招聘人员。我是软件工程师。因此,我知道当场鞭打出色的算法然后在白板上编写无瑕的代码是什么样的感觉。候选人和面试官。

第6版《破解编码面试》将在此过程中为您提供帮助,教会您需要了解的知识,并让您表现出色。我已经指导并采访了数百名软件工程师。结果就是这本书。

学习如何发现问题中的提示和隐藏的细节,发现如何将问题分解为可管理的部分,开发技巧以在遇到困难时自行解决,学习(或重新学习)计算机科学的核心概念以及练习189个面试问题和解决方案。

这些面试问题是真实的;他们并没有退出计算机科学教科书。它们反映了顶级公司的真正要求,因此您可以尽可能地做好准备。里面有什么?

  • 189个编程面试问题,范围从基础到最棘手的算法问题。
  • 有关如何派生每个解决方案的演练,以便您可以自己学习如何达到目标。
  • 关于如何解决189个问题的提示,就像您在真实面试中会得到的一样。
  • 五个经过验证的策略可解决算法问题,以便您可以解决未曾见过的问题。
  • 广泛涵盖基本主题,例如大型O时间,数据结构和核心算法。
  • 一个在幕后?看看像Google和Facebook这样的顶级公司如何聘请开发人员。
  • 准备和应对面试的技巧:行为问题。
  • 对于面试官和公司:有关什么是好的面试问题和招聘过程的详细信息。” Amazon.com

9. 由Erich Gamma / Richard Helm / Ralph Johnson / John Vlissides 设计的图案(推荐25%)

《有史以来最受推荐的25本编程书籍》
“四位顶尖的设计师在面向对象软件的设计方面积累了丰富的经验,提出了针对常见设计问题的简单明了的解决方案目录。以前没有记录,这23种模式使设计人员能够创建更加灵活,优雅和实用的解决方案。最终可重复使用的设计,而不必自己重新发现设计解决方案。

作者首先描述什么是模式,以及它们如何帮助您设计面向对象的软件。然后,他们继续在面向对象系统中系统地命名,解释,评估和分类重复设计。以设计模式为指导,您将学习这些重要的模式如何适合软件开发过程,以及如何利用它们来最有效地解决自己的设计问题。

每个模式都描述了它的适用环境,可以考虑其他设计约束的情况下何时应用它,以及在较大的设计中使用该模式的后果和取舍。所有模式都是从真实系统中编译的,并基于真实示例。每个模式还包括代码,这些代码演示了如何在诸如C ++或Smalltalk的面向对象的编程语言中实现它。” Amazon.com

8. 有效处理迈克尔·费瑟斯(Michael Feathers)的旧版代码(建议26.4%)

《有史以来最受推荐的25本编程书籍》
“在本书中,Michael Feathers提供了从头到尾的策略,可以更有效地使用未经测试的大型遗留代码库。本书借鉴了Michael为自己著名的Object Mentor研讨会编写的材料:Michael在指导中使用的技术可帮助数百人包括开发人员,技术经理和测试人员
在内的许多人都可以控制他们的旧系统。本书还包括二十四种打破依赖的技术目录,可帮助您隔离处理程序元素并进行更安全的更改。” 亚马逊网

7. Robert Martin 的Clean Coder(推荐27.9%)

《有史以来最受推荐的25本编程书籍》
“在不断变化的不确定性和不间断的压力中忍受并成功的程序员共有一个共同的属性:他们深深地关注创建软件的实践。他们将软件视为一种手工艺品。他们是专业人员。

传奇的软件专家Robert C. Martin在“ The Clean Coder:A Professional Programmer for Conduct Programmer”中,介绍了真正的软件工艺的学科,技术,工具和实践。本书包含了实用的建议,涉及从估计和编码到重构和测试的所有内容。它不仅涵盖技术,还涉及态度。Martin展示了如何以荣誉,自尊和自豪感进行软件开发。工作良好,工作整洁;忠实地沟通和评估;清晰,诚实地面对艰难的决定;并了解深厚的知识带有行动的责任。

出色的软件令人赞叹不已:功能强大,美观大方,功能强大,无论是作为开发人员还是用户,都可以与他们一起工作。出色的软件不是机器编写的。它是由专业人士撰写的,对工艺的坚定承诺。Clean Coder将帮助您成为其中的一员,并获得他们一个人所拥有的自豪感和成就感。” Amazon.com

6. 小弗雷德里克·布鲁克斯(Frederick P. Brooks Jr)的《神秘人月》(推荐27.9%)

《有史以来最受推荐的25本编程书籍》
“关于软件项目管理的书籍很少像《神话人月》那样具有影响力和永恒。通过融合软件工程事实和发人深省的见解,Fred Brooks为任何管理复杂项目的人提供了见解。这些文章都是从他的经验中汲取的。 IBM System / 360计算机家族的项目经理,然后是其大型软件系统OS / 360的项目经理。现在,在他的书首次出版20年后,Brooks重新审视了他的原始思想,并增加了新的思想和建议,这些都为读者已经熟悉了他的作品,并让读者第一次发现它。” 亚马逊网

5. 埃里克·弗里曼(Eric Freeman)/伯特·贝茨(Bert Bates)/凯西·塞拉(Kathy Sierra)/伊丽莎白·罗布森(Elisabeth Robson)的负责任的第一设计模式(推荐29.4%)

《有史以来最受推荐的25本编程书籍》
“设计模式有何特别之处?

在任何时候,有人都会遇到与您同样的软件设计问题。而且,很可能其他人已经解决了您的问题。这个版本的Head First Design Patterns(现已针对Java 8更新)向您展示了开发人员用来创建功能,优雅,可重用和灵活的软件的经过实践检验的经过实践检验的模式。到您完成本书时,您将能够利用最佳设计实践和经验,这些经验和技巧是与软件设计的野兽战斗并取得胜利的。

这本书有什么特别之处?

我们认为您的时间太宝贵了,无法花时间去尝试新概念。使用认知科学和学习理论的最新研究制作一个多感官学习经验,深入浅出设计模式采用专为这样你的大脑工作方式,不以文字为主的办法,让你睡一个视觉丰富的格式。” 亚马逊.com

4. Martin Fowler的重构(推荐35%)

《有史以来最受推荐的25本编程书籍》
“随着对象技术(尤其是Java编程语言)的应用变得司空见惯,软件开发社区面临了一个新问题。经验不足的开发人员创建了大量设计不佳的程序,从而导致了应用程序的出现。软件系统专业人员越来越多地发现使用这些继承的非最佳应用程序是多么困难。

几年来,专家级的对象程序员采用了越来越多的技术来改善这种现有软件程序的结构完整性和性能。这些实践被称为重构,因此仍属于专家的范围,因为没有尝试将知识转换为所有开发人员都可以使用的形式。。。到现在。在“重构:改善现有软件的设计”中,著名的对象技术导师Martin Fowler开拓了新的领域,揭开了这些主要实践的神秘面纱,并演示了软件从业人员如何实现这一新过程的巨大收益。经过适当的培训,熟练的系统设计师“ Amazon.com

3. 史蒂夫·麦康奈尔完成代码(推荐42%)

《有史以来最受推荐的25本编程书籍》
“史蒂夫·麦康奈尔(Steve McConnell)最初被认为是最佳的编程实践指南之一,其原始的CODE COMPLETE一直在帮助开发人员编写更好的软件。十多年来,这本经典的书已经通过领先的实践进行了全面更新和修订,其中包括数百本新书。代码示例—阐述了软件构建的艺术和科学,并从研究,学术界和日常商业实践中获取了大量知识,McConnell将最有效的技术和必须了解的原理综合为清晰,务实的指南。级别,开发环境或项目规模,这本书将为您提供启发和启发,并帮助您构建最高质量的代码。” 亚马逊网

2. 罗伯特·C·马丁(Robert C. Martin)的“ 清洁代码”Clean Code)(推荐66%)

《有史以来最受推荐的25本编程书籍》
“干净代码分为三部分。第一部分描述了编写干净代码的原理,模式和实践。第二部分包括一些复杂性不断提高的案例研究。每个案例研究都是清理代码的一种练习,即转换代码。代码库中存在一些问题,这些问题是合理而有效的;第三部分是收益:一章包含创建案例研究时收集的启发式和“臭味”列表,结果是一个描述方法的知识库我们会在编写,阅读和清理代码时思考。” 亚马逊网

1. David Thomas和Andrew Hunt 的实用程序员(推荐67%)

《有史以来最受推荐的25本编程书籍》

实用程序员是您多年来阅读,重新阅读和再读过的那些稀有技术书籍之一。无论您是该领域的新手还是经验丰富的从业者,您都会从中获得新的见解,并且每次。

Dave Thomas和Andy Hunt于1999年撰写了这本有影响力的书的第一版,以帮助他们的客户创建更好的软件并重新发现编码的乐趣。这些课程已帮助一代程序员检查了软件开发的本质,而与任何特定的语言,框架或方法无关,并且实用主义哲学催生了成百上千的书籍,截屏视频和有声读物,以及成千上万的职业生涯和成功的故事。

二十年后的今天,这个新版本重新审视了成为现代程序员的意义。主题范围从个人责任和职业发展到架构技术,以保持您的代码灵活,易于修改和重用。” Amazon.com

结论

尽管顺序可能会令人吃惊,但根据定义,你们中的大多数人都已经听说过这些书。

我在列表中了解了一些其他内容:

  • 马丁·福勒和史蒂夫·麦康奈尔是名单上仅有的几本著作的唯一作者。
  • 《破解代码访谈》是榜单上的最新书籍,于2015年发行。
  • John Zelle撰写的Python Programming是针对一种语言的引用最多的书。如果考虑到这一点,它的排名将是#5。

希望您喜欢这篇文章。

我必须承认,这写了一段时间。如果您喜欢这篇文章,并且觉得Twitter喜欢它,请分享,它确实有帮助:)。

注:同时使这篇文章,这一次出现在谷歌搜索结果。无论如何,我最终还是做了我的,因为我将使用另一种自动聚合技术,该技术允许编译的列表数量是他的两倍。但是,检查两个列表可能会很有趣:)。

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注