我的公司即将招聘。net开发人员。我们在各种。net平台上工作:ASP。NET,紧凑框架,windows窗体,Web服务。我想整理一份好问题的清单/目录,这是一种衡量应聘者是否有经验的最低标准。我的问题是:
你认为一个优秀的。net程序员应该能够回答哪些问题?
我也会把它看作是我自己的一张清单,以便看到我自己的缺陷在哪里(有很多……)
*更新:它想要明确的是,我们不仅仅测试。net知识,解决问题的能力和一般的编程技能对我们来说更重要。
我的公司即将招聘。net开发人员。我们在各种。net平台上工作:ASP。NET,紧凑框架,windows窗体,Web服务。我想整理一份好问题的清单/目录,这是一种衡量应聘者是否有经验的最低标准。我的问题是:
你认为一个优秀的。net程序员应该能够回答哪些问题?
我也会把它看作是我自己的一张清单,以便看到我自己的缺陷在哪里(有很多……)
*更新:它想要明确的是,我们不仅仅测试。net知识,解决问题的能力和一般的编程技能对我们来说更重要。
当前回答
我不会问那些“从课本上知道一些东西”的问题,而是问一些修补性的问题,比如:
在普通c#中foreach循环做什么?(期望他写一个迭代器循环。) 什么是单例? 让他/她解析一个String to Datetime(期望他/她使用TryParse而不是try/catch) 实现单例模式、策略模式和命令模式 让他/她重构一段代码进行测试。期望他/她将外部服务从测试单元中抽象出来,并实现他自己的服务的Test-double(不提供mock框架)
这些都不是100%确定的,这取决于我问的人:
让他/她保护一个方法不受空输入的影响(期望他/她使用多次返回来减少嵌套) 对象初始化器如何工作(期望他/她写线程安全的赋值)
此外,我还会问他/她是如何学习他/她的东西的,他/她在读什么(什么博客,书籍)。
其他回答
还有一些:
局部类。那么它的局限性呢? 密封类 如何在。net中进行本地化? 数据库连接 各种配置文件 代表vs事件 非托管dll访问 反射 泛型类 .NET 3.5最热 单元测试框架。
没有,真的。也许有一些非常简单的问题,世界上最聪明的人也不知道答案。不是因为他们很难,只是因为他们还没有遇到过。你应该着眼于整个程序包和开发人员的技能,而不是他们是否能够回答任意的问题。
如果这个问题很简单,可以用一两句话回答,那么告诉不知道的人也很容易。你应该寻找他们对概念的理解和推理能力,而不是他们回答“每个。net开发人员都应该能够回答”的问题的能力。
了解引用类型和值类型之间的区别。
要知道事件是作为硬引用存储的(也就是说,要记得取消事件注册,否则应用程序将会泄漏内存)。
字符串是不可变的。
除了上面提到的一些问题外,我还喜欢以下几个问题:
委托是什么? 什么是应用程序域? 什么时候使用lock关键字? 标准库泛型集合类是否线程安全? 什么是扩展方法? XmlDocument和XmlReader之间的区别是什么? 如何从应用程序配置文件中读入配置设置?
什么是线程?
什么是GC?