如何辨别优秀的程序员

标签: 程序员 | 发表时间:2011-07-13 16:40 | 作者:程序员 iyuan
出处:http://www.jobbole.com/blog.php
  这并不是想象的那么容易。简历上的工作经历并不能说明什么问题,因为卓越的程序员并非总是有“正式”的工作经验来说明他们有多优秀。事实上,简历上的工作经历往往会误导。不过,从简历中还是可以得到某人是否是卓越程序员的一些细微线索。

  我觉得自己是一个非常优秀的程序员。同时,我也花费了大量的时间在商业圈,找技术人员做项目,面试别人等等。正是如此,我觉得自己有足够的经验去识别一个优秀的程序员,我会在下文中分享,希望能够帮助那些 “商业人士”更好地找到人才。那些有可能成为优秀程序员但还没有摸到门道的,也可以阅读这篇文章,从而发现自己需要改进的地方。

  在Paul Graham的这篇《导致创业失败的18个错误》文章里提到:

  在90年代,导致绝大多数创业失败的是那些劣质的程序员,很多这样的公司是几个商人共同创立的,他们有聪明的想法,然后让程序员来实现这些想法。但事实上要困难地多——因为那些企业家他们无法分辨一个程序员是否优秀。他们甚至都没有机会见到那些顶极的程序员。

  事实上,那些商人选择自己认为优秀的程序员(比如简历上提到自己曾是微软的工程师),但事实上不是。然后会发现创业之路就像二次大战一样艰难。

  如果你不是程序员,如何来挑选优秀的程序员呢?我觉得没有最佳答案。我想说你最好找一个优秀的程序员来帮你筛选。但你如何找到这个人?

  这点上,我不太同意Graham。我觉得优秀的程序员有很多特质。即使一个商人也能识别。我下面来一一列举。

  0. 激情

  在我与别人合作的经历中,遇到过很多技术员:他们写程序,因为他们觉得这是份不错的工作。业余时间从来不会去编程。当他们知道我家里有一个局域网和 3台电脑时,显得很震惊。他们只是在工作,不会主动学习新事物,除非工作中需要,或者为了找份工作。当一天的工作结束时就再也不想谈论它了。有些人觉得工 作之余谈工作不适合社交。但如果你想结识一个优秀的程序员,体现出自己的激情是很重要的。

  1. 自学并喜欢学习

  时过境迁,编程语言也在不断进步和完善,新的技术会出现,新的标准也会到来。当然不是说,所有优秀的程序员都对那些事物有浓厚的兴趣,但有很多程序 员他们从来不会主动学习新事物,除非迫不得已,因为他们不喜欢学习新东西。这些人往往是在大学时学的计算机专业,然后渴望毕业后找到份好工作。

  如果你打算雇佣某个程序员,只要提到“我能掌握那个,只要把我送到培训中心一个星期”。不要雇佣那样的人。优秀的程序员不需要培训中心。事实上,优秀的程序员会提到你从未听过的新技术,然后向你解释为什么必须用它,即使他都不知道如何使用。

  2. 聪慧

  有些商人觉得缺乏情商就是不够聪慧。事实上聪慧包括很多因素,情商只是其中之一。优秀的程序员不是不会说话,事实上,优秀的程序员通常是你认识的人 中最聪明的。他们中的很多人有很好的社交能力。我参加过几次 London Ruby User聚会,除了少数几个特例,大多数人都很聪明,善谈,兴趣广泛等等。但你不会在公众场合看到他们谈论,然后会想“这是怎样的一帮geek啊”。

  不要认为那些话不多的人就是好的程序员。他们不是,如果在完全放松的环境下都不能很好地交流,他们不是优秀程序员的概率会很大。

  3. 隐藏技能

  这跟激情有关,也是优秀程序员的一个特征。

  我在9岁时就开始编程,那时还不是在PC上,后来迁移到了PC,学了Pascal。当我14岁时,用C和Assembler写了一个 raycasting引擎。花费了大量的时间与显卡打交道,终于可以看到很酷的图形效果。在这之前,我只是个二流的程序员,没有信心做任何复杂的事情。当我完成它时,我收获了自信。我知道只要我想,再难的事情我都能搞定。

  这会在我的简历上出现吗?不会

  我深信大多数优秀的程序员都有类似的冰山不会出现在简历上。他们觉得这不是“合适的经历”。可以对那些潜在的优秀程序员问一个这样的问题“你能告诉 我一个自己独立完成的项目吗?即使是不完整的,在业余时间开发的,没有出现在简历上?”如果他们不能,他们很可能不是优秀的程序员。

  4. 多种技能

  这个很简单,由于对新鲜事物的热情和强烈的求知欲,那些22岁以上的程序员通常掌握好几门语言。这不可避免,学习一个新技术是最有意思的事情之一。

  5. 证书

  这其实不是一个优秀程序员的特征,很多有计算机相关证书,很多没有。年龄也一样,有些18岁就展露头角,有些40岁才有所成就。我的经历告诉我,大 多数平凡或者差的程序员大学时才开始编程,为了他们的计算机课程。而优秀的程序员编程的历史可以追溯到更远。如果你的准程序员在大学前没有接触过变成,他 所有的经历都是从第一份工作开始的,他很可能不是一个优秀的程序员。

  声明

  上面或者下面所说的特征不是必备的。你很可能会发现 NB的程序员不符合这些特征。我的观点是,你不太可能找到一个优秀的程序员不符合这些特征中的任意一条。当然,你也会发现差的程序员也符合这些特征中的某几个。但我深信,一个程序员,这些特征符合地越多,那么他是优秀程序员的概率就越大,作为一个商人,你可以信赖这些人。

  总结

  以下几个特征,能够帮助你找到优秀的程序员
  • 对技术充满热情
  • 编程是生活的一部分
  • 会在你的耳边谈论技术相关的话题,如果你有兴趣的话
  • 主动学习新技术
  • 对自己不能认同的技术,感到不适应,无法全身心投入
  • 聪明,对很多话题都感兴趣
  • 在大学/工作之前就开始编程了
  • 有隐藏的冰山,自己完成的大项目
  • 对许多不相关的技术有了解

  原文:Daniel Tenner
  译文:李忠

  -------------------------------------------------------------------
  你可能对以下文章也感兴趣

  Velocity 2011会议分享
  敏捷软件测试的七个关键成功要素
  Facebook是如何管理代码的
  HTML5在移动开发中的现状
  Scrum实施经验

  -------------------------------------------------------------------

  

相关 [程序员] 推荐:

普通程序员、文艺程序员、2B程序员

- 可可 - 宇宙的心弦
希望能引起广大苦逼的正在学或者已经学过c++人的共鸣和会心一笑吧. 如何辨别自己在现实还是虚拟世界.

如何面试程序员?

- bluesnail - 阮一峰的网络日志
你要面试一个程序员,应该问他什么问题. 有人在Hacker News的讨论区里,请求指点,怎么才能在面试中发现合格的人. 众人纷纷出主意,有很多高质量的回帖,我觉得挺有启发,就整理出了下面这篇文章. 首先,最重要的是,你自己一开始就应该想清楚:. 哪些途径和方法可以发现这样的人. 只有明确这些根本性的问题,才能正确高效地完成面试.

程序员的本质

- Allen - 译言-电脑/网络/数码科技
来源What do programmers really do?.   很多人(包括我岳母)认为计算机变得如此智能,所以在不久的未来将不再需要程序员. 另外一些人认为程序员是天才,他们在电脑前能不断地解决复杂的数学难题. 甚至不少程序员对他们是做什么的都没有清晰的概念.   在这篇文章中,我想给不知情的人解释一下程序员到底是做什么的:.

程序员人生之路

- myartings - 博客园-首页原创精华区
   程序员人生之路(强烈推荐,分析的透彻. ),某程序达人的人生感悟,估计没有半个甲子的时间,是绝对不可能感悟出来的.    相对同时刚出校门同学从事其它行业而言优厚的薪水,以及不断学习更新的专业知识不仅仅让你感到生活的充实,更满足了你那不让外人知的虚荣心. 在刚出校门的几年中,你经常回头看看被你落在后面的同学们,在内心怜悯他们的同时,你也会对自已天天加班的努力工作感到心里平衡:“有付出才会有回报”这句话在那几年中你说的最多,不管是对自已的朋友们还是自已的爱人.

程序员装B指南

- Qing-Run - 博客园-首页原创精华区
1.电脑不一定要配置高,但是双屏是必须的,越大越好,能一个横屏一个竖屏更好. 一个用来查资料,一个用来写代码. 总之要显得信息量很大,效率很高. 2.椅子不一定要舒服,但是一定要可以半躺着. 3.大量的便签,各种的颜色的,用来记录每天要完成的事务,多多益善. 沿着电脑屏幕的边框,尽量贴满,显出有很多事情的样子.

程序员收入报告

- diaoxsh - cnBeta.COM
最近,波兰的程序员Chris(也叫KreCi)公布了他的第十四期程序员收入报告. 数据显示,上月是目前为止他收入最多的一个月. Chris的收入并不是指他的工资或薪水,Chris是一个自由职业者. 他的收入也不是来自个人承包软件工程的收入,他更像是一个果农,种了优良的果树,只要不断的给这些果树施肥浇水,这些果树会给他带来源源不断的财富.

程序员的利器-SourceInsight

- Alex - 博客园-首页原创精华区
作为程序员,大部分时间是在已有的代码上代码工作. 要对已有的代码进行调整,首先就要搞清楚当前代码中蕴含的逻辑关系. 所以常常有程序员调侃说花了大半天时间看代码,最后写代码的时间只有几分钟. 所以,对已有代码的分析质量将影响(甚至会决定)最终代码修改的质量. SourceInsight在代码分析上给予程序员极大的帮助.

程序员?还是小丑?

- Vingel - cnBeta.COM
和你从不认识的人坐在一起,试图弄清楚他是个程序员还是个小丑. 我没有想侮辱任何人的意思,而且,我是第一个要感谢这么多年的教育和努力终于把我变成一个专业小丑的人. 对于程序员新手,我充满怜悯,为了和缓的帮他热热身,我给了他一道温和的问题来消解我们之间的陌生. 我让Ada写一段程序,在纸上,打印出“hello“这个词10次.

程序员必读经典

- - 搜索引擎技术博客
你面试微软前必须要读的十本书:. Code: The Hidden Language of Computer Hardware and Software (《编码的奥秘》). Computer System: A Programmer’s Perspective (《深入理解计算机系统》) /Windows via C/C++ (《Windows核心编程》 / 《程序员的自我修养》.