`
sslaowan
  • 浏览: 375070 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

从面试别人想到的

阅读更多
      最近一个月面试了10几个人,有应届毕业生,有在校寻找实习的学生,有工作了两三年的,也有工作了5到10年的,有在外包公司工作的,有目前在世界级外企的。结果是,一无所获。
      想起两年前,研究生二年级上学期开始找工作,面试了几个公司的经历,和一些师弟师妹问我的一些问题,不禁让我想到了很多。主要有两个方面:
      1 我们应该如何面试,才能挖掘出应聘者的真实能力
      2 从面试中,我渐渐的画清楚,一个公司需要什么样的人才,我自己应该如何规划我的未来。
     
      我面试别人掌握两个原则:
      1 此人掌握的主要技能是我们所需要的
      2 此人虽然尚未掌握我们所需要的所有技能,但是从他已经掌握的技能可以看出他的潜力和当前的Level。
      第二点很重要,就像Kent Beck不是Flex高手,但是我相信如果他愿意学习,他很快就会成为Flex的高手。

      我觉得我们招人主要基于以下考虑:
      1 需要某方面专门人才,来和我们现有的人形成互补。
      2 需要一些具有我们项目所需要的技术的人,他的技能会跟我们类似,但即便这样,我们依然希望他会是某方面的专家,比如Spring Security这么一个框架的专长也是Plus。而且,我希望这个人比我强。

   

     我招人的时候希望此人具有以下的气质:
     1 热爱编程,相信软件工艺,也相信软件工程。最近在看Kent Beck的实现模式和Bob大叔的代码整洁之道,我希望他能跟我一样,认为代码是给人看的,好的代码像一篇文章一样。能够反复去雕琢一段代码。但是要理解软件工程,不能为了雕琢每一段代码,而缺乏全局认识。
     2 热爱编程,能够为解决一个问题,写一段漂亮的代码,甚至于为类起一个好的名字而失眠。
     3 热爱编程,把这当作是一项事业,而非仅仅是工作。那种只是想把工作对付完了就OK的人是不适合的。
     4 热爱编程,单纯的用程序交流,人也像好代码一样,干净利落,说话直来直去。大家都很忙,没时间听客套话和绕圈子。     

      就像当年别人面试我的时候那样,我会这样去面试别人:
      1 从简历里挑出我最关心的他所会的技能,比如最近我希望招一个JS高手,最好精通Dojo(我说的精通是真的精通)。
      2 我会问他最擅长的技术(如果此技术不是我们最需要的那个),如果他最擅长的技术都语焉不详,那就没什么意思了。
      3 我会问某项技术全貌上的问题,比如会让对方谈谈Dojo的整个架构,是怎么解决JS领域的一些核心问题的。
      4 我会问一些技术细节,比如Spring的声明式事务处理是怎么实现的,因为这一个问题就暗含了AOP的概念和如何实现,代理模式,线程,JDBC事务处理。如果应聘者看过Spring的源代码,那么说明此人能够花心思追究技术更深层次的东西,具有优秀程序员一个优秀品质:好奇心。如果应聘者没看过Spring的源代码,他能回答上来,说明此人各方面基础知识扎实并能融会贯通去解决问题。同样我会问Hibernate的延迟加载是怎么实现的。
      5 我会问一些工程性问题,比如Spring的依赖注入,Scope为Session的Bean如何注入到Scope为Singleton的Bean。比如如何调整Hibernate查询性能。比如数据库索引会在什么情况下失效,原理是什么。
      6 我会问一些解决方案,比如如何重启服务器后,依然能够保持Session。
      7 我会问一些企业开发中特别重要的问题对方是如何理解的,比如事务,并发,内存管理,异构系统整合,数据库性能优化。
      8 我会问一些特别基础的问题,比如HashSet是如何判断新添加的对象是否已经存在的,如果已经存在,它是不再放进去,还是放进去覆盖之前的。比如ClassLoader的工作原理。
     
      当我面对一些工作了四年以上的人时,多少是有点惴惴,因为会担心对方很牛,我却挖掘不出。后来请教了一位工作了六年的同事,他说一个简单的原则是:
      问他你目前在项目中遇到的问题,因为这些问题都是大家讨论的,深思熟虑的,然后问他的解决方案。

      我面试的这些人,有时让我很感慨,为什么工作了四五年的人,甚至是十年的人,号称自己精通Dojo,但是一些基础性问题都不清楚,因为我是初学者,但是我会买一本Dojo之父写的精通Dojo去学习,甚至于我带的一个大四的实习生都知道去遍历网上所有的Dojo基础资料,然后把源代码看看。我需要的是,当我问及一个问题时,告诉我Dojo正确的做法是什么,而不是仅跟我一样,遇到一个JS问题,只能去网上搜一段代码,改改放到项目中,甚至于那段代码他都不完全理解。比如我现在也在阅读Javascript高级编程指南,以了解细节。
      
       跟一个很牛的同事一起面试别人JS,我觉得那人技术还算熟练,但是我的同事摇摇头说,一个人工作了四年,连如何用JS模拟Java中的类,JS的事件框架是怎么回事都不清楚,怎么能行呢。

       我想,或许,这也是我的奋斗目标:
       1 成为丁字形人才,有一项自己特别精通的技术,比如我的那位同事精通Extjs,精通JBPM,精通Spring Security,那是真的精通,另一位同事精通Lucence,还有的精通JQuery,有的非常熟悉Oracle。
       2 其实我对于我想招的人的要求,就是对自己的基本要求。
         
分享到:
评论
207 楼 beilejiang 2011-02-17  
zhangmingji 写道
顶,楼主。前辈,我想问个问题,如果是应届生,掌握了开发中要的技术,能够熟练运用,但是不能到您说的精通的地步,这可能只是时间关系,对于编程有很高的热情,Java基础扎实,熟悉并能运用常用的设计模式,熟悉MySQL,Oracle等常用的数据库,做过一些小项目,能运用一些开源框架。对于这样的应届生如果您刚好就是面试官,您是怎样想的,能否谈谈您的看法,给点建议。


+1
206 楼 dongguojun 2011-02-16  
楼主问的问题确实比较深刻,受教了
205 楼 squirrelRao 2011-02-16  
choiquinn 写道
从一开始看楼主的文章就非常赞同,看了这么多回复,我觉得能理解楼主的人太少。我刚毕业半年多,现在在一个出名的大公司工作,但是做着自己不喜欢的事,一个星期也写不了几行代码,整天就是写邮件走流程。只能自己研究研究开源框架的代码(自认为是非常好的学习方式),学习学习,再重复造造轮子~~。我觉得能在一个不断review代码、优化架构而不是整天在赶项目贴代码的地方工作真的是一件很爽的事,自然这种地方招的人也是需要热爱编程,能写出艺术的代码,让人读着赏心悦目的代码。


这位仁兄,你这话和LZ说的不太对口吧。但是对你的观点,我感觉就是在自己YY而已,如果是自己不喜欢的做得事还是趁早走人吧,别盲目崇拜大公司,只能说你说的热爱编程只是表象而已,大公司大企业? 是没办法去创新的,而且时间长了,一旦给你发一把真枪上战场,都不敢拿了。
204 楼 julysohu 2011-02-16  
不会是前段时间面试我的那位吧,问的问题太像了
203 楼 kanny87929 2011-02-16  
...我是路过的,我就看看大家的争论
202 楼 xxmouse 2011-02-15  
我看完了整个帖子和跟帖, 要说LZ问的这些, 严格说来也不算是太过分;
但是:
第一, 如果位置互换一下, 就是Richard Stallman来面试你也能把他问趴下, 但是你能说R。S还不够你用的吗?
第二,仅仅从谈这个角度, 大多数时间你还真没办法区分一个有经验的架构师和一个研一学生 -- 很多事并不容易在短时间内清楚地表达出来, 还有很多事大家都知道该怎么做, 但是只有很少的人才能够真正做出来 -- there is a big difference between knowing how to do something and actually do it.
简单说吧, LZ的方法就是一种风格, 据我所知国内有些公司就有一批人用这个方法招人(包括一些比较NB的公司), 如果是我, 碰到LZ这样的人只能自认倒霉。
201 楼 yjz1690 2011-02-15  
LZ说的没有错,有经验的,也并不能做到像LZ提到的要求的,有几个可以做的到呢?LZ也不一定做的到吧?所以,不要要求的太过分。
200 楼 gaojie825 2011-02-14  
zhangxi123 写道
骏马能履险,犁田不如牛;坚车能载重,渡河不如舟!
人家4年的工作经验不是按你的思路去走的!

这真的不错。。

人的理想不一样,经历也不一样。
当然不想当骏马的牛,不是好的程序员
199 楼 tsq 2011-02-14  
  LZ这种面试方法是找书呆子的方法,可能自己也是个书呆子。就算按你的标准找到了人选,可能也是一个背着重重的壳的蜗牛。很多被你鄙视过的面试者很可能比你有更强的创造能力,以后有潜力比你做出更好的产品。
  在我们求学的时候很多人应该都有这样的经历,不少有天赋的善于解决复杂逻辑问题的人,往往不能头头是道地进行说明,而很多说起来头头是道的人,却往往在解决实际问题的时候表现一般。很多逻辑问题是相通的,难道需要了解每一个技术的细节才能解决具体问题吗?并且就算暂时不了解,在需要了解的时候一个聪明、善于学习的人一般很快可以掌握。
  见识过很多这样的面试官,吹嘘自己面试了很多人,却总是找不到合适人选。真搞笑,中国有世界上最庞大的人才资源,在中国你都找不到,那你要到哪里才能找到?上火星找?其实很多面试官不过是喜欢zhuangblility而已,本身没有能力发掘、或不愿意发掘(不愿意者,抬高自己在公司的身价也)真正合适的人才。

  另外还补充一点:很多逻辑方面强的天才在语言能力方面弱,谈话的时候容易紧张,因此回答问题时往往会出错,但并不代表他对所回答的问题真的不明白,可能在深层次里他比提问的人更明白。因此,很多通过谈话来鉴定技术人员水平的程序本身就是扯蛋,那是招销售、管理等人才的方法。
198 楼 houxinyou 2011-02-14  
楼主只是按照应聘的人写的内容问了一下,如果应聘的人没写精通,楼主也不一定要问.我认为楼主是对自己的工作负责,想知道应聘的人的真实水平罢了.当然,可能也会因应聘的人把自己写的太牛而想打击一下或真的有自己不熟悉的问题想找个真正明白的人探讨一下.一个公司招人,是有定位的,水平差的不能完成工作,水平好的公司留不住.可能大家只关心应聘的人是否达到要求,我认为楼主关心的要多一些,他还关心应聘的人是否是远超公司要求.远超要求的人一般情况下也是不能要的.你们认为一个不到十人,没有自己产品,只是接个几W块的小管理系统的公司能留住那些国内外的大牛吗?
197 楼 mdsp25xhm 2011-02-10  
从楼主发表的观点可看其公司的规模,比如:IBM级别。(猜想)
编程知其而不知其所以然不知也
196 楼 tczengjin 2011-02-04  
<div class="quote_title">sslaowan 写道</div>
<div class="quote_div">
<div class="quote_title">Checkmate 写道</div>
<div class="quote_div">
<div class="quote_title">sslaowan 写道</div>
<div class="quote_div">
<div class="quote_title">i2534 写道</div>
<div class="quote_div">大概看了下,现在论点分化比较严重啊.<br>我看来,这要看被面人的简历上怎么写的了.<br>譬如,我前天面了一个,工作貌似是2年,技能第一条写着精通java反射.<br>好吧,基础勉强吧.最后他强调了他看过spring源码,精通反射.<br>于是问了一下,怎么能写一个类似struts2的插件加载的类出来.<br>....答曰不知道.<br>再问,泛型中,我如何获得类型化参数的类的信息.譬如ArrayList&lt;String&gt;中,怎样知道&lt;&gt;中的是String<br>答曰:去list的第一个元素,然后就可以获取class信息了....<br>又问,如果没有元素呢,答曰:不知道....<br>好吧,你真是精通.</div>
<br><br>同感。一人写着精通反射,然后我问他如果一个类的字段是Private的,怎么能访问到这个字段的值。答曰<span style="color: #ff0000;">不知道</span>。<br>一般我都会<span style="color: #ff0000;">穷追不舍</span>的问,因为要看看他所谓精通是精通到什么地步。</div>
<p> </p>
<p>做人还是留有余地的好,这年头谁没求谁那天是吧.</p>
</div>
<p>可能是我表述不清吧,我的意思是看看他的真实水平。</p>
<p>比如我想找一个能力为3的人,我问他相应的问题,他如果回答到了4,我会接着问,直到他回答的超过我知道的了,或者是他不会了为止。但是并不是回答不上来就否定他。而且多半我都是用交流的语气。而且我会说您应该加强一下这个部分,或者说您已经答得很不错了,或者说您大大的超出了我的预期,非常专业。</p>
<p>这个方法有两个作用:</p>
<p>1 能考察出此人到底有多深,这很重要,你懂的。</p>
<p>2 避免一些看了书上介绍但是自己没做过来蒙事的,有个同学跟我说他们公司招了个人,进了他们组,发现太差了,说明那个面试的人没经验,被对方唬了。</p>
</div>
<p><br>楼主是在国内公司还是外企啊?专业自评?1-5?google电面会问这个,听一个拿到google美国offer的大牛说的,他对自己最熟悉的技能的自评是3,其余自评在3以下,自评越高,电面你的人越牛,题越难,某些职位需要的是专业的广度,某些职位强调的是专业的深度,匹配就好,楼主公司这个与google的面试方法很像哦</p>
195 楼 peterzhai 2011-02-04  
某一天,你精通的东西被淘汰呢怎么办?不要太执着于这些,明白其基本的原理,还有常用 的就Ok了!万变不离其中!我们只要掌握他的思想就行了!你认为呢?
194 楼 Ashfrog 2011-01-30  
1 成为丁字形人才,有一项自己特别精通的技术,
这个很不错,很具有指导意义···
现在我的情况是,啥都懂一点···
甚至连懂的算不上,只是工作中用用而已···
这样局限性太大了,是时候找一个方向来专精了···
193 楼 lijunlong 2011-01-30  
哈哈,还是得不断学习啊
192 楼 choiquinn 2011-01-30  
从一开始看楼主的文章就非常赞同,看了这么多回复,我觉得能理解楼主的人太少。我刚毕业半年多,现在在一个出名的大公司工作,但是做着自己不喜欢的事,一个星期也写不了几行代码,整天就是写邮件走流程。只能自己研究研究开源框架的代码(自认为是非常好的学习方式),学习学习,再重复造造轮子~~。我觉得能在一个不断review代码、优化架构而不是整天在赶项目贴代码的地方工作真的是一件很爽的事,自然这种地方招的人也是需要热爱编程,能写出艺术的代码,让人读着赏心悦目的代码。
191 楼 thinpay 2011-01-29  
嗯,学习了...
最近我也面试了不少人,也想过怎么更好的去面试一个人.很多都如你想一样.感觉是个问题.
190 楼 squirrelRao 2011-01-29  
hanwesley 写道
firesoul 写道
aabcc 写道
firesoul 写道

1. 严重鄙视楼主.
2. 严重鄙视98%的所谓看过某某框架源代码的人.
3. 楼主必然从事于天朝的某个毫无创新能力的公司.
对于以上,不解释



好强大,用框架看源码还要被鄙视的...

那编程方法跟设计思路到哪里去学?全部自创么



1.请注意所谓两个字.大部分所谓看过源代码的人如下

1).针对面试看过一下XXX面试指南或者大全的人.
2).看过网上一些"XXX源代码学习"之类文章的人,看过不知所云然后就忘记的人.

2.编程方法跟设计思路到哪里去学?

市面上有那么多的讲编程方法跟设计思路的书,里面都有很多不错的例子.通过看框架来学习?没有该框架的设计文档,看的懂说明你是天才或者是闲的蛋疼有研究精神(但大部分人只是不懂装懂的在装逼)

3.研究XXX框架有意义吗?

国人能不能具备一点结果导向的思维.半桶子水喜欢就向新手装逼.装逼也要装高级一点的.不要装一些google一分钟就可以的东西.那样我会觉得你和noob的距离只有google一分钟而已.



表示支持,其实更多的时候是应该去看设计,看文档。
如果自己能够设计出来,或者编码一番。

再去跟rod joson之类的大牛写的代码比较比较,这样或许成长更快。


非常劲道! 很好!
189 楼 ccEicc 2011-01-29  
说得很好!!
188 楼 hanwesley 2011-01-29  
firesoul 写道
aabcc 写道
firesoul 写道

1. 严重鄙视楼主.
2. 严重鄙视98%的所谓看过某某框架源代码的人.
3. 楼主必然从事于天朝的某个毫无创新能力的公司.
对于以上,不解释



好强大,用框架看源码还要被鄙视的...

那编程方法跟设计思路到哪里去学?全部自创么



1.请注意所谓两个字.大部分所谓看过源代码的人如下

1).针对面试看过一下XXX面试指南或者大全的人.
2).看过网上一些"XXX源代码学习"之类文章的人,看过不知所云然后就忘记的人.

2.编程方法跟设计思路到哪里去学?

市面上有那么多的讲编程方法跟设计思路的书,里面都有很多不错的例子.通过看框架来学习?没有该框架的设计文档,看的懂说明你是天才或者是闲的蛋疼有研究精神(但大部分人只是不懂装懂的在装逼)

3.研究XXX框架有意义吗?

国人能不能具备一点结果导向的思维.半桶子水喜欢就向新手装逼.装逼也要装高级一点的.不要装一些google一分钟就可以的东西.那样我会觉得你和noob的距离只有google一分钟而已.



表示支持,其实更多的时候是应该去看设计,看文档。
如果自己能够设计出来,或者编码一番。

再去跟rod joson之类的大牛写的代码比较比较,这样或许成长更快。

相关推荐

    医学检验事业单位面试.pdf

    ③要反省自己的言行,是否某些地方引起患者的误解,从而促使他们想到送红包。 问题4:如何正确处理人际关系? 回答要点: ①首先做好本职工作,不让人际关系影响到工作的进程。 ②反省自己,找出问题所在。 ③若...

    简单手写tcp-rpc.zip

    &gt;还记得第一次听到这词是在别人的面试视频里,简单了解了一下只知道是远程调用。 &gt;万万没想到我的第一次面试的第一个问题就是与此相关,希望认真准备每一次面试,及时查漏补缺,谨以此文,代表诚意~奥利给! &gt; ...

    SSH框架搭建

    这些天有点时间想到很多经常去面试时别人要我们搭个框架,可是很多人确不会,现在我搭建好的,直接导进去就可用,自己添加个ojdbc14.jar包。我有创建两张表,创建语句也放到项目中,有一个从页面进入测试的方法。...

    手撕RPC实现基于TCP的仿Dubbo简单实现

    万万没想到我的第一次面试的第一个问题就是与此相关,希望认真准备每一次面试,及时查漏补缺,谨以此文,代表诚意~奥利给! 思路: my-rpc通过client调用interface给server 方法调用效果实现 分模块 写接口 序列...

    Java版水果管理系统源码-2020-job-cs-note:2020年秋招小结

    此外,本文简要记录了个人面试的情况,附件中包含秋招流程中所有自己作||帮别人做的笔试、面试coding题。大家可以看一看,直观感受一下笔试和面试分别的coding难度。 在动笔前收集了师弟师妹们关于秋招的一些迷思,...

    leetcode下载-fuck-leetcode:他妈的leetcode

    实在做不出来可以看别人的解题思路,抄一遍,然后过几天再做一遍 leetcode 初级算法(一定要做到举一反三,融会贯通。第一遍做忘记不要紧但是要想到解决思路) 分节找自己薄弱又常考的算法 刷题到融会贯通 参考链接 ...

    基于Linux的多功能聊天室

    其实这个项目在我电脑已经躺了多时,初写完项目规划后,我认认真真地去实现了它,后来拿着这个项目区参加了面试,同样面试官也拿这个项目来问我,当然我是做过一遍了,而且为了面试,我将什么strcpy,strlen等常用的...

    asp.net知识库

    也谈谈技术面试 在C#里把ArrayList转换为Array 或 把Array转换为ArrayList C# 2.0 在.NET 2.0中,让你的组件也可以绑定 .NET20 一种简单的窗口控件UI状态控制方法 翻译MSDN文章 —— 泛型FAQ:最佳实践 Visual C# ...

Global site tag (gtag.js) - Google Analytics