本文翻译自国外论坛 medium,原文地址:https://irina-seng.medium.com/top-20-books-a-software-developer-must-read-updated-b24bcc9ee3d
持续学习的心态是软件开发人员想要保持专业相关性并增长自身价值的关键品质。
在这篇博文中,我将推荐 20 本最受欢迎的软件工程书籍清单,以帮助你实现这一目标。
对于想要了解最新趋势并敞开心扉的开发者来说,这份清单是必不可少的。
描述:Python 的简单性让你可以快速提高工作效率,但这通常意味着你不会使用它所提供的全部功能。通过本书,你将学习如何利用其最佳创意编写高效、现代的 Python 3 代码。
作者 Luciano Ramalho 将指导你了解 Python 的核心语言特性和库,并教你如何使代码更短、更快和更具可读性。
《流畅的Python》第二版对整本书进行了重大更新,包括:
描述:Go 正迅速成为构建 Web 服务的首选语言。虽然有很多教程可以向具有其他编程语言经验的开发人员教授 Go 的语法,但教程是不够的。他们不教授 Go 的习惯用法,因此开发人员最终会重新创建在 Go 上下文中没有意义的模式。本书提供了编写清晰且地道的 Go 所需的基本背景。
无论你的经验水平如何,你都将学习如何像 Go 开发人员一样思考。作者 Jon Bodner 介绍了经验丰富的 Go 开发人员采用的设计模式,并探讨了使用它们的基本原理。你还将预览 Go 即将推出的泛型支持以及它如何融入该语言。
描述:全球薪酬调查定期将软件架构师列为前 10 名最佳工作,但没有真正的指南可以帮助开发人员成为架构师。到目前为止。本书首次全面概述了软件架构的许多方面。有抱负的和现有的架构师都将研究架构特征、架构模式、组件确定、图表和呈现架构、演化架构和许多其他主题。
Mark Richards 和 Neal Ford 是多年来专业教授软件架构课程的实践从业者 —— 专注于适用于所有技术栈的架构原则。考虑到过去十年的所有创新,你将以现代的眼光探索软件架构。
本书考察:
描述:这是世界上最畅销的 Python 书籍的第二版。 Python 速成课程,第 2 版简单介绍了 Python 编程的核心。作者埃里克·马修斯 (Eric Matthes) 摒弃了可能妨碍学习如何编程的那种乏味、不必要的信息,而是选择提供一般编程概念、Python 基础知识和问题解决方面的基础。本书第二部分中的三个真实世界的项目允许读者以有用的方式应用他们的知识。
读者将学习如何创建简单的视频游戏,使用数据可视化技术制作图形和图表,以及构建和部署交互式 Web 应用程序。《Python编程:从入门到实践》第 2 版向初学者快速教授 Python 的基本知识,以便他们可以构建实用的程序并开发强大的编程技术。
描述:
你将从这本书中学到什么?
你知道你不想重新发明轮子,所以你看看设计模式:那些遇到过相同软件设计问题的人的经验教训。使用设计模式,你可以利用其他人的最佳实践和经验,这样你就可以将时间花在更具挑战性的事情上以及更有趣的东西。本书向你展示了重要的模式、何时使用它们以及为什么使用它们、如何将它们应用到你自己的设计中,以及它们所基于的面向对象设计原则。加入成千上万通过《深入浅出设计模式》提高了面向对象设计技能的开发人员。
这本书有什么特别之处?
如果你读过《深入浅出设计模式》一书,你就会知道会发生什么:一种视觉丰富的格式,专为你的大脑工作方式而设计。借助 《深入浅出设计模式》你将以一种不会让你入睡的方式学习设计原则和模式,因此你可以走出去解决软件设计问题并与团队中的其他人交流模式语言。
描述:即使是糟糕的代码也能正常运行。但如果代码不干净,它可能会让开发组织崩溃。每年,由于编写不当的代码,都会损失无数的时间和大量的资源。
你会从事什么样的工作?你会阅读代码 — 很多代码。你将面临思考该代码的正确之处和错误之处的挑战。更重要的是,你将面临重新评估你的专业价值观和对你的技术承诺的挑战。
读者能够从本书学到:
本书是任何有兴趣编写更好代码的开发人员、软件工程师、项目经理、团队负责人或系统分析师的必备书籍。
描述:系统编程为世界的计算提供了基础。编写对性能敏感的代码需要一种编程语言,使程序员能够控制内存、处理器时间和其他系统资源的使用方式。 Rust 系统编程语言将这种控制与现代类型系统结合起来,现代类型系统可以捕获广泛的常见错误,从内存管理错误到线程之间的数据竞争。
通过这本书,经验丰富的系统程序员将学习如何使用 Rust 成功地弥合性能和安全性之间的差距。 Jim Blandy、Jason Orendorff 和 Leonora Tindall 展示了 Rust 的特性如何通过将可预测的性能与内存安全和可信赖的并发性相结合,让程序员控制内存消耗和处理器的使用。
你会学到:
截至目前,本书还没有中文版。
描述:本书 OCP Oracle Certified Professional Java SE 11 Developer 认证最全面的准备指南 — 它涵盖了考试 1Z0–819 和升级考试 1Z0–817(以及退休的程序员 I 考试 1Z0–815 和程序员 II考试 1Z0–816)!
Java 广泛用于后端云应用程序、软件即服务应用程序 (SAAS),并且是用于开发 Android 应用程序的主要语言。这种面向对象的编程语言旨在在所有支持 Java 的平台上运行而无需重新编译。 Oracle Java Programmer 认证受到整个技术行业雇主的高度重视。
本书能学到:
描述:在软件架构中没有简单的决定。相反,有许多困难的部分 — 困难的问题或没有最佳实践的问题 — 迫使你在各种妥协中做出选择。通过本书,你将学习如何批判性地思考分布式架构所涉及的权衡。
架构资深人士和执业顾问 Neal Ford、Mark Richards、Pramod Sadalage 和 Zhamak Dehghani 讨论了选择合适架构的策略。通过交织一个虚构的技术专家组(Sysop Squad)的故事,他们研究了从如何确定服务粒度、管理工作流和编排、管理和解耦合同、管理分布式事务到如何优化操作特性(例如可扩展性)的所有内容、弹性和性能。
通过关注常见问题,本书提供的技术可帮助你在面对作为架构师所面临的问题时发现和权衡取舍。
描述:今天软件工程师不仅需要知道如何有效地编程,还需要知道如何开发适当的工程实践来使他们的代码库可持续和健康。本书强调了普通编程者和软件工程之间的这种区别。
软件工程师如何管理一个动态代码库,该代码库会在其整个生命周期内不断发展并响应不断变化的需求和要求?根据他们在 Google 的经验,软件工程师 Titus Winters 和 Hyrum Wright 以及技术作家 Tom Manshreck 对一些世界领先的从业者如何构建和维护软件提出了坦诚而有见地的看法。本书涵盖了 Google 独特的工程文化、流程和工具,以及这些方面如何提高工程组织的效率。
你将探索软件组织在设计、架构、编写和维护代码时应牢记的三个基本原则:
描述:获取有关在 Python 中操作、处理、清理和处理数据集的完整说明。本书的第二版针对 Python 3.6 进行了更新,其中包含实用案例研究,向你展示如何有效解决广泛的数据分析问题。你将在此过程中学习最新版本的 pandas、NumPy、IPython 和 Jupyter。
本书由 Python pandas 项目的创建者韦斯·麦金尼 (Wes McKinney) 撰写,是对 Python 数据科学工具的现代实用介绍。它非常适合刚接触 Python 的分析师和刚接触数据科学和科学计算的 Python 程序员。 GitHub 上提供了数据文件和相关材料。
描述:自从上一版 Effective Java 在 Java 6 发布后不久发布以来,Java 发生了翻天覆地的变化。这个 Jolt 获奖经典现在已经彻底更新,以充分利用最新的语言和库功能。现代 Java 对多种范例的支持增加了对特定最佳实践建议的需求,本书提供了这些建议。
与以前的版本一样,第三版 Effective Java 的每一章都由几个“项目”组成,每个项目都以一篇简短的独立文章的形式呈现,提供具体建议、对 Java 平台微妙之处的洞察以及更新的代码示例。对每个项目的全面描述和解释阐明了该做什么、不该做什么以及为什么。
本书涵盖:
描述:易于理解和有趣的阅读,这个更新版本的《Python入门》是初级程序员和语言新手的理想选择。作者 Bill Lubanovic 将带你从基础知识到更复杂、更多样化的主题,将教程与菜谱式代码食谱相结合,以解释 Python 3 中的概念。章末练习可帮助你练习所学内容。
你将打下坚实的语言基础,包括测试、调试、代码重用和其他开发技巧的最佳实践。本书还向你展示了如何使用各种 Python 工具和开源包将 Python 用于商业、科学和艺术领域的应用程序。
描述:算法一直在计算科学和实践中发挥着重要作用。除了传统计算之外,使用算法解决现实世界问题的能力是任何开发人员或程序员都必须具备的一项重要技能。本书不仅会帮助你培养选择和使用算法来解决现实问题的技能,还会帮助你理解它的工作原理。
你将学到什么:
本书适合谁:
本书适用于想要了解使用算法解决问题和编写高效代码的程序员或开发人员。无论你是希望以清晰简洁的方式学习最常用算法的初学者,还是希望探索数据科学、机器学习和密码学领域前沿算法的经验丰富的程序员,你都会发现这本书很有用。虽然 Python 编程经验是必须的,但数据科学知识会有所帮助,但不是必需的。
描述:《程序员修炼之道》是你多年来阅读、重读和再次阅读的稀有技术书籍之一。无论你是该领域的新手还是经验丰富的从业者,每次都会获得新的见解。
主题范围从个人责任和职业发展到使你的代码保持灵活性并易于适应和重用的架构技术。阅读本书,你将学习如何:
描述:本书针对你将面临的真正挑战提供了直接、严肃的解决方案 — 这些挑战将成就或破坏你的项目。
《整洁架构之道》是每一位当前或有抱负的软件架构师、系统分析师、系统设计师和软件经理的必备读物,也是每一位必须执行他人设计的程序员的必备读物。
描述:构建软件比以往任何时候都更难。作为开发人员,你不仅要追逐不断变化的技术趋势,还需要了解软件背后的业务领域。这本实用的书为你提供了一组核心模式、原则和实践,用于分析业务领域、理解业务战略,最重要的是,使软件设计与其业务需求保持一致。
作者 Vlad Khononov 向你展示了这些实践如何导致业务逻辑的稳健实施并有助于面向未来的软件设计和架构。你将检查领域驱动设计 (DDD) 与其他方法之间的关系,以确保你做出满足业务需求的架构决策。你还将探索在初创公司中实施 DDD 的真实故事。
通过本书,你将学习如何:
描述:Grokking Algorithms 是对这一核心计算机科学主题的友好解读。在其中,你将学习如何将常用算法应用于你每天面临的实际编程问题。你将从排序和搜索等任务开始。随着技能的积累,你将解决更复杂的问题,例如数据压缩和人工智能。每个精心呈现的示例都包含有用的图表和完整注释的 Python 代码示例。到本书结束时,你将掌握广泛适用的算法以及如何以及何时使用它们。
描述:当你对 C# 9.0 或 .NET 5 有疑问时,这本畅销指南将为你提供所需的答案。 C# 是一种具有不同寻常的灵活性和广度的语言,但随着它的不断发展,还有很多东西需要学习。按照 O'Reilly 的 Nutshell 指南的传统,这个彻底更新的版本简直就是当今可用的 C# 语言的最佳单卷参考。
《C# 9.0 in a Nutshell》 围绕概念和用例进行组织,为中级和高级程序员提供了 C# 和 .NET 的简明地图,该地图还探索了重要的深度。
描述:《微服务架构设计模式》教你如何开发和部署基于生产质量的微服务应用程序。这套无价的设计模式建立在几十年的分布式系统经验之上,添加了新的模式来编写服务并将它们组合成在现实世界条件下可扩展和可靠运行的系统。本书不仅仅是一个模式目录,还提供了以经验为导向的建议,以帮助你设计、实施、测试和部署基于微服务的应用程序。
至此本文所讲地二十本书就全部介绍完了,希望能对大家有所帮助。
关注公众号【waynblog】每周分享技术干货、开源项目、实战经验、高效开发工具等,你的关注将是我的更新动力!