*你想雇用不会编程的程序员吗? *
我敢说你不想。如果你的招聘过程中不包括某种编程测试,你就无法有效地剔除那些不会编程的程序员(外面有很多程序员)。正如评论和回答中提到的那样,有些求职者不愿意把编程练习作为面试过程的一部分,因为_他们不需要为了得到工作而去做编程练习。那些遵循阻力最小的路径,做任何对他们短期内最有利的事情,并且对你的公司并不真正关心,不愿意完成一个简单的编程练习的人?这些似乎都不像是积极的特质,而且也不能给人提供长期留住这些候选人的信心(这对科技公司来说也很重要,因为学习曲线往往很陡峭,更换现有员工的成本很高)。反正你也不想雇佣他们。不像他们,你有一个计划。一个不是基于 “程序员就是程序员 "的谬论的计划。你的重点应该是质量和可持续发展,而不是体量。
*吓退候选人是个问题吗? *
一般来说不是,只要他们被吓退是有原因的。你不希望雇用那些不合格的人。而一些说他们 "不能被打扰 "的人由于需求量大,可能实际上是在用这句话作为借口来掩盖 "不是很擅长编程,所以需要一周时间来完成1小时的练习 "的情况。你要雇用有能力、有上进心的候选人。只要你不把那些候选人也吓跑,你就很好。
每一个你没有吓跑的候选人,你都要尝试着去评估。而如果你没有给你的技术候选人做任何技术性的练习来进行评估,这可能是很难做到的。
**如何改善我们的招聘流程?它是否合理,是否适合面试的背景?
你不想要一些需要几天(甚至几个小时)才能完成的东西。你想要的是一些简单的东西来筛选出那些不会编程的人,最好是有足够的细微差别的空间,让那些会编程的人能够区分出自己。牢记你想达到的目的(剔除不熟练和不认真的候选人),并确保你的内容是为这个目标量身定做的。
如果你已经有了一些技术人员,你可以利用他们来检查(和/或帮助设计)你的练习。如果你只是给他们一些文件,说 "在这里,在接下来的一周内做这个,然后通过电子邮件发给我",那可能只会起到最小的效果。然后他们要么在这一小时内提交东西,要么不提交。这样做没有那么多的限制,能更好地保留考生的注意力,并且提供了一个明确的截止日期/时间框,这样一来,1)你就不会为了一个永远不会出现的结果而整整一周的等待,2)不合格的考生不会为了完成你的编程练习而浪费了一周的时间。他们有1个小时的时间,他们要么解决问题,要么不解决问题,你马上就知道结果了。
还有,更好的办法是带他们去现场面试。把他们介绍给你的开发团队的一个成员。把他们关在一个房间里,并把他们和工作站放在一起。让你的开发人员从一些一般性的/软性的面试问题开始,然后他们可以和应聘者配对编程,解决编程练习。这不仅能告诉你候选人是否会写代码,还能告诉你他们与你的团队合作的程度。你的开发人员也应该能够收集到很多额外的信息,而这些信息是你通过查看应聘者写的一堆代码,然后通过电子邮件发给你的方式无法得到的。但是,你可能要审查一下它的内容是否合适,确保它不需要太长的时间来解决,同时也要看看你是如何把它融入到你的总体面试流程中去的。
自我指导的带回家的练习可能不是最好的方法。但解决这个问题的办法并不是完全放弃练习。
吓走很多坏的候选人和少数好的候选人,总比打开洪门雇用几个坏的好。