程序员面试白皮书

程序员面试白皮书

作者:逸超虾米笑笑董飞

出版社:人民邮电

出版年:2015年11月

ISBN:9787115401847

所属分类:心理健康

书刊介绍

《程序员面试白皮书》内容简介

本书是程序员和IT从业人员的面试求职指南。本书遵从大多数面试参考图书的组织方式,结合实例,按照常见的数据结构、算法以及计算机基础知识进行章节划分。每一章的“知识要点”部分介绍章节涉及的相关知识点,回顾重要的基础知识点;“模式识别”部分给出一些例题,帮助大家总结解决相关问题的常见方法,并且通过分析问题中的关键信息,教授读者如何从题目中分析题型和解题方法。程序员面试是对于面试者计算机知识的全面检测,因此,本书设有专门的章节覆盖了网络、操作系统、编译器、算法和数据结构等各个领域的知识。
本书作者来自硅谷一线的IT公司,书中包含了作者亲身的经历和体验,书中收集的题目部分来自互联网上分享的面试经验、在线编程网站leetcode,以及一些著名的面试参考资料。本书适合想要从事正规的程序员、架构师以及相关IT公司的专业人士和学生参考,尤其适合那些以一线IT外企或互联网公司为求职目标的读者阅读。
逸超:竞赛保送国内Top2大学本科,毕业后前往加州大学攻读硕士学位,期间获得全额奖学金。毕业时获得十多个知名科技公司offer,现在在硅谷就职于顶尖科技公司,从事软件开发工作。擅长总结面试方法,乐于帮助朋友准备面试。
虾米:国内TOP2高校毕业,赴美硕士毕业后跨专业应聘程序员工作,有一套自己的面试方法学。现于硅谷市值最高的公司之一任软件工程师,业余时间开设面试讲座,在圈内小有名气。
笑笑:国内top2大学本科,UCSD计算机硕士。现苹果公司软件工程师。曾拿到多个硅谷顶级软件公司的offer,面试经验相当丰富。
董飞:本科南开大学,硕士杜克大学计算机系毕业。在攻读硕士期间,从事跟Hadoop大数据相关的研究项目,在VLDB,SOCC顶尖数据库大会发表过论文, 先后在创业公司酷迅,百度基础架构组,Amazon 云计算部门,Linkedin担任高级工程师,负责过垂直搜索引擎,百度云计算平台研发,广告系统和在线教育平台的架构。在大数据领域业界研究多年,涉及Hadoop调优,分布式框架,Data Pipeline, 实时系统。目前在线教育创业公司Coursera从事数据工程师工作。
在多年工作中,除了对技术的不懈追求,也积累了大量的面试经验,拿到北美热门公司10+ offer。在Linkedin期间,也积极参与面试过近200人,全公司前三的面试官,乐于分享并帮助很多人成功求职,实现目标。

作品目录

前言
我的故事,你的故事
现状
目的
特色
第1章:简历、面试和Offer
1.1、简历
1.1.1、格式
1.1.2、内容安排
1.1.3、描述技巧
1.2、面试
1.2.1、HR
1.2.2、技术面试官
1.2.3、老板
1.3、Offer
1.4、常见问题
1.5、工具箱
第2章:数组和字符串
2.1、知识要点
2.1.1、数组
2.1.2、哈希表
2.1.3、String
2.2、模式识别
2.2.1、使用哈希表
2.2.2、利用哈希表实现动态规划的思想
2.2.3、String相关问题的处理技巧
2.3、工具箱
第3章:链表
3.1、知识要点
3.2、模式识别
3.2.1、链表的基本操作
3.2.2、哑节点
3.2.3、Runner和Chaser
3.2.4、遍历并处理节点
3.2.5、交换节点的问题
3.2.6、同时操作两个链表
3.2.7、倒序处理
3.3、工具箱
第4章:栈和队列
4.1、知识要点
4.1.1、栈
4.1.2、队列
4.2、模式识别
4.2.1、通过栈实现特殊顺序的读取
4.2.2、“Save
for
later”问题
4.2.3、用栈解决自上而下结构的问题
4.3、工具箱
第5章:树和图
5.1、知识要点
5.1.1、树
5.1.2、字典树
5.1.3、堆与优先队列
5.1.4、图
5.1.5、图的遍历
5.1.6、单源最短路径问题
5.1.7、任意两点之间的最短距离
5.2、模式识别
5.2.1、利用分而治之(D&C)策略判断树、图的性质
5.2.3、树和其他数据结构的相互转换
5.2.4、寻找特定节点
5.2.5、图的访问
5.3、工具箱
第6章:位操作
6.1、知识要点
6.2、模式识别
6.2.1、基本的位操作
6.2.2、位掩码
6.3、工具箱
第7章:面向对象的设计
7.1、知识要点
7.1.1、设计题解答要领
7.1.2、模拟面试
7.1.3、抽象、面向对象和解耦(Decoupling)
7.1.4、继承/组合/参数化类型
7.1.5、设计模式
7.2、模式识别
7.3、工具箱
第8章:递归和动态规划
8.1、知识要点
8.1.1、构建从子问题到最终目标的方法
8.1.2、递归的空间与时间成本
8.1.3、自底向上与自顶向下
8.1.4、算法策略
8.2、模式识别
8.2.1、用动态规划(自底向上)解决收敛结构问题
8.2.2、最长子序列类型的问题
8.2.3、用Memorization(自顶向下)解决收敛结构问题
8.2.4、用回溯法(自上而下)解决发散结构问题
8.2.5、用D&C策略解决独立子问题
第9章:排序和搜索
9.1、知识要点
9.1.1、常见的内排序算法
9.1.2、常见的外排序算法
9.1.3、快速选择算法
9.1.4、二分查找
9.2、模式识别
9.2.1、动态数据结构的维护
9.2.2、对于有序/部分有序容器的搜索,用二分查找
9.2.3、数据范围有限、离散的排序问题
9.2.4、Scalability
&
Memory
Limits
问题
9.3、工具箱
第10章:测试
10.1、知识要点
10.1.1、测试现实世界的物体、软件或函数
10.1.2、故障排除
10.2、模式识别
10.3、工具箱
第11章:网络
11.1、知识要点
11.1.1、网络分层
11.1.2、路由
11.1.3、常用网络统计指标
11.1.4、TCP
vs.
UDP
11.2、模式识别
11.3、工具箱
第12章:计算机底层知识
12.1、知识要点
12.1.1、进程vs.线程
12.1.2、上下文切换
12.1.3、系统调用
12.1.4、Semaphore/Mutex
12.1.5、死锁
12.1.6、生产者消费者
12.1.7、进程间通信
12.1.8、逻辑地址/物理地址/虚拟内存
12.1.9、文件系统
12.1.10、实时vs.分时操作系统
12.1.11、编译器
看完了

相关推荐

微信二维码