如果你认为该得90分,那说明你还没有理解面试,区分不开面试与考试的区别。考试是看你是不是合格,面试是要选拔最优。用考试的思维应对面试,哥们儿你南辕北辙了。
现在回答我第二个问题,如果某个职位,有10个人都能正确回答90%题,凭什么要求对方把offer给你?如果想不通这个问题,那你将来的面试成功率将永远是1/N(N表示竞争同一个岗位时,与你水平相当的人数)。
再一次面试上,我问过道很俗的题目:你擅长开发还是合作开发?现场有90%人选择合作开发,他们认为合作是现代企业需要的。有10%选择开发,表示能力强可以独挡一面。在我的提示下,终于有人壮着胆子选择两个都擅长。我反问:“你两个都擅长?谁信呀”。那位同学立刻哑口。
对于这道题,我的回答是:我既擅长合作开发,也擅长开发。某年某月在某公司我参与某项目,与多方合作,达到极好效果。某年某月领导让我完成一项工作,我经过N多努力,取得惊人效果。
顺便说一句,我在面试中从来不会说“我参加的一个项目”,我提到的项目一定有:时间、地点、人物、事件、结果。
我们冷静下来分析一下,这个语句是不是学过SQL两天的人都能写出来?这样的正确答案即便回答100道题也没用,因为这样只能不断证明你是个初学者。注意,我不是说“你是个初学者”,我是说“你表现出来是个初学者”
有人会好奇,面试官问SQL,会期望你回答项目经验吗?在面试中,如果有可能我会尽量超出对方期望回答问题。只有这样才能把10分的题答成50分。
这其实也解释了一种现象,为什么有人面试感觉很好,拿不到offer?你感觉好是因为题容易,但题容易了你会按照容易的方式去回答,而忽视了可发挥的空间。
一道题可以有很多种回答,每种回答又可以有很多种回答的方法。会面试的人可以根据自身情况、对方公司、天时地利而选择最好的回答。
举个例子,我在大四时面试一个通讯公司,面试被安排在晚上。其中一个面试题:你知道OSI网络7层协议吗?我突然意识到我们当天下午刚刚考完了《通讯原理》。也就是说我所有的竞争者(我的同学)都能倒背如流。我于是回答:我知道OSI的7层协议,但具体顺序不记得了。你等我理一下:最下面是网卡网线是硬件层,硬件搭建好了数据就通了,是数据链层,数据连通了就能跑网络协议了,然后是网络层…….。当我的竞争者都会背时,我要展现给面试官我懂。
有人会问,把简单题回答那么复杂,后面时间不够怎么办?我再次提醒你,能不能把面试和考试分开?考试时间不够题没做完会扣分,面试时时间由面试官掌握。如果面试官准备了10道题,你在前5道题充分展现了自己的能力素质,后5道题还有必要做吗?
再举一个反例,我的一个朋友在的(法语区)面试一个Java职位,问题是一道俗题:Abstract Class与Intece有什么区别?
虽然回答方式有些标新立异,但是忘记了天时地利。一个以中文为母语的应聘者,一个以法语为母语的面试官,两人用都第二语言的英语讨论“是”和“有”的关系。能扯明白吗?如果扯不明白,对方当然认为你概念不清了。
如果你还在想着正确答案,请回到开头重读本文。你必须要分析清楚对方的问题是再考你哪方面的能力,而你的回答都包含了那些能力,有没有给足,有没有超出,有没有意外惊喜?只有这样准备面试,才可以一道题顶十道题。
我与朋友谈到的一道面试题:现在有一套房子,价格200万,假设房价每年上涨10%,一个软件工程师每年固定能赚40万。如果他想买这套房子,不贷款,不涨工资,没有其他收入,每年不吃不喝不消费,那么他需要几年才能攒够钱买这套房子?
当我算到永远买不起时,我立刻意识到,我的全部竞争者都会选E。这时就要突发奇想,有没有变通办法。也就是说,当其他人回答“不可能”是,我回答“可能”。
找的一个办法:期权,与房主签一个合同:7年后我以280万买下现在值200万的房子。现实中不是每个人都笃定房价永远高速上涨,会有人愿意和你签这份合同的。
找到第二个办法:分期付款,第一年买下20%产权,第二年买下18.18%产权,到三年买下16.53%产权,….到第7年可以付清全款。
有人质疑:你确定法律允许你这样一点一点地买房产吗?我们去面试IT民工,不过是发挥一下创造力,又不是去应聘律师。
只要你愿意打破题目的边界,可以找到很多“可能”的方法。我承认我回答的不是正确答案。但要搞清楚,对方想考我的数学能力,我的回答中展现了数学能力、思维的广度、对待问题的灵活。这样,我的不正确回答可以击败正确答案。
另外一个例子,在我大学毕业求职时,一个国内公司说要考我个脑筋急转弯。我说我不擅长这类题,对方公司要考。题目是:一个小孩家在17楼,每天回家坐电梯到15楼,然后再走两层回家,为什么?我想了想,说不知道。
到面试结束,对方问我有什么问题,我说“那个脑筋急转弯能告诉我答案吗?我想输个明白。”对方说答案是:小孩身高够不到17层的按键,只能够到15层。
我听后大笑,说:难怪我答不出来,原来这个小孩弱智呀!一个三岁的孩子够不到东西都知道搬个小板凳,这个小孩能自己出去,至少也6、7岁了吧,天天遇到困难都不想一个办法?电梯房块砖头,身上带只笔都能搞定。
我转而对面试官说:如果我有幸被贵公司录用,将来咱们就是同事,我周围工作的不会都是这种水平吧?(言外之意,用这么弱智的题目考我,你们的智商也太…….)
对方问这道题不过是考考小聪明,我的回答告诉对方:小聪明没有,但是我有口才、有逻辑、有应变。最后,再以下这道题,展示一下年轻人的傲气。
很多朋友喜欢对面试题分类,什么人事题、概念题、经验题、behavior题。对于我来说,除了代码题要特殊对待一下以外,其他题目基本不分类,回答方法也一样:按照对自己最有利方式回答。
你问我技术,我往里混经验;你问我经验,我往里揉智慧;你考我智慧,我展现细心。达内C语言培训强烈你把这段贴床头,牢记!
我的多数面试回答里面都混有附加值,我通过附加值从别人手里抢offer。其实,用不着每样都擅长,只要适当地添加的附加值,就大大地增加的胜算。因为多数人答题都只会在题里面转,你在玩儿附加值,就已经领先了。
现实的面试中,并不是每个面试官都能从你的答案确解读里面的附加值,但他会感觉到你的回答比其他人的好,至于好在哪有时他也说不清。当然,也有面试官对你添加的附加值毫无感觉,这种情况你还有必要以后跟他混吗?
多数情况,你不用走太远,只需要走一两步,比其他应聘者多走一两步。假设大家的水平相当,当遇到一道题时,你能想到的其他人也能想到。这时不要急着回答,多想一步,找到一个更好一点的回答,多一半的人就这样被甩掉了。
多数人都会用家庭原因、个人爱好、朋友介绍之类的理由。这些回答都属于搪塞,回答了和没回答没有任何区别。
我会这样回答:现在IT界的格局正在发生变化,未来的5-10年mobile device和online service将会成为IT业发展最迅猛的两个领域。我认为贵公司的产品,在未界会占一席之地的。这是我应征的主要理由。
对多数人来说,我们很难成为C和D,但是在面试中装扮一下总可以吧。从C和D的角度考虑一下问题,用C和D的语气说几句话,成功率就会上升。
现在说说代码题。我以前从没准备过代码题,我知道DP也是近一年的事。我不是说代码题不重要,但不要只盯着代码题。如果你认为代码题是,你的思维会被“封顶”,如同前面那个苦练刀工的厨师。
对我来说,核心算法固然重要,但也不过20%。我从来不考虑Bug free,原因很简单,我做不到,即便做到了所展现的不过是bug free。相比之下,下面这些条目更重要,因为它们关联你的经验:
有时会遇到一种情况,某道代码题,如果保守写法比较稳妥,优化写有风险。我的抉择原则是:看那个保守写法是不是足够展现自己。如果只是个入门级,那么我宁可冒险优化。还是那句话,面试不是考试,对错不重要,对很多面试官来说,我在努力优化比把题作对更重要。
有时即便你没有真的去优化,只说一句“让我看看,还有没有优化的可能”。也能给面试官留下不错的印象。
当然,挤死比自己学历高、能力强、经验多、做题猛的竞争者之前,我们还需要做一件事,那就是学好技能,底气十足的去应聘自己想去的公司!