程序员面试白皮书 PDF格式高清电子书免费下载

程序员面试白皮书

作者 董飞 逸超
出版社 人民邮电出版社
出版日期 2015-11-01
页数 264
格式 Paper book / ebook (PDF)
ISBN 9787115401847
价格 49
  • 内容简介
  • 图书目录
  • 免费下载

出版信息

ISBN:9787115401847
语言:简体中文
包装/印刷类型:1
开本:16开
出版时间:2015-11-01
页数:264

内容简介

这是一本介绍程序员面试的参考书,通过一系列的实例介绍了数据结构、算法以及计算机专业的其他基础知识。同时,本书还在各章中及时回顾教材中的重点内容,书中的题目也很据参考价值,通过实例与知识点相结合的方式帮助读者掌握要领。除此之外,本书还将引导读者分析题目,帮助读者理清思路并最终解决问题。

移动互联网和互联网+的浪潮,不仅催生了许多新兴的IT企业,而且带动了大批的传统企业寻求应变,引入更多计算机人才,利用云计算、大数据、机器学习等新手段与新兴公司竞争。对IT专业人才的需求极速扩大,这为从业人员创造了更多的工作机会。

本书是程序员和IT从业人员的面试求职指南。本书遵从大多数面试参考图书的组织方式,结合实例,按照常见的数据结构、算法以及计算机基础知识进行章节划分。每一章的“知识要点”部分介绍章节涉及的相关知识点,回顾重要的基础知识点;“模式识别”部分给出一些例题,帮助大家总结解决相关问题的常见方法,并且通过分析问题中的关键信息,教授读者如何从题目中分析题型和解题方法。程序员面试是对于面试者计算机知识的全面检测,因此,本书设有专门的章节覆盖了网络、操作系统、编译器、算法和数据结构等等各个领域的知识。

本书作者来自硅谷一线的IT公司,书中包含了作者亲身的经验和体验,书中收集的题目部分来自互联网上分享的面试经验、在线编程网站leetcode,以及一些面试参考资料。本书适合想要从事正规的程序员、架构师以及相关IT公司的专业人士和学生参考,尤其适合那些以一线IT外企或互联网公司为求职目标的读者阅读。

图书目录

目录

第 1章 简历、面试和Offer 1

1.1 简历 1

1.1.1 格式 2

1.1.2 内容安排 2

1.1.3 描述技巧 5

1.2 面试 6

1.2.1 HR 7

1.2.2 技术面试官 8

1.2.3 老板 10

1.3 Offer 10

1.4 常见问题 12

1.5 工具箱 19

第 2章 数组和字符串 27

2.1 知识要点 27

2.1.1 数组 27

2.1.2 哈希表 29

2.1.3 String 31

2.2 模式识别 31

2.2.1 使用哈希表 31

2.2.2 利用哈希表实现动态规划的思想 35

2.2.3 String相关问题的处理技巧 39

2.3 工具箱 41

第3章 链表 49

3.1 知识要点 49

3.2 模式识别 50

3.2.1 链表的基本操作 50

3.2.2 哑节点 50

3.2.3 Runner和Chaser 52

3.2.4 遍历并处理节点 56

3.2.5 交换节点的问题 57

3.2.6 同时操作两个链表 59

3.2.7 倒序处理 60

3.3 工具箱 64

第4章 栈和队列 67

4.1 知识要点 67

4.1.1 栈 67

4.1.2 队列 68

4.2 模式识别 68

4.2.1 通过栈实现特殊顺序的读取 68

4.2.2 “Save for later”问题 72

4.2.3 用栈解决自上而下结构的问题 74

4.3 工具箱 79

第5章 树和图 83

5.1 知识要点 83

5.1.1 树 83

5.1.2 字典树 86

5.1.3 堆与优先队列 88

5.1.4 图 89

5.1.5 图的遍历 90

5.1.6 单源**短路径问题 92

5.1.7 任意两点之间的**短距离 93

5.2 模式识别 93

5.2.1 利用分而治之(D&C)策略判断树、图的性质 93

5.2.2 树的路径问题 100

5.2.3 树和其他数据结构的相互转换 104

5.2.4 寻找特定节点 108

5.2.5 图的访问 113

5.3 工具箱 116

第6章 位操作 121

6.1 知识要点 121

6.2 模式识别 122

6.2.1 基本的位操作 122

6.2.2 位掩码 125

6.3 工具箱 127

第7章 面向对象设计 129

7.1 知识要点 129

7.1.1 设计题解答要领 129

7.1.2 模拟面试 131

7.1.3 抽象、面向对象和解耦(Decoupling) 134

7.1.4 继承/组合/参数化类型 137

7.1.5 设计模式 139

7.2 模式识别 144

7.3 工具箱 159

第8章 递归和动态规划 167

8.1 知识要点 167

8.1.1 构建从子问题到**终目标的方法 167

8.1.2 递归的空间与时间成本 168

8.1.3 自底向上与自顶向下 169

8.1.4 算法策略 171

8.2 模式识别 172

8.2.1 用动态规划(自底向上)解决收敛结构问题 172

8.2.2 **长子序列类型的问题 181

8.2.3 用Memorization(自顶向下)解决收敛结构问题 190

8.2.4 用回溯法(自上而下)解决发散结构问题 193

8.2.5 用D&C策略解决独立子问题 201

第9章 排序和搜索 203

9.1 知识要点 203

9.1.1 常见的内排序算法 203

9.1.2 常见的外排序算法 209

9.1.3 快速选择算法 210

9.1.4 二分查找 211

9.2 模式识别 212

9.2.1 动态数据结构的维护 212

9.2.2 对于有序/部分有序容器的搜索,用二分查找 216

9.2.3 数据范围有限、离散的排序问题 228

9.2.4 Scalability & Memory Limits 问题 230

9.3 工具箱 233

第 10章 测试 235

10.1 知识要点 235

10.1.1 测试现实世界的物体、软件或函数 235

10.1.2 故障排除 236

10.2 模式识别 238

10.3 工具箱 242

第 11章 网络 245

11.1 知识要点 245

11.1.1 网络分层 246

11.1.2 路由 246

11.1.3 常用网络统计指标 247

11.1.4TCP vs. UDP 248

11.2 模式识别 251

11.3 工具箱 254

第 12章 计算机底层知识 257

12.1 知识要点 257

12.1.1 进程vs.线程 257

12.1.2 上下文切换 259

12.1.3 系统调用 259

12.1.4 Semaphore/Mutex 259

12.1.5 死锁 260

12.1.6 生产者消费者 260

12.1.7 进程间通信 261

12.1.8 逻辑地址/物理地址/虚拟内存 261

12.1.9 文件系统 263

12.1.10 实时vs.分时操作系统 263

12.1.11 编译器 264

点击展开

点击收起

程序员面试白皮书 PDF格式高清电子书免费下载

抱歉,暂无数据!催一下?我有资源 ?

看了 程序员面试白皮书 的用户也看了: