记得我刚作技术面试官的时候,还比较单纯,别人说什么就信什么。这原本也没多大的错,虽然有些候选人会夸张本身的技能,但毕竟大多数候选人都是比较诚实的,相信绝大多数的技术面试官也像我这样,会以君子之心度人的。html
但我面试了一阵后,有项目经理向我反映,经我手面试经过的一些候选人有存在实际技能与简历上描述不符的状况,好比简历上写的是熟悉Linux操做,但实际也就会几个命令,又如简历上写的是熟悉Spring Cloud,也有实际项目经验,但后来发现他其实没作过Spring Cloud的实际项目,简历上的项目是从网上下载的。 java
项目经理还说,像我还算好,经我面试进来的人好歹只是能力上的问题,并且能力的误差尚在能够接受的范围,像有些面试官甚至会让一些没法正常和别人沟通沟通,干活偷奸耍滑得过且过等的刺头经过面试。linux
因而我对面试别人的方法和技巧作了总结,在这方面也和其它资深面试官作了沟通。在本文里,不只会讲到如何甄别一我的真实能力的方法,还会在此基础上对你们提些面试方面的建议。nginx
其实,我从接到候选人这一刻起,面试就开始了。在面试过程当中,团队协做能力和沟通表达能力甚至比技能还重要,若是候选人出现以下的状况,我是必定要在评估报告里写上对候选人很是不利的评价。面试
1 候选人迟到,且没主动说明,或很是轻飘地把迟到归结成客观缘由。数据库
若是候选人预期会迟到,应当事先打个电话来讲明,好比确实是由于交通等因素,这不会成为扣分因素。或者在迟到后,主动说明缘由并表示歉意,这也没什么。设计模式
但若是候选人迟到,但就当没事人同样大大咧咧地直接来面试,我就会写上,“候选人迟到且没说明,没时间观念”。或者候选人虽然有说明,但一口把迟到缘由归结成交通等客观缘由,同时不表达歉意的,那对不起了,我估计就得写上“候选人没担当,平时工做中有可能会推卸责任”。多线程
2 候选人谈吐举止不稳重框架
说通俗点就给人感受轻飘飘,好比说话很随意,得理不让人,或者在交流时随意打断别人,或者交流时自说自话引导话题,或者交流时抖腿等。这类人有可能会和组内成员沟通有问题,因此状况严重的,甚至会无视技术亮点直接排除。不过话说回来,候选人的面试时间估计也就半小时,在这半小时里,装得职业化些稳重些,这应该不难吧。分布式
3 过于以自我为中心
好比候选人目中无人或者说话很“亏”(太自我),好比通过屡次深刻发问后会不耐烦,或者大谈特谈本身的优点,或者太“做”。其实有时候,候选人的能力比面试官确实要强,资历也要比面试官丰富,但哪怕在这样的场景下,也得作到从语气和举止上尊重面试官,哪怕面试官反复问到同一个问题,或者问的问题在你看来很简单,你也得态度好地认真回答。
其实大多数IT技术人员都是老员工了,并且平时哪怕有缺点,在面试时也会尽可能隐瞒,因此我在面试过程当中,在上述第1方面淘汰掉的候选人虽然有,但很少。在大多数状况下,候选人会在简历上有所夸张,甚至做假,下面来看些具体的状况。
1 候选人把不是相关的经验写成相关的经验。
好比候选人虽然有3年工做经验,但前两年是作测试的,第三年才作java。但在简历中,他把3年经验都写成Java相关的。
这样的话,他前两年的java经验看上去会很是像学习项目,而非商业项目。并且,他在简历上所写掌握的技能,必定很肤浅,无法看到有工做3年的程度。
2 候选人的项目描述看上去像毕业设计或课程设计
真实公司里的项目,多少会用到当前比较热门的技术,好比Java项目里可能会用到Redis或Dubbo等组件,并且公司通常不会作个明显没商业前景的项目。
因此若是我在简历中看到有候选人写,xx教务系统,xx财务系统或人事系统之类的,(它们通常和网上能下载到的案例名很类似),这就很明显是课程设计的项目,由于这类系统都有现成成熟的,公司通常不会开发。或者是xx电商系统,除非是某公司亏钱推广本身的产品,不然通常不会自行开发,这类项目我也会在面试时着重甄别。
3 在项目中提到的技术都是过期的,并且出现明显会亏本或应用场景明显不符合的技术.
好比还在用Struts MVC,或者明明流量比较大须要分布式部署的系统,在项目里还仅仅用到Spring MVC,没有用到Redis等分布式组件。又如,一个明明工期比较短并且访问量不大的维护项目,还大量用到了Spring Cloud等成本比较高的技术。
4 在某个时间点,某培训学校有大批学生毕业时,我就常常会看到很多简历里的项目描述很类似,这每每是培训学校里的学习项目,而不是商业项目。
我会承认该候选人在培训学校里的学习经历,但毕竟学习项目的含金量要比商业项目里要小,因此我会把这部分的项目经验排除在实际的相关技术年限以外。
5 简历上的项目经验里,描述某个技术的文字和上下文很是不匹配,感受像是后来加上去的,这类技术我就要详细问些细节,由于有可能候选人其实没在项目里作过,而是只有学习经验,但拼接在现有的项目里。
在我面试前,我通常会通读候选人的简历,在发现有第2部分所述的可疑点的时候,会经过以下的问题来确认。
1 针对候选人的相关技术年限,好比java 3年,我会预先给候选人划定个应该达到的程度,好比得熟悉虚拟机熟悉多线程等,而后在面试时,就围绕这个尺度来问,通常来讲,能甄别出夸大相关技术年限的状况。
2 若是候选人在简历中出现相似学习项目,我就会问些在项目里必定会用到的技能,好比项目如何经过ant等工具打包,如何经过jenkins等来打包和部署,或者问项目的细节,好比多少我的作了多久?客户是谁?而后再提出本身的质疑:这个产品市面上有现成的,为何大家公司还要掏钱再开发?若是候选人想用学习项目来冒充商业项目经验,这些细节必定答不上来。
3 若是我看到候选人简历上的某些项目里,出现了比较突兀的技术,那么我就会盯着这个技术问,好比明明用单个Oracle实际便可完成的项目候选人说用了集群,那我就会首先核实集群的配置细节,而后再问,为何要用集群?这时候,候选人每每只能尴尬地说,这是由项目经理安排的,他也说不上。
除了上述状况以外,若是候选人在简历中写了一些比较热门的技术,或者是亮点,我就会对此深刻提问,若是问题也回答很是好,那绝对是个加分项,反之就还不如不写了。
好比,某候选人在简历上写,掌握数据库性能调优的技能,也在项目里用过,那么我就问怎么用的,采用了哪些技术,用的先后大概能提高多少性能。也有候选人能很好地回答上,好比说用执行计划看性能耗在哪方面,而后对应地改,或者分库分表,或者用with等语法改善SQL语句,这就能证实他确实掌握这块技术。但有些候选人只能停留在建索引的层次,那么这就不能说是熟悉数据库调优了。
又如,有些候选人在简历上写,在某某项目里用到了Kafka作消息中间件,这也是个亮点,这时我就会问,kakfa如何作消息持久,如何实现消息分组等问题,总之只要作过kafka,必定能知道。这时就有些候选人说不上了,再一细问是只配置过,没用过。也有些候选人只会泛泛而谈,无法结合项目说,这样的话,只能证实候选人有理论经验,而没在实际项目里用过。
1 千万别在学历年龄等关键因素造假,在入职时会提交学历证身份证等,这类造假很容易看出。
2 我知道有些候选人若是照直写,估计连面试的机会都没,这里只能说,好比你把前几年的测试经验写成java开发经验,你就得后果自负的,假设你是3年测试加2年java,但你写成了5年java,面试官在没法查证的状况下,是按5年经验来问的,你就的自行承担风险了。
3 在写简历时,必定得了解市场上对你这个工做年限所必备的技能,若是不知道,本身去看招聘广告上你这个年限的职位要求,再不清楚的话,本身经过面试去试错。
若是你的简历给面试官的感受是,达不到你这个工做年限,那么面试的机会就不多。这里倒也不是让你们不切实际地写,而是请你们得挖掘本身的项目经验,其实有不少技能,你用过,但没注意,因此没往简历上写。好比数据库调优,你必定改写过SQL,也或多或少用过执行计划查看性能,这类容易忽视的但很是值钱的经验得写上。
4 写简历时,必定得准备些亮点,好比精通linux,能在linux上部署程序或查看日志,或者用过些分布式中间件,又若有过大数据的经验等等,这类经验,最好结合实际项目写,好比在xx项目的xx模块里,我用到了消息中间件RabbitMQ,它是怎么部署的,如何发消息等,而后,你得事先准备好针对该技术的相关问题。
5 在写简历上的项目时,能够一笔带过客户方是谁,用了多久,这样就能显出这个项目是商业项目,而不是学习项目,尤为这个项目看上去很像学习项目。
在准备简历方面,我根据个人一些经验,总结出了一本书,Java Web轻量级开发面试教程,尤为在最后一章,写了如何准备简历和面试,自认为还算详细,你们感兴趣的话能够看下。
1 针对你工做过的公司以及项目经验,你得很是清楚,说的时候别和简历上不一致,好比具体某个项目的时间段以及用到的技术框架,用到的数据库等,毕竟这个是你作过的,你再说错就有些说不过去了,若是说错,面试官会怀疑你简历的真实性。
2 针对你简历上提到的技术框架,尤为是亮点,你必定得逐一准备,首先,你得讲清楚这个技术是如何在项目里用到的(结合项目的实例讲解技术,能够讲些配置参数的细节),其次,你能够到网上看下这个技术的相关描述,加深对这个技术的理解。好比nginx,你能够了解配置反向代理的细节,以及如何在其中写lua脚本,最后,你能够说下对这个技术的理解,好比引入这个技术后,对你的项目有什么帮助,或者在使用这个技术时,你遇到过哪些坑,而后是怎么逐一解决的。
3 而后能够刷题,刷题的时候,最好能结合底层代码来讲,好比你被问到Spring里的IOC,你能够事先阅读些底层代码,在面试时经过纸笔向面试官讲述,这样面试官就会认为对这个技术很精通(你都深刻底层代码去看了,怎么可能不精通)。
4 在简历上你能够写一些亮点,而后在面试前准备说辞, 在我另外一本书Java核心技术及面试指南里,我写了关于虚拟机和设计模式方面的准备说辞,并在最后一章给出了抛出这些说辞的技巧,本身感受,也是我面试别人和本身面试的经验之谈。
5 最好了解下你平时用到的项目打包部署测试等的工具,好比用ant打包,用jenkins部署,用Sonar作代码质量管理,用哪一种技术作性能压测等,这类技术一旦你说出来,那么第一能向面试官证实这个项目是商业项目,另外,还能证实除了代码开发以外,你还有项目实施部署的相关经验。
本文欢迎转载,转载前请和本人说下,请全文转载并用连接的方式指明原出处。
本人自认为,上述经验是根据面试了大量技术人员总结而来,对你们多少有些帮助,虽然有些泛,但里面不乏能够实施的改进点。若是你们在面试方面想了解哪一个细节,请和我说,我会在后继博文里介绍。
感谢你们读完本文,祝你们十一愉快,我是不可能出去玩了,我有一大堆事,好比准备书的大纲,完成我另外一本书等,不过这些都是我自找的,因此我也会很愉快。
若是你们感受本文多少有帮助,请点击下方的推荐按钮,您的推荐是我写博客的最大动力。