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

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

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

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


当前回答

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

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

字符串是不可变的。

其他回答

什么是线程?

什么是GC?

我被问到的好问题有

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

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

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

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

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

这可能不是你想听到的,但我建议不要关注狭隘的技术,而是一般的编程和解决问题的技能。扎实的开发人员可以快速学习您想让他们做的任何事情。

举个例子,我并不是一个支持紧凑框架的人,所以如果你这么做的话,我可能会让你的面试失败。但如果我需要使用它,我可以做一些研究,然后直接投入。

Joel的书《Smart and Gets Things Done》为招聘开发者提供了很好的建议,其中有大量关于该问哪些问题的内容。我强烈推荐它。

除了上面提到的一些问题外,我还喜欢以下几个问题:

委托是什么? 什么是应用程序域? 什么时候使用lock关键字? 标准库泛型集合类是否线程安全? 什么是扩展方法? XmlDocument和XmlReader之间的区别是什么? 如何从应用程序配置文件中读入配置设置?