软件开发人员必须阅读的20本书(二)

简介: 软件开发人员必须阅读的20本书(二)


11.《利用 Python 进行数据分析》

image.png

描述:获取有关在 Python 中操作、处理、清理和处理数据集的完整说明。本书的第二版针对 Python 3.6 进行了更新,其中包含实用案例研究,向你展示如何有效解决广泛的数据分析问题。你将在此过程中学习最新版本的 pandas、NumPy、IPython 和 Jupyter。

本书由 Python pandas 项目的创建者韦斯·麦金尼 (Wes McKinney) 撰写,是对 Python 数据科学工具的现代实用介绍。它非常适合刚接触 Python 的分析师和刚接触数据科学和科学计算的 Python 程序员。 GitHub 上提供了数据文件和相关材料。

  • 使用 IPython shell 和 Jupyter notebook 进行探索性计算 学习 NumPy(数值 Python)中的基本和高级功能
  • 开始使用pandas库中的数据分析工具
  • 使用灵活的工具加载、清理、转换、合并和重塑数据
  • 使用 matplotlib 创建信息可视化
  • 应用 pandas groupby 工具对数据集进行切片、切块和汇总
  • 分析和操作规则和不规则的时间序列数据
  • 学习如何通过全面、详细的示例解决现实世界的数据分析问题

12.《Effective JAVA》

image.png

描述:自从上一版 Effective Java 在 Java 6 发布后不久发布以来,Java 发生了翻天覆地的变化。这个 Jolt 获奖经典现在已经彻底更新,以充分利用最新的语言和库功能。现代 Java 对多种范例的支持增加了对特定最佳实践建议的需求,本书提供了这些建议。

与以前的版本一样,第三版 Effective Java 的每一章都由几个“项目”组成,每个项目都以一篇简短的独立文章的形式呈现,提供具体建议、对 Java 平台微妙之处的洞察以及更新的代码示例。对每个项目的全面描述和解释阐明了该做什么、不该做什么以及为什么。

本书涵盖:

  • 功能接口、lambda 表达式、方法引用和流
  • 接口中的默认和静态方法
  • 类型推断,包括通用类型的菱形运算符
  • @SafeVarargs 注释
  • try-with-resources 语句
  • 新的库特性,例如 Optional 接口、java.time 和集合的便捷工厂方法

13.《Python入门》

image.png

描述:易于理解和有趣的阅读,这个更新版本的《Python入门》是初级程序员和语言新手的理想选择。作者 Bill Lubanovic 将带你从基础知识到更复杂、更多样化的主题,将教程与菜谱式代码食谱相结合,以解释 Python 3 中的概念。章末练习可帮助你练习所学内容。

你将打下坚实的语言基础,包括测试、调试、代码重用和其他开发技巧的最佳实践。本书还向你展示了如何使用各种 Python 工具和开源包将 Python 用于商业、科学和艺术领域的应用程序。

14.《每个程序员都应该知道的40个算法》

image.png

描述:算法一直在计算科学和实践中发挥着重要作用。除了传统计算之外,使用算法解决现实世界问题的能力是任何开发人员或程序员都必须具备的一项重要技能。本书不仅会帮助你培养选择和使用算法来解决现实问题的技能,还会帮助你理解它的工作原理。

你将学到什么:

  • 探索 Python 库中的现有数据结构和算法
  • 使用网络分析实施用于欺诈检测的图形算法
  • 使用机器学习算法对相似的推文进行聚类并实时处理 Twitter 数据
  • 使用监督学习算法预测天气
  • 使用神经网络进行物体检测
  • 创建一个向订阅者推荐相关电影的推荐引擎
  • 在谷歌云平台 (GCP) 上使用对称和非对称加密实现万无一失的安全

本书适合谁:

本书适用于想要了解使用算法解决问题和编写高效代码的程序员或开发人员。无论你是希望以清晰简洁的方式学习最常用算法的初学者,还是希望探索数据科学、机器学习和密码学领域前沿算法的经验丰富的程序员,你都会发现这本书很有用。虽然 Python 编程经验是必须的,但数据科学知识会有所帮助,但不是必需的。

15. 《程序员修炼之道——从小工到专家》

image.png

描述:《程序员修炼之道》是你多年来阅读、重读和再次阅读的稀有技术书籍之一。无论你是该领域的新手还是经验丰富的从业者,每次都会获得新的见解。

主题范围从个人责任和职业发展到使你的代码保持灵活性并易于适应和重用的架构技术。阅读本书,你将学习如何:

  • 对抗软件腐烂
  • 不断学习
  • 避免重复知识的陷阱
  • 编写灵活、动态和适应性强的代码
  • 利用基本工具的力量
  • 避免巧合编程
  • 了解真实需求
  • 解决并发代码底层问题
  • 防范安全漏洞
  • 建立务实的程序员团队
  • 对你的工作和事业负责
  • 无情且有效地进行测试,包括基于属性的测试
  • 实施实用入门工具包
  • 取悦你的用户

16.《整洁架构之道》

image.png描述:本书针对你将面临的真正挑战提供了直接、严肃的解决方案 — 这些挑战将成就或破坏你的项目。

  • 了解软件架构师需要实现什么——以及实现它的核心原则和实践
  • 掌握解决功能、组件分离和数据管理的基本软件设计原则
  • 了解编程范式如何通过限制开发人员可以做什么来强加纪律
  • 了解什么是至关重要的,什么只是“细节”
  • 为网络、数据库、胖客户端、控制台和嵌入式应用程序实施最佳的高级结构
  • 定义适当的边界和层,并组织组件和服务
  • 查看为什么设计和架构会出错,以及如何防止(或修复)这些故障

《整洁架构之道》是每一位当前或有抱负的软件架构师、系统分析师、系统设计师和软件经理的必备读物,也是每一位必须执行他人设计的程序员的必备读物。

17. 《领域驱动设计学习手册》

image.png

描述:构建软件比以往任何时候都更难。作为开发人员,你不仅要追逐不断变化的技术趋势,还需要了解软件背后的业务领域。这本实用的书为你提供了一组核心模式、原则和实践,用于分析业务领域、理解业务战略,最重要的是,使软件设计与其业务需求保持一致。

作者 Vlad Khononov 向你展示了这些实践如何导致业务逻辑的稳健实施并有助于面向未来的软件设计和架构。你将检查领域驱动设计 (DDD) 与其他方法之间的关系,以确保你做出满足业务需求的架构决策。你还将探索在初创公司中实施 DDD 的真实故事。

通过本书,你将学习如何:

  • 分析公司的业务领域以了解你正在构建的系统如何符合其竞争战略
  • 使用 DDD 的战略和战术工具来构建满足业务需求的有效软件解决方案
  • 建立对你遇到的业务领域的共同理解
  • 将系统分解为有界上下文
  • 协调多个团队的工作
  • 逐步将 DDD 引入棕地项目

18.《算法图解》

image.png

描述:Grokking Algorithms 是对这一核心计算机科学主题的友好解读。在其中,你将学习如何将常用算法应用于你每天面临的实际编程问题。你将从排序和搜索等任务开始。随着技能的积累,你将解决更复杂的问题,例如数据压缩和人工智能。每个精心呈现的示例都包含有用的图表和完整注释的 Python 代码示例。到本书结束时,你将掌握广泛适用的算法以及如何以及何时使用它们。

19.《C# 9.0 in a Nutshell: The Definitive Reference》

image.png

描述:当你对 C# 9.0 或 .NET 5 有疑问时,这本畅销指南将为你提供所需的答案。 C# 是一种具有不同寻常的灵活性和广度的语言,但随着它的不断发展,还有很多东西需要学习。按照 O'Reilly 的 Nutshell 指南的传统,这个彻底更新的版本简直就是当今可用的 C# 语言的最佳单卷参考。

《C# 9.0 in a Nutshell》 围绕概念和用例进行组织,为中级和高级程序员提供了 C# 和 .NET 的简明地图,该地图还探索了重要的深度。

  • 快速掌握 C#,从语法和变量到指针、记录、闭包和模式等高级主题
  • 通过专门针对该主题的三章深入挖掘 LINQ
  • 探索并发和异步、高级线程和并行编程
  • 使用 .NET 功能,包括正则表达式、网络、跨度、反射和密码学

20.《微服务架构设计模式》

image.png

描述:《微服务架构设计模式》教你如何开发和部署基于生产质量的微服务应用程序。这套无价的设计模式建立在几十年的分布式系统经验之上,添加了新的模式来编写服务并将它们组合成在现实世界条件下可扩展和可靠运行的系统。本书不仅仅是一个模式目录,还提供了以经验为导向的建议,以帮助你设计、实施、测试和部署基于微服务的应用程序。

总结

至此本文所讲地二十本书就全部介绍完了,希望能对大家有所帮助。



目录
相关文章
|
7月前
|
测试技术 数据安全/隐私保护
软件测试制度-新手小白如何制定测试管理工作规范?
软件测试制度-新手小白如何制定测试管理工作规范?
125 1
|
4月前
|
存储 定位技术 项目管理
软件工程IT项目管理复习之 十:项目沟通管理
软件工程IT项目管理复习之 十:项目沟通管理
62 1
软件工程IT项目管理复习之 十:项目沟通管理
|
9月前
|
安全 测试技术 API
产品经理必学技术接口文档知识,提高工作效率
产品经理和开发人员之间的高效沟通和协作是项目成功的关键因素之一。在产品开发的不同阶段,产品经理需要了解开发工作的进度与掌握需求变化,以确保团队在同一方向上协作,以最大化项目的成功。
产品经理必学技术接口文档知识,提高工作效率
|
10月前
|
设计模式 Rust 架构师
软件开发人员必须阅读的20本书(一)
软件开发人员必须阅读的20本书(一)
80 1
|
Java 开发者 开发工具
如何做好干系人管理?知己知彼,百战百胜! | 开发者必读(080期)
最炫的技术新知、最热门的大咖公开课、最有趣的开发者活动、最实用的工具干货,就在《开发者必读》!
558 0
|
项目管理
艾伟也谈项目管理,我也发软件开发团队的思考(侧重点是人员)
  //上个月给我们老板的mail.洋洋洒洒6000多字.  //为了方便公开,改了一下.以致可能有些地方前言不搭后语.  //不管他同意不同意,先在我们组实行了再说.  //请多大家多提提意见,日后看有没有机会找老板当面交流  经历的几个项目,项目的进度老是不尽如人意。
1152 0
|
测试技术
不能成为专业软件测试人员的10大理由
你是一名专业的测试人员吗?  《转载》   如果你看到这篇文章了,你就有机会成为专业的了!   我写这篇文章并不是因为这个,其他无数的测试人员有比我更多的好东西拿来分享。总体而言,我的意思是在空闲时间阅读其他测试相关文章来提高自己的测试技能时,你也将是有志成为专业测试人员中的一分子。
1176 0