一周上榜新书原创书四本,外版书两本。你喜欢哪一本?
1、数据结构与算法之美(全彩印刷)
本书分为11章。第1章介绍复杂度分析方法。第2章介绍数组、链表、栈和队列这些基础的线性表数据结构。第3章介绍递归编程技巧、8种经典排序、二分查找及二分查找的变体问题。第4章介绍哈希表、位图、哈希算法和布隆过滤器。第5章介绍树相关的数据结构,包括二叉树、二叉查找树、平衡二叉查找树、递归树和B+树。第6章介绍堆,以及堆的各种应用,包括堆排序、优先级队列、求Top K、求中位数和求百分位数。第7章介绍跳表、并查集、线段树和树状数组这些比较高级的数据结构。第8章介绍字符串匹配算法,包括BF算法、RK算法、BM算法、KMP算法、Trie树和AC自动机。第9章介绍图及相关算法,包括深度优先搜索、广度优先搜索、拓扑排序、Dijkstra算法、Floyd算法、A*算法、Z小生成树算法、Z大流算法和Z大二分匹配等。第10章介绍4种算法思想,包括贪心、分治、回溯和动态规划。第11章介绍4个经典项目中的数据结构和算法的应用,包括Redis、搜索引擎、鉴权限流和短网址服务。另外,附录A为书中的思考题的解答。
尽管本书的大部分代码采用Java语言编写,但本书讲解的知识与具体编程语言无关,因此,本书不但适合各种类型的研发工程师,而且可以作为高校计算机相关专业师生的学习用书和培训学校的教材。
2、Java代码审计 入门篇
代码审计(Code Audit)是一种以发现安全漏洞、程序错误和违反程序规范为目标的源代码分析。Web应用程序目前仍然是安全防御的重中之重,对业务的代码进行安全审计是十分重要的。加之Java语言的应用范围广,国内外大型企业大多采用Java作为核心的开发语言,因此对于安全从业者来说,Java代码审计成为了自身应该掌握的关键技能。
(1)第1~4章介绍Java代码审计预备知识。
(2)第5章和第6章介绍典型的Java Web漏洞。
(3)第7章介绍Java EE开发框架安全审计。
(4)第8章介绍开源Java Web应用代码审计实战知识。
(5)第9章介绍“交互式应用程序安全测试”与“运行时应用自保护”的相关知识。
(6)附录帮助读者了解Java安全编码规范。
本书将理论讲解和实验操作相结合,深入浅出、循序渐进,并通过大量的图文解说,方便初学者快速掌握Java代码安全审计的具体方法和流程,并逐步建立对Java代码安全审计的系统性认知。
3、CSS新世界
“CSS世界三部曲”包括《CSS世界》《CSS选择器世界》和《CSS新世界》,本书是其中的第三部,也是最后一部。
本书的价值就在于帮助前端开发者节约时间。作为作者,我来研究和积累、实践和总结,而开发者只要保持学习的心态,反复阅读本书,就能在很短的时间内学到CSS的精华和细节,收获我10多年积累下来的经验和技巧。
本书是一本CSS进阶书,适合有一定CSS基础的前端开发者学习,新手学起来可能会有一些吃力。为了精炼内容,过于基础的知识我会直接略过不讲。
在本书中,作者结合自己多年的从业经验,讲解CSS基础知识,并充分考虑前端开发者的需求,以CSS新特性的历史背景为线索,去粗取精,注重细节,深入浅出地介绍了上百个CSS新特性。
4、学Python 不加班 轻松实现办公自动化
本书是一本专为普通办公人员打造的实战型Python工具书,适合所有想提高工作效率的办公人员,特别适合那些经常与各种办公软件打交道、经常处理复杂、烦琐的文档任务,希望通过学习编程来减少重复劳动的职场人士。本书也非常适合即将步入职场的大、中专院校学生阅读,还可以作为培训机构的教学用书。
本书从实际出发,每个实例都介绍了设计思路与知识点,避免读者走弯路。无论是初学者还是有一定基础的读者,通过学习本书,都可以编写出属于自己的应用程序。
本书汇集了日常办公和处理文档时常见的问题,通过实例的演示与讲解,帮助读者灵活有效地使用Python处理工作中遇到的问题。全书共11章,涵盖Python的各种应用场景,具体包括文件管理自动化,网络信息自动获取,TXT、XLS/XLSX、DOC/DOCX、PPT、PDF、图片文件的自动化处理,模拟鼠标、键盘操控本地软件,自动化运行管理等。本书力图淡化编程中的抽象概念,贴合工作场景,注重实战效果,通过对Python技术的巧妙讲解,帮助读者成为高效率的办公室“超人”。
5、Python编程实战 妙趣横生的项目之旅
在本书中,你将使用Python编程语言模拟探索火星、木星以及银河系最遥远的地方,体验诗人的意境,了解高级的金融知识,深挖游戏节目的诡计等。你还会学到各种各样的技术,如用马尔可夫链分析技术写俳句,用蒙特卡罗仿真模拟金融市场变化,用图像叠加技术来完善天体摄影图片,用基因遗传算法模拟培育一群大鼠等。与此同时,你还会积累一些模块的使用经验,例如pygame、Pylint、pydocstyle、Tkinter、python-docx、Matplotlib和pillow。最重要的是,在阅读本书的过程中,你会学得很开心。
你可以把本书当作学习Python的辅助类图书。本书是一本完全面向初学者的入门图书。在本书中,你将使用基于项目的方法进行自我训练。本书不会浪费你的金钱和书架空间,也不是对你已学过的知识概念的重新整理。不过,请别担心!本书不会让你独自去完成这些项目,书中所有的代码均有注释和解释。
6、领域特定语言
1.本书由世界软件开发大师Martin Fowler历时多年完成,堪称DSL领域的丰碑之作,书中充分介绍了在适用的场景中构建DSL的多种有效技。
2.本书介绍的技巧可用于大多数现代面向对象语言。书中给出了许多采用Java和C#编写的示例,并精选了部分适合采用Ruby编写的示例。
3.通过这部内容丰富、覆盖范围广泛的著作,开发人员能够掌握做出DSL重要决策所需的知识,并在恰当使用DSL时获得技术和业务上的显著收益。
4.通过阅读本书,软件开发人员可全面的了解各种DSL及其构建方式,提高开发生产力和沟通能力。
全书共57章,分为6个部分,全面介绍了DSL概念、DSL常见主题、外部DSL主题、内部DSL主题、备选计算模型以及代码生成等内容,揭示了与编程语言无关的通用原则和模式,阐释了如何通过DSL有效提高开发人员的生产力以及增进与领域专家的有效沟通,能为开发人员选择和使用DSL提供有效的决策依据和指导方法。
本书适合想要了解各种DSL及其构造方式,理解其通用原则、模式和适用场景,以提高开发生产力和沟通能力的软件开发人员阅读。