我们到底要怎样招程序员?

来源:四火的唠叨

我曾经写过一篇《我面试别人的常见方式》(转注:或直接参见下面绿色部分),也是我在上一家公司面试程序员采用的办法,现在想来,我的许多观念已经发生了变化。面试的过程,是一个双向选择的过程,更是一个学习思考的过程,在这个过程中,沟通交流的时间特别多,这和一般工作时间的氛围和体验是有所不同的。对人的选择,IT领域有太多的观点。这些想法几个月前就有,不过其实我更想等经历更多的面试,想法成熟一点再说,不过最近一段时间也没有什么机会参加面试,所以我想先把这些思考记录下来。毕竟,错过的东西总是显得可惜。

1、热场,聊聊地点、家常,看看最基础的沟通能力,也帮助被面试者放松,正常反映自己的情况。

2、询问经历,包括学习经历和工作经历,尤其是实际项目经历,并就项目情况展开询问,可以了解擅长领域和工作经验。

3、简要介绍一下相应职位的工作情况,做什么业务,是用什么技术。

4、基础三项:数据库、数据结构、算法。不管面试什么开发工作,从我这边过的,我都要问这三项,每项可以一个小问题,可以只问问思路,了解一下情况,总之这是我个人的习惯。

5、目标工作需要的技能。最好是能从之前的项目经历中了解到,这里也可以补充一些问题,比如我们做J2EE开发我会问一些特定的技术,都不深,但是可以命中一部分知识面。

6、开放性问题。这些问题可能都没有所谓的正确答案,能自圆其说就可以,另外也很容易通过这种方式观察一个人在项目团队中的风格。

7、询问被面试者还有什么特别精通擅长的我没有了解到,或者有没有想问的问题。

整个过程大部分问题都是临时想到的,或者根据被面试者的介绍发散开去的,但是不能没有准备,尤其是开放性问题,准备一些题目,尽量不要采用热门的或者容易被预料到的,失去一部分问题的成色。

 

我们到底要怎样招程序员?

 

选择“知识”还是“能力”?

从拿来即用的要求出发,知识开阔、有丰富经验的程序员总是更受青睐;当然,也有面试官喜欢寻找那些潜力股,或者是低调务实、但是很善于学习、分析和解决问题的人。从企业和项目组的角度来说,我们需要这两种人,轻视这二者任一项都是欠妥的,但是你肯定希望结合实际情况作出判断。

为一支团队寻找人,考虑的是他能为团队带来什么,或者可预期的未来他能为团队带来什么,而不是去考虑总要让团队去帮助他才能完成什么。这也是为什么某些企业宁可多花钱,也要把人才选择标准定得很高,选择“能干”的人的原因。毕竟像东软这样甘心做人才培养基地,同时一做就是好多年的企业并不多。但是东软在大多数情况下还是让我尊敬的,真正让我痛恨的是那些以人口贩子自居的外包(也包括所谓的“内包”)公司,纯买卖廉价劳动力。我许多次都说,如果你有志气和能力,就不要去这些所谓的“技术合作”公司,这类公司只是在压榨劳动力,赚取劳动力买卖的差价;如果你是这样的人,但迫于生计才走上这条路,我建议你多为自己着想,更努力地去学习那些优秀的技术和业务,然后随时准备打包离开,未来也不要再选择外包公司了。

 

打造一支优秀的杂牌军

我觉得一支理想的队伍,首先要和项目契合,其次项目组成员要足够优秀,再次要具备各异的技术、业务背景。

和项目契合说的是,当我在做一个C++开发的游戏的时候,我肯定希望团队中的大部分人在这方面是有经验的,C++经验或者游戏开发经验。

项目组成员足够优秀,就像Google要寻找最棒的程序员一样,就像世界上那些足球豪门俱乐部一样,一个人的价值,很大程度上是由团队的成功体现的,而优秀的团队,是吸引优秀程序员重要砝码。

各异的技术、业务背景,指的是团队中的成员最好是多元化的,有做过DBA的、有擅长做UI的、有业务经验丰富的等等。杂牌军的好处很多,尤其在做决策的时候,不容易偏激。

同时,需要强调的一点是,面试官有义务让通过的面试者在未来的工作中觉得够爽,所以我们需要传达出准确的信息,这份工作是做什么的,涉及哪些领域,是不是和你喜欢做的事情契合?有想法的人当然会有所要求。

 

识别出那些大忽悠

有一些人很能说,但是同样很能干;但是更多的情况是,口若悬河的人只是口若悬河而已。如何把那些纯理论派识别出来,并不是一件容易的事情。我以前公司的一位架构师告诉过我一个办法,这些人并不能坚持一个具体和明确的观点,他们更会察言观色,你只要对他们的思路或者办法提出的质疑,很可能看见他们掉头,以及不断地尝试自圆其说。现在,我则学会了另外一招:让他们写一些实际的代码吧。

 

态度和激情,有多重要?

有人说,毕业生的激情是最不值钱的,原因很简单,太多的毕业生简历或者自我介绍上都说道“对技术充满激情”。可是,持续对技术充满热爱和激情的人,并不多。大多数人只是停留在口头上。判断这一点的办法是,不妨询问一些相关的、热门的技术,对于技术有热情的人,往往会去了解这些东西;还有一个办法是,试着说一些和前述观点违背的话,对技术有热情的人很可能会给出不同意的回应,或者尝试反驳你的观点。要不然,他更多的时候是一个“无所谓”的人。

观察工作和学习的态度,这也是很难拿捏的,毕竟应聘者基本上都是带着一张面具来的。有能力并不代表可以足够努力地工作,你雇佣我,付我钱,我为你创造价值,愿买愿卖,互利合作的关系没错,但是如果能寻找到热爱工作和热爱产品的程序员,岂不美哉?国内的许多公司还在用“待遇”、“薪酬”、“年假”这些名词吸引程序员,我当然不是说这些不重要,只是这种情况下你得到的,当然是一些为了这些物质条件而来的人;但是你也可以看看那些伟大公司的愿景,许多都是为了世界、为了全人类的某个目标而工作,他们招到的程序员,追求自然有所不同。当然,你也许会反驳我,大部分公司是不适合唱这些高调的,就像曾经说过的,物质文明还远不足够的时候,还是不要扯精神文明的蛋。

我的同事告诉我,他的一位朋友创业,在创业公司中起初也采用程序员宽松约束、自我管理的方式,结果死得很惨。毕竟现实和理想大多数情况下并不在一条水平线上,如果你要玩这些听起来牛逼哄哄的游戏,你当然得找对玩家。怎么找,我的想法有一些,但并不多,我很想知道大家的看法。

 

招合适的人,码农也好、程序员也好,刺儿头也好、老好人也好

这又是理想和现实之间的平衡,我以前单位的一位朋友招人的时候,就明确了希望寻找听话的人、寻找毕业不久的孩子,“可以不很优秀,但是可以让我不花太多精力在监督他们的工作上”。这就像一些朋友给我的留言所说的一样,中国太需要程序员了,但是中国的很多企业目前也非常需要码农,很容易洗脑、很容易管理,努力干活,又不闹事儿,你不能指望他们能干出什么伟大的事儿来,但是他们不给你添乱,老老实实的干活……这是多么残酷、多么讽刺的话,但是无比现实,尽管我希望这样的场景越少越好。

对于刺儿头,我还真遇到过一个相当典型的,那是在我刚参加工作的时候,只要有争论,就见其找茬,到后来我们开会都不敢带着她,一个刺儿头的破坏力,远远大过几名优秀程序员给团队带来的正面影响。但是团队中,又不能都是老好人,这样的团队会缺少活跃的气氛、缺少想法,甚至缺少做决策的人。

 

摆出低姿态去招人

都在说非985和211的不要,或者说重点院校毕业是一条重要考量依据,我能够理解在人才竞争如此激烈的今天,会有这样的标准。但是从我工作中实际接触的人来看,就是有很多优秀的程序员,他们的学校没那么有名,甚至专业完全不对口。当然从内心上讲,我希望这样的学校背景约束还是尽量少一些。

低姿态的另一方面是对于应聘者的态度上,我曾经在这篇文章中扯到过这一点。不过今天我要说的是,在询问应聘者问题的时候,是应该以专家的姿态,还是以初学者的姿态?我更倾向于后者,虽然你可能对某个问题、某个领域了如指掌,但是在面试过程中,适当地“装不知道”可以发现对方更真实的一面,比如爱吹嘘的人在遇到别人“不知道”的时候,下嘴可就更猛了;不够自信的人在遇到别人“不知道”的时候,可能更敢说了……

 

 

收藏 评论

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部