如何招聘程序猿?

如何招聘程序猿?

近一年技术团队在不断扩充成员,一直忙于高级java工程师、Android工程师、iOS工程师的面试,很想写一篇和招聘程序猿相关的文章,特别是看到“酷壳”里皓哥写的一篇《我是怎么招聘程序员的》文章后,产生很多共鸣。

虽然工作年限还不够长,但也经历过很多大大小小的面试,即被面试过,也面试过很多人。经历过很多很专业的面试,也经历过一些非常BT和令人不怎么舒服的面试。一个好的面试体验,公司的考核流程和面试官就显得非常重要了,如果考核流程非常繁琐,会让面试者内心没有任何好感,如面试时在前台莫名其妙的被晾置一两个小时,笔试初试复试得跑三趟公司。面试官就更重要了,不要刚开始面试,就弄的像别人欠你钱或别人在挑战的技术能力似的,或者尽问些非常冷门而且工作中完全用不到的技术来彰显自己的博学。

公司招聘不要弄成一种买卖关系,应该是寻找一些志同道合和跟公司“气场”匹配的伙伴,这里的气场是指跟公司所需要的技能有一定的匹配度、跟公司的理念有一定程度的吻合。公司行政经常给我说:“技术人员是不是很矫情啊?说好来面试的,最后都不来,说好要入职的,入职前一天又说有公司给更高的待遇。”我只能微微一笑的给她说:“你见,或者不见我,我就在那里,不悲不喜。你来入职,或者不来入职,offer反正在你手里,不增只减”。因为我也曾经矫情过,研究生快毕业时,做了一堆的算法和数据结构方面的题,准备了一堆面试常问的题和一些面试技巧,就到处投简历面试(其实当时手里已经有几个不错的offer了),不为找工作,只为刷存在感,回想这年少无知的举动,倍感惭愧。技术圈说小不小,说大其实也不大,毕竟江湖不远,有缘再见,程序猿平时还是要多给自己攒攒口碑的。

如何去考核一个程序猿是否可以给offer?我在面试应聘者的时候,最主要是要弄清如下几件事:

  1. 应聘者是否可以跟我“正常对话”?

  2. 应聘者的技能是否跟公司所需的技能达到一定的契合度?

  3. 应聘者是否有能力解决工作中的难题?

  4. 应聘者是否可以跟我们团队一起愉快的工作?

我相信绝大部分的公司在考核应聘者时都会围绕上述四个问题来进行,可能有人会对第一个问题产生疑问,难道还有不能正常对话的人?还真别说,我就遇到几个性格比较“鲜明”的应聘者,面试时头抬的高高的,眼瞅着天花板,一副老子天下第一的表情,技术人员有傲骨可以理解,可是问几个技术问题,却一问三不知,问他之前团队如何协作的,只回答说公司安排的任务不喜欢就离职了,让人真的很难正常对话。对于第二个问题就更重要了,公司当然希望应聘者的技术越牛越好,梦想是美好的,能招到大神这肯定是公司之幸,现实终究还是很骨感,只希望能找到跟公司所需的技能契合度尽可能高的伙伴。技术圈比较流行一句话:面试造火箭,工作拧螺丝。这种情况确实比较常见,从某个层面来看是大部分公司程序猿能力的美好愿景,也催促自己去不断完善自己的知识体系。对于第三个问题,程序猿最基本的技能就是要通过网络解决工作中的一些难题,多问度娘,多问谷歌,程序猿比较忌讳的一点就是“拿来主义”,遇到问题不动脑思考张口就问别人。第四个问题,基本就是考查人的社交能力和情商了,个人人为,团队氛围的整体和谐是做好所有项目的前提。毕竟如今的项目都是靠团战,一个人即使能力再强,也很难独立完成整个项目。

之前我经历过的一些比较传统的面试流程,基本是下面这样的:

  1. 应聘者先做自我介绍

  2. 问一些比较难的非常细节的技术问题,基本就是快问快答的形式

  3. 给应聘者出一些比较怪异的算法题

个人觉得这种面试形式不是太合适,可能会错过很多适合公司的程序猿。其实我个人不论是面试别人还是被面试时,都非常讨厌第一个问题,拿着别人简历难道不知道别人叫什么名字?技术面试,这种形式上的东西能少就尽量少即可。但应聘者一进来,总得有个关于介绍的开场。我面试应聘者时,别人一进来时我会先问好,给个微笑,让应聘者不要太紧张。让别人做下技术方面的简单介绍,如工作中主要处理哪里方面的业务(电商、金融等等)啊?主要用哪些编程语言?主要用哪些开发架构(dubbo、SOA等)?主要用哪些框架(Spring、mybatis等)?这样也方便对这个人有比较全面的了解,交流时也好针对性的问些问题,做偏技术方面的介绍也好了解这个人的沟通交流能力。毕竟很难从一个人的简历或自我阐述上来考核这个人是否合适。

我绝不会在面试应聘者时问一些非常细节的问题,我曾经就经历一个非常BT的面试,面试官据称刚从华为出来,一上来就问我是否用过mybatis,我说用过。接下来这哥们问,mybatis是哪一年被开源的?接手的是哪个开发团队?mybatis的升级历史?当然我觉得我可能听错了,我说记不清楚哪一年被开源的,是apache开源的项目,讲解了下mybatis对比hibernate的优势和缺点。这哥们说是都不知道哪一年开源的,也不知道是apache的哪个团队接手,真的用过mybatis?说是我肯定没用过mybatis。当时内心就千万只骏马奔腾而过啊,我真的是在应聘程序猿吗?敢情我用了几年假的mybatis?

还有一种面试流程是很多朋友都给我说过非常不喜欢的,就是跟hr的面聊,hr的小姐姐们一般都是聊家庭啊,聊什么让应聘者说自己目前做过最骄傲的事情是什么?最失败的事情是什么?还有问应聘者如何处理跟女票的矛盾,陪女票逛街时接到要加班的电话怎么办?还有非常多很奇怪的问题,其实程序猿虽然得到的评价是木讷,但都是很聪明的,这类问题都可以用些标准答案来应付,但不是内心真实的答案啊。例如陪女票逛街的问题,程序猿大都是很有责任心的,如果是项目非常忙,都会主动加班,如果项目没那么忙,好容易陪女票逛街要加啥班啊,毕竟程序猿有个女票还是非常不容易的,人艰不拆啊。

我在面试时一般会根据应聘者自己的项目描述来提问,考核下他自己说的技能的熟练程度。也遇到一些技术确实够菜,简历写的无比高大上,问他自己说的问题都回答不上来,你问东他答西,完全不在同一频道对话。碰到这种情况,我就会问笔试题里的SpringMVC工作原理(笔试只是公司要求的形式,我一般不会太看重笔试的成绩),这个问题非常简单,只要用过这个框架的人都能说出个一二三来。这道题也是所有人都答的非常好的,因为网上一搜,答案一大推,问这个问题也是让应聘者放松些不要太紧张,毕竟自己刚写过。但有些人笔试题上答案写了好大一堆,但口述却一点都说不出来,知道什么问题了吧?我真的不介意你笔试时抄网上的东西,只要你能复述出来讲清楚我都算你掌握了这个问题,但假如是抄的东西连复述都说不出来,那面试还有什么可问的?碰到这种情况,我也不能直接打发别人,还得照顾应聘者的自尊心啊,我会跟应聘者聊聊人生聊聊理想,然后面试就愉快的结束了。对于这里还得说一点,公司hr小姐姐要求即使面试遇到不合适的应聘者,说话也要照顾对方的面子,因为网络暴力真的很害人,但凡看一些招聘网站的面试分享,说公司好话的基本都是拿到offer了的,说不好话都是没拿到offer的,如果面试体验不好,就尽发些诋毁公司的言论,对后面要来公司应聘的伙伴来说起到非常不好的影响。网络暴力,确实。。。。。。

如果没有一起工作过,没有一些实际的项目做背景,单靠半个小时或一个多小时的面试,是比较难全面的了解一个人的。个人觉得在应聘程序猿职务时需要做好如下几个方面:

  1. 穿着简单整洁,不需穿个西装打个领带。

  2. 提前熟悉公司的业务、招聘需求,需要的技能可以提前准备下,有备无患嘛。这一点非常重要,知己知彼百战不殆。

  3. 对于面试官的问题,知之为知之不知为不知,技术这东西会就是会,不会就是不会,没法伪装或隐瞒,不然等着面试官问个问题而拆穿就尴尬了。

  4. 平时可以多写些技术博客、参入开源项目、参与技术活动,反正我是非常喜欢这样的程序猿,肯定能加分。

所有的面试技巧都敌不过自己知识体系的深度、广度!不断提升自己,基础扎实,对某一个或几个业务有比较深入的熟悉,这样的小伙伴无论在哪家公司都是非常受欢迎的。