项目组最近在招人,在招聘过程中,从对招聘人要求来看,我们需要阅读简历、进行技术面试、人力面试并最终决定是否录用,从对公司要求来看,面试人员会看公司提供什么工作环境、薪资情况等。经过了一段时间的招聘,我发现不仅仅是顶级的技术人才很难招到,就是合适的人也比较难招到。
聪明但不能做事的人,往往能弄出一些看似高深的东西,但是缺乏实际用处。而能做事但不聪明的人,常常做出的事情很一般,有时甚至起到反作用。我们需要雇用什么样的人?简单地说,就是聪明(Smart)并且能做事(Get things done)的人。Joel写了一本专门关于如何找到最好的技术人才的书籍:《Smart and Gets Things Done-Joel Spolsky's Concise Guide to Finding the Best Technical Talent》。
1.Hitting the High Notes
很多公司成功模式更多关注与管理、销售人员,即使是软件公司也大部分时候也是这样。而软件公司不同于传统的制造业,软件的最大成本在于开发和维护成本,而软件的复制几乎不需要成本,所以开发出最好的软件就能够给公司带来利润。Joel正是从这个角度提出上图软件企业的成功模式。
通过多年对耶鲁大学的CS323课程作业完成时间的统计发现程序员的工作效率差别有十倍之大。如果程序员在软件公司很重要,而不同程序员之间的效率相差又这么大,那么软件企业如何能够招到最好的开发人员就显得尤为重要。上图所示模式关注与找到最好的程序员,他认为好的工作条件下能够吸引更多的顶级开发人员,而最好的程序员可以通过开发出最好的软件可以节约大量成本,并给公司带来更多的利润。
有的企业提出不需要顶级程序员,如果1个高效率开发人员=10个普通开发人员,那么我们可以招聘10个普通人员就行了。但成本的节省不仅仅在开发效率上,较多的人员会需要更多的沟通成本,而且普通的程序员,不管工作多久,都不可能写出顶级程序员开发出来的产品。
2. Finding Great Developers
Joel提出有一些方法可以去找到顶级的程序员:
好的程序员一般很少上通用的招聘网站,所以在那些地方放置大的广告也不一定能招到合适的人选。我们可以去各种技术论坛、技术会议、技术讲座,认识或者发布招聘。
微软等众多软件公司都有招聘实习生的习惯,这也是寻找人才的好方法。通过层层筛选,从众多学生里挑选出少数精英。
通过写博客,办讲座,写书的方式来认识程序高手。
内部员工推荐
3. A Field Guide to Developers
办公环境
不受打扰的单间办公室(这个估计很少企业可以做到)会带来高效率,椅子和双屏LCD也能提高舒适度。
程序员的生活
公司是否重视软件人员?
同事是否聪明,也是高效率的开发人员?
外行是否会对你指手画脚?自己是否相对独立,能对自己做的事情负责。
是否有办公室的勾心斗角?
是否可以做做自己喜欢的事情?程序员喜欢在“特别”的公司做“有意义”的工作,可以让顶尖程序员挑选他们喜欢的项目
程序员相对于金钱来说,更在乎公平和成就感。
4. SORTING RESUMES
挑选简历的标准包括:
技术热情(通常会利用业务时间做一些或学一些工作之外的东西)。软件技术发展很快,保持对技术的热情对于好的开发人员来说非常重要。
对公司的了解程度
技术文档编写和交流
聪明程度
核心技术能力
多种工作和技能背景
记住以上这些不是雇用条件,只是决定首先面试的条件,然后再是决定是否值得录用,看一个人最重要的还是在以后实际工作中的表现。
5. THE PHONE SCREEN
自我介绍
通过问一些技术细节来考核解决问题能力和技术热情,了解对方是如何处理遇到的困难。有时通过一些开放式的问题也有帮助。
询问对方想了解公司哪些问题,来了解对方是否对公司感兴趣。
6. THE GUERRILLA GUIDE TO INTERVIEWING
自我介绍
询问对方近期的项目和问题,观察面试人员有没有技术热情,能不能说清楚事情,有没有领导潜质。
问一个常用的简单编程问题,看候选人的解题速度。
指针,递归问题。有一定难度来检查编程能力。
让对方检查程序的正确性。
让对方问问题并且说说公司的好处。无论你是否雇用候选人,你希望他能喜欢你的公司。
【编辑推荐】