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

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

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

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


当前回答

我在Scott Hanselman的博客上找到了这些列表:

伟大的。net开发人员应该知道什么(更多。net面试问题) ASP。NET面试问题

以下是我从这些文章中归纳出来的最重要的问题。我编辑并重新编排了它们。幸运的是,对于这些问题中的大多数,在Stack Overflow上已经有了很好的答案。只要按照链接(我会尽快更新它们)。

与平台无关的。net问题

What is the difference between a thread and a process? What is the difference between an EXE and a DLL? What is strong-typing versus weak-typing? What is the difference between a.Equals(b) and a == b? What is boxing? Is string a value type or a reference type? What is the Global Assembly Cache (GAC)? What problem does it solve? What is an Interface and how is it different from a Class? What is Reflection? Conceptually, what is the difference between early-binding and late-binding? When would using Assembly.LoadFrom or Assembly.LoadFile be appropriate? What is an Asssembly Qualified Name? Is it a filename? How is it different? How is a strongly-named assembly different from one that isn’t strongly-named? What does this do? sn -t foo.dll How does the generational garbage collector in the .NET CLR manage object lifetime? What is non-deterministic finalization? What is the difference between Finalize() and Dispose()? (external article) What is the difference between in-proc and out-of-proc? What technology enables out-of-proc communication in .NET? What is FullTrust? Do GAC’ed assemblies have FullTrust? What is the difference between Debug.Write and Trace.Write? When should each be used? What is the difference between a Debug and Release build? Is there a significant speed difference? Why or why not? What is the difference between: catch (Exception e) {throw e;} and catch (Exception e) {throw;} ? What is the difference between typeof(foo) and myFoo.GetType()? What is the purpose of XML Namespaces? What is the difference between an XML "Fragment" and an XML "Document"? (XML Basics) How would you validate XML using .NET?

ASP。网

What is a PostBack? What is ViewState? How is it encoded? Is it encrypted? Who uses ViewState? Why is it either useful or evil? What Session State providers are available in ASP.NET? What are the pros and cons of each? What is the OO relationship between an ASPX page and its CS/VB code behind file? How would one implement ASP.NET HTML output caching, caching outgoing versions of pages generated via all values of q= except where q=5 (as in http://localhost/page.aspx?q=5)? What are HttpHandlers? What are HttpModules? What is needed to configure a new extension for use in ASP.NET? For example, what if I wanted my system to serve ASPX files with a *.jsp extension? How do cookies work? What is an example of Cookie abuse? What kind of data is passed via HTTP Headers? How does IIS communicate at runtime with ASP.NET? Where is ASP.NET at runtime in the different versions of IIS (5 to 7)?

其他回答

什么是线程?

什么是GC?

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

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

我想如果我在面试一个有LINQ经验的人,我可能会让他们解释一下LINQ。如果他们能解释延迟执行、流、IEnumerable/IEnumerator接口、foreach、迭代器块、表达式树(无论如何都是加分项),那么他们可能就能应付其余的问题。(不可否认,他们可能是“还行”的开发人员,还没有“得到”LINQ -我真的在想这样的情况,他们声称知道足够的LINQ,使这个问题成为一个公平的问题。)

在过去,我问过几个已经列出的问题,以及其他一些问题:

引用类型和值类型之间的区别 按引用传递vs按值传递 可替换和终结器 字符串,不可变性,字符编码 浮点 代表 泛型 可空类型

这很有趣,冒着被否决的风险,因为我天生耳聋,被问到这样的问题需要我个人更努力地交流我的想法。

坦率地说,我真的不会读太多的典型问题,因为潜在的范式是“你能多好地表达你的想法和理解?”’,这才是面试官真正想要的。由于我的性格,沟通一直是我最大的弱点,而且很容易感到沮丧。

拥有知识并成为无所不知的类型是最理想的,但不幸的是,有些事情我不知道,但如果你真的不知道答案,不要害怕,承认它,而不是虚张声势。如果面试官问了我一个类似上述的问题,而我不确定或者误解了这个问题,我会直接说出来,这对我个人来说可能会很尴尬,但我已经学会了处理这个问题。

你会惊讶地发现,有多少人会在一天结束时被发现他们的“裤子脱了”。

我的2美分, 最好的问候, 汤姆。

诚实?

“什么是。net ?”

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

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