随笔-312  评论-12034  文章-2  trackbacks-256
(澄清一下,我发帖的目的不是用来专门给人评价这些问题的好坏的,实际上我所在的公司就考察这些问题。而能够基本上答出来的可以说百里挑一。如果各位觉得这些问题很简单,那么基本上在.NET面试环节就没有什么问题了,同时欢迎提供一些更多的问题。如果还有些不知道,那么不妨静下心来思考一下(或者用15秒搜索一下),没有必要花太多时间来攻击题目的合理性。毕竟,几乎所有的面试都是这样。如果没法改变,我们还是学着适应吧。)

如果你的简历上面说“精通
.NET”,那么下面的问题应该大都可以给出较完美的答案。我会稍后给出一些我的想法,还请各位不吝指正并参与讨论。也欢迎提供给我更多的问题。
这里还有一些基础问题:http://www.cnblogs.com/dflying/archive/2006/04/01/364458.html 

注:对于每个判断是非问题,都要考虑“为什么”与“为什么不”。

  1. ThreadProcess之间有什么区别?.NET新引入了Application Domain的概念,这样他们三个之间有什么区别?引入了Application Domain会带来一些潜在的问题么?
  2. Windows Service与普通的EXE在执行过程中有什么区别?
  3. 一个进程可以访问的Windows地址空间有多大?等于系统的虚拟内存大小么?这两方面将对系统的设计产生什么样的影响?
  4. EXEDLL之间的区别是什么?在系统设计中应该如何选择使用它们?
  5. 普通的EXE.NET EXE的执行过程有什么不同?
  6. 什么是弱类型,什么是强类型?在系统设计中应该首先考虑使用哪种类型?
  7. PDB文件是作什么用的?里面包含了什么信息?
  8. Cyclomatic Complexity是什么?为什么它很重要?
  9. 为创建一个critical section以访问某个变量书写一个标准的lock() 并加上double check
  10. 为某个对象实现标准的Dispose模式。
  11. 什么是FullTrust? 存在于GAC中的 assembly 拥有FullTrust么?
  12. 下面这个命令是做什么的?gacutil /l | find /i “system”
  13. 下面这个命令是作什么的? sn -t something.dll
  14. 跨防火墙的 DCOM必须打开哪个端口?端口135是用来做什么的?
  15. 有什么办法可以与现有unmanaged code集成?在集成的时候应该考虑什么问题?
  16. 简要解释一下OOPSOA都是用来作什么的?
  17. XmlSerializer是如何工作的?进程运行XmlSerializer时候需要什么样的ACL权限?
  18. 在系统设计时,何时应该使用try catch?何时需要避免使用?
  19. Debug.Write()Trace.Write()之间有什么区别?二者分别应该用于何处?
  20. Debug BuildRelease Build有什么区别?在执行效率上有什么明显的区别么?
  21. JIT是针对Assembly还是Method发生的?解释一下为什么.NET的设计者要这样做?
  22. 简要描述一下GC的执行过程。
  23. 应该如何选择使用abstract class还是interface
  24. 在设计一个自定义类型时应如何选择使用Value Type还是Reference Type
  25. 对于Value TypeReference Typea.Equals(b)的默认实现方式有什么不同?
  26. .NET中为什么不提供默认的deep copy?如果需要,要如何实现deep copy
  27. 相对于.NET 1.1.NET2.0为了避免过度的boxing/unboxing造成的系统开销提供了哪些支持?
  28. StringValue Type还是Reference Type?为什么.NET中的String对象被设置成immutable

如果您能较完美的回答其中大多数问题,你已经可以毫无疑问的宣称自己“精通.NET”了。祝各位好运!

posted on 2006-04-01 22:10 Dflying Chen 阅读(11543) 评论(181)  编辑 收藏 网摘 所属分类: .NET 综合

评论:
评论共2页: 上一页 1 2 
#101楼 2006-04-03 12:07 | Zhongkeruanjian      
这些试题只是涉及到考察一个软件开发人员的“广度”方面的技能,而没有太多的涉及到“深度”方面的技能,而高级程序员与普通程序员最大的区别是“深度”方面的技能。并不是说因为一个人懂得了NET方面的各种各样的知识,那么他就是一个NET的高级程序员? 他只能说是一个合格NET的培训师。在一次时间很短的面试中如何能甄别他是否是高程,“广度”方面的知识还是必要的。但是我觉得主要还是要有需要解决实际问题的场景让他去思考与实践。这才是最重要的。

就如标题:.NET方向高级开发人员。首先他应该是一个开发人员,而不是一个培训师。

  回复  引用  查看    
#102楼 2006-04-03 14:58 | xiao_ppp[未注册用户]
gacutil这个东西是什么我确实不知道。。。汗

作.net也有一年多的时间了,虽然谈不上精通,但是也能基本上完成领导交给的工作了,最起码作为一个程序员在本职工作的完成上我想我是合格的,可是,这个问题我却不知道答案,那是不是我就没有资格使用.net 开发程序了呢?

看了一下,感觉还是装配脑袋的观点比较能够叫人接受……

  回复  引用    
#103楼 2006-04-03 15:00 | smalldust      
呵呵,这个企业是搞.Net研究的呢,还是.Net制品呢?
真正的企业级开发其实根本用不到这么多东西的。
当然广度和深度对于一个程序员来说是越多越好的,但不是必需的。
相比之下,竟然没有任何DB的问题,作为企业开发是不可想象的。
所以我猜这套题目一定是某个研究CLR的企业的:)

  回复  引用  查看    
#104楼 2006-04-03 15:11 | xiao_ppp[未注册用户]
gacutil是全局程序集缓存工具

呵呵,竟然一直没有用过这个东西……

  回复  引用    
#105楼 2006-04-03 15:20 | Samuel[未注册用户]
@Dflying Chen
gacutil,说实话,看到你这帖子之前,我还真不知道。
不过顾名思义,gacutil, gac + util,垃圾收集工具?
-l 一般来说是list,列表?
| find “...",找资源?
那就是说找垃圾收集列表中的包含"..."关键字的资源?

近一年基本没怎么用过、看过.net,不过印象中gacutil这个应该是不太常用吧?

如果要管理好内存,良好的结构应该更重要吧?那么是不是问一下如何采取措施来维持内存开销在一个接受的范围内,同时又对效率影响不大,这样的问题更好呢? 或者问问dispose,new/delete的时机呢?

.net中我没试过,只是以前做c,平台是嵌入系统,自主的CPU,"自主的OS"(linux),自主的编译器... 内存小,没法子,自己想办法来管理内存,通过原始的手段define new/delete 来控制现有代码,但最后发现,有的人基本不出现泄露,而有的人怎么都出现泄露。

有些跑题,意思就是说你说常用的,别人不见得常用;而且不同的方法,对某些工具的需要程度不同。

另外我也来问一下,struct/class如何计算内存大小? struct/class中的一个字段3个字节,编译后占多少?
这个问题和.net无关么?我想在思维能力上还是有用的。就好像string是引用还是值类型?这个实际不就是指针么?(在.net是引用没错,在java就是值了,不知道记错没)
但是如果考这个问题... 不知道有多少人能答出来。

ps.
不知道还会不会回来这个贴,就简单说一下,这个是要考虑不同的cpu、编译器和操作系统的,一般来说在是没有大问题,在常见系统/平台下,strcut/class都是4或者8的倍数,所以3字节的字段世纪上还是4/8字节;另外,如果在某些纠正能力不是很强的系统/平台/编译器下,struct大小是5、13等奇数时,编译时就可能会出现segement core dump。3~4年没搞过C了,可能有些地方记得不是很清楚。

  回复  引用    
#106楼[楼主] 2006-04-03 15:20 | Dflying Chen      
@xiao_ppp
谁说过答不出这些问题就“没有资格使用.net 开发程序了呢?” 这是什么逻辑?

  回复  引用  查看    
#107楼 2006-04-03 15:22 | Samuel[未注册用户]
另外,你说的题目中有些跟cpu/os位数是有关系的,比如寻址能力,不知道有没有这方面的考虑。
  回复  引用    
#108楼[楼主] 2006-04-03 15:24 | Dflying Chen      
@smalldust
“真正的企业级开发其实根本用不到这么多东西的。”
如果你这么想,那么我想说您所谓的“企业级开发”也用不着“精通”的人。

  回复  引用  查看    
#109楼 2006-04-03 15:28 | Samuel[未注册用户]
@装配脑袋
面试题不但考验应试者,同样也考验面试官,特别是那些你认为需要沟通的题目。如果面试官有欠考虑,应试者指出漏洞时慌了手脚,进而给出错误提示(比如将题目中某个概念的意义解释错了)就会让这次面试变得没有意义。应试者按照错误思路做了题,你也没有办法从他的答案获得是否应该录用的信息了。这种事情我有亲身经历的哦。所以还是别贸然问那些令人困惑的题目。
比如String的Immutable,你可能想听线程安全方面的理由,而应试者却从你没有想到的维持不变式理论或者函数式编程思想中的消除副作用角度来回答,万一这种思路你不熟悉,给出了错误的引导或者错误的判断,就可能让这个问题本来的效果全失

-----------------------------------------------------------
你说的这个我是非常赞同的,不同的层次,不同的经历,看问题的深度和角度都是不同的;也许考官看到的地方还没有应聘者考虑的深。
ps.你说的那个错误提示的问题,我也有过亲身经历。

  回复  引用    
#110楼[楼主] 2006-04-03 15:31 | Dflying Chen      
@Samuel
感谢您这么长的回复。

gacutil是Global Assembly Cache Tool的意思,您可能不太熟悉.NET,这个工具在.NET中是非常有用的。

我的第10,22题都是有关资源/内存管理的。我想您可能忽略了。

您问得问题“struct/class如何计算内存大小?”确实与.NET无关的,事实上这取决于IL被JIT时候的实现。在各种平台,各种版本上都有可能不同的。

  回复  引用  查看    
#111楼 2006-04-03 15:33 | Samuel[未注册用户]
@Dflying Chen

事实上,现在的企业开发,更重要的实际上是“用户体验”和“业务实现”。
相比之下,效率并不会成为大问题,当然健壮性是很重要的。
所以上面smalldust说的,也不见得就完全不对。

"如果你这么想,那么我想说您所谓的“企业级开发”也用不着“精通”的人。 "
感觉Dflying Chen现在有点毛了,说这样的话比较刺人了,建议休息一下,回头再看,抱着讨论的态度。

  回复  引用    
#112楼[楼主] 2006-04-03 15:39 | Dflying Chen      
@Samuel
我没有什么别的意思,“企业级开发”有很多种定义,一个简单的N-layer也可以叫做“企业级开发”。而做这些“企业级开发”的人并不需要精通.NET。而且即使是做一个非常大型复杂的“企业级开发”,如果不是架构师,也不需要精通.NET。换句话说,如果某个“企业级开发”中所有人都要精通.NET,那么这是架构师没有做好架构了。

  回复  引用  查看    
#113楼 2006-04-03 15:39 | Samuel[未注册用户]
@Dflying Chen

"我的第10,22题都是有关资源/内存管理的。我想您可能忽略了。 "
不好意思,后面的没看完。

.net精通从来不敢说,熟悉还是可以的。
2001/2002?第一次接触.net 1.0,练习1个礼拜业余时间做出俄罗斯方块,也许比较慢,但我那时候方块是用xml配置,图形是gdi+。
2003年做的系统是一个实时监控,web service + javascipt,无刷新,和ajax差不多。
其它的正经系统就没太多了,主要是写些测试的代码。
一般来说,我会在项目中试一些新东西,做完之后,这个方面/领域的东西就觉得没问题了。

因为我也曾经面试过和被免试过,所以对这样的topic有些兴趣。

  回复  引用    
#114楼 2006-04-03 15:44 | Samuel[未注册用户]
"gacutil是Global Assembly Cache Tool的意思,您可能不太熟悉.NET,这个工具在.NET中是非常有用的。 "

这个东西啊,呵呵,我弄错了,弄错了。
看来真的是不熟,做的东西太少了。

  回复  引用    
#115楼[楼主] 2006-04-03 15:49 | Dflying Chen      
@Samuel
共同学习吧

  回复  引用  查看    
#116楼 2006-04-03 16:01 | 双鱼座      
@BS 你
呵呵,你以为你可以扁谁?你就是一匿名的shit!满好的一个post被你搞脏了。都说宁可得罪君子不可得罪小人。我的过错就是犯了这个忌。

  回复  引用  查看    
#117楼 2006-04-03 16:13 | Samuel[未注册用户]
@@Dflying Chen

共同学习。

但我觉得目前的趋势是语言简单化、趋同化、脚本化。实际上大家应该能看到一个这样的趋势,那就是从C/C++到java/.net再到web2.0逐渐一个越来越简单越来越重视功能实现的趋势。

早期的比较有代表性的cobal/fortran用于个别领域,smalltalk是一个oo尝试,那么这一时代的C/C++则是注重于效率与机器平台底层又有着紧密联系,无往不利大红大紫;再后来的就是java/.net,脱离了平台(当然本身即是平台),专注于实现,但又需要自己掌控机器的相当一部份;而脚本类的,由于unix的影响自始自终存在,但到近年基于web才有着比较大的影响。

这实际上是软件发展所带来的,由单机到网络,再到网络协作。

所以我觉得现在更应该关注的是script类语言(包括php/c#/python/perl/js...),soa,rss,这类的技术。当然,术业有专攻,不同的领域注重的还是有区别的,不可能要搞嵌入的也关注这些的。

因此,我认为,目前面试的更重要是人的思维能力,创新能力,解决问题能(always)以及团队合作能力。


  回复  引用    
#118楼[楼主] 2006-04-03 16:36 | Dflying Chen      
@Samuel
是啊,不是还有人说将来一切人都可以编程序么,只要像搭积木一样把组件拖到一起来就好了。最近的web2.0也似乎见证了这些:技术不重要,想法才重要。

  回复  引用  查看    
#119楼 2006-04-03 16:47 | nonocast      
这句我不认同哦
技术和商业是两个层面
不能简单的说哪一个更好更重要

  回复  引用  查看    
#120楼 2006-04-03 17:32 | 勇者之心      
这套问题好不好,取决于你对.Net的定义。。。
  回复  引用  查看    
#121楼 2006-04-03 18:14 | Terrylee      
两天没来这里讨论得这么热啊,呵呵

有些问题平时是不太怎么注意:)

  回复  引用  查看    
#122楼[楼主] 2006-04-03 18:16 | Dflying Chen      
@勇者之心
@Terrylee
仅供参考吧

  回复  引用  查看    
#123楼 2006-04-04 09:33 | 大师傅[未注册用户]

共同学习。

但我觉得目前的趋势是语言简单化、趋同化、脚本化。实际上大家应该能看到一个这样的趋势,那就是从C/C++到java/.net再到web2.0逐渐一个越来越简单越来越重视功能实现的趋势。

早期的比较有代表性的cobal/fortran用于个别领域,smalltalk是一个oo尝试,那么这一时代的C/C++则是注重于效率与机器平台底层又有着紧密联系,无往不利大红大紫;再后来的就是java/.net,脱离了平台(当然本身即是平台),专注于实现,但又需要自己掌控机器的相当一部份;而脚本类的,由于unix的影响自始自终存在,但到近年基于web才有着比较大的影响。

这实际上是软件发展所带来的,由单机到网络,再到网络协作。

所以我觉得现在更应该关注的是script类语言(包括php/c#/python/perl/js...),soa,rss,这类的技术。当然,术业有专攻,不同的领域注重的还是有区别的,不可能要搞嵌入的也关注这些的。

因此,我认为,目前面试的更重要是人的思维能力,创新能力,解决问题能(always)以及团队合作能力。

  回复  引用    
#124楼 2006-04-04 14:01 | atlas[未注册用户]
这些问题,在项目开发中能用到多少!我门是开发,又不是搞研究!用这样的问题招聘,值得商榷!
  回复  引用    
#125楼 2006-04-04 15:50 | A.Z      
nonocast偶像阿
  回复  引用  查看    
#126楼[楼主] 2006-04-04 18:03 | Dflying Chen      
@atlas
呵呵,仅供参考而已

  回复  引用  查看    
#127楼 2006-04-04 18:30 | 皎[未注册用户]
"你的意思我明白,国内有一些程序员(包括我)基础薄弱。然而生活的压力也没有办法,毕竟活下去才是最重要的,不可能让我们放下饭碗去潜心研究。这些太大方面的问题我还不敢多谈。总之,慢慢努力吧。
一切都是浮云,好好活下去才是真正"

我赞成你的想法..其实说起来,我也是基础很薄弱的.如果能像外国那些程序员的话,中国的软件行业会更加美好的.

  回复  引用    
#128楼[楼主] 2006-04-04 19:20 | Dflying Chen      
@皎
呵呵,这种太大的话题我还是不敢多谈的,努力就够了。

  回复  引用  查看    
#129楼 2006-04-05 11:14 | Sunny Zhao[未注册用户]
看了,受益非浅
  回复  引用    
#130楼 2006-04-05 11:30 | Nick-pccai      
一切都是浮云,好好活下去才是真正!是极是极!
  回复  引用  查看    
#131楼 2006-04-05 16:57 | 段兴传[未注册用户]
@ BS 你

我不太赞同你对双鱼座的看法。

你没有这样的能力,或者你接触这方面的人很少,所以你听他这样说,觉得不爽。我能理解。我周围就有你这样的朋友。但是,双鱼座从他自身经历说这样的话,我完全相信。因为我自己身边就有这样的朋友 --- 天生的 或者说 后天积累的 ----- 那种阅读别人的能力。 如果不接触这样的人,或者说接触的不长,是很难体会到什么原来还有这样的一种人 --- 他们也许不具备别的什么高深的东西, 但是却如此善于阅读别人.. 是的,阅读别人。这里,阅读可能不妥当。但是我一时半会找不到更恰当的词语。

当然,在你看来,你仅仅是对他的语气不满。

  回复  引用    
#132楼[楼主] 2006-04-05 17:05 | Dflying Chen      
@段兴传
一眼看透了,呵呵

  回复  引用  查看    
#133楼 2006-04-06 14:15 | henry      
作为一个开发人员我自己很少会深入研究.NET里的任何东西,因为东西实在是太多了并不是普通人所能及!
我觉得一个开发员解决问题的思维是非常重要。
想信楼主也不敢对任何一个应届生说“你干五年也不可能达到我这个水平”,既使他完全不懂.Net开发。
是时候回家复习一下了,有比较多的题答不到!

  回复  引用  查看    
#134楼[楼主] 2006-04-06 16:12 | Dflying Chen      
@henry
无论谁也不能说都能回答出来。

  回复  引用  查看    
#135楼 2006-04-07 00:29 | chengyao[未注册用户]
看到楼上这条后,真的是不能忍了。

从楼主多次提示暗示,大家是'不可能都回答出来'的来看,我斗胆阅读一下楼主的内心想法。其实因为楼主在msn team,听了mentor的一些"点拔"或参加了一些内部培训后,听到了几个如装配脑袋同志说的那种known的问题,不是thinking和understand的问题哈。拿到这里来显摆,sigh

  回复  引用    
#136楼 2006-04-07 00:49 | 风向万里[未注册用户]
看出来,Dflying Chen是个有点爱钻牛角尖的家伙,估计作他的手下会比较郁闷:)
  回复  引用    
#137楼[楼主] 2006-04-07 09:06 | Dflying Chen      
@chengyao
'不可能都回答出来',可能这样的说法确实有些不妥。但我敢肯定其中好多问题都不是一两句话,一两篇文章讨论得清楚的,有些问题甚至在.NET设计的时候就引起了很大争论。或许我说“回答”不太妥当,应该用“理解”。

至于您说的上面的都是“known的问题”,我想您并没有仔细思考过这些问题,甚至您只是匆匆扫过一眼就留下了这篇评论。

最后我想重复说明一下,把您的时间用到分析我的人品上,并不能给您的.NET水平带来什么提高。不如用这一点时间考虑一些上面的问题。或许未来的某些时候这些问题就会有用。毕竟,不是所有的考官都会如您所希望的那样出题。

  回复  引用  查看    
#138楼[楼主] 2006-04-07 09:07 | Dflying Chen      
@风向万里
我才刚毕业,刚刚经历过好多面试,还没有面试过别人。上面的问题也算是我面试的一些总结吧。

  回复  引用  查看    
#139楼 2006-04-07 09:33 | bengxia      
有些东西可能用的是比较少,但是如果你事先不了解不知道,就不知道去用它,甚至会滥用一些拙劣办法,是不是呀?
GACUTIL、SN怎么会用处不大呢,只能说没意识到它们的用途而已。

不过招聘还是要重视应聘者的品格和潜质。

  回复  引用  查看    
#140楼 2006-04-08 21:26 | 疑惑[未注册用户]
符合楼主的条件,可为什么我感觉dotNet我也就刚入门?难道现在所谓的“精通”真这么布值钱?
  回复  引用    
#141楼[楼主] 2006-04-11 19:38 | Dflying Chen      
@bengxia
确实如此,GACUTIL,SN之类的东西我承认Google一下马上就可以有答案。但是如果这两条命令还需要Google的话,毫无疑问我可以说这个人不熟悉.NET。

  回复  引用  查看    
#142楼[楼主] 2006-04-11 19:40 | Dflying Chen      
@疑惑
您对每个答案都问一个“为什么”,我想还是能挖掘出很多值得思索的东西吧。

  回复  引用  查看    
#143楼 2006-04-14 16:24 | 阿里[未注册用户]
楼主有点怒了

人在不同阶段不同时期对一个事物的理解会发生变化。侧重点不同 出的题也会不同。
什么精通不精通的,如果单纯做项目,招的人沟通能力强,理解能力强(这是建立在计算机基础强上)就行了。

同意聊天来看一人是否可用,有HR在天涯上发帖就说过同样测试计算机专业人才 一套试题就是同公司的人也很难及格的事实。

  回复  引用    
#144楼 2006-04-20 13:14 | ABeyondMe      
看了题目之后以为后面大家会对问题进行讨论,我也能从讨论中有些新的认识
不过看完之后发现真正对题目讨论的人不多,只是对题目的合理性进行了长久的讨论

或许大家在一开始看到这个blog的时候也没有说想来分析面试的时候问这种问题的合理性或者实用性,如果说Dflying Chen将题目改为大家一起来探讨或者研究一下这些题目的话也许大家都会有更好的收获

毕竟我看完大家的评论之后觉得并不是每个人都是抱着相互交流学习的态度来浏览的,总觉得到后来就差不多离题了,有点感觉在想领导在开会,讲着讲着就离题了,大家也都没发觉,然后就一起离题讨论着......

  回复  引用  查看    
#145楼[楼主] 2006-04-20 13:48 | Dflying Chen      
@ABeyondMe
好多国内程序员喜欢评论,喜欢抱怨,而不喜欢学习。

  回复  引用  查看    
#146楼 2006-04-20 19:18 | proshea      
觉着这篇 Post 的 Comment 开始部分有点偏离 Dflying 的初衷了,装配脑袋兄看重的想必是编程思想,Dflying 兄在题上则偏重于对 .NET 认识,两个人的意见都没有错,只是着眼点不同而已。

我的个人看法是在面试时不如以一个较为主观的问题结尾,能够让应试者放松和看到一点应试者在技术之外的思想状况。比如对纯粹面向对象的编程语言的看法之类,当然提这种问题时,面试官不能掺杂自己的看法和感情。

  回复  引用  查看    
#147楼[楼主] 2006-04-20 19:46 | Dflying Chen      
@proshea
呵呵,仅供参考吧。评论也挺有意思的

  回复  引用  查看    
#148楼 2006-04-22 23:20 | xxxx[未注册用户]
懂这些对于刚毕业的人也许可以说精通,对于工作过几年的人大都是基本常识,很多问题虽然用的是.net framework语法,其实问题并不局限于.net.
说精通有些过了。

  回复  引用    
#149楼 2006-04-23 16:12 | kane      
下面是我面试时问的一些基本问题。我认为一个程序员的未来还是基于他对这个行业的兴趣及悟性。当然,有好的基础是更好的。如果我要找Asp.Net方面的人,我当然喜欢应聘者对Asp.net有较好的经验。但对其将来的发展,我还是注重下面的几条。仅供讨论。
1、为什么选择程序员或者IT行业:了解其兴趣爱好,以及对IT的看法。
2、对程序员有什么看法,以后想不想做管理:了解是否愿意扎实的做程序员工作,但要注意分清对方是否受到社会言论影响
3、对当前的IT的热点问题有什么看法:了解是否了解最新信息,以及对新信息的自主看法。
4、询问有关数据结构的问题,如链表的概念,排序等,可以再问一些高级概念例如B树,操作系统的死锁问题等:了解是否计算机知识扎实,高级概念一般学校不讲,看是否有对知识钻研及自学的能力。
5、薪金要求
6、居住地点:考虑到是否是外地人,则房租,车费等问题需要考虑
7、有无做过项目,并描述:考察动手能力
8、学习成绩:中等偏上较好
9、有没有自己想过什么创意:了解其发散思维如何


70分人才:基础知识扎实,有一定的灵活性,善于自学习,对新事物有了解并有自主看法,与人交流通畅。

90分人才:拥有较高的技巧,知识广博,喜欢钻研,动手能力强,有毅力。




  回复  引用  查看    
#150楼[楼主] 2006-04-23 17:11 | Dflying Chen      
@kane
其中第四条很重要啊……

  回复  引用  查看    
#151楼 2006-04-23 20:35 | kane      
@Dflying Chen
是的。但是有时确实存在这样的问题:就是工作以后做一段时间具体编程工作后,开始做一些项目管理,或者构架设计的工作。而且IT的知识更新很快,这样就只能对一些最新的知识做到跟踪和尝试,并不能深入(这种情况在小企业更为普遍)。如果这些人到MS去面试就会比较吃亏。他们实际的经验应该已经远远超出了一个普通的.Net程序员的要求,可是没有办法回答出一些细节的问题。所以对这些应聘者我觉得更应该看他们的学习能力和解决问题的能力。

  回复  引用  查看    
#152楼[楼主] 2006-04-23 21:19 | Dflying Chen      
@kane
MS面试的时候只会考察算法的能力,不会问.NET的东西。但如果声明精通XXX,还是会被详细问到的。

  回复  引用  查看    
#153楼 2006-04-24 09:56 | 心只有你      
请教 Dflying Chen

你所说 MS面试的时候只会考察算法的能力,不会问.NET的东西。但是算法这个概念可大可小,决不可能在很短的时间里面(面试时间能有多长)搞去一个所谓的算法来,那MS面试是怎么考察算法的能力呢?总该不会是问些像数据结构的书上那样的问题吧

  回复  引用  查看    
#154楼[楼主] 2006-04-24 11:37 | Dflying Chen      
@心只有你
很简单的算法,例如power,string to int等,但不会是数据结构书上的

  回复  引用  查看    
#155楼 2006-05-02 03:08 | helpful[未注册用户]
嗯,总结的不错,我觉得dcom和那个Cyclomatic Complexity不应该存在,其他的还蛮好,问题不深,但可以考察这个人是否真正熟悉。net。

楼上一些朋友对这些问题不爽,可能八成自己漏出了破绽,无所谓的,了解自己的不足不是坏事。
希望继续学习。net的朋友一起努力吧,争论过多意义不大。

  回复  引用    
#156楼[楼主] 2006-05-02 09:16 | Dflying Chen      
@helpful
仅供参考,呵呵。不过您说得确实有道理,或许好多人骂这些题目是因为自己有些不清楚的。

  回复  引用  查看    
#157楼 2006-05-08 01:06 | Johnson[未注册用户]
那各位认为,.Net的难点和高难度的但又很适用的技术是什么呢?是那些晦涩深奥的理论?还是编写出一些用户适用、好用的自定义控件、组件?抑或是其他?

我曾问过很多所谓的“高手”这样一个问题:让你自己来实现一个TextBox控件(注意,是完全自己编写出一个控件),你需要多长时间来完成它?可别只说不做哟,因为有的人就是理论一大堆,做的东西还不如某些“菜鸟”级程序员。
仅为个人意见,只做参考。

  回复  引用    
#158楼[楼主] 2006-05-08 09:10 | Dflying Chen      
@Johnson
呵呵,各个方面都懂才是高手嘛

  回复  引用  查看    
#159楼 2006-05-18 13:37 | xpc[未注册用户]
K,俺搞.net四年多了,可gacutil一次也没用到,能说俺 对.net不熟悉么
  回复  引用    
#160楼 2006-05-28 01:11 | 三月      
呵呵~几乎答不出一个^_^
  回复  引用  查看    
#161楼[楼主] 2006-05-29 09:52 | Dflying Chen      
@三月
@小生
@xpc
-_-

  回复  引用  查看    
#162楼 2006-06-22 14:47 | 蛙蛙池塘      
有一半的问题能不用google能答到点儿边儿,主要是像我们这种半路出家的程序员,不熟悉win32,直接上来就学习asp,然后asp.net,后来在工作中才去学习算法啦,dna架构啦,这类的东西,但是我平时对framework,clr,cts,il,gc这类的东西也有所了解。
  回复  引用  查看    
#163楼[楼主] 2006-06-22 14:58 | Dflying Chen      
@蛙蛙池塘
:) just enjoy

  回复  引用  查看    
#164楼 2006-06-30 14:20 | kim      
我觉得只要把.net框架那本书看好了,这几个问题都是很简单的!
  回复  引用  查看    
#165楼[楼主] 2006-07-04 16:30 | Dflying Chen      
@kim
仅供参考吧

  回复  引用  查看    
#166楼 2006-07-04 18:39 | eboyyang[未注册用户]
我比较我赞成 @装配脑袋 的思想
我们是招人来解决问题的,懂不懂并不重要,,会不会在短时间学会才是最重要的, 能解决就行,知道如何就行

  回复  引用    
#167楼 2006-08-19 21:02 | gym[未注册用户]
做比说好,解决问题比理论更好,用户满意最好
  回复  引用    
#168楼[楼主] 2006-08-26 13:40 | Dflying Chen      
@gym
@eboyyang
呵呵

  回复  引用  查看    
#169楼 2006-08-29 15:04 | 55[未注册用户]
我不懂啊
  回复  引用    
#170楼[楼主] 2006-09-01 17:08 | Dflying Chen      
@55
仅供参考拉

  回复  引用  查看    
#171楼 2006-09-10 22:13 | 闲云      
楼主,光知道没有用呀!主要是真的理解了才可以,不过也没有可能一个人全部理解。表面的太肤浅,深入没时间
  回复  引用  查看    
#172楼 2006-09-11 23:37 | lixiong      
let me have a try:

Thread和Process之间有什么区别?.NET新引入了Application Domain的概念,这样他们三个之间有什么区别?引入了Application Domain会带来一些潜在的问题么?

Process is OS resource boundary. Thread is execution identity. AppDomain the logic resource boundary for CLR code and resource. Potential issue may occur when there is confliction with CLR boundary and OS resource boundary, such like assembly unloading.


Windows Service与普通的EXE在执行过程中有什么区别?

Service starts before user login, and has its own desktop/session


一个进程可以访问的Windows地址空间有多大?等于系统的虚拟内存大小么?这两方面将对系统的设计产生什么样的影响?

2GB user mode, 2GB kernel mode. You may apply /3gb option


EXE和DLL之间的区别是什么?在系统设计中应该如何选择使用它们?

In fact, there is no difference

普通的EXE与.NET EXE的执行过程有什么不同?

CLR binary needs be jitted before execution, and maintained bu CLR. While EXE contains binary code and executes directly.


什么是弱类型,什么是强类型?在系统设计中应该首先考虑使用哪种类型?

Strong type

PDB文件是作什么用的?里面包含了什么信息?

Debug symbol

Cyclomatic Complexity是什么?为什么它很重要?

sorry I do not know

为创建一个critical section以访问某个变量书写一个标准的lock() 并加上double check。


what's double check? You just need to create criticalsection, enter and leave.

为某个对象实现标准的Dispose模式。

is it necessary?

什么是FullTrust? 存在于GAC中的 assembly 拥有FullTrust么?

FullTrust means any permission request will be met for the callee. I do not think strongnamed assembly in GAC has FullTrust. You can adjust it.


下面这个命令是做什么的?gacutil /l | find /i “system”

Not sure. Find assemblies in GAC with system keyword?


下面这个命令是作什么的? sn -t something.dll

Display strong signed signature?


跨防火墙的 DCOM必须打开哪个端口?端口135是用来做什么的?

RPC endpoint mapper


有什么办法可以与现有unmanaged code集成?在集成的时候应该考虑什么问题?

COM Interop/PInvoke. Mashral

简要解释一下OOP与SOA都是用来作什么的?

oh, a long stroy

XmlSerializer是如何工作的?进程运行XmlSerializer时候需要什么样的ACL权限?

which level?


在系统设计时,何时应该使用try catch?何时需要避免使用?

the callee may throw exception, you need to put it in try/catch block.

Debug.Write()和Trace.Write()之间有什么区别?二者分别应该用于何处?

er.. not sure

Debug Build和Release Build有什么区别?在执行效率上有什么明显的区别么?

native build or CLR build? For clr build, there is no explict difference, except ASP.NET :)

JIT是针对Assembly还是Method发生的?解释一下为什么.NET的设计者要这样做?

Method. For performance

简要描述一下GC的执行过程。

mark phrase, collect phrase, compact and move phrase, finalize phrase

应该如何选择使用abstract class还是interface?

do not ask me design info

在设计一个自定义类型时应如何选择使用Value Type还是Reference Type?

oh, depends on your...

对于Value Type和Reference Type,a.Equals(b)的默认实现方式有什么不同?

default implementation?


.NET中为什么不提供默认的deep copy?如果需要,要如何实现deep copy?


Clone?

相对于.NET 1.1,.NET2.0为了避免过度的boxing/unboxing造成的系统开销提供了哪些支持?


in fact, I never see any perfomrance issue caused by boxing. I do not think the improvment is great.

String是Value Type还是Reference Type?为什么.NET中的String对象被设置成immutable?

i do not know. But the behaviro likes value type, but defined as ref type? because string is common basic type like int, char...

  回复  引用  查看    
#173楼 2006-09-11 23:41 | lixiong      
"你说说printf是怎么实现的,这人就没方向了,其实就是一个很简单的BIOS INT"

No. it's not a simple BIOS INT in Win32. In fact, it's a call to WriteFile API to standard device output :)

  回复  引用  查看    
#174楼 2006-11-28 23:48 | 阿毅      
楼主真是年轻人啊!
  回复  引用  查看    
#175楼[楼主] 2006-11-29 21:21 | Dflying Chen      
@lixiong
还是你比较强啊,呵呵,我要是能理解到这个程度,也就满足了

  回复  引用  查看    
#176楼 2007-01-05 12:41 | GGYY[未注册用户]
@nonocast

同意你的说法,国内的程序员不能说不努力,也不能说没有思考,但我觉得最缺乏的就是你所思考的东西:到底是花毕生精力去努力成为MS旗下的一名合格蓝领呢,还是根据自己的认识来学习?
说到这里,想到一句老话"宁为鸡口,不为牛后",哈哈~~~古人都知道的道理,今人应该多思考了.不可否认,"牛"后的人是比较风光,毕竟"牛"够大够壮,但一定要知道:1,牛不可能永远这么壮还不生病;2,牛还是隔壁家人养的,一但没了这牛就什么也不是了~~~~

当然了,程序员楼主还是可以这样来面试,做.NET的也可以继续做,但在工作闲暇时、茶余饭后时,多想想怎么来创新技术而不只是应用技术就更好了

  回复  引用    
#177楼 2007-01-21 16:18 | 梦幻天涯      
看了看也就回答了40%, 也难怪过去被MS拒了,看来真是学无止境啊。
  回复  引用  查看    
#178楼 2007-02-05 13:31 | ycm[未注册用户]
看看大家的回帖,问题似乎已经被导向到如何鉴别一个技术高手的问题上了。

其实我觉得大可不必这么争论,出题的是用人单位,如果他们觉得这样的题能够招聘的他们需要的高手,他们大可这样出题

对于那些没被这些题所认可的高手,他们也大可去找其他用人单位了。

  回复  引用    
#179楼 2007-03-21 12:01 | yunhuasheng      
@lixiong
回答的挺不错的

  回复  引用  查看    
#180楼 2007-05-07 03:17 | 小鬼[未注册用户]
如果我招WEB开发方面的人,我就不会考这些.
我只会考一些最基本的数据库读写和文件读写的操作,还有就是一些简单的HTML,CSS,JAVASCRIPT代码.
如果要求高点的话,再聊聊具体的设计,特别是数据库方面的和一些基本的设计模式.
再从聊天中了解对方是不是一个追求进步的人.

  回复  引用    
#181楼 2007-05-31 14:11 | supersun-mo      
同意小鬼的观点,楼主的问题似乎有点偏离应用层了.不过多了解点底层知识还是有必要的
  回复  引用  查看    
#182楼 2007-06-13 10:39 | Artech      
我觉得.NET是一个很宽泛的概念,很多人说“精通.NET”,实际上是把.NET理解得太狭窄了,.NET是一个平台,任何基于这个平台都在.NET的这个范畴中。我觉得没人敢说真正“精通.NET”。
而对于LZ提出的问题,只要真正了解.NET Framework的人都会回答,所以能过回答这些问题的,只能算是“精通.NET Framework“而已。

  回复  引用  查看    
#183楼 2007-06-26 16:43 | yinix      
呵呵,能不能把相应的答案给出来呀?让我们不“精通”的人学习学习?
  回复  引用  查看    
#184楼 2007-08-07 11:54 | @路过[未注册用户]
你们觉得这些问题如果放在winform社区,和web application社区哪个社区得到的答案更满意么?如果一个做了2,3年winform开发的程序员和一个做了2,3年web application开发的程序员,你要选择的是哪一个呢?你确定你根据这些题目选择了你想要的吗?^^
不过从这些题目看来,本人的基础还不是很扎实,需要更多的学习。

  回复  引用    
#185楼 2007-08-09 20:11 | myds[未注册用户]
需要更多的学习
  回复  引用    
#186楼 2007-08-23 23:04 | changbohou[未注册用户]
难道知道这些的就是高手,在web开发的过程中就一定能胜任吗?难道做web开发就一定非要知道这些,如果不知道这些就不能开发吗,相反我认为知道知道这些对web开发并没有太大的影响,难道对控件的熟悉,javascript,css,这些东西的了解不就胜任web开发吗,我认为Dflying Chen在工作中肯定是那种太固执并且不可~~的人,我想他自己都不知道他在他做的项目用过那些东西最多,只会一味的去搞一些东西来难倒别人,难道你们公司的人都对这些非常熟悉吗,你们公司的每个员工都是通过这些考核才进去的吗,你们公司做的项目用的这些东西用的最多吗,~~~~~~~~~~~~~~,要是在现实生活中认识你,我想我绝对无法忍受的~~~~~~
郁闷
总的来说,反正我是一个刚毕业的学生,今天有幸碰到这样的问题,真是太受打击拉,不知道怎么说,我想~~~~~

  回复  引用    
#187楼 2007-08-23 23:07 | changbohou[未注册用户]
其实我觉得大可不必这么争论,出题的是用人单位,如果他们觉得这样的题能够招聘的他们需要的高手,他们大可这样出题

对于那些没被这些题所认可的高手,他们也大可去找其他用人单位了

看到这样的回答,我是很赞同的,就我个人认为,楼主所在的公司我是进不去拉,我也不必要进去,甚至我觉得他的公司一定很变态,很令人恶心

  回复  引用    
#188楼 2007-08-23 23:09 | changbohou[未注册用户]
同意小鬼的观点,楼主的问题似乎有点偏离应用层了.不过多了解点底层知识还是有必要的
同意 同意~~~~~~
楼主的技术肯定很牛,要是能碰到小鬼这样的人招聘我就好拉,呵呵

  回复  引用    
#189楼 2007-08-23 23:13 | changbohou[未注册用户]
lixiong,他的技术肯定很牛呀,我想他肯定不做项目,要不就是搞一些指导什么的,呵呵,他们公司做东西肯定不用ms的东西,知道这么多这样的问题,为什么不写一些东西出来,供我们大家都使用呀,最好比ms的还强大呀,呵呵
  回复  引用    
#190楼 2007-08-23 23:17 | changbohou[未注册用户]
呵呵,各个方面都懂才是高手嘛

你懂股票分析,懂做房子,懂开车,什么都懂,就是不懂.net 我想你去应聘.net,别人也不会要你的呀,呵呵

我的所有评论都是胡扯,只是我的技术不行才那样说,呵呵

  回复  引用    
#191楼 2007-08-23 23:20 | changbohou[未注册用户]
为什么公司的招人都不要毕业生呢,难道时代在倒退,只喜欢那些老人,不喜欢年轻人了拉,
  回复  引用    
#192楼 2007-09-01 17:20 | Cooly[未注册用户]
畢業生,由於經驗不足,不能及時處理問題.

  回复  引用    
#193楼 2007-11-13 01:44 | 晓风残月      
N多不知道
  回复  引用  查看    
#194楼 2008-01-02 17:38 | 笑看苍天      
受教了!
还有好长的路要走!

  回复  引用  查看    
#195楼 2008-01-07 10:08 | myds[未注册用户]

文章很不错,好好学下

  回复  引用    
#196楼 2008-02-17 08:47 | 郭如风      
“精通”二字不是那么好说的
不过有些人说话向来不严谨、不负责,所以也就没什么可说得的

  回复  引用  查看    
#197楼 2008-07-01 10:45 | hunter001201[未注册用户]
Dflying Chen 对于 精通.net从这些问题中能够窥出一二,其实还是有道理的。
至于大家一直在说会这些就等于精通,乃至于某些人做了两三年编程,竟然没有用过Dflying Chen提出的问题与他是否不精通来相提并论,这些其实都是不矛盾了。
其实这相当于精通.net与使用.net来开发,这有什么区别呢?

我开车经验5年与我是做汽车产品的区别.

  回复  引用    
#198楼 2008-07-02 13:57 | IMART 创意市集[未注册用户]
.NET还是很不错的.感觉很好上手,我过去是学VB的
  回复  引用    
#199楼 2008-07-18 13:32 | 陈星良      
--引用--------------------------------------------------
jjx: 对于这些问题,有经验者只要花半个小时查资料就能从不了解到了解,这就是所谓的精通 .net 了吗?
--------------------------------------------------------

有见地,我学习也是从事例入手,没有太多理论的东西,好多东西都是先学步骤,以后在慢慢理解为什么。遇到不懂的就在网上查,照样把项目完成。

  回复  引用  查看    
#200楼 2008-07-18 13:35 | 陈星良      
昨天去应聘,有一个题目是:面向对象的变成具有 ____性,____性,____性
一看就鬼火冒,直接回答,没有背过,背熟了对做项目也没有多大用处。

  回复  引用  查看    
评论共2页: 上一页 1 2 



发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 364498




相关文章:

相关链接: