📜  10 本最受欢迎的编程书籍——2021 年必读!

📅  最后修改于: 2021-10-22 02:39:54             🧑  作者: Mango

尽管在当今数字化发达的世界中,我们拥有各种不同的来源来扩展我们对任何事物的了解,例如通过 YouTube 视频、博客等。然而,在所有这些中,没有人能够超越阅读书籍的魅力对特定主题或领域的一些深入探索。例如,每当您发现自己在任何编程查询或问题中苦苦挣扎时 – 当时自发的 Google 搜索可能会拯救您,但只有通过通过丰富而有价值的书。

2021 年最受欢迎的 10 本书编程书籍

特别是对于程序员或开发人员(无论是初学者还是经验丰富的人)来说,对编程范式、设计模式、框架和其他核心概念有一个清晰而详细的理解变得至关重要。这些书不仅可以帮助您理清这些概念并巩固您的基础知识,还可以让您拓宽思维能力和创造力。众所周知,编程需要最大的创造力和逻辑思维能力!老实说,许多人低估了阅读书籍的实际价值——你需要知道一本书背后有很多思考、深入研究、讨论和奉献。

在大量编程书籍中,在本文中 – 我们为所有初出茅庐的程序员编制了一份最受推荐的 10 本书清单,以便他们可以更深入地了解开发世界。让我们检查这些:

1. 自学程序员:专业编程的权威指南

顾名思义,这本书是由自学成才的程序员 Cory Althof 编写的,他在自学编程后在 eBay 找到了一份软件工程师的工作,并在那里的经历发现还有很多东西要学成为一名专业的程序员启发了他写这本书。这本书实际上是一本权威指南,不仅可以让您学习编码,还可以让您学习如何专业地编程。专业编程是你在任何班级或学校都学不到的东西,但这本书很好地涵盖了这个领域。考虑到总体前景,在本书中,您将主要学习Python 3 编程、面向对象编程、Git 和 Bash 等工具、数据结构和算法基础、一些推荐的编码实践以及有关登陆的关键技巧和建议编程工作。

2. 务实的程序员:从老手到高手

无论您是初级程序员还是经验丰富的程序员,都强烈推荐大家阅读 Andrew Hunt 和 David Thomas 合着的这本书。这本书是关于编程和软件工程过程的,它为您提供了足够的技巧和建议,您在进行编程时应该执行这些技巧和建议,以成为更好、更高效的程序员。更具体地说,它为软件开发的不同方面提供了一些最佳实践,因为在这里您可以学习如何编写灵活、动态和适应性强的代码,避免重复知识的陷阱,使您的开发更加精确,自动化,还有更多这样的事情。关于它的最好的事情是它有趣地教你所有这些范式和概念,例如通过短篇小说、类比、深思熟虑的例子等,而不是简单地以通常的理论方式描述它。

最重要的是,第二版 – 务实的程序员:你的精通之旅也已在本书 20 周年之际发布,并进行了一些重大修订,您也可以考虑一下。

3. 干净的代码:敏捷软件工艺手册

毫无疑问,如果您在几个月前就已经开始编程——那么您必须知道一件事,即编写干净和最佳代码的重要性。如果我们在更大的层面上看待它,无论是在金钱、资源、时间还是任何其他方面,编写糟糕的代码都会使组织付出很多代价。然而,Robert C. Martin 的这本书教你编写好的和干净的代码的实践。本书主要分为三部分——

  • 第一部分:关注编写干净代码的原则、模式和实践。
  • 第二部分:包括各种不断增加复杂性的案例研究,您可以在其中学习将存在一些问题代码库转换为具有高效和干净代码的代码库。
  • 第三部分:回报,即一个单独的章节,包括在创建案例研究时收集的启发式列表。

它让您全面了解好代码和坏代码之间的区别、如何编写好代码或如何将坏代码转换为好代码、如何格式化代码以获得最大的可读性、单元测试和测试驱动的开发实践,以及其他相关的概念。

4. Steve McConnell 编写的 Code Complete(第 2 版)

尽管史蒂夫·麦康奈尔 (Steve McConnell) 的这本书主要推荐给有经验的程序员——如果你是一个有大约 1 年或 2 年经验的初级程序员,你肯定可以尝试探索软件开发世界的几乎每个方面,无论是设计、编码、调试或测试。事实上,这本书可以极大地利用与该行业工作年限相等的经验量。本书将为您提供应用防御性编程技术以减少和消除错误、获得协作开发的好处、有效调试问题、预先解决关键构建问题等的透彻理解和策略。它一定会帮助您理解和采用有效地构建软件的艺术与科学。同时,《代码完成》原版出版至今已有 25 年多,它仍然是程序员最喜欢的书籍之一。此外,2004 年发布了第二版,即 Code Complete(2 版)。

5.重构:改进现有代码的设计

代码重构确实是编程或开发过程中非常必要的实践。尽管知道何时重构、在哪里重构以及如何重构对于程序员来说并不是一件容易的事。然而,Martin Fowler 的这本书让你对重构原则有一个透彻的理解,并解决了你关于为什么要重构、如何找到需要重构的代码、成功重构的策略等的所有疑问。在这里你会了解40 多个经过验证的详细重构以及示例和分步实施说明。阅读本书后,您将能够识别代码中指示重构需求的“不良气味”,并可以应用有用的重构使程序更容易。本书第一版以Java为主要语言编写,第二版使用JavaScript。然而,书中提到的思想和方法对于任何面向对象的编程语言都是可行的。

6. 设计模式:可重用的面向对象软件的元素

想知道关于设计模式的一切吗?如果是,那么 Design Patterns: Elements of Reusable Object-Oriented Software 是您必读的书! Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合着的这本书在让您全面了解软件设计模式方面是无与伦比的。您可以通过以下事实来确定这一点:尽管该书于 1994 年出版 – 这本书在当今世界仍然非常相关和流行。从描述什么是设计模式以及它们如何帮助设计面向对象软件开始——本书进一步系统地命名、解释、评估和编目面向对象系统中的重复设计。在本书中,您将找到 23 种面向对象的设计模式,用于创建灵活且可重用的设计。这里的模式是根据真实系统编译的,并基于真实世界的例子。此外,每个模式的实现演示也提供了 C++ 或 Smalltalk 等语言。阅读本书后,您将能够在软件开发过程中有效地使用这些设计模式。

7. 算法介绍

对于程序员来说,掌握算法概念对于高效、优化地解决任何编程问题至关重要。这本书,由 Thomas H. Cormen、Charles E. Leiserson、Ronald L. Rivest 和 Clifford Stein 合着的《算法导论》——可帮助您详细了解各种算法以及其他相关概念。最好的部分是所有的解释都以易于理解的方式提供,并且算法是用伪代码而不是任何特定的编程语言编写的,以获得更好的综合性。目前,该书一共有三个版本在市场上发售,第四版的计划也在洽谈中。第一版主要用于学校或大学的教学目的。第二版在算法、概率分析、线性规划等方面新增了各种章节。此外,最新版本即第三版包括几个显着的主题,如 veB 树、多线程算法、动态规划等以及各种练习题和练习题。

8.破解编码面试:189个编程问题和解决方案

如果您是那些期待在任何 IT 巨头(如 Google、Apple、Microsoft、Facebook 等)找到工作机会的初出茅庐的程序员之一,那么强烈推荐您阅读 Gayle Laakmann McDowell 的这本书。本书包含许多编程问题,这些问题通常在技术面试中提出,并详细介绍了它们各自的解决方案,以便更好地学习。除了 189 道编程面试题外,您还可以在此了解解决不熟悉算法问题的行之有效的策略,对大 O 时间、数据结构等关键主题的透彻理解,准备行为问题的策略以及其他各种事情.

尽管如此,许多开发人员认为它是编写面试准备的最佳书籍或资源——它对于学习编程和计算机科学基础以及如何将问题分解成更小的块以有效地解决它们也是值得的。截至目前,该书已出版六版,最新一期即第六版于2015年近期出版。

9. 工作中的程序员:对编程技巧的反思

如果您是一名初出茅庐的程序员,并想探索程序员的生活,那么强烈推荐您阅读 Peter Seibel 的这本书。它主要由作者对 15 位高度成就的程序员和计算机科学家的采访组成。里面的内容是关于这些受访者如何学习编程并成为熟练的程序员,他们如何处理他们的编程工作,他们认为有趣的问题类型,他们如何调试代码,以及更多有价值的方面。此外,受访者还讨论了各自著名的项目,并讲述了这些项目背后的轶事。说到这些被面试的程序员的简介——他们都在这个行业做了很多非常出色的工作,比如 Joe Armstrong(Erlang 的发明者)、Joshua Bloch( Java集合框架的作者,现在在谷歌)、Donald Knuth( 《计算机编程艺术》的作者和 TeX 的创造者)、Peter Norvig(谷歌研究总监和人工智能标准文本的作者)和许多其他成功人士。

10:软技能:软件开发人员生活手册

最后,这本书不涉及核心编程概念或方法论,但肯定会帮助程序员在他们的职业生涯中取得好成绩。这本书涉及开发人员生活的几个关键方面,例如与客户和经理打交道、保持生产力、获得财务安全、健身和健康目标以及其他各种相关的目标。它为您提供了享受编程作为职业的清晰路线图。这份内容丰富的指南共包含 71 个简短的章节,每章之后还为您提供了“采取行动”部分以获得实际结果。此外,您还可以了解作者的秘密快速学习十步流程以及健身建议和投资和提前退休的有效策略。这本书不仅从职业角度强烈推荐给每个程序员,而且作为程序员过上更快乐、更健康的生活。

因此,这是几本强烈推荐给每个程序员的书籍,以增强知识并深入探索编程世界。虽然除了这些书,还有很多其他的书也可以考虑——但是,你必须记住的是,不要为了完成它们而突然阅读这些书,而要花尽可能多的时间需要了解其背后的核心思想和理念!