所以你想雇一个开发商?或者,也许你只是想知道像我这样的雇主在想什么。不管是哪种方式,让我们直奔我认为的雇佣程序员的最佳实践吧。我发现我的观点颇具争议性,但我确实在我自己的职业生涯和Qvault将其付诸实践。当你不可避免地不同意我的一些观点时,尽管说“我”。
下面的流程假设基本上没有人力资源来帮助(我认为这可能是一件好事),而且肯定没有招聘人员。我只有直接招聘小公司的经验。
就像真的一样。当我发布一份工作时,我会收到很多应聘者。我需要一种快速过滤掉一些坏苹果的方法。我没时间读你高中时的救生员工作。
理想情况下,所有简历都应该只有1页。如果你有成百上千的申请者,也许可以试着过滤到只有一个寻呼机。
Inb4说,“但是我有这么多相关的经验,一页都写不下。”是的。没有人会在意你10年前和6家公司之前参与的项目。把它归结为你最感兴趣的项目和最相关的经历。它可以放在一页纸上。
作为一名应聘者,没有什么比坐在3个不同的2个小时的面试中却发现他们没有得到这份工作更糟糕的了。相反,作为一个雇主,坐在几个长时间的面试中,让应聘者再抓住一次机会,这也是很糟糕的。
~20分钟可缩放手机屏幕。这不是采访。只是回答有关公司的问题,了解应聘者的情况。如果没有危险信号,请转到步骤3。
约90分钟(最好是面对面)面试。就是这个。在不到90分钟的时间里学到你需要知道的一切。如果你不能做到这一点,你就是一个糟糕的面试官,需要更多的练习。
如果你像我一样是一名经理,那么你大约80%的时间用来“编码”(做技术工作),20%的时间用来“管理”(不管那是什么该死的意思)。在算法上,我们都知道要在列表中找到最大的数字,我们需要检查所有的数字。这是O(N)。
实际上,我没有时间去“检查”(面试)所有的候选人来找出最好的。在提供工作机会之前,我通常会试着至少面试3到4名应聘者,如果我不能很快找到人,有时会面试更多的应聘者。
我发现,在最初几次不错的面试之后,你花在寻找候选人上的时间的回报在递减。
在谈到面试时,白板不知何故成了一个淘气的词。我听到一些愚蠢的说法,比如,“如果我会编程,谁会在乎我会不会用白板呢?”
没人在乎。白板只是一种便捷的方式,可以忽略我们都可以用谷歌(Google)搜索的愚蠢的东西(比如语法),而专注于重要的垃圾(算法、数据结构、架构能力、对框架/概念的理解等)。
我不要求Reaction开发人员构建二叉树。我不会要求数据团队的候选人谈论Redux与Reaction上下文。保持问题的适用性,不要害怕使用该死的白板。
把编写作业看作是申请审查的对立面。申请审查会淘汰不好的应聘者。编写作业代码通常会淘汰好的作业。
看看你的候选人的Github,GitLab,随便什么。让他们发送他们参与过的项目的链接。查看他们的提交历史记录。他们可能已经编写了数千行您可以访问的代码。
作业对于实际上没有经验的应聘者(非常初级的开发人员)来说是有意义的,原因有几个:
他们不介意做一些额外的工作来找到一份工作,所以你不会淘汰好的。
初级开发人员学得很快。3个月前的项目可能不能准确反映他们现在的位置。
如果应聘者期望80K,则提供85K。如果他们期望11万,那就出价12万。为什么?让候选人加入你的团队会更好。如果你进入核心谈判,他们就会开始视你为敌人。如果你们从第一天起就在同一个团队里,一切都会变得更顺利,你们的关系也会更有效。