我的公司即将招聘。net开发人员。我们在各种。net平台上工作:ASP。NET,紧凑框架,windows窗体,Web服务。我想整理一份好问题的清单/目录,这是一种衡量应聘者是否有经验的最低标准。我的问题是:
你认为一个优秀的。net程序员应该能够回答哪些问题?
我也会把它看作是我自己的一张清单,以便看到我自己的缺陷在哪里(有很多……)
*更新:它想要明确的是,我们不仅仅测试。net知识,解决问题的能力和一般的编程技能对我们来说更重要。
我的公司即将招聘。net开发人员。我们在各种。net平台上工作:ASP。NET,紧凑框架,windows窗体,Web服务。我想整理一份好问题的清单/目录,这是一种衡量应聘者是否有经验的最低标准。我的问题是:
你认为一个优秀的。net程序员应该能够回答哪些问题?
我也会把它看作是我自己的一张清单,以便看到我自己的缺陷在哪里(有很多……)
*更新:它想要明确的是,我们不仅仅测试。net知识,解决问题的能力和一般的编程技能对我们来说更重要。
当前回答
我和那些寻找解决问题能力的人一样,而不是那种你可以从101个顶级。net面试问答中查找和记忆的东西。”
以我自己为例,我倾向于“知道”我每天需要使用的东西。我倾向于忘记(后来不得不重新查找)我很少使用的东西。
如果你想在面试中戳穿我,那很容易。
尽管如此,我已经为一个为WinForms和ASP使用相同的业务对象和数据层的系统构建和编码了大部分基础结构。我们的代码库足够健壮和可重用,我们能够支持和开发20多个不同配置的网站版本,以及越来越多的WinForms应用程序(目前是5个)……
... 两个人的开发团队。
我曾在一个团队中担任技术主管,我的工作涉及大量的招聘和面试。我最大的错误就是雇佣了一个对我们正在使用的技术了解得比我们其他人加起来还要多的人,包括我,而我认为自己是一个专家。他什么都知道……
... 除了如何编写满足要求的代码,或者除了他自己之外任何人都能理解的代码。当我最终说服首相不再续约时,他写的每一篇文章都必须重写。
明智地安排面试……
其他回答
什么是线程?
什么是GC?
了解引用类型和值类型之间的区别。
要知道事件是作为硬引用存储的(也就是说,要记得取消事件注册,否则应用程序将会泄漏内存)。
字符串是不可变的。
我认为这不应该只是问题,我认识一些人,当你面试他们的时候,他们很聪明,但一旦他们进入现实,他们就太完美主义了,我想说,他们在完成任务时很糟糕。
我曾经参加过一次面试,我喜欢第一个雇主给我一份技术问卷,让我在30分钟内填写。如果一个人成功了,他将被要求进行一个1小时的面试,包括性格判断和性格发现问题以及专业术语。
然后我被要求在6个小时内开发一个3页的web应用程序。在应用程序中施加的约束巧妙地涵盖了应用程序开发的主要方面,如小ERD,分层设计,UI一致性,控制特定问题,如在GridView中使用单选按钮,在web页面上从DB中获取和显示图像类型,算法开发,安全性,加密,哈希,数据表示和操作。
第二天,他们进行了30分钟的讨论,讨论开发的应用程序,包括性能瓶颈领域以及设计和使用算法的改进。并在特定条件下进行1小时的可选测试,以改进上一步开发的算法。
所以这需要相当多的时间,但通过这种方式,你可以确保你招聘的人至少知道那些优秀开发人员所必需的概念。
我将提出一些问题,重点是理解使用dotnet之类的编程概念
托管环境和非托管环境之间的区别是什么? GC的利弊 JIT的利弊 如果我们需要开发应用程序X,我们可以使用dotnet吗?为什么?(这将确定他如何看待dotnet)
我还建议写一些小方法,让他用更好的dotnet类或标准方法重写它们,使它们具有更好的性能。 也写不正确的方法(在任何方面)逻辑或其他,并要求他纠正它们。
没有,真的。也许有一些非常简单的问题,世界上最聪明的人也不知道答案。不是因为他们很难,只是因为他们还没有遇到过。你应该着眼于整个程序包和开发人员的技能,而不是他们是否能够回答任意的问题。
如果这个问题很简单,可以用一两句话回答,那么告诉不知道的人也很容易。你应该寻找他们对概念的理解和推理能力,而不是他们回答“每个。net开发人员都应该能够回答”的问题的能力。