出来工作几年,谈谈我的一些面试经历,主要大公司,小公司就没多大意义。
之前有人PM我关于海投简历的问题。我个人不建议海投简历。因为对能力弱的人来说,海投简历只会让他信心更差,没有任何效果,有投简历的时间还不如精心准备少数几个好公司;而对能力强的人来说,海投简历之后会有大量的笔试和面试,笔试很耗体力,面试更很耗体力,不但需要打车或坐地铁在各个公司间穿梭,而且需要在面试时保持精神的高度集中,一般面下来都会精疲力尽,导致接下来的发挥不好。所以还是之前所说,优先内部推荐,然后再根据自己的情况和职业发展路线选择公司,选择职位,不用选太多,集中精力攻破领域内的TOP3即可。就我自己而言,求职期间,我一共投了12封简历,参加了12家公司的面试,一共面了35轮。说多不多,说少不少,因为自己投简历时也是本着互联网公司为主,小公司和企事业单位压根没有投,精准投放的好处在于可以集中精力准备同一类型的公司,从而达到不错的效果。
关于简历海投的问题就说到这里,接下来讲讲IT公司的面试。需要注意的是我这里聊的都是应届生面试,社会招聘面试可能会有所区别,但整体流程不会有太大差异。
尽管笔试题会有所差别,但IT公司面试的流程大同小异:标准的技术面试一般有45分钟到60分钟,大约分为三个阶段:
一,自我介绍(5~10分钟):
这个环节的主要目的在于建立面试官和求职者之间的沟通,面试官已经扫过你的简历,但需要对你有进一步的了解,以便建立一个初步印象,并便于进行接下来的技术提问,所以这个环节最常见的问题无外乎“进行一下自我介绍”,有时会加上3分钟或是5分钟的时限,有时会询问“说说你最得意的项目/作品”之类的变体问题。
由于这个环节相对固定,因此准备起来相对容易,但即便如此,面试初期时我在自我介绍环节也犯过不少错误。这里以我的经历简单的总结下这个环节的要点:
1,言简意赅,突出亮点
面试初期时,我犯的一个很大的问题就是自我介绍废话太多,诸如“出生自xx省xx市”,“自我评价xxx”之类的屁话连篇。要知道技术面试不是相亲,这里的自我介绍不是相亲里面的查户口本,而是要了解你这个人靠不靠谱,牛逼不牛逼。如何在3分钟内让别人觉得你牛逼呢?很简单,说且仅说你最牛逼的事迹,让对方留下深刻印象。就技术面试而言,牛逼的事迹包含三方面:做过的项目,读过的书,认识的人。
如果实在想不出来有啥牛逼事迹,那就比较难办。说实话,换做你是面试官,招一个履历毫无亮点的人进来有何用?
2,紧贴简历
面试官了解你的另外一个途径就是简历,然而短短一两页的简历很难说明白你简历项目中的亮点和难点。就算你不提及,面试官也会在简历中挑他感兴趣的点进行提问,因此自我介绍的内容应该是简历的补充。这样既能留给面试官不错的印象,也能有效节省时间,留出更多的时间进行技术提问环节和问答环节。
此外,千万不要搞出自相矛盾,比如说简历讲的做了A你在自我介绍中又说是B,这就不是拙计的问题了。
3,了解公司需求
不要试图用一套自我介绍来搞定所有公司,除非你的简历只有一句话("Exhausted graphic programming"或是"I wrote python"等)。不同的公司有不同的需求,在Google面前大谈.net技术显然不是什么好的选择(我在google一面中就做过这种挫事)。面试之前要进行详细的调研,了解公司和职位的需求,然后根据他们的需求定制自己的自我介绍和简历,效果会更好。
二,技术提问(35~45分钟):
通过自我介绍环节,面试官会对你有一个大概的评估,接下来会通过一系列深入的问题考察你的项目经历和技术能力。所以自我介绍环节不要吹牛逼,技术面试是很实在的东西,你有几斤几两问几下就出来,根本忽悠不过去。
按照MS的分类,技术面试问题分为三类:
1,Behavior questions:此类问题针对面试者的过往经历,一方面考察面试者的表达能力和实际经验,一方面也可以排除掉一堆在简历上吹牛逼的真ds:
“说说你最牛逼的项目?”
2,Hypothetical questions:此类问题会假设出一些场景,让面试者进行作答,主要考察面试者的应变能力和实际经验:
“给你三天,你会如何把xx项目做得很牛逼?”
3,Probing questions:如果前两类问题答的不错,面试官往往会追加一些问题,以探测面试者能够走多远,此类问题的出现也是一个标志,面试官对你之前的表现感觉还不错:
“你会如何改进你做过的最牛逼的项目?”
就具体技术问题而言,考察题目视你的应聘职位和你的过往经历而定,开发岗会侧重代码编写和系统设计,测试岗会更注重测试用例的编写等细节,产品岗要对线框图,交互设计有了解。不过算法设计和代码编写这两块是肯定有的,毕竟这是程序员的看家功夫,这个搞不定就没有然后了。
算法设计这块我就不多说了,不搞ACM的码农没啥发言权。代码编写的话这里多说两句:和平时的开发不同,面试时的代码往往是在纸上搞的,而非IDE。很多代码写的还不错的选手往往会在纸上代码这个环节被虐的翔尿齐飞,限于篇幅原因我就不多介绍纸上代码的技巧了,还是那句话,多练习。我自己把Software Tools、Elements of programming和C interface an d implementation中的代码在纸上写过几遍,又把常见的面试题目练习了三遍,因此纸上代码环节从来没出过问题。
三,问答环节(5~10分钟):
如果前两个环节进展顺利,就会进入最后的问答环节。这个环节面试官一般会让面试者提几个感兴趣的问题,以增进相互的了解。
相对于前两个环节,这个环节会轻松很多。不过依然要注意,关于面试表现的问题最好别问,因为问也问不出来什么,至于待遇,那是HR的事情,技术面试官也无能为力。
最后根据自己的面试经历说说几个细节的问题
态度:记住你是去求职,证明自己的能力达到职位需求是你的首要任务。没有必要和面试官抬杠,把面试官搞不爽对你一点好处都没有。我在面试搜狗时就出过这问题(直接表示对面试官的问题的不屑),直接一面被砍掉。
着装:尽管IT公司大多不需要西装革履,但也别太拖沓,穿整齐些,至少给人很精神的感觉。我面试腾讯时直接搞了一件套头衫+迷彩裤+机车帽,结果是面试官从头到尾就没正眼看过我,直接一面被砍掉。
交流:面试是一个交流的过程,不明白的一定要主动询问,面试的大忌就是面试官给了一个问题,你一声不吭的搞了一个小时,最后发现搞的不是面试官问的问题,这时就算你很牛逼,面试结果往往也是悲剧。