[套装书]程序员必会的40种算法+程序员进阶心法:快速突破成长瓶颈(2册)

作者
伊姆兰·艾哈迈德 胡峰
丛书名
华章程序员书库
出版社
机械工业出版社
ISBN
9782109109530
简要
简介
内容简介书籍计算机书籍 ---------------------------8083974 - 程序员必会的40种算法--------------------------- 本书致力于利用算法求解实际问题。第1部分介绍算法的核心内容,探讨什么是算法、如何设计算法,同时学习在算法中使用的数据结构。重点讲解排序算法、查找算法和求解图问题的算法。第二部分讨论各种机器学习算法,包括无监督机器学习算法和传统有监督学习算法,详细讨论一些自然语言处理算法和推荐引擎。第三部分讨论更高级的算法概念,重点介绍了密码算法和大规模算法。本书还包含一些案例分析(如天气预测、推文聚类和电影推荐引擎),用来说明如何才能更好地应用这些算法。 ---------------------------8061663 - 程序员进阶心法:快速突破成长瓶颈--------------------------- 这是一部能指导程序员在职业生涯各阶段做出正确方向选择并规划出清晰进阶路径的著作,是作者10余年来从一名普通的程序员晋级为资深技术专家、架构师和技术Leader的真实经历记录和宝贵经验总结。它从进阶路径、程序之术、成长之道、思维修炼4个维度,不仅传授知识,而且授人以渔,提供程序员成长的清晰路径和深度思考。 全书共16章75个主题,分为四篇: 第一篇 进阶路径(第1-4章) 为程序员各个阶段的路径选择和规划提供了有价值的建议。“启程之初”要选择正确的技术方向,拥有清晰的技能图谱;踏入“程序江湖”后,如何攀登程序员的职场阶梯,找到自己的角色定位,在进阶路径上不断成长蜕变,实现自我跨越。 . 第二篇 程序之术(第5-7章) 程序之路前期,多会是以编程(炼术)为主,它关乎编码前的程序系统架构与设计,具体的功能模块的开发与编码,以及之后缺陷 bug 的调试与修复。 第三篇:成长之道(第8-12章) 除了编程写代码之外,还有其他需要修行,如工程的方法、计划的体系、习惯的养成、精进的模式、展现的方式等,这些都是技术之外的成长心法,在进阶路上让你成为更好的自己。 第四篇:思维修炼(第13-16章) 行道中途,生活和工作中均会面临各种困扰,思之不竭,求索之路漫漫,又该如何选择道路?这一篇将教你拨开迷雾,洞察本质,掌握做选择的正确逻辑。
目录
[套装书具体书目]
8061663 - 程序员进阶心法:快速突破成长瓶颈 - 9787111629832 - 机械工业出版社 - 定价 89
8083974 - 程序员必会的40种算法 - 9787111690337 - 机械工业出版社 - 定价 99



---------------------------8083974 - 程序员必会的40种算法---------------------------


译者序
前言
关于作者
关于审校者
第一部分 基础与核心算法
第1章 算法概述2
1.1 什么是算法2
1.2 描述算法逻辑4
1.2.1 理解伪代码4
1.2.2 使用代码片段6
1.2.3 制定执行计划6
1.3 Python包简介7
1.3.1 Python包8
1.3.2 通过Jupyter Notebook执行Python9
1.4 算法设计技术10
1.4.1 数据维度11
1.4.2 计算维度12
1.5 性能分析13
1.5.1 空间复杂度分析13
1.5.2 时间复杂度分析14
1.5.3 性能评估14
1.5.4 选择算法15
1.5.5 大O记号15
1.6 验证算法19
1.6.1 精确算法、近似算法和随机算法19
1.6.2 可解释性20
1.7 小结20
第2章 算法中的数据结构21
2.1 Python中的数据结构21
2.1.1 列表22
2.1.2 元组26
2.1.3 字典27
2.1.4 集合28
2.1.5 数据帧30
2.1.6 矩阵32
2.2 抽象数据类型33
2.2.1 向量33
2.2.2 栈34
2.2.3 队列36
2.2.4 栈和队列背后的基本思想37
2.2.5 树38
2.3 小结40
第3章 排序算法和查找算法41
3.1 排序算法简介41
3.1.1 在Python中交换变量42
3.1.2 冒泡排序42
3.1.3 插入排序44
3.1.4 归并排序46
3.1.5 希尔排序48
3.1.6 选择排序50
3.2 查找算法简介51
3.2.1 线性查找52
3.2.2 二分查找52
3.2.3 插值查找53
3.3 实际应用54
3.4 小结56
第4章 算法设计57
4.1 算法设计基本概念57
4.1.1 第一点—所设计算法是否能产生预期的结果58
4.1.2 第二点—所设计算法是否是获取结果的最佳方法58
4.1.3 第三点—所设计算法在更大的数据集上表现如何61
4.2 理解算法策略61
4.2.1 分治策略62
4.2.2 动态规划策略64
4.2.3 贪心算法64
4.3 实际应用—求解TSP65
4.3.1 使用蛮力策略66
4.3.2 使用贪心算法68
4.4 PageRank算法70
4.4.1 问题定义70
4.4.2 实现PageRank算法70
4.5 了解线性规划73
4.6 实例—用线性规划实现产量规划73
4.7 小结76
第5章 图算法77
5.1 图的表示77
5.1.1 图的类型79
5.1.2 特殊类型的边81
5.1.3 自我中心网络82
5.1.4 社交网络分析82
5.2 网络分析理论简介83
5.2.1 理解最短路径83
5.2.2 创建邻域84
5.2.3 理解中心性度量85
5.2.4 用Python计算中心性指标87
5.3 理解图的遍历88
5.3.1 广度优先搜索89
5.3.2 深度优先搜索92
5.4 实例—欺诈分析93
5.4.1 进行简单的欺诈分析96
5.4.2 瞭望塔欺诈分析法97
5.5 小结99
第二部分 机器学习算法
第6章 无监督机器学习算法102
6.1 无监督学习简介102
6.1.1 数据挖掘生命周期中的无监督学习103
6.1.2 无监督学习的当前研究趋势105
6.1.3 实例106
6.2 理解聚类算法107
6.2.1 量化相似性107
6.2.2 分层聚类113
6.2.3 评估聚类效果115
6.2.4 聚类算法的应用115
6.3 降维116
6.3.1 主成分分析116
6.3.2 主成分分析的局限性118
6.4 关联规则挖掘119
6.4.1 实例119
6.4.2 市场购物篮分析119
6.4.3 关联规则120
6.4.4 排序规则122
6.4.5 关联分析算法123
6.5 实例—聚类相似推文127
6.5.1 主题建模128
6.5.2 聚类128
6.6 异常检测算法129
6.6.1 基于聚类的异常检测129
6.6.2 基于密度的异常检测129
6.6.3 基于支持向量机的异常检测129
6.7 小结130
第7章 传统监督学习算法131
7.1 理解监督机器学习131
7.1.1 描述监督机器学习132
7.1.2 理解使能条件134
7.1.3 区分分类器和回归器134
7.2 理解分类算法135
7.2.1 分类器挑战性问题135
7.2.2 评估分类器139
7.2.3 分类器的各个阶段142
7.2.4 决策树分类算法143
7.2.5 理解集成方法146
7.2.6 逻辑回归149
7.2.7 支持向量机算法151
7.2.8 理解朴素贝叶斯算法153
7.2.9 各种分类算法的胜者156
7.3 理解回归算法156
7.3.1 回归器挑战性问题156
7.3.2 线性回归158
7.3.3 回归树算法162
7.3.4 梯度提升回归算法163
7.3.5 各种回归算法的胜者163
7.4 实例—预测天气164
7.5 小结166
第8章 神经网络算法167
8.1 理解人工神经网络168
8.2 人工神经网络的演化169
8.3 训练神经网络171
8.3.1 解析神经网络结构171
8.3.2 定义梯度下降172
8.3.3 激活函数173
8.4 工具和框架178
8.4.1 Keras178
8.4.2 理解TensorFlow181
8.4.3 理解神经网络的类型183
8.5 迁移学习185
8.6 实例—用深度学习实现欺诈检测186
8.7 小结189
第9章 自然语言处理算法190
9.1 自然语言处理简介190
9.1.1 理解自然语言处理术语191
9.1.2 自然语言工具包192
9.2 基于词袋的自然语言处理193
9.3 词嵌入简介195
9.3.1 词的邻域195
9.3.2 词嵌入的性质195
9.4 用循环神经网络实现自然语言处理196
9.5 用自然语言处理实现情感分析197
9.6 实例—电影评论情感分析198
9.7 小结200
第10章 推荐引擎201
10.1 推荐系统简介201
10.2 推荐引擎的类型202
10.2.1 基于内容的推荐引擎202
10.2.2 协同过滤推荐引擎204
10.2.3 混合推荐引擎205
10.3 理解推荐系统的局限性207
10.3.1 冷启动问题207
10.3.2 元数据需求207
10.3.3 数据稀疏性问题207
10.3.4 由社会影响产生的偏差207
10.3.5 有限的数据207
10.4 实际应用领域208
10.5 实例—创建推荐引擎208
10.6 小结210
第三部分 高 级 主 题
第11章 数据算法212
11.1 数据算法简介212
11.2 数据存储算法简介213
11.3 流数据算法简介216
11.4 数据压缩算法简介216
11.5 实例—推文实时情感分析218
11.6 小结221
第12章 密码算法222
12.1 密码算法简介222
12.1.1 理解最薄弱环节的重要性223
12.1.2 基本术语223
12.1.3 理解安全性需求224
12.1.4 理解密码基本设计225
12.2 理解加密技术类型228
12.2.1 加密哈希函数228
12.2.2 对称加密231
12.2.3 非对称加密233
12.3 实例—机器学习模型部署时的安全问题236
12.3.1 MITM攻击236
12.3.2 避免伪装238
12.3.3 数据加密和模型加密238
12.4 小结240
第13章 大规模算法241
13.1 大规模算法简介241
13.1.1 定义精心设计的大规模算法241
13.1.2 术语242
13.2 并行算法设计242
13.2.1 阿姆达尔定律243
13.2.2 任务粒度245
13.2.3 负载均衡246
13.2.4 局部化问题246
13.2.5 在Python中启用并发处理246
13.3 制定多资源处理策略246
13.3.1 CUDA简介247
13.3.2 集群计算250
13.3.3 混合策略251
13.4 小结252
第14章 实践中要考虑的要素253
14.1 实践要素简介253
14.2 算法的可解释性254
14.3 理解伦理和算法258
14.3.1 使用学习算法易出现的问题258
14.3.2 理解伦理因素259
14.4 减少模型偏差260
14.5 处理NP难问题261
14.5.1 简化问题261
14.5.2 改造类似问题的已知求解方案261
14.5.3 使用概率方法262
14.6 何时使用算法262
14.7 小结264



---------------------------8061663 - 程序员进阶心法:快速突破成长瓶颈---------------------------


前言
第一篇 进阶路径
第1章 启程之初2
1 为什么成为一名程序员?2
2 如何选择技术方向?6
3 启程前的一份技能地图10
4 编写让你脱颖而出的简历14
第2章 职场阶梯18
5 技术线的职场阶梯与级别定义18
6 技术晋升的评定与博弈21
7 职场阶梯上的学徒与导师关系25
第3章 寻路江湖30
8 一技压身,天下行走:打造你的技能模型30
9 技能升维,战场升级:从具体实践到理论抽象34
10 一击中的,万剑归心:升维转型的路径演化37
11 成长路上三人行:前辈、同辈和后辈41
12 技术岗位三角色:程序员、技术主管和架构师44
13 自我发展三维度:专业、展现和连接49
14 路径选择三视角:定位、自省与多维53
第4章 蜕变跃迁58
15 工作之余,专业之外:T”形发展路线58
16 跨越断层,突破边界:技术发展方向的断层及跨越方法62
17 成长蓝图,进化跃迁:做自己的CEO确立成长战略66
第二篇 程序之术
第5章 编码前72
18 架构与实现:抓住它们的核心和本质72
19 模式与框架:认清它们的关系和误区77
20 设计与视图:掌握系统设计的多种维度和展现视图81
第6章 编码中88
21 分类:工业级编程的代码特征88
22 权衡:更多?更好?更快?91
23 态度:写克制的代码95
24 进化:从调试”编写”到运行”的编程三阶段演进98
25 技艺:从技术到艺术105
第7章 编码后111
26 Bug的空间属性:环境依赖与过敏反应111
27 Bug的时间属性:周期特点与非规律性114
28 Bug的反复出现:为什么我们总是重蹈覆辙?119
第三篇 成长之道
第8章 工程的方法124
29 安全与效率:工程技术的核心124
30 规模与协作:量级变了,逻辑就不一样了128
31 科学与系统:发现最优解法,洞察问题本质132
第9章 计划的体系136
32 为什么要计划?系统地探索人生的无限可能性136
33 如何计划?制定HARD目标,开启SMART的每一天139
34 计划可行吗?估准时间,郑重承诺144
35 计划的价值?成本收益比147
36 计划执行的多重障碍?启动困难,过程乏味,遭遇挫败151
37 计划坚持不下去的时候?形成适合自己的节奏155
第10章 习惯的养成160
38 时间:塑造基石习惯160
39 试试:别把这个习惯用坏”了166
40 提问:从技术到人生的习惯169
第11章 精进的模式175
41 如何应对信息过载?心智模型175
42 如何形成自己的领域?知识体系180
43 如何转化能力,高效输出?运转体系185
44 如何并行工作与学习?打破循环,掌握曲线,认识潜能188
45 时间太少,如何阅读?聚焦分层193
第12章 展现的方式197
46 写作:为什么不仅写代码,还要写作?197
47 写作:没有灵感,写什么呢?200
48 写作:如何写?写字如编码202
49 画图:为何画?一图胜千言207
50 演讲:不会讲?技术性表达213
第四篇 思维修炼
第13章 困惑220
51 如何面对职业倦怠期?220
52 徘徊在局部最优点,如何逃离?224
53 程序员的沟通之痛,如何改变?227
54 感觉技术停滞了,怎么办?231
55 为什么程序员总爱说技术上无法实现”?236
56 代码怎么写着写着就成了码农”?240
57 为什么总是做不好代码评审?243
58 人到中年,为什么突然就多了一些恐惧感?247
第14章 选择251
59 该不该去创业公司?251
60 该不该接外包?255
61 技术干货那么多,如何选?259
62 技术产生分歧时,如何决策?263
63 技术债务,有意或无意的选择?266
64 如何选择自己独有的发展路线?270
65 选择工作,还是生活?273
第15章 工作277
66 技术潮流的时尚”变迁277
67 产品与研发,分歧与共识280
68 程序员的绩效之谜283
69 老板意见带来的执行困扰287
70 面试的方法与招聘的原则288
第16章 谈钱293
71 找一个好工作,谈一份好薪水293
72 请回答,你为什么值这么多钱?297
73 价格低也许是一个危险的信号301
74 工作容易,赚钱很难304
75 薪酬收入的组成,升职加薪的路径308
后记311
76 知行:成长的迭代之路311

推荐

车牌查询
桂ICP备20004708号-3