具体描述
本书是原谷歌资深面试官的经验之作,层层紧扣程序员面试的每一个环节,全面而详尽地介绍了程序员应当如何应对面试,才能在面试中脱颖而出。第1~7 章主要涉及面试流程解析、面试官的幕后决策及可能提出的问题、面试前的准备工作、对面试结果的处理等内容;第8~9 章从数据结构、概念与算法、知识类问题和附加面试题4 个方面,为读者呈现了出自微软、苹果、谷歌等多家知名公司的150 道编程面试题,并针对每一道面试题目,分别给出了详细的解决方案。
本书适合程序开发和设计人员阅读。
作者简介
作者简介:
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
· · · · · · (收起)
读后感
本书中文版权由图灵公司获得,翻译已经完成,即将在10月左右出版。 本书在第四版的基础上做了大量更新,增补篇幅达200多页。第五版增加了不少面试题,修订了部分原有题目的解决方法,并新增了几个章节和其他内容。
编程本质是思维活动,也是智力活动,重在思考问题的方法和切入问题的角度。 如果有一本书可以系统地告诉你在找工作前需要做哪些准备,如何准备,具体准备些什么知识,是不是非常美妙? 唔,不要丝毫犹豫,这本书就是你要找的!
编程本质是思维活动,也是智力活动,重在思考问题的方法和切入问题的角度。 如果有一本书可以系统地告诉你在找工作前需要做哪些准备,如何准备,具体准备些什么知识,是不是非常美妙? 唔,不要丝毫犹豫,这本书就是你要找的!
编程本质是思维活动,也是智力活动,重在思考问题的方法和切入问题的角度。 如果有一本书可以系统地告诉你在找工作前需要做哪些准备,如何准备,具体准备些什么知识,是不是非常美妙? 唔,不要丝毫犹豫,这本书就是你要找的!
9月份将要找工作,准备面试必不可少,已经读过《编程之美》《编程珠玑》《程序员面试指南》等书,感觉本书上的很多题以前都或多或少的了解过,完整的学习完本书之后还是有很多收获,从面试技巧,到数据结构与算法等方面的问题,分析问题的能力也提高了不少,而且全英文的书籍对...
用户评价
作为一名在互联网公司摸爬滚打了快十年的老兵,我深知面试的重要性,也经历了无数次大大小小的面试。这次我打算换个环境,重新踏上面试之路。《程序员面试金典(第5版)》这本书,对我来说,已经不仅仅是一本面试指南,更像是一位老友。每次翻开它,总能发现一些新的理解和感悟。书中对很多经典算法的讲解,都能够从多个角度进行剖析,甚至会提出一些我在工作中很少会主动去思考的优化点。例如,书中关于字符串匹配的章节,我之前可能只知道KMP算法,但这本书里还讲解了Rabin-Karp算法等,并且详细分析了它们的优缺点和适用场景。这对于我这样想要不断提升自身技术深度的人来说,价值是巨大的。而且,这本书的题目选取得非常经典,很多都是业界传闻的“大厂面试题”,能够让我快速了解当前技术趋势下,面试官们更关注哪些方面。虽然我经验丰富,但重温这些基础知识,并通过书中的讲解进行深入思考,能够帮助我发现自己知识体系中的盲点,并且在面试中能够更加自信地与面试官进行技术交流。这本书不仅仅是给初学者准备的,对于我这样的资深程序员,同样能够带来启发和提升。
我是一名刚刚踏入IT行业的毕业生,面对即将到来的秋招,我感到前所未有的焦虑。学过的理论知识在实际应用中显得有些生疏,而且很多公司在招聘时都非常看重实际解决问题的能力。在学长学姐的推荐下,我选择了《程序员面试金典(第5版)》。这本书对于我来说,就像是黑暗中的一盏明灯。它循序渐进,从最基础的链表、数组问题开始,逐步深入到图、树、排序等复杂算法。书中提供的解题思路非常接地气,不会上来就讲高深的理论,而是通过大量的实例来引导读者思考。我最喜欢的是书中对时间复杂度和空间复杂度的分析,让我能更直观地理解不同算法的优劣。在学习过程中,我还会动手去实现书中的代码,并且会尝试用不同的方法去解决同一个问题,这极大地锻炼了我的编码能力和调试能力。有些题目,我一开始怎么也想不出来,看了书中的提示和解答后,恍然大悟,那种豁然开朗的感觉真的太棒了。而且,书中很多题目都来自于真实的公司面试,这让我对面试的实际情况有了更清晰的认识。我感觉自己不再是盲目地刷题,而是有针对性地提升自己的硬实力。《程序员面试金典(第5版)》不仅教会了我如何解答面试题,更重要的是,它教会了我如何思考,如何用更优化的方式去解决问题,这对我未来的职业发展至关重要。
这本书简直是我的救星!我是一名工作了几年的资深程序员,最近跳槽面试,本来以为凭经验能轻松过关,结果却被一些基础算法题卡住了。市面上有很多面试题集,但很多都过于陈旧或者讲解不清。偶然间朋友推荐了《程序员面试金典(第5版)》,我抱着试试看的心态入手了。翻开第一页,就被其严谨的排版和清晰的逻辑所吸引。书中不仅仅是罗列题目,而是深入浅出地讲解了每个知识点的原理,并提供了多种解题思路,这对于我这种需要巩固基础的人来说,简直是及时雨。我尤其喜欢书中对于“为什么”的解释,这让我不仅学会了“怎么做”,更理解了“为什么这么做”,这对于提升我的编程思维非常有帮助。比如,书中关于动态规划的部分,一开始我只是死记硬背,但看了《程序员面试金典》的讲解后,我才真正理解了其递推关系和状态转移的本质,现在看到类似的题目,我能很快构建出解决方案。而且,书中涵盖的知识点非常全面,从数据结构、算法到操作系统、数据库,再到一些设计模式和系统设计,几乎涵盖了所有面试中可能遇到的重点。我花了一周时间,每天都沉浸在书中,感觉自己的面试准备效率大大提升,信心也随之增长。这本书绝对是每一个想要在技术面试中脱颖而出的程序员必备的宝典。
我是一位软件工程专业的学生,即将面临毕业和找工作的双重压力。周围的同学都在讨论如何准备面试,各种刷题平台、论坛的信息扑面而来,让我感到有些不知所措。《程序员面试金典(第5版)》这本书,就像一个非常有经验的导师,为我指明了方向。它非常系统地讲解了计算机科学中的核心概念,比如操作系统中的进程与线程、内存管理,数据库的ACID特性、索引原理等等。这些内容都是面试的重中之重。书中对每个知识点的讲解都非常透彻,并且配有精炼的图示和代码示例,让我能够快速理解和掌握。我特别喜欢书中对“脑筋急转弯”式面试题的分析,它教会我如何从不同的角度去思考问题,而不是被固定的思维模式所束缚。例如,书中有一个关于“找出重复数字”的题目,有多种解法,从暴力枚举到利用哈希表,再到利用数学性质,每一种方法都讲得非常清楚,并且对比了它们的效率。这让我明白,解决同一个问题,可以有多种不同的方法,而选择哪种方法取决于具体的场景和需求。这本书让我觉得,面试准备不再是枯燥的题海战术,而是对计算机科学知识的一次全面梳理和深入理解。
老实说,在我拿到《程序员面试金典(第5版)》之前,我对面试准备一直停留在“背题”的阶段。总觉得只要把题目和答案记下来,就能顺利通过面试。然而,现实狠狠地给了我一记耳光,面试官们不会只问你是否“见过”这道题,而是更关心你“怎么想”的。这本书,彻底改变了我的面试准备观念。它不仅仅是提供题目,更重要的是,它在讲解题目时,会深入到问题的本质,探讨背后的原理,以及如何进行更优化的设计。比如,书中关于“设计一个LRU缓存”的题目,它不仅给出了基于双向链表和哈希表的经典解法,还会引导你思考如何处理并发场景下的问题,以及在内存受限的情况下如何进行优化。这种“知其然,更知其所以然”的讲解方式,让我受益匪浅。我现在不再害怕那些“开放性”的问题,因为我知道,即使我没有直接见过,我也可以通过对基础知识的理解,构建出合理的解决方案。这本书就像一个知识的“万花筒”,每一次翻阅都能看到不同的精彩,让我对计算机科学的理解更加深刻,也让我在面试中多了一份底气和自信。
准备面试的入门读物,方方面面都有讲到,题目基本是easy
复习数据结构好使
特别清晰的描述了面试的基本常识。软件工程完全是其他所有行业的标杆,所有的流程和系统都特别的清晰,透明性比较强。白板编程很重要,手写测试,遇到问题时候的应答策略。
最大意义在于系统的知晓面试的套路。撸一遍需要大量时间,代码质量不高
CareerCup