程序员面试金典.pdf

程序员面试金典.pdf
 

书籍描述

编辑推荐
本书作者Gayle Laakmann McDowell是著名的软件从业者,曾担任谷歌资深面试官和招聘委员会成员,深谙世界顶尖科技公司的面试之道,与数百名求职者有过“交锋”,洞悉面试成败的关键所在。

本书融萃了作者在世界顶尖科技公司长期从事相关工作所积累的面试经验,涉及与面试相关的每个环节——大到剖析面试流程、详解经典的技术面试题,小到如何制作简历及面试时的着装规范,你都能在书中找到锦囊妙计。

对源自微软、苹果、谷歌等IT名企的150道面试题进行深入解析,是本书的重头戏,这些面试题数量众多、质量上乘、解析深入,是目前市面上同类图书均无法比肩的。对于希望冲击IT名企、期望大展宏图的程序员来说,本书是不可或缺的含金量极高的面试秘籍。

媒体推荐
“如果你正打算参加技术面试,我极力推荐你阅读此书。这本书汇总了诸多你不可不知的决胜于技术面试的问题、策略和方法。”
——Ginnie,亚马逊评论者

作者简介
作者简介:
Gayle Laakmann McDwell
美国求职咨询网站CareerCup.cm创始人兼CE,是一位著名软件工程师,曾在微软、苹果与谷歌任职。早先,她自己就是一位十分成功的求职者,成功通过了微软、谷歌、亚马逊、苹果、IBM、高盛等多家最著名企业极其严苛的面试过程。工作以后,她又成为一位出色的面试官。在谷歌任职期间,她还是该公司资深面试官及招聘委员会成员,期间阅人无数,积累了相当丰富的面试经验。除此书外,还著有《金领简历:敲开苹果、微软、谷歌的大门》。

译者简介:
李琳骁
从事嵌入式Linux内核/驱动开发,关注IT、开放源码和安防监控等领域。业余时以技术翻译为乐,时而客串编辑,好为爱书挑错,渴求完美,却也常因“小”失大,不得读书要领。翻译或参与翻译了《Linux命令详解手册》《编程人生》《编程大师访谈录》等图书。网络ID为leal,管理Vim、Andrid等豆瓣小组,个人站点:http://linxia.net。

漆犇
毕业于中国地质大学,拥有十余年软件开发、测试及流程管理经验,曾翻译出版了《Linux/Unix设计思想》《金领简历 : 敲开苹果、微软、谷歌的大门》等书。目前定居于美国西雅图,在微软Windws Phne开发中心从事与WP应用开发者相关的项目管理事务。

目录
目 录

第1章 面试流程  1
1.1  概述  1
1.2  面试题的来源  2
1.3  准备时间表与注意事项  3
1.4  面试评估流程  4
1.5  答题情况  5
1.6  着装规范  6
1.7  十大常见错误  6
1.8  常见问题解答  8
第2章 面试揭秘  9
2.1  微软面试  10
2.2  亚马逊面试  10
2.3  谷歌面试  11
2.4  苹果面试  12
2.5  Facebook面试  13
2.6  雅虎面试  14
第3章 特殊情况  15
3.1  有工作经验的求职者  15
3.2  测试人员及SDET  15
3.3  项目经理与产品经理  16
3.4  技术主管与部门经理  17
3.5  创业公司的面试  18
第4章 面试之前  19
4.1  积累相关经验  19
4.2  构建人际网络  20
4.3  写好简历  21
第5章 行为面试题  23
5.1  准备工作  23
5.2  如何应对  25
第6章 技术面试题  27
6.1  技术准备  27
6.2  如何应对  29
6.3  算法题的五种解法  31
6.4  怎样才算好代码  34
第7章 录用通知及其他  39
7.1  如何处理录用与被拒的情况  39
7.2  如何评估录用待遇  40
7.3  录用谈判  41
7.4  入职须知  42
第8章 面试考题  44
8.1  数组与字符串  45
8.2  链表  47
8.3  栈与队列  49
8.4  树与图  51
8.5  位操作  54
8.6  智力题  57
8.7  数学与概率  59
8.8  面向对象设计  64
8.9  递归和动态规划  66
8.10  扩展性与存储限制  69
8.11  排序与查找  73
8.12  测试  78
8.13  C和C++  83
8.14  Java  89
8.15  数据库  93
8.16  线程与锁  98
8.17  中等难题  104
8.18  高难度题  105
第9章 解题技巧  107
9.1  数组与字符串  108
9.2  链表  117
9.3  栈与队列  131
9.4  树与图  146
9.5  位操作  163
9.6  智力题  175
9.7  数学与概率  179
9.8  面向对象设计  192
9.9  递归和动态规划  221
9.10  扩展性与存储限制  241
9.11  排序与查找  255
9.12  测试  269
9.13  C和C++  274
9.14  Java  284
9.15  数据库  290
9.16  线程与锁  296
9.17  中等难题  306
9.18  高难度题  331
索引  358

序言
【前言】
招聘中的问题
讨论完招聘事宜,我们又一次沮丧地走出会议室。那天,我们重新审查了十位“过关”的求职者,但是全都不堪录用。我们很纳闷,是我们太过苛刻了吗?
我尤为失望的是,我推荐的一名求职者也被拒了。他是我以前的学生,以高达3.73的平均分(GPA)毕业于华盛顿大学,这可是世界上最棒的计算机专业院校之一。此外,他还完成了大量的开源项目工作。他精力充沛、富于创新、踏实能干、头脑敏锐,不论从哪方面来看,他都堪称真正的极客。
但是,我不得不同意其他招聘人员的看法:他还是不够格。就算我的强力推荐可以让他侥幸过关,在后续的招聘环节还是会失利,因为他的硬伤太多了。
尽管面试官都认为他很聪明,但他答题总是磕磕绊绊的。大多数成功的求职者都能轻松搞定第一道题(这一题广为人知,我们只是略作调整而已),可他却没能想出合适的算法。虽然他后来给出了一种解法,但没有提出针对其他情形进行优化的解法。最后,开始写代码时,他草草地采用了最初的思路,可这个解法漏洞百出,最终还是没能搞定。他算不上表现最差的求职者,但与我们的“录用底线”却相去甚远,结果只能是铩羽而归。
几个星期后,他给我打电话询问反馈意见,我很纠结,不知该怎么跟他说。他需要变得更聪明些吗?不,他其实智力超群。做个更好的程序员?不,他的编程技能和我见过的一些最出色的程序员不相上下。
跟许多积极上进的求职者一样,他准备得非常充分。他研读过Brian W. Kernighan和Dennis M. Ritchie合著的《C程序设计语言》,麻省理工学院出版的《算法导论》等经典著作。他可以细数很多平衡树的方法,也能用C语言写出各种花哨的程序。
我不得不遗憾地告诉他:光是看这些书还远远不够。这些经典学院派著作教会了人们错综复杂的研究理论,对程序员的面试却助益不多。为什么呢?容我稍稍提醒你一下:即使从学生时代起,你的面试官们其实都没怎么接触过所谓的红黑树(Red-Black Trees)算法。
要顺利通过面试,就得“真枪实弹”地做准备。你必须演练真正的面试题,并掌握它们的解题模式。
这本书就是我根据自己在顶尖公司积累的第一手面试经验提炼而成的精华。我曾经与数百名求职者有过“交锋”,本书可以说是我面试几百位求职者的结晶。同时,我还从成千上万求职者与面试官提供的问题中精挑细选了一部分。这些面试题出自许多知名的高科技公司。可以说,这本书囊括了150道世界上最好的程序员面试题,都是从数以千计的好问题中挑选出来的。
我的写作方法
本书重点关注算法、编码和设计问题。为什么呢?尽管面试中也会有“行为问题”,但是答案会随个人的经历而千变万化。同样,尽管许多公司也会考问细节(例如,“什么是虚函数?”),但通过演练这些问题而取得的经验非常有限,更多地是涉及非常具体的知识点。本书只会述及其中一些问题,以便你了解它们“长”什么样。当然,对于那些可以拓展技术技能的问题,我会给出更详细的解释。
我的教学热情
我特别热爱教学。我喜欢帮助人们理解新概念,并提供一些学习工具,从而充分激发他们的学习热情。
我第一次“正式”的教学经验是在美国宾夕法尼亚大学就读期间,那时我才大二,担任本科计算机科学课程的助教(TA)。我后来还在其他一些课程中担任过助教,最终在大学里推出了自己的计算机科学课程,也就是给大家教授一些实际的“动手”技能。
在谷歌担任工程师时,培训和指导“Nooglers”(意指谷歌新员工。没错,他们就是这么称呼新人的!)是我最喜欢的工作之一。后来,我还利用“20%自由支配时间”在华盛顿大学教授计算机科学课程。
《程序员面试金典》、《金领简历》和CareerCup.com网站都能充分体现我的教学热情。即便是现在,你也会发现我经常出现在CareerCup.com上为用户答疑解惑。
请加入我们的行列吧!


Gayle Laakmann McDowell




文摘
前言

内容简介
150个编程题问答
从二叉树到二分查找,该部分涵盖了关于数据结构和算法的最常见、最有用的面试题以及最为精巧的解决方案。
应对棘手算法题的5种行之有效的方法
通过这5种方法,你可以学会如何处理并攻克算法难题,包括那些最棘手的算法题。
面试者最容易犯的10个错误
不要因为这些常见的错误而与成功失之交臂。要了解面试者常犯的一些错误,学会如何避免这些问题。
面试准备的若干策略
不要因为沉溺在无穷无尽的面试题中而错过了最重要的求职建议。这些策略和步骤可以让你更有效地准备面试。

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多