雇用初级开发人员,我应该问什么?[关闭]


56

我们目前正在招聘一名初级开发人员来帮助我,因为我有更多的项目无法管理。我从未雇用过任何不是朋友或至少不是熟人的人。我通过电话采访了唯一对我真正突出的申请人(书面),但我从未做过。

我们的项目都是高可伸缩性,数据密集型Web应用程序,它们每小时在多个服务器和客户端之间处理数百万个事务。为了特定于语言/堆栈,我们使用ASP.Net MVC2,WebForms和C#4,MSSQL 2008 R2,它们都在Windows Server 2008 R2之上运行

我该问他什么?我应该如何构造电话?


5
为什么是初级开发人员而不是高级开发人员?
工作

10
成本; 公司刚刚在本季度开始盈利...我的自我脆弱;)
Jeremy Boyd

48
在许多方面,“廉价”开发人员可能比经验丰富/昂贵的开发人员更昂贵。脆弱的自我评论简直令人恐惧。如果您从不雇用比您聪明的人,那么您永远是老师,而不是学生。这样您会陷入尘埃中。
JohnFx 2011年

6
那里有一些虚假的大三学生(少于3年的经验,但技能很多)。年龄重要吗?
James P.

2
如果您要雇用初级开发人员,则意味着您无法评估他们的经验。因为他们在短暂的职业生涯中没有太多经验。另一方面,您可以评估他们的编程技能,还可以查看他们如何编写代码。因此,第一步可以是一些技能测试,例如http://tests4geeks.com。第二步,您可以要求他们在家编写简单的程序。在您的情况下,可能是MVC应用程序使用JSON和AJAX显示某些数据的列表。该列表由计时器自动刷新,因此可以看到发布的项目而无需参考。.–
残酷的

Answers:


49

询问他们阅读了哪些技术博客,询问申请人对当前技术感兴趣的内容以及原因。

本质上,对于电话采访,您想弄清楚这是否是一个对技术和编程充满热情并且对学习和了解更多感兴趣的人。

由于这是初级课程,您不能期望他们知道许多高级主题,但是您要确保他们可以像程序员一样思考-给他们一个简单的问题,并让他们逐步解决。它将使您深入了解他们如何思考和解决问题。


我希望我可以选择两个答案,因为您和Peter K.的组合都很好。
杰里米·博伊德

5
这个答案是有限的,并且会伤害遵循此建议的人。对于电话屏幕,请遵循Steve Yegge的建议。对于面对面的人,请面对编码挑战,并遵循Joel的Guerilla面试指南。有一个设计问题-“制作<插入通用,平凡的软件>>需要采取什么步骤?” 您会发现,无论经验如何,所有优秀员工都可以很好,快速地解决这些问题。
罗伯特·P

希望我能+3个来自Yegge,Joel和Atwood等行业人士的@RobertP博客成为任何进行面试或担任任何领导职务的人的宝库。或真正的业内人士,但尤其是在您有能力提供指导或评估其他工程师的情况下。
吉米·霍法

26

我对电话采访采取开放式的方法,但是为了给它做些结构,我通常会要求该人仔细阅读他们提交的简历。通常,他们浏览简历的方式会提示其他问题,您会更好地了解他们的状况。

在电话采访中要考虑的另一件事是问:我可以和这个人一起工作吗?他们精力充沛吗?烦人吗 精确?


20

与他们一起编码。

您绝对应该做平常的面试工作。但是,如果不与他们进行一对编程会议,我不会雇用任何人。

我的方法:我将花费2-3个小时,然后遇到一个玩具问题(例如,对于全栈开发人员来说,“让我们构建Twitter v 0.1”,对于后端人员来说,则是“让我们实现从原语中实现列表”)。我们将坐在同一台计算机上,然后讨论如何解决它。我将编写第一个单元测试,然后说“通过”。也许我会写下几个测试来帮助他们继续前进。然后我通常让它们奔跑,偶尔跳进去。随着时间的流逝,我将阻止他们,问他们下一步要去哪里,以及在将其推向市场之前他们想做什么。

我寻找的东西:

  • 他们可以很好地合作吗?
  • 他们了解基本知识吗?
  • 他们可以将问题分解为几个部分吗?
  • 他们重视干净的代码吗?
  • 他们会发现自己的错误吗?
  • 他们不知道时会胡说八道吗?
  • 他们喜欢编码吗?

17
我严重怀疑Junior在采用TDD风格的成对编程会话中,甚至在一般而言进行单元测试时,是否会做得很好。
马丁·布洛

3
取决于初级程序员的背景。我上周刚雇用了一位出色的人才。不过,更广泛地说,这是我在面试时试图找出的一部分。如果他们不擅长测试,那我就自己写测试,或者让他们在没有测试的情况下提前付费。无论哪种方式,我都可以看到它们的优点和缺点。
威廉·皮特里

2
经过10年的经验,我现在不想这样做,不用担心我还是大三的时候。一个可怕的想法!
AnthonyBlake 2012年

3
我认为自己是初级程序员,并且欢迎使用这种方法来展示我的方法和能力。我经常碰到一些需要字典完美定义的问题,而很少考虑它们的使用和整体实现。您愿意static在Wikipedia上引用该关键字用法的记忆列表,还是显示如何在可行且适用的上下文中使用该关键字?
amcc 2012年

7

What's your Stack Overflow account name?

了解某人代码外观的最好方法之一就是亲眼目睹。最好的方法之一就是通过SO。

否则,适用标准问题。询问困难的情况以及如何克服它们。询问他们正在学习什么新语言或正在考虑学习的语言,以及原因。问他们使用什么IDE,为什么选择它?什么源控件?

通过提出与特定项目无关的开放式问题,您可以学到很多东西,而可以让他们在您的思考过程中完成工作。


最好询问他们的github帐户,尽管如果他们有一个帐户,他们可能会共享该信息。
工作

7
这次我登录SO,意识到那里的90%的人只关心Web开发...然后我就离开了...为我的代表付出了很多。
Pemdas 2011年

3
尽管这可能有效,但不一定准确。人们可能会付出比付出的临时建议更大的努力。
NoChance 2011年

5
就其价值而言,我公司中一些最好的开发人员要么没有SO帐户,要么声誉低于100。当然,如果他们的帐户拥有较高的代表,那很好,但是您读不懂太多他们没有一个高。
杰里米·威金斯

实际上,如果候选人在SO上有些活跃(或者如果他们过去有时很活跃),那么您很可能会在其简历中找到指向它的链接。另一方面,面试官很少有时间来研究这样的事情。在某些情况下,这可能对您有好处,因为例如,对于我在SO上发布的每个问题/答案,我都不感到骄傲。
Radu Murzea

6

我在快速阅读中没有看到的一件事是需要向他们询问以下内容:

1-学习意愿

2-自我教学能力与正式培训能力

3-他们过去学到的东西的例子

4-他们不满意的领域的例子

5-一般性的高级问题,例如“如果您的任务是构建有关……的网络应用程序,哪些任务需要发生以及应该由谁来执行”-这应该使您对他们目前对开发过程的了解-不一定是准确的,但至少您会像今天一样了解他们的观点。


4

跟我说说您过去从事的项目

  • 描述项目的总体架构。高水平很好。
  • 您对这个项目喜欢的一件事是什么。
  • 不喜欢该项目的一件事。
  • 事后看来,您会做些什么呢?

在我看来,无论是电话还是其他方式,这对于面试都是一个很好的问题。如果他们能聪明地谈论他们正在从事的项目,那么他们很可能“得到它”。您正在招聘初级开发人员,因此,他们还不是专家并不重要,但是他们至少应该充分了解自己的领域才能谈论它。通常,您想要雇用的人不会遇到任何麻烦,而您可能想要远离的人只需几句话或更短的时间就能回答。

您如何保持最新状态?

  • 您读什么博客?
  • 您读过/正在读什么书?
  • 还要别的吗?

在一个瞬息万变的行业中,我认为对他们而言,保持最新很重要。这不是我在采访中提出的最重要的问题,但是如果他们不能说什么,那不是一个好兆头。

告诉我你会怎么写单车课

对于亲自面试,也许是一个更好的问题,以便他们实际上可以编写一些伪代码,但我认为它也可以用于电话面试...描述一辆自行车(它有把手,轮子等。有人骑着它。 ),并让他们描述如何建模该类。这里没有什么开创性的,但是如果他们在这个问题上挣扎,他们可能仍然太小才是资产。


2

已经写了很多不错的面试技巧,但是我不认为您不能担任这个职位,除非您确切地知道他们每天将要做什么。如果您的第一个想法是:“无论我需要他们做什么。” 停下来。查找特定的代码块以供他们查看。选择最佳和最差的代码供他们查看,看看他们是否知道区别。给他们一些可以被忽略的第一个快速项目的工作空间。

希望您已经聘请了最好的程序员,但是每个人都拥有比其他人更好/更有经验的领域。利用它并相应地定义其角色。

哦,聘请有完成工作历史的人。


0

与开发人员进行一对一讨论时,您可以了解他,然后检查他们是否对您诚实。

为此,您可以问他以下问题,以了解他的真实身份

  1. 如果他们进行了任何认证,例如与Microsoft认证,请与他们核对,以了解他们是否真的为此进行了研究并通过了审核。

  2. 一些完成了最后一年项目的初级开发人员可能不会自己完成该项目,即他们的朋友必须为他们完成了此类工作。

当初级开发人员被委托负责机密项目时,诚实起着非常重要的作用。

如果您认为自己可以信任他们,则可以提供一份调查表,询问正在招聘的技术,其后是带有案例情况的实用文本,以检查它们是否具有逻辑能力,即检查它们在编程中是否具有固定的能力。


1
假设最坏的人?
tp1

假设为 +1 @ tp1使所有选项保持打开状态。:D
Karthik Sreenivasan 2012年

0

桑德格拉兹(Sandglaz)首席执行官纳达·阿尔达勒(Nada Aldahleh)最近根据自己在创业公司雇用开发人员的经验写了一篇有关此事的博客文章。这是她寻找的一些东西:

  • 解决问题的思维定式
  • 较强的沟通能力
  • 询问架构和算法问题;初级开发人员应该能够构建新的小功能,并且算法问题可以说明解决问题的思维方式以及他们拥有的基础类型
  • 解决分析技能的难题

当然,还有编程测试,它不应该包含Fizz Buzz问题。可以在您的办公室几个小时内完成的现实生​​活任务是最好的测试。

您可以在这里阅读更多有关她的建议:http : //blog.sandglaz.com/how-to-interview-and-hire-junior-developers/

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.