最近面试人的一点儿感受
3月份来现在的公司,转眼间已经8个多月了,来这边以后逐渐接触到面试别人的机会,一路下来也应该面试了20,30个人了吧,今天就写点儿这段时间面试人的感受。我是做iOS开发中,所以面试的候选人基本上都是和iOS相关的,当然也涉及到非技术的部分。
我在面试候选人时基本上可以会分为以下四个部分:
1、首先会让候选人简单的做一个之前做过项目的介绍
面试候选人的时候其实大部分时候都是已经拿到简历了,为什么还要“多次一举”。主要是想通过候选人的介绍对候选人的表达能力和逻辑思维有个基本的认识,同时也便于找到自己更感兴趣的项目或者话题,后面进行深入探讨。
2、技术部分
通过项目介绍的部分以及简历就可以找到继续深入聊的技术话题。一般会围绕他做过的项目,负责的模块,展开沟通,在聊的过程中就可以基本判别出他是否对这块儿真正的了解,以及有没有自己的思考。除了做过的模块也会聊一些关于iOS开发方面的其他技术点(ARC,MRC,KVC,KVO,多线程,UI,运行时等)。基本上每个技术点都会问一些,除了怎么用,更多的是问一些背后的原理的东西。例如问到ARC,会让他跟手动内存管理做个比较,更深一步会问ARC的实现机制是什么,如果仅仅只能答出来编译期间自动插入一些生命周期管理的调用,可能就会继续深入的问引用计数底层是怎么实现的,等等。
通常对于仅仅会用,不会主动去思考、去查找技术点背后原理的候选人,一般不会通过。不可否认现在开源库很多,有些也写的很好用,现在程序开发中也经常谈到一个观点“不要重复造轮子”,很多候选人也就很自然的拿来主义,不管什么问题,网上找到一个源码直接拿过来用能解决问题就行。没有自己的思考,用第三方的库,出了问题怎么办?如何解决?
不要重复造轮子的观点是正确,但是我觉得后面应该加上一句“但是你要懂得如何造轮子”。否则永远都受限于别人造好的轮子,遇到新的问题,如何解决。而且一味的用第三方的东西,不去了解其背后的实现,本身对自己的成长也是不利的。时间久了自己就变成了一个单纯的资源,竞争力如何提升。
面试过程中也遇到了不同的候选人,可能有些人技术面比较窄,有些人技术面比较宽。不能一棒子打死说技术面窄的人就没有竞争力,如果你在有限的技术面上能钻的特别深入,那也照样会赢的这场面试。例如有些候选人两三年开发经验,可能主要精力实在UI这块儿,但是有些人就对性能调优等技术钻研的很深入。同样的写个TableView,别人滚动起来就很流畅,你的就一卡一卡。这就是差距,随着一门技术的深入,它牵扯到的东西就会越多,自然知识面会得到一定程度扩展。
3、了解候选人的职业规划
面试的最后部分一般会聊一下职业规划,看看候选人是否对自己以后的发展有清晰的规划。问到有些人候选人这个问题的时候可能得到的就只有一句“我以后打算一致从事技术”,有些候选人就会讲的详细一些,以后打算一直从事技术,要提升的有哪些哪些。毫无疑问第二种候选人就会更好的传递出相关信息,能说的详细至少代表他曾认真的想过这个问题。当然不排除第一种人可能也想过,只是不善于表达,但是面试本身就是一个沟通的过程,如果这个时候都不能把自己的想法很好的呈现出来,别人又怎么能看到你的亮点。
4、了解候选人的面试动机
通常前三个方面都通过了的话,还会问候选人一个问题“你期望这边公司能带给你什么?” 通过这个问题基本上就能知道候选人的期望大概是什么样子的,结合公司招人的目的,和后续发展规划就能得出最终结论。
面试人之前就应该知道,需要招什么样子的人?如果你需要的仅仅只是一个能够熟练,快速的,靠谱的完成工作的人,那么就去找到符合这个条件的人。即使碰到一个很优秀的大神级别的人,如果他的预期和公司能给他的东西不符,那也只能就此作罢。即使你面试时画了一个很大的饼,候选人也接受了,来了之后发现完全不是这个,最终照样会走。所以看汤下面是非常重要的,省得浪费资源。
写在最后的话
面试的过程中是一个证明候选人能行的过程,通过30分钟左右的时间去发现候选人身上的亮点,再结合候选人的现有工作经验,技术实力以及发展潜力等综合判定其是否符合要求。
面试的过程也是一个学习的机会,你可以去问一些自己不懂但是感兴趣的问题,如果候选人刚好对这块儿比较熟悉,那么你就长见识了。退一步如果候选人也不是很清楚,但是他能表达出自己的思考和想法,也可能会激发你的想法,经过思考后或许也能得到一个满意的答案。
注:smileEvday保留本文的一切权利
转载请著名原文出处
本文所有内容仅代表个人观点,如有不同意见欢迎交流
😊请楼主喝杯豆浆😊