2021年出版的新书很多,程序员可以一直关注的书有几本:
1.领域特定语言
[美] 马丁·福勒(Martin Fowler) 徐昊、郑烨、熊节 译
领域特定语言DSL,通过Java解释C语言分析的具体案例DSL软件开发程序员原则,软件开发程序员教程,马丁·福勒新作。
领域特定语言是领域特定语言(Domain-Specific Language,DSL)软件开发大师马丁是该领域的丰碑之作·福勒(Martin Fowler)写作历时多年。 全书共57章,分6部分,全面介绍DSL概念、DSL常见主题、外部DSL主题、内部DSL主题、备选计算模型和代码生成揭示了与编程语言无关的一般原则和模式,并解释了如何通过DSL有效提高开发人员的生产力,加强与领域专家的有效沟通,可以为开发人员选择和使用DSL提供有效的决策依据和指导方法。 这本书适合想了解各种各样的东西DSL软件开发人员及其结构模式,了解其一般原则、模式和适用场景,以提高开发生产力和沟通能力。
2、数据结构 Python语言描述 第2版
[美] 肯尼思·,A.兰伯特(Kenneth,A.,Lambert,) 着,肖鉴明 译
基于数据结构算法的入门教程Python语言讲解,国外高校教材升级,书中包含大量练习和编程项目,随书赠送配套资源。
本书用 Python 用语言解释数据结构和实现方法。全书首先概述 Python 编程功能——这些功能是实际编程和解决问题所必需的;其次,介绍抽象数据类型的规范、实现和应用,以及接口和实现之间的重要差异;然后介绍线性集、堆栈、队列和列表;最后介绍树木、图片等。本书附有大量的复习题和编程项目,旨在帮助读者巩固所学知识。 这本书不仅适合高校计算机专业的师生,也适合 Python 有兴趣的读者和程序员阅读。
3、算法设计
乔恩·克莱因伯格(Jon Kleinberg) 着,王海鹏 译
用实例阐明枯燥的算法理论,更注重算法设计思维的培养,适合作为算法入门书。
这是一本被许多著名大学采用的算法设计课程教科书,强调用实例阐明枯燥的算法理论,更注重算法设计理念而不是算法复杂性分析。本书采用新颖的教学方法,通过分析现实世界中的问题来激发算法思想。两位作者引导学生以清晰直接的方式分析定义问题,找出适合给定场景的算法设计原则。本书鼓励读者对算法设计过程有更深入的了解,探索算法在更广泛的计算机科学领域的应用。
- 强调问题分析和设计方法;
- 遵循结构化教学题形式化、算法设计和算法分析的全过程;
- 展示计算机科学家设计和应用算法的过程;
- 包含 200 多个作业题,其中一些来自 Yahoo! 和 Oracle 等公司;
- 广泛应用于处理 NP 这些都是极其重要的算法主题,难题和随机应用算法。
4、数据结构与算法之美(全彩印刷)
王争着
20个数据结构和算法,100个真实项目场景案例,300多个手绘图解算法
本书分为11章。第一章介绍复杂度分析方法。第二章介绍了基于数组、链表、栈和队列的线性表数据结构。第三章介绍递归编程技巧、8种经典排序、二分搜索和二分搜索的变体问题。第四章介绍哈希表、位图、哈希算法和布隆过滤器。第五章介绍了与树有关的数据结构,包括二叉树、二叉搜索树、平衡二叉搜索树、递归树和B 树。第六章介绍堆,以及堆的各种应用,包括堆排序、优先队列、求Top K、求中位数和百分位数。第七章介绍高级数据结构,如跳表、收集、线段树和树形数组。第八章介绍字符串匹配算法,包括BF算法、RK算法、BM算法、KMP算法、Trie树和AC自动机。第九章介绍图及相关算法,包括深度优先搜索、广度优先搜索、拓扑排名、Dijkstra算法、Floyd算法、A*算法、Z小生成树算法,Z大流算法与Z大二分匹配等。第十章介绍了贪婪、分治、回溯和动态规划四种算法思想。第11章介绍了数据结构和算法在四个经典项目中的应用,包括Redis、搜索引擎、权限流和短网站服务。另外,附录A是书中思考题的答案。
5、Python快速开始编程 自动化繁琐的工作 第2版
[美] 阿尔·斯维加特(Al Sweigart) 着
Python编程从入门到实践姐妹,零基础自学Python教程书提供支持同步教学视频和在线编程环境!Python3.X版本更新
在本书中,你将学习利用Python手动完成编程需要几个小时,没有必要提前有编程经验。通过阅读这本书,你将学习Python探索基础知识Python丰富的模块库,并完成特定的任务(例如,从网站获取数据,读取数据PDF和Word文档等)。本书还包括输入验证的实现方法和自动更新CSV文件技巧。一旦你掌握了编程的基本知识,你就可以毫不费力地创建它Python许多繁琐的工作,包括:
- 搜索并保存一个或多个文件中的类似文本;
- 创建、更新、移动和重命名成百上千个文件和文件夹;
- 下载搜索结果和处理Web在线内容;
- 快速批量处理电子表格;
- 拆分、合并PDF加水印加密文件;
- 向特定人群发送提醒邮件和文本通知;
- 同时裁剪、调整、编辑成千上万张图片。
6、学Python 不加班 办公自动化很容易实现
何华平 着
Python编程零基础入门实践教程Python处理Excel、Word、PPT、PDF、提高职场办公效率,解决办公问题,提供学习资源和教学视频
这是关于如何使用它的Python提高日常办公效率的书籍体现了作者多年的实践经验和独特的思维,旨在帮助读者准确有效地完成大量高重复性的工作。 《学Python,不加班:轻松实现办公自动化汇集了日常办公和文件处理中常见的问题,帮助读者通过示例演示和讲解灵活有效地使用Python处理工作中遇到的问题。全书共11章,涵盖Python各种应用场景,包括文件管理自动化、网络信息自动获取、TXT、XLS/XLSX、DOC/DOCX、PPT、PDF、模拟鼠标、键盘控制本地软件、自动化运行管理等图片文件的自动化处理。本书试图淡化编程中的抽象概念,适应工作场景,注重实际作战效果Python巧妙的技术解释帮助读者成为高效办公室的超人。
7.机器学习数学
雷明 着
人工智能深度学习领域教程,AI程序员的数学参考书,彻底了解机器学习算法,从数学层面了解核心算法原理的逻辑,python程序讲解
本书的目标是帮助读者全面系统地学习机器学习所需的数学知识。这本书由章组成,力求对机器学习的数学知识进行准确、最小的覆盖。包括微积分、线性代数和矩阵论、优化方法、概率论、信息论、随机过程和图论。这本书从机器学习的角度教授这些数学知识,并解释了它们在该领域的应用,使读者能够直观、具体地理解一些抽象的数学知识和理论的实际应用。 本书内容紧凑,结构清晰,简单简单,讲解详细。可作为计算机、人工智能、电子工程、自动化、数学等相关专业的教材和教学参考书。本书对人工智能领域的工程技术人员和产品研发人员也有很强的参考价值。对于广大数学与应用的数学爱好者,本书亦为适合自学的读本。
8.解构领域驱动设计
张逸 着
DDD领域驱动设计教程可以进一步完善领域驱动设计方法体系,帮助读者提高领域建模和软件设计能力。
本书全面阐述了领域驱动设计(domain-driven design,DDD)在此基础上,提出了领域驱动设计统一过程(domain-driven design unified process,DDDUP),将整个软件构建过程分为三个阶段:全局分析、架构映射和领域建模。除了给出许多案例来解释领域驱动设计统一过程中的方法和模式外,本书还充分展示了如何实施和实施领域驱动设计统一过程。为了更好地利用领域驱动设计的统一过程,本书还创造性地引入了业务服务、菱形对称架构、领域驱动架构、服务驱动设计等方法和模式,总结了领域驱动设计能力评价模型和参考过程模型。为了更好地利用领域驱动设计的统一过程,本书还创造性地引入了业务服务、菱形对称架构、领域驱动架构、服务驱动设计等方法和模式,总结了领域驱动设计能力评价模型和参考过程模型。本书提出的一套完整的方法系统已在多个项目中得到推广和实施。
9、Linux这样学(第二版)
刘遄 着
Linux基于入门教程书籍Linux系统RHEL8.每章都有图表和练习,知识点覆盖红帽认证RHCE考试要求。
1.这本书花了近三年时间修改了1500多次,内容来自中国每天访问近6万人次的同名Linux培训课程;
2.基于上一版的系统更新Linux系统RHEL 8适合编写CentOS、Fedora、Ubuntu等主流衍生版;
3.面向零基础读者,从Linux从基础知识入手,逐步提高内容难度。
《Linux这样学(第二版)在上一版的基础上进行了大量更新,基于红帽RHEL 8系统编写,适用于内容CenOS、Fedora等系统。本书共分为20章,内容涵盖了部署Linux系统,常用的Linux命令,与文件读写操作有关的技术,使用Vim编辑器编写和修改配置文件,用户身份与文件权限的设置,硬盘设备分区、格式化以及挂载等操作,部署RAID磁盘阵列和LVM,firewalld防火墙与iptables防火墙的区别和配置,使用ssh服务管理远程主机,使用Apache服务部署静态网站,使用vsftpd服务传输文件,使用Samba或NFS实现文件共享,使用BIND提供域名解析服务,使用DHCP动态管理主机地址,使用Postfix与Dovecot部署邮件系统,使用Ansible服务实现自动化运维,使用iSCSI服务部署网络存储,使用MariaDB数据库管理系统,使用PXE+Kickstart无人值守安装服务,使用LNMP架构部署动态网站环境等。此外,本书的配套站点还深度点评了红帽RHCSA、RHCE、RHCA认证,方便读者备考。
10、CSS新世界
张鑫旭 著
CSS3.0入门到进阶教程,前端博客"鑫空间-鑫生活"博主十年经验沉淀之作,大量实战案例且具有在线Demo演示,配套官方网站,随时与作者沟通学习。
本书是“CSS世界三部曲”的最后一部。这是一本关于CSS的进阶读物,专门讲CSS3及其之后版本的新特性。在本书中,作者结合自己多年的从业经验,讲解CSS基础知识,并充分考虑前端开发者的需求,以CSS新特性的历史背景为线索,去粗取精,注重细节,深入浅出地介绍了上百个CSS新特性。此外,作者专门还为本书开发了配套网站,用于书中实例效果的在线展示和问题答疑。
本书的所有内容都是作者经过深入思考和探索后提炼出来的,知识点多且内容丰富,注重技术细节、经验分享和解决问题的思路。本书的主要目标是帮助前端开发者突破CSS技能提升的瓶颈,非常适合具有一定CSS基础的前端开发者阅读。
11、Linux命令行大全 第2版
[美] 威廉·肖特斯(William Shotts) 著,门佳,李伟 译
手把手教你学Linux操作系统,脚本shell编程代码书写,系统管理编程运维,学习使用bash(LinuxShell)编写完整的程序。
本书对Linux命令行进行详细的介绍,全书内容包括4个部分,第一部分由Shell的介绍开启命令行基础知识的学习之旅;第二部分讲述配置文件的编辑,如何通过命令行控制计算机;第三部分探讨常见的任务与必备工具;第四部分全面介绍Shell编程,读者可通过动手编写Shell脚本掌握Linux命令的应用,从而实现常见计算任务的自动化。通过阅读本书,读者将对Linux命令有更加深入的理解,并且可以将其应用到实际的工作中。 本书适合Linux初学人员、Linux系统管理人员及Linux爱好者阅读。
12、UNIX传奇:历史与回忆
[美] 布莱恩·W.克尼汉(Brian,W.,Kernighan) 著,韩磊 译
UNIX的诞生记与发展史,计算机先驱布莱恩·W.克尼汉继C程序设计语言后又一力作,讲述贝尔实验室的幕后故事,C/C++等重要发明的起源,探寻计算科学之光!
自1969年在贝尔实验室的阁楼上诞生以来,Unix操作系统的发展远远超出其创造者们的想象。它带动了许多创新软件的开发,影响了无数程序员,改变了整个计算机技术的发展轨迹。 本书不但书写Unix的历史,而且记录作者的回忆,一探Unix的起源,试图解释什么是Unix,Unix是如何产生的,以及Unix为何如此重要。除此之外,本书以轻松的口吻讲述了一群在贝尔实验室工作的发明天才的有趣往事,本书中每一个故事都是鲜为人知却又值得传播的宝贵资源。 本书适合对计算机或相关历史感兴趣的人阅读。读者不需要有太多的专业技术背景,就可以欣赏Unix背后的思想,了解它的重要性。
13、精通Rust 第2版
[印] 拉胡尔·沙玛(Rahul Sharma)[芬]韦萨·凯拉维塔 著,邓世超 译
Rust系统编程指南自学教程书籍,学习Rust编程语言基础,掌握更高端的编程范式,成就高段位的编程极客。
本书内容共17章,由浅入深地讲解Rust相关的知识,涉及基础语法、软件包管理器、测试工具、类型系统、内存管理、异常处理、高级类型、并发模型、宏、外部函数接口、网络编程、HTTP、数据库、WebAssembly、GTK+框架和GDB调试等重要知识点。
本书适合想学习Rust编程的读者阅读,希望读者能够对C、C++或者Python有一些了解。书中丰富的代码示例和详细的讲解能够帮助读者快速上手,高效率掌握Rust编程。