去年夏天,我和一位前同事,也是前前同事的阿刚在微信聊天,话题是"换工作"和"内部转岗",他向我推荐了《程序员面试金典》:"最近看的面试宝典,临时抱佛脚,先将几个常问的记下。"
那之后的两三个月,我将这本已经出到第六版的《程序员面试金典》看完。
看这本书,我使用了《微信读书》的"私密阅读"功能------《微信读书》上的好友看不见我正"私密阅读"的书籍。我的心思很简单:"可不能让现在的同事看见我正在看这本书,不然他们会误会我想换工作。"
待将书中内容"过"上一遍,它便自然地被新加入书架的书挤到后面去。随着时间流逝,"不想让别人知道"演变为自己也不记得曾经读过这样的一本书,于是便没有逼自己作出相对应的读书笔记。
完成"三周年总结"之后,我想将看完书籍的读书笔记都快快完成,便去翻阅读完书籍列表,翻到一年前读完的《程序员面试金典》。
《程序员面试金典》,全书66万字,读完耗时12小时。显然,按照过去读书的速度(大概3小时10万字),这本书是看的很快的。看很快的原因,是书中那些很难的内容,我都只"过"一下。(过一下的定义:眼睛扫一扫,让书中文字成为我的"感觉记忆",接着快快消失。)
顾名思义,《程序员面试金典》讲述内容是关于"程序员面试"的,主要分作两个大的部分。
一是介绍性章节:面试流程怎么走,各个大公司有哪些独特性,如何写好简历,如何准备自我介绍,如何进行薪资谈判,面试时解决技术问题的通用步骤是怎样的。
面试准备流程图
二是面试之前应该准备哪些技术能力。核心数据结构、算法是必须要有的,链表,树、单词查找树、图,栈和队列,堆,向量、数组列表,以及散列表。
计算机基础知识也得熟悉,位操作、进程、线程与锁,以及对自己常用语言的理解(不过,很多不同圈子的人都相信最好的软件工程师并不把自己禁锢在一种特定的编程语言上)。
数学,也是很重要的。
问题解决流程图
本书最开始章节有一个作者简介:
Gayle Laakmann McDowell,是CareerCup创始人兼CEO,是一位知名软件工程师,曾在微软、苹果与谷歌任职。早先,她自己就是一位十分成功的求职者,通过了微软、谷歌、亚马逊、苹果、IBM、高盛等多家知名企业极其严苛的面试过程。工作以后,她又成为一位出色的面试官。在谷歌任职期间,她还是该公司有名的面试官及招聘委员会成员,其间阅人无数,积累了相当丰富的面试经验。除此书外,还著有《产品经理面试宝典》《金领简历:敲开苹果、微软、谷歌的大门》。
由作者经历可知,本书的内容主要是应对国外大公司的面试。微软喜欢对技术满怀热情的极客;亚马逊面试团队中有"调杆员";谷歌面试官不是决策者,只打分,最终依据平均分来决定是否录用;苹果的员工都是超级果粉;Facebook青睐拥有创业精神的开发人员,Palantir要求工程师要聪明。(当然,关于这些公司的简介,可能是一直在变化的。)
由同事同学的分享结合自己不够多的面试经历来看,本书也是适合国内程序员阅读的:国内大厂的面试流程,会跟书中讲述内容大差不差,数据结构与算法、计算机基础知识,都需要扎实些。而相对面试流程不太完善的小一些公司,面试官的印象分、与面试官是否聊得来,会占比较大的比重。
聪聪是只和我共事两个月的同事,但却成为我很是要好的朋友,我们都在深圳时,总是隔断时间便在工作日夜晚一起吃个饭,然后沿着地铁线路散步、聊天。散步时,聪聪整理过他对面试的看法:"龙,在我度过自己一段比较糟糕心境之后,连拿了好多个offer。面试,其实只是一个沟通过程,这过程中不管是面试者还是面试官,都需要做到自信和平等。
"术业有专攻,技术也有专精之说,面试官问的你不会是很正常情况,因为你会的,面试官可能也不会。我做面试官的时候,也会看着答案来确认面试者的回答是否准确。
"总之,是要自信且平等。不要觉得面试是有求于人,找工作恰似相亲,看的是合不合适,不是谁比谁强。
"当然,有时候运气也很重要的啦。可能刚好系统刷出来的这道算法题,你做过,你就获得优势咯。"
《程序员面试金典》中说:"每年至少设定一个面试目标,即便你不是真想换工作。这有助于提高你的面试技能,并让你胜任各种工作岗位,获得与自身能力相匹配的薪水。"每年都要参加几次面试,是我在很多地方都看到过的内容。面试,可以不为换工作,只是让自己对就业环境,了解更多些。
本书的推荐语为:"作为一个程序员,如果想换工作,是需要早早准备的,准备的方式以及应该准备哪些内容,可以通过看书获得。
"看书,可以选择《程序员面试金典》。《程序员面试金典》是一本很专业的书,目前已经出版到第6版。一本能出到第6版的书,本身就是受欢迎、有内容的明证。
"本书介绍了关于面试的方方面面,主要分作两个部分:介绍性章节和技术储备。介绍性章节内容不多,如何写简历、如何面试、如何准备,如何谈薪,是可以快速读完且常读常新的。技术储备是一份大纲,数据结构与算法、计算机基础、语言、数据库......它告知我们的发力方向。"
"充分的准备将会使你拥有各种技术技能和沟通技巧。不管最终结果如何,只要拼尽全力,便无怨无悔!"