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

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

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

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


当前回答

还有一些:

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

了解终结器和IDisposable。

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

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

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

其他回答

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

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

什么是线程?

什么是GC?

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

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

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

诚实?

“什么是。net ?”

如果他们能给你一个明确的答案,关于。net是什么,不是什么,它是如何使用的,它是由什么元素组成的,等等……如果他们能让你相信他们知道这是什么,那么他们很有可能非常了解。

事实上,很多人并不真正知道。net是什么。甚至包括那些为它写程序的人。

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

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

字符串是不可变的。