图书介绍

程序员面试金典 第6版PDF|Epub|txt|kindle电子书版本网盘下载

程序员面试金典 第6版
  • 张海艳责任编辑;刘博楠,赵鹏飞,李琳骁,漆奔译;(美国)盖尔·拉克曼·麦克道尔 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115517197
  • 出版时间:2019
  • 标注页数:594页
  • 文件大小:223MB
  • 文件页数:609页
  • 主题词:程序设计-资格考试-自学参考资料

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

程序员面试金典 第6版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 面试流程1

1.1 为什么1

1.1.1 错过了优秀人才是可以的2

1.1.2 解决问题的技能很宝贵2

1.1.3 基础数据结构和算法知识很有用2

1.1.4 白板让你专注于重要的事情2

1.1.5 但这并不适用于每个人、每家公司和每种场合3

1.2 面试问题的来源3

1.3 一切都是相对的3

1.4 常见问题4

1.4.1 面试结束后没有立即收到回复,我是被拒了吗4

1.4.2 被拒之后我还能重新申请吗4

第2章 面试揭秘5

2.1 微软面试6

2.1.1 必备项6

2.1.2 独特之处6

2.2 亚马逊面试6

2.2.1 必备项7

2.2.2 独特之处7

2.3 谷歌面试7

2.3.1 必备项8

2.3.2 独特之处8

2.4 苹果面试8

2.4.1 必备项9

2.4.2 独特之处9

2.5 Facebook面试9

2.5.1 必备项9

2.5.2 独特之处10

2.6 Palantir面试10

2.6.1 必备项10

2.6.2 独特之处10

第3章 特殊情况11

3.1 有工作经验的求职者11

3.2 测试人员和软件开发测试工程师11

3.3 产品经理(项目经理)12

3.4 开发主管与部门经理13

3.5 创业公司13

3.5.1 职位申请14

3.5.2 签证与工作许可14

3.5.3 简历筛选因素14

3.5.4 面试流程14

3.6 收购与“人才收购”14

3.6.1 哪些创业公司需要进行并购面试,为什么14

3.6.2 这些面试有多重要15

3.6.3 哪些员工需要面试15

3.6.4 如果面试表现不好会怎么样15

3.6.5 最优秀和最差的员工或许会令你吃惊16

3.6.6 被收购方的员工与一般求职者的标准一样吗16

3.6.7 被收购员工对于收购、人才收购会如何反应16

3.6.8 收购后的团队会经历什么16

3.6.9 怎样为你的团队准备收购面试16

3.7 面试官17

3.7.1 不要问与本书完全相同的题目17

3.7.2 问中等难题或者高难度题17

3.7.3 使用多重障碍的题目17

3.7.4 使用高难度题目,而不是艰深的基础知识18

3.7.5 避免“吓人”的问题18

3.7.6 提供正面鼓励19

3.7.7 深究行为面试题19

3.7.8 辅导求职者19

3.7.9 如果求职者想保持安静,请满足20

3.7.10 了解你的模式:完整性测试、质量测试、专业知识和代理知识20

第4章 面试之前22

4.1 积累相关经验22

4.2 写好简历23

4.2.1 简历篇幅长度适中23

4.2.2 工作经历23

4.2.3 项目经历23

4.2.4 软件和编程语言24

4.2.5 给母语为非英语的人及国际人士的建议24

4.2.6 提防(潜在的)污名24

4.3 准备流程图25

第5章 行为面试题28

5.1 面试准备清单28

5.1.1 你有哪些缺点28

5.1.2 你应该问面试官哪些问题28

5.2 掌握项目所用的技术29

5.3 如何应对29

5.3.1 力求具体,切忌自大29

5.3.2 省略细枝末节30

5.3.3 多谈自己30

5.3.4 回答条理清晰30

5.3.5 行动是关键31

5.3.6 故事的意义31

5.4 自我介绍32

5.4.1 结构32

5.4.2 兴趣爱好32

5.4.3 展示成功的点点滴滴33

第6章 大O34

6.1 打个比方34

6.2 时间复杂度34

6.2.1 大O、大θ和大Ω35

6.2.2 最优、最坏和期望情况35

6.3 空间复杂度36

6.4 删除常量36

6.5 丢弃不重要的项37

6.6 多项式算法:加与乘38

6.7 分摊时间38

6.8 Log N运行时间39

6.9 递归的运行时间39

6.10 示例和习题40

第7章 技术面试题53

7.1 准备事项53

7.2 必备的基础知识53

7.2.1 核心数据结构、算法及概念53

7.2.2 2的幂表54

7.3 解题步骤54

7.4 优化和解题技巧1:寻找BUD58

7.4.1 瓶颈59

7.4.2 无用功59

7.4.3 重复性工作60

7.5 优化和解题技巧2:亲力亲为61

7.6 优化和解题技巧3:化繁为简62

7.7 优化和解题技巧4:由浅入深62

7.8 优化和解题技巧5:数据结构头脑风暴法63

7.9 可想象的极限运行时间63

7.10 处理错误答案66

7.11 做过的面试题66

7.12 面试的“完美”语言67

7.12.1 流行度67

7.12.2 语言可读性67

7.12.3 潜在问题67

7.12.4 冗长67

7.12.5 易用性68

7.13 好代码的标准68

7.13.1 多多使用数据结构68

7.13.2 适当代码复用69

7.13.3 模块化70

7.13.4 灵活性和通用性70

7.13.5 错误检查71

7.14 不要轻言放弃71

第8章 录用通知及其他注意事项72

8.1 如何处理录用与被拒的情况72

8.1.1 回复期限与延长期限72

8.1.2 如何拒绝录用通知72

8.1.3 如何处理被拒72

8.2 如何评估录用待遇73

8.2.1 薪酬待遇的考量73

8.2.2 职业发展73

8.2.3 公司稳定性73

8.2.4 幸福指数74

8.3 录用谈判74

8.4 入职须知75

8.4.1 制定时间表75

8.4.2 打造坚实的人际网络75

8.4.3 向经理寻求帮助75

8.4.4 保持面试状态75

第9章 面试题目76

9.1 数组与字符串76

9.1.1 散列表76

9.1.2 ArrayList与可变长度数组77

9.1.3 StringBuilder77

9.2 链表79

9.2.1 创建链表79

9.2.2 删除单向链表中的节点80

9.2.3 “快行指针”技巧80

9.2.4 递归问题81

9.3 栈与队列82

9.3.1 实现一个栈82

9.3.2 实现一个队列83

9.4 树与图85

9.4.1 树的类型85

9.4.2 二叉树的遍历87

9.4.3 二叉堆(小顶堆与大顶堆)88

9.4.4 单词查找树(前序树)89

9.4.5 图90

9.4.6 图的搜索91

9.5 位操作94

9.5.1 手工位操作95

9.5.2 位操作原理与技巧95

9.5.3 二进制补码与负数95

9.5.4 算术右移与逻辑右移96

9.5.5 常见位操作:获取与设置数位97

9.6 数学与逻辑题99

9.6.1 素数99

9.6.2 概率101

9.6.3 大声说出你的思路102

9.6.4 总结规律和模式102

9.6.5 略作变通103

9.6.6 触类旁通104

9.7 面向对象设计105

9.7.1 如何解答105

9.7.2 设计模式106

9.8 递归与动态规划108

9.8.1 解题思路109

9.8.2 递归与迭代109

9.8.3 动态规划及记忆法109

9.9 系统设计与可扩展性114

9.9.1 处理问题114

9.9.2 循环渐进的设计114

9.9.3 逐步构建的方法:循序渐进116

9.9.4 关键概念116

9.9.5 系统设计要考虑的因素118

9.9.6 人无完人,系统亦然119

9.9.7 实例演示119

9.10 排序与查找121

9.10.1 常见的排序算法121

9.10.2 查找算法124

9.11 测试126

9.11.1 面试官想考查什么126

9.11.2 测试现实生活中的事物127

9.11.3 测试一套软件127

9.11.4 测试一个函数129

9.11.5 调试与故障排除129

9.12 C和C++131

9.12.1 类和继承131

9.12.2 构造函数和析构函数131

9.12.3 虚函数132

9.12.4 虚析构函数133

9.12.5 默认值134

9.12.6 操作符重载134

9.12.7 指针和引用134

9.12.8 模板135

9.13 Java136

9.13.1 如何处理137

9.13.2 重载与重写137

9.13.3 集合框架138

9.14 数据库139

9.14.1 SQL语法及各类变体139

9.14.2 规范化数据库和反规范化数据库139

9.14.3 SQL语句140

9.14.4 小型数据库设计141

9.14.5 大型数据库设计142

9.15 线程与锁143

9.15.1 Java线程143

9.15.2 同步和锁145

9.15.3 死锁及死锁的预防148

9.16 中等难题149

9.17 高难度题152

第10章 题目解法156

10.1 数组与字符串156

10.2 链表170

10.3 栈与队列186

10.4 树与图197

10.5 位操作229

10.6 数学与逻辑题240

10.7 面向对象设计254

10.8 递归与动态规划286

10.9 系统设计与可扩展性313

10.10 排序与查找332

10.11 测试350

10.12 C和C++354

10.13 Java363

10.14 数据库370

10.15 线程与锁375

10.16 中等难题388

10.17 高难度题450

第11章 进阶话题539

11.1 实用数学539

11.1.1 整数1至N的和540

11.1.2 2的幂的和540

11.1.3 对数的底541

11.1.4 排列541

11.1.5 组合541

11.1.6 归纳证明541

11.2 拓扑排序542

11.3 Dijkstra算法543

11.4 散列表冲突解决方案545

11.4.1 使用链表连接数据545

11.4.2 使用二叉搜索树连接数据546

11.4.3 使用线性探测进行开放寻址546

11.4.4 平方探测和双重散列546

11.5 Rabin-Karp子串查找546

11.6 AVL树547

11.6.1 性质547

11.6.2 插入操作547

11.7 红黑树548

11.7.1 性质549

11.7.2 为什么这样的树是平衡的549

11.7.3 插入操作549

11.8 MapReduce551

11.9 补充学习内容553

附录A 代码库554

附录B 提示560

热门推荐