我的公司即将招聘。net开发人员。我们在各种。net平台上工作:ASP。NET,紧凑框架,windows窗体,Web服务。我想整理一份好问题的清单/目录,这是一种衡量应聘者是否有经验的最低标准。我的问题是:

你认为一个优秀的。net程序员应该能够回答哪些问题?

我也会把它看作是我自己的一张清单,以便看到我自己的缺陷在哪里(有很多……)

*更新:它想要明确的是,我们不仅仅测试。net知识,解决问题的能力和一般的编程技能对我们来说更重要。


当前回答

琼恩·斯基特是谁?

其他回答

Martin Fowler更喜欢设计技能而不是平台知识。另一方面,你可以问这样一个问题来展示你对设计模式和。net平台的了解:

说说你知道的设计模式和原则,以及它们是如何在。net框架中使用的?

我被问到的好问题有

你认为。net的优点是什么? 你认为。net的缺点是什么?

看看候选人会提出什么将是很有趣的,你肯定会学到很多关于他/她如何使用这个框架。

“你会在生产中使用ASP中的哪一种控制,为什么?”

这将很快告诉你,你的对象是否曾经真正构建和维护过一个大项目,以至于被datagrid和LinkButtons弄得精疲力竭,或者他是否仍处于“21天自学”的拖放阶段。

(答案是asp:Repeater, asp:PlaceHolder, asp:Literal和asp:Content)

以下是我用来筛选c#程序员职位的程序员的一些方法:

引用类型和值类型之间的区别是什么?

解释IDisposable接口,c#语言构造需要它,以及如何实现它。

如果将null作为参数传递给具有不允许该参数为空的契约的方法,您将抛出哪个异常?

我和那些寻找解决问题能力的人一样,而不是那种你可以从101个顶级。net面试问答中查找和记忆的东西。”

以我自己为例,我倾向于“知道”我每天需要使用的东西。我倾向于忘记(后来不得不重新查找)我很少使用的东西。

如果你想在面试中戳穿我,那很容易。

尽管如此,我已经为一个为WinForms和ASP使用相同的业务对象和数据层的系统构建和编码了大部分基础结构。我们的代码库足够健壮和可重用,我们能够支持和开发20多个不同配置的网站版本,以及越来越多的WinForms应用程序(目前是5个)……

... 两个人的开发团队。

我曾在一个团队中担任技术主管,我的工作涉及大量的招聘和面试。我最大的错误就是雇佣了一个对我们正在使用的技术了解得比我们其他人加起来还要多的人,包括我,而我认为自己是一个专家。他什么都知道……

... 除了如何编写满足要求的代码,或者除了他自己之外任何人都能理解的代码。当我最终说服首相不再续约时,他写的每一篇文章都必须重写。

明智地安排面试……