在上篇文章中,我们聊了聊换工作之前要思考的问题。接下来我们趁热打铁,聊聊身为程序员的我们,应该如何面试?
面试的时候,不知道你会不会有这几个感觉?
面试面试,到底面的是什么呢?根据我这么多年面试和被面试的经历,我的观点是: 面试是和面试官合作,展示自己的优势和优秀之处。这样经过对比之后,面试官才能择优录用。
我们需要摆正自己的心态,其实在面试过程中,面试官和面试者的关系不是对立的,而是合作的。两者的目的是一样的:通过几个小时的面试,弄清楚面试者,到底是有多优秀,是否适合当前的职位。
当然,经理和HR的面试还会侧重不同的角度,他们要考虑成员的稳定性、成长空间、薪资、背景、组内人员构成、性格品格、交流以及技术储备等等。但是基本的逻辑是不变的,面试者需要和面试官一起合作,将自己优秀的一面展现出来。让你这个求职者闪着金光的素质点照到面试官的眼里。
当然了,要想面试,首先要获得面试的资格。简历就是帮助我们通向面试的钥匙。
在你的简历到达每个面试官的邮箱的时候,面试其实就已经开始了。
我面试时遇到过很多让人皱眉头的简历,比如篇幅太长,重点不突出,组织混乱等。
那么简历到底该怎么写呢?
简历中最重要的部分莫过于每份工作经历的职责和内容了,因为这将是面试官挖掘你闪光点的重点区域。
这个部分里,注意不要写流水账,要学会梳理每份工作的重点,尤其是最近的工作——每段经历都解决了哪些问题,带来了什么价值,你从中学到并使用了哪些技术。
同时,面试官还会特别关注你在每一份工作经历中那些不平常的经历,比如,安排你去做了别的领域的工作,你能否快速学习新技术,比如如何维护和迁移遗留系统等等。
这些实打实的工作经验,是最具有含金量的,尤其是和面试的职位有重叠的工作经历。
但我们要注意的是,对工作经历的描写要有的放矢,也可以更好地控制简历的长度。
如果有三份简历扔给面试官,一个5页,一个3页,一个1页,相信我,面试官不会分别用5分钟,3分钟和1分钟看这三份简历的,而是基本都用2分钟。
因此简历不要太长,要精简有力地说出自己在每一份工作中的亮点。如果在一段工作经历中,自己没有发挥什么作用,那就一笔带过。啰嗦的简历只会让金子淹没在一堆没有价值的沙子里。
我的建议是,如果是你刚毕业,简历不要超过一页(单面A4纸,下同)。工作十年以下,不要超过两页,最多最多,不要超过两页半。
简历一定要倒叙,倒叙,倒叙!重要的事情说三遍。面试官关注的永远是你最新的工作经历,而不是你刚参加工作的那段经历。如果面试官看到你的简历,第一段内容是你刚毕业时候的工作,印象分就先减去大半了。
前面说了要倒叙,但是对于一些自己想重点突出的内容,还是可以考虑放在简历的最开头的。这里的开头指的是在姓名联系方式等固定开头的下面。
比如,获得过有知名度的奖,得过有分量的奖学金,是某个知名开源项目的贡献者,深入研究过某个开源项目,自己有个不错的技术博客等等,只要你觉得是你的闪光点,都可以放在简历的开头。
比如说我,虽然已经过去七八年了,我还是会把我写过《Java 入门 1·2·3》这本书的经历放在简历的开头。只是想给面试官一个印象:我Java基础不错,文字描述能力也凑合,而且是倾向于踏踏实实搞技术搞开发的。
以上说的是简历的硬性要求,还有一点我们不能忘记,那就是简历的工整性。
排版要清晰工整。不要从网页上复制一个到 word 里就当简历了。这是一个态度问题,虽然不用过度迎合(大部分程序员不吃这一套),但最基本的互相尊重还是要有。
最后,以上所有的原则都建立在“简历不要造假”的前提下。
当我们凭借简历顺利进入面试阶段的时候,我们就可以根据这家公司的招聘风格做针对性的准备了。
每家公司都有不同的面试偏好,比如Google对算法的要求就比较高,如果你想去Google,就得好好刷算法,要保证脑子先进入状态。其实每个知名公司的面试风格,网上多的是,你在面试之前不妨去搜一搜。
除此之外,还可以先自己模拟一遍面试,进入状态。这里我分三种面试者分别谈谈面试前应该准备什么。
很多大公司的校园招聘和社会招聘是不一样的,有些职位是一定要招收应届生的。但是应届生招聘其实没太多需要说的内容,刷题就对了,刷算法和数据结构就对了,展示自己优秀的一面就对了。
如果能找到学长内推是最好的,只要还有职位,基本上可以保证有一次面试的机会。
如果工作经历在一两年之内,那么首先我劝你不要跳槽,哈哈。当然你看到这里肯定是想换工作的,那么我劝你想一个足够有说服力的理由去回答“你为什么要换工作”这个问题,因为面试官一定会问到。
当然,这个时候的你,除了要梳理工作经历,可能也要像应届生一样刷算法和数据结构。
工作三年以上,就可以认为工作经历比较丰富了,毕竟一个大学才上四年,去掉寒暑假和实习,也就三年嘛。这时候准备面试,应该把自己想突出的和自己的优势好好总结一下。
再强调一下,要突出重点,不要泛泛而谈,可以突出自己的工作成果等实际的内容。
然后梳理一下自己用到的技术。如果面试官问到工作中的一些技术细节,要能回答上来。最后还有一些基础的算法,数据结构还是要礼节性地准备一下的。
当然了,还有内推这样的方式,不过内推一般都可以获得面试机会,只要好好准备即可。
那么最重要的来了,面试的时候,我们到底需要注意什么?
这里我列出一些面试中需要注意的点。
面试时间有限,要抓紧短短的面试时间,展示自己的优势。不会就说不会,不要勉强,更不要瞎扯,有时候,瞎扯会被直接拒掉。
注意和面试官的互动,注意面试官的反馈。如果面试官明显对你的回答不感兴趣了,或者没有听懂,那么要主动停下来,不要自顾自地喋喋不休。
要注意表达的清晰准确,毕竟面试官有考察你的责任,对于你的“口误”,面试官可能会点一下,确认你是不是会,也可能直接在心里认为你不会。
有时候面试官可能问不出问题,冷场了。这时候你可以将你自己认为的亮点之处主动说出来,和面试官主动交流。
如果你面试前的心态是怎么“对付”面试官,那么很可能会把事情做偏。比如去找各种面经,各种所谓经典的面试题来背诵。
当然,如果你本身是会这个技术的,面经还是可以看看的。这也是对面试的尊重。如果你本身没有这方面的经验,想指望靠面经“伪装”成会这门技术,其实不大可能。这种套路很容易被识破的。实际工作中用过学过,和突击看面试题的区别很大。如果只是背过,稍微换个角度问一下,不会的就直接卡住了。
首先,要准时到场。这一点不用多说。
其次,不会的时候不要较劲,不要反问面试官问你的问题。面试官是挖掘你的闪光点,不是证明自己比你更优秀,懂得更多。出于考察的目的,面试官是有可能问一些“自己认为你应该会但是自己不会的问题”的。
一个合格的面试官,是在面试中挖掘面试者的优势,而不只是劣势。但是不可否认的是,确实有些面试官会逮住面试者不会的,或者是没有做过的东西使劲儿问,再比如有的面试官把面试者当编译器、技术规范、文档手册这么来面,过于死板。
这种行为实在欠妥。
遇到这种面试官,我们首先还是要尽量回答面试官的问题。然后可以围绕面试官考察的点,试着“主动出击”,突出自己解决问题的能力。比如,自己使用过和某个技术相近的技术,而且解决了实际问题;比如自己确实阅读过技术规范,理解其中的概要,并在实际工作中,通过查技术规范解决了某个问题等等。
面试也是一种淘汰和选拔的机制,所以使用比实际工作更难的技术来选拔出更优秀的人才,也无可厚非。
但你可能还有疑问,为什么面试难度堪比造火箭,实际工作确是拧螺丝?比如面试时一水儿高大上的算法,实际工作不还是用不到?
换个角度,面试算法,其实是考察你的学习能力,你是否能通过学习,掌握这些算法。如果你可以,那么就说明你的能力挺好。接下来就是重点,那么你这种能力,也可以用在解决工作中其它问题上。
所以背后的逻辑明白了吗?问的内容会不会用到不重要,重要的是你有没有学习的能力。这能力就好像黄金一样,黄金不能吃不能穿,但是它代表价值,可以换来吃的穿的。
其实我对这个,也是有点无奈的。这相当于变相承认了技术等于能力,不过不得不承认,用技术难题来考验面试者,始终是一个有效的手段。
在没有工作经验的时候,确实只能看学历,这和考察算法是一个思路。好的学历,说明这个人学习能力强。至于学会的那些东西在工作中有没有用,其实不是那么重要。一个学习能力强的人,更能让公司相信TA在工作中也可以学得更快,工作得更好。
当然,随着工作年限的增加,学历的重要性就会慢慢减小。学历就像是一块奖牌,但是工作经历和工作取得的成就也是奖牌。奖牌多了,单块奖牌的重要性就下降了。
面试是公司择优录用的一个过程,因此从一开始,我们就要精心准备,从简历,面试准备,到面试发挥,每个步骤都需要用心思。在这个过程中,最重要的,就是自己的积累和成长,毕竟面试靠的就是厚积薄发。
最后需要强调的是,面试最重要的一点是,要真诚,绝大部分的公司对面试中的作假行为都是零容忍的。对于自己的经历,要坦诚地和公司描述清楚。即便之前工作的经历不好,但坦诚的态度也会让人相信你有改进的决心。
你有什么样的面试经历想吐槽吗?你有经过自己的努力,拿到自己心仪的offer的经历吗?欢迎你在留言区和我交流,也欢迎把这篇文章分享给你的朋友或者同事,一起分享一下彼此的交流经验吧。