小谈面试

今天面试了个做了9年C#开发的哥们,结果很不理想。于是想小谈一下面试,仅是自家之谈。

话说,这些年也面试过很多人,目前还是在做外包,是帮客户方面试Vendor的Dev,当然自己也被面试过很多次。面试是一件很主观的事情,是否能够通过面试,我认为是很难说的事情。除了技术原因外有各种状况,就不在这谈了。从技术方面,要看面试方想要什么样的人。说起来简单,可悲剧的地方就在这里了。很多时候面试方不知道自己想要什么样的。比如现在面试的要求是,找水平比较好的人。这个每个人的观点都不一样,对面试者来说,就得看遇到什么样的面试官了。面试官的知识组成,决定了将会面试什么样的知识。这样的情况对面试者来说不太好准备。

对于我来说,这种没有特定方向的面试,一般是根据面试者做过的项目,找我了解,熟悉的知识点(我不知道的,问了也白问嘛:))提出问题。对于答案,面试者应该知道基本的概念,并能够如何使用,需要在什么情况下使用。比如设计模式的时候,我一般会问单例模式。先让面试者实现一个单例的类。这个手写的代码,一般面试者会写的话几分钟内就能写出来。写出代码主要检查2点,一个是类实例化的时候经过null判断,保证只会实例化一次。其次是一定要有private的默认构造函数。接下来,会让面试者考虑如果多线程下怎么保证线程安全。这里主要是在Get的时候要加lock。其实但从线程安全角度讲,这个单例还可以在私有字段上加ThreadStatic。这个答案就跟上一个答案适用于不同的场景。接下来会问,单例模式主要适用于什么情况,有什么优点。对于了解单例模式的人,基本都会回答出来。单例模式适用于一个特定类只有允许有一个实例的情况。在什么情况下使用单例,那就看面试者的回答了。对于单例模式的优点,保证了实例的唯一性和扩展性。

我认为作为一个程序员,在脱离了最初的摸爬滚打的阶段后,应该更多的了解我们所用的技术。正所谓知其然,知其所以然。很多时候我们在实现某个功能的时候可以从网络上得到别人已经实现的例子。只要有时间,我更想了解别人为什么这样写,实现这个功能都有几种途径,这些途径的优缺点是什么,适用于那些情况。强大的.Net framework在某种程度上讲让程序员简化了许多的工作,也提供了多种可能(为什么提供多种实现方式呢?可能是被逼的哦),网络上又有丰富的资源。那么进阶就在于如何用好它们,考虑性能,稳定性,安全性,扩展性的最优方案。

从另一方面讲对如此的面试要求,作为面试官,我也很无奈。我不认为每个程序员都要什么都精通,术业有专攻。既然招人,就应该明确想要什么样的人,比如做数据库开发,做网站前端UI等等。这样不管是对面试者,还是面试官都很明确。如果说,确实无法确定招来的人接下来会做什么,也没问题。既然不确定,那么就意味着招来的人很可能不会做他之前所擅长的东西,那么就应该找那些愿意尝试新的技术,能够快速学习和掌握新的知识的人。这样就不要着重于对特定技术的面试。大概是庙大不愁找不到念经的和尚吧。

面试没通过的兄弟姐妹们,不要灰心。多尝试尝试吧。面试的结果有时候很奇怪的。几年前,我帮忙面试一个主要是JQuery做前端UI的职位,那个哥们毕业2年,这2年都是在做JQuery的项目。我本身对JQuery了解的并不是很深,只是实在没其他人了,让我去面试他。我的了解是他对JQuery用的还是蛮熟的,至少我问的问题还是问不住他的,而且这个职位对JQuery的要求并不是很高。我给出的面试结果是可以胜任这个职位。报告到领导那里,领导跟他聊了一会,然后Fail了,理由是他不会C#。我就奇了怪了,你招JQuery的工程师关C#什么事啊。领导回答我的是,如果没有JQuery的活,他可以帮忙写C#代码。好吧,这个逻辑不是我等智商的人可以理解的。

愿大家都能找到满意的工作。

PS:单例模式传送门http://csharpindepth.com/Articles/General/Singleton.aspx

 

posted @ 2014-03-25 00:02  悟道鹰  阅读(208)  评论(0编辑  收藏  举报