代码改变世界

招聘程序员的方法

2013-07-16 08:44  邢少  阅读(584)  评论(0编辑  收藏  举报

  单位要招新人,所也在网上看了一些招聘相关的知识,结合自己的一些想法梳理了一下。

  现有团队,在技术互补、技术合作还有一些不足。在开发人员的技术能力短期无法达到预期的情况下,引入一些有技术、经验积累的新人,是短期内达到团队阶段建设目标的有效方式。“怎样才能发现好员工”是招聘开始之前要深入思考的问题。尤其是我们还处在起步阶段的小团队,要考虑运营成本、周期效益等因素。

  “适合自己的才是最好的”,是这个阶段引入新人的核心原则。所以要梳理现阶段的技术需求、能力需求、人员结构需求。之后要结合团队现阶段的运营情况,设定引入新人后的运营阶段成果预期,划分出引入新人的预算区间。在这个过程中还要收集一些行业发展、行业薪酬、地域行业分布之类的情报来达到提高招聘质量的目的。

  从招聘的过程来梳理招聘方法,首先要确立招聘过程的大纲。

  • 招聘之前准备

  首先要搞清楚几个具体的问题。

  1、  招聘工作在那些方面会有积极意义?

  2、  新员工需要完成什么工作

  3、  什么样的人才能完成这样的事

  4、  怎么去发现这些人

上述应该说是根本性的问题,一定要梳理。盲目的招聘不但不能改善、提高运营质量,反而会造成负面影响。它体现在成本增高、协作不顺畅、节点资源浪费、消极的团队氛围。

  • 面试题目原则

  职业技能是软件开发团队对应试者的基本要求,综合素质是衡量一个面试者能力的重要标准。在两个应试者职业技能差距不大的情况下,应该着重了解各自的理解能力、交流能力、学习能力,这3个方面的素质对未来职业成长是非常重要的。

对面试方法有了初步的想法后,整理为几个有面试问答的原则:

  1、      每一个面试题目都要有明确的目的,面试官要达成统一。

  不是特指特定的技术会与不会。因为从事的行业不同,开发人员擅长的技术点会有所偏差,技术不可能面面俱到。题目最好是能反应一种基本的思想。比如:对开发语言的认知、对面向对象的认知、对开发过程的认知等,总之是有目的性,进而罗列有代表性的题目。

  2、      多提一些开放性的问题

面试的目的是通过交流来加深对对方的认知,所以交流是面试的主题。多提一些开放性问题。而不是那种用Yes/No就可以回答的问题。这样做的目的是使你有机会与面试者展开讨论,并且提出后续的问题,尽可能多地了解对方。

  3、      关注方法、积累的考察

  虽然说软件开发是个技术活,但是我认为面试过程中,大量的基础语法、技术点考察是有片面性的。当然应试者需要掌握基本的技能。但是这些从面试的简历中就可以了解〔履历〕,搭配一个笔试,基本可以了解。

我们要做的是对履历的交流(经历、积累)。他经历的项目、工作流程、工作方式,解决问题思路这些都可以从一个角度说明他本身的积累情况。关注积累是为了最大化的发掘应试者的价值。对有过工作经验的应试者来说,这些才是有价值的。单纯的技术只能从点上创造价值。而成熟的方法可以面的推进,为团队融入新的活力。对处于发展中的团队尤为重要的。

  • 专业技能考察

  为了保证应试者可以胜任岗位,专业技能的考察是必不可少的。面试之前的来一场笔试是比较好的方式。专业技能的考察,最好是以笔试的形式。让应试者有充分的时间考虑题目,减少其它因素对他的影响。在面试阶段提问一些相对复杂的问题,面试者可能因为一些心理时间因素,不能周全的回答。也就无法反应他实际的技术能力。在一个宽松的环境,一定的时间、适当的题目可以更有效的反应应试者的专业技能。

  • 综合素质考察

  人是会发展的,所以某种程度上,面试者的综合素质要比他的专业能力更重要。所以具体的技术问题(如何调用API、什么是设计模式、编程语言的语法等)可以少问一些,更应该关注面试者的事业心、对工作的热情、进取心、自律能力、毅力等方面。

罗列几个典型问题:

a)         你为什么开发软件?

b)         去年你读了几本技术书籍?

c)         去年你最喜欢的技术书籍是哪本?你从中学到了什么?

d)         平时你经常访问哪些编程类网站?

e)         业余时间你编程吗?

f)          对于你来说,编程是一种爱好,还是一种谋生手段?

g)         你的职业生涯之中有什么重要的成就?它在其中处于什么位置?

h)         什么事情会让你很有成就感?

  • 考察理性思维

  理性思维是一种有明确的思维方向,有充分的思维依据,能对事物或问题进行观察、比较、分析、综合、抽象与概括的一种思维。说得简单些理性思维就是一种建立在证据和逻辑推理基础上的思维方式。

软件开发,本身就是一项逻辑性很强的工作。通过考察理性思维,可以评估应试者的技能掌握水平。而且条理性在工作执行、个人技术成长、团队协作都有积极的促进意义。

简单来说,让应试者从正反两方面评价一件自己熟悉的东西,看看他的思维是否片面。答案无所谓对错,只要应试者有一个明确的立场,能够从正反两方面说出令人信服的理由,就可以了。比如,某个软件的口碑不好,但是面试者说他很喜欢,而且说得出一大堆理由,清楚地解释了这种软件的优点和缺点在哪里,这样目的就达到了。

 

参考: 阮一峰 http://www.ruanyifeng.com/blog/2010/12/how_to_interview_a_programmer.html