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

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

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

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


当前回答

没有,真的。也许有一些非常简单的问题,世界上最聪明的人也不知道答案。不是因为他们很难,只是因为他们还没有遇到过。你应该着眼于整个程序包和开发人员的技能,而不是他们是否能够回答任意的问题。

如果这个问题很简单,可以用一两句话回答,那么告诉不知道的人也很容易。你应该寻找他们对概念的理解和推理能力,而不是他们回答“每个。net开发人员都应该能够回答”的问题的能力。

其他回答

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

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

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

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

还有一些:

局部类。那么它的局限性呢? 密封类 如何在。net中进行本地化? 数据库连接 各种配置文件 代表vs事件 非托管dll访问 反射 泛型类 .NET 3.5最热 单元测试框架。

还有一些:

垃圾收集的局限性是什么。

了解终结器和IDisposable。

注意线程池以及何时使用它。

如果你在做GUI应用程序——注意Windows GUI是单线程的。

使用foreach(我看到很多人使用MoveNext等)

我更喜欢给他一个问题,让他用。net的特性来解决它,你知道,为什么你认为这是最好的解决方案。

这将破解候选人几乎所有的能力,包括技术、分析和解决问题的能力,以及他解决问题的方法。

了解引用类型和值类型之间的区别。

要知道事件是作为硬引用存储的(也就是说,要记得取消事件注册,否则应用程序将会泄漏内存)。

字符串是不可变的。