
盖尔·拉克曼·麦克道尔
本书是原谷歌资深面试官的经验之作,层层紧扣程序员面试的每一个环节,全面而详尽地介绍了程序员应当如何应对面试,才能在面试中脱颖而出。内容主要涉及面试流程解析,面试官的幕后决策及可能提出的问题,面试前的准备工作,对面试结果的处理,以及出自微软、苹果、谷歌等多家知名公司的189 道编程面试题及详细解决方案。第6 版修订了上一版中一些题目的解法,为各章新增了介绍性内容,加入了更多的算法策略,并增添了对所有题目的提示信息。
去年夏天,我和一位前同事,也是前前同事的阿刚在微信聊天,话题是“换工作”和“内部转岗”,他向我推荐了《程序员面试金典》:“最近看的面试宝典,临时抱佛脚,先将几个常问的记下。” 那之后的两三个月,我将这本已经出到第六版的《程序员面试金典》看完。 看这本书,我使用了《微信读书》的“私密阅读”功能——《微信读书》上的好友看不见我正“私密阅读”的书籍。我的心思很简单:“可不能让现在的同事看见我正在看这本书,不然他们会误会我想换工作。” 待将书中内容“过”上一遍,它便自然地被新加入书架的书挤到后面去。随着时间流逝,“不想让别人知道”演变为自己也不记得曾经读过这样的一本书,于是便没有逼自己作出相对应的读书笔记。 完成“三周年总结”之后,我想将看完书籍的读书笔记都快快完成,便去翻阅读完书籍列表,翻到一年前读完的《程序员面试金典》。 《程序员面试金典》,全书66万字,读完耗时12小时。显然,按照过去读书的速度(大概3小时10万字),这本书是看的很快的。看很快的原因,是书中那些很难的内容,我都只“过”一下。(过一下的定义:眼睛扫一扫,让书中文字成为我的“感觉记忆”,接着快快消失。) 顾名思义,《程序员面试金典》讲述内容是关于“程序员面试”的,主要分作两个大的部分。 一是介绍性章节:面试流程怎么走,各个大公司有哪些独特性,如何写好简历,如何准备自我介绍,如何进行薪资谈判,面试时解决技术问题的通用步骤是怎样的。 二是面试之前应该准备哪些技术能力。核心数据结构、算法是必须要有的,链表,树、单词查找树、图,栈和队列,堆,向量、数组列表,以及散列表。 计算机基础知识也得熟悉,位操作、进程、线程与锁,以及对自己常用语言的理解(不过,很多不同圈子的人都相信最好的软件工程师并不把自己禁锢在一种特定的编程语言上)。 数学,也是很重要的。 本书最开始章节有一个作者简介: Gayle Laakmann McDowell,是CareerCup创始人兼CEO,是一位知名软件工程师,曾在微软、苹果与谷歌任职。早先,她自己就是一位十分成功的求职者,通过了微软、谷歌、亚马逊、苹果、IBM、高盛等多家知名企业极其严苛的面试过程。工作以后,她又成为一位出色的面试官。在谷歌任职期间,她还是该公司有名的面试官及招聘委员会成员,其间阅人无数,积累了相当丰富的面试经验。除此书外,还著有《产品经理面试宝典》《金领简历:敲开苹果、微软、谷歌的大门》。 由作者经历可知,本书的内容主要是应对国外大公司的面试。微软喜欢对技术满怀热情的极客;亚马逊面试团队中有“调杆员”;谷歌面试官不是决策者,只打分,最终依据平均分来决定是否录用;苹果的员工都是超级果粉;Facebook青睐拥有创业精神的开发人员,Palantir要求工程师要聪明。(当然,关于这些公司的简介,可能是一直在变化的。) 由同事同学的分享结合自己不够多的面试经历来看,本书也是适合国内程序员阅读的:国内大厂的面试流程,会跟书中讲述内容大差不差,数据结构与算法、计算机基础知识,都需要扎实些。而相对面试流程不太完善的小一些公司,面试官的印象分、与面试官是否聊得来,会占比较大的比重。 聪聪是只和我共事两个月的同事,但却成为我很是要好的朋友,我们都在深圳时,总是隔断时间便在工作日夜晚一起吃个饭,然后沿着地铁线路散步、聊天。散步时,聪聪整理过他对面试的看法:“龙,在我度过自己一段比较糟糕心境之后,连拿了好多个offer。面试,其实只是一个沟通过程,这过程中不管是面试者还是面试官,都需要做到自信和平等。 “术业有专攻,技术也有专精之说,面试官问的你不会是很正常情况,因为你会的,面试官可能也不会。我做面试官的时候,也会看着答案来确认面试者的回答是否准确。 “总之,是要自信且平等。不要觉得面试是有求于人,找工作恰似相亲,看的是合不合适,不是谁比谁强。 “当然,有时候运气也很重要的啦。可能刚好系统刷出来的这道算法题,你做过,你就获得优势咯。” 《程序员面试金典》中说:“每年至少设定一个面试目标,即便你不是真想换工作。这有助于提高你的面试技能,并让你胜任各种工作岗位,获得与自身能力相匹配的薪水。”每年都要参加几次面试,是我在很多地方都看到过的内容。面试,可以不为换工作,只是让自己对就业环境,了解更多些。 本书的推荐语为:“作为一个程序员,如果想换工作,是需要早早准备的,准备的方式以及应该准备哪些内容,可以通过看书获得。 “看书,可以选择《程序员面试金典》。《程序员面试金典》是一本很专业的书,目前已经出版到第6版。一本能出到第6版的书,本身就是受欢迎、有内容的明证。 “本书介绍了关于面试的方方面面,主要分作两个部分:介绍性章节和技术储备。介绍性章节内容不多,如何写简历、如何面试、如何准备,如何谈薪,是可以快速读完且常读常新的。技术储备是一份大纲,数据结构与算法、计算机基础、语言、数据库……它告知我们的发力方向。” “充分的准备将会使你拥有各种技术技能和沟通技巧。不管最终结果如何,只要拼尽全力,便无怨无悔!”
国内互联网,也大部分通用(技术内容我没看),较全面,不过不够细。 跳槽之前的1-12个月可以看看~ 感兴趣的话,近期不跳槽也可以看的~
看完这本书收获了什么呢?对于求职公司,要针对性地准备,“投其所好”。对于面试官,要相信他/她/他们是友好的,抓住一切的沟通机会,展示自己的能力。对于面试过程,记住make it run,make it right,make it fast,降低自己的面试期望,告诉自己遇到困难是正常的,重要的是你向面试官展示你是如何应对未知的困难!你只要表现得相对较好就行了。最后评估录取结果时,记住未来的发展机遇压倒眼前的苟且。薪水也不是全部,注意年终奖、期权股票、搬家费等福利。
原著应该写的挺好的,但是算法部分的翻译真是一言难尽,表述的太抽象
leetcode-cn 上有专题,刷起来~
2020年的第1210本 和学员一起刷了前面,我对她们明年入职非常有信心,还有八个月,社会小白冲刺
这本书真的非常好,非常适合有梦想的年轻IT工程师阅读。 不仅算法和题目都很经典,题目给出答案和分析,而且还介绍了世界名企的面试流程和风格。典型的系统设计题目也是名企对资深工程师和技术管理人员面试喜欢用的。阅读完会有非常多的收获。 本书也适合IT企业技术管理人员参考后用在招聘中。 不愧被誉为“程序员的红宝书”!
这本书的面试自我介绍部分,逻辑超级清晰,可以直接使用
大公司很重视算法能力,这本书的侧重也在算法。 不过通过刷题的方式提升算法能力,会对算法有更深入的思考。
《程序员面试金典》是一本硅谷互联网公司技术面试经典图书。作者盖尔·拉克曼·麦克道尔结合自身丰富的面试经历,以及多年对互联网招聘行业形势的整理归纳,帮助许多想要加入Facebook、亚马逊、微软、苹果等互联网企业的求职者获得了心仪的工作机会。 算法和数据结构在现今技术面试环节中极为重要。通过力扣(LeetCode)相关数据我们发现,不论是国内一线互联网大厂还是创业公司,对程序员算法和数据结构的掌握程度越来越重视,甚至在技术面试中要求手写代码。面试过程中除了会出现一些常用的数据结构,比如树、栈、队列等问题,也会出现一些高级的数据结构,比如图、优先队列等问题。对于算法,从最基础的排序、搜索到动态规划,都是企业非常看重的考核点。技术栈每天在不断变化,越来越多的互联网企业看中的不再只是面试者的技术广度,掌握多门计算机语言、了解多种技术栈已经不是考核程序员最为重要的因素,更为重要的是其能适应这个行业的变化并不断成长。这背后,最为核心的要素便是计算机科学思维、算法思维以及逻辑思维能力。