`
yanyanquan
  • 浏览: 452888 次
  • 性别: Icon_minigender_1
  • 来自: 江门
社区版块
存档分类
最新评论

如何辨别优秀的程序员

 
阅读更多

来源于jobbole

这并不是想象的那么容易。简历上的工作经历并不能说明什么问题,因为卓越的程序员并非总是有“正式”的工作经验来说明他们有多优秀。事实上,简历上的工作经历往往会误导。不过,从简历中还是可以得到某人是否是卓越程序员的一些细微线索。

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

  在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的程序员不符合这些特征。我的观点是,你不太可能找到一个优秀的程序员不符合这些特征中的任意一条。当然,你也会发现差的程序员也符合这些特征中的某几个。但我深信,一个程序员,这些特征符合地越多,那么他是优秀程序员的概率就越大,作为一个商人,你可以信赖这些人。

  总结

  以下几个特征,能够帮助你找到优秀的程序员

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

 

分享到:
评论

相关推荐

    程序员个性壁纸

    这类壁纸在设计上注重清晰度和大尺寸,以确保在高分辨率显示器上也能呈现出优秀的视觉效果。"高清"和"放心"的描述意味着这些壁纸质量上乘,可以无顾虑地应用于各种设备,而"可靠"则暗示了这些资源来源稳定,不会带有...

    EGA_VGA程序员手册.pdf,EGA、VGA,C,C++

    VGA因其广泛的兼容性和优秀的性能,很快成为个人计算机的标准配置。它不仅兼容EGA和CGA,还支持多种非IBM标准的显示器,这使得VGA成为了行业标准。 3. **刷新率与显示质量**: VGA支持更高的刷新率,减少了屏幕...

    程序猿高清背景图

    同时,"高"也可能指代其设计水准高,代表了优秀的艺术性和技术性结合。 综合以上信息,我们可以推测这些背景图片可能包含了以下几个方面的知识点: 1. 图像设计:涉及到色彩搭配、构图原则、元素排列、主题表达等...

    程序员能力矩阵

    总结而言,程序员能力矩阵不仅包含了技术技能的发展路径,还涵盖了沟通交流、团队协作等方面的能力提升,这对于成为一位优秀的程序员至关重要。随着技术层级的提升,不仅要求技术上的精进,还需要不断提高沟通和解决...

    2009.6.19—30举办3S研讨会暨Google Earth与Google Map等仿真建模与共享及ARCGIS与遥感高级程序员培训班

    关于举办2009’CHINA3S’3S技术一体化应用研讨会暨遥感与GIS制图、Google Earth与Google Map等虚拟三维仿真建模与共享软件应用开发及ARCGIS与遥感分析操作应用高级程序员学习班的最新通知 (2009.6.19—30) Google...

    NetTerm v5.4.0.2

    包含有一个FTP服务器,有对IP地址进行分辨且能监控网址的功能,它支持从Unix主机的全透明打印,还含一个Unix页面文件,你可以通过透射功能将该页面上传加载至主机,然后送到你的计算机中,假如你是程序员,你可在 本...

    最新Netterm V5.4.3.0 多国语言版(带算号器)

    包含有一个FTP服务器,有对IP地址进行分辨且能监控网址的功能,它支持从Unix主机的全透明打印,还含一个Unix页面文件,你可以通过透射功能将该页面上传加载至主机,然后送到你的计算机中,假如你是程序员,你可在 本...

    NetTerm5.4.3.0

     包含有一个FTP服务器,有对IP地址进行分辨且能监控网址的功能,它支持从Unix主机的全透明打印,还含一个Unix页面文件,你可以通过透射功能将该页面上传加载至主机,然后送到你的计算机中,假如你是程序员,你可在 ...

    NetTerm5.4绿色版

     包含有一个FTP服务器,有对IP地址进行分辨且能监控网址的功能,它支持从Unix主机的全透明打印,还含一个Unix页面文件,你可以通过透射功能将该页面上传加载至主机,然后送到你的计算机中,假如你是程序员,你可在 ...

    NetTerm (32-bit) 5.4.2.8

     包含有一个FTP服务器,有对IP地址进行分辨且能监控网址的功能,它支持从Unix主机的全透明打印,还含一个Unix页面文件,你可以通过透射功能将该页面上传加载至主机,然后送到你的计算机中,假如你是程序员,你可在 ...

    Monaco字体文件-黄帝历四七一八年庚子月丙申日.zip

    它的大小和样式设计使得长时间盯着屏幕的程序员的眼睛压力相对较小,尤其在低分辨率显示器上表现优秀。尽管随着高分辨率显示器的普及,一些现代字体如Fira Code等引入了连字符(ligatures)以提高代码可读性,但...

    适合写代码的字体

    6. **YaHei.Consolas.1.11b**:这款字体是Consolas字体的中文增强版,结合了Consolas的优秀特性并优化了中文显示,使得中英文混排时更加协调,是中文编程者的理想选择。 编程字体的选择不仅关乎美观,更重要的是...

    raleway_fonts_font_

    Raleway字体家族以其清晰可读性和优雅的设计,为程序员提供了优秀的代码阅读体验,尤其在长时间编写和阅读代码时,能有效减轻视觉疲劳。 Raleway 字体家族包括多种样式,如轻型(Light)、半粗体(SemiBold)、常规...

    Andale Mono

    这款字体在IT行业中广泛使用,因为它在显示编程文本时能提供优秀的对比度和空间布局,使得程序员在查看和编写代码时更加舒适。 Andale Mono的设计灵感来源于传统的打字机字体,其特点包括均匀的字母宽度(等宽),...

    常用编程字体

    Menlo是MacOS系统的默认终端字体,与Courier New类似,但笔画更细,更适合现代高分辨率的显示器。 10. **DejaVu Sans Mono** DejaVu Sans Mono是一款扩展性强的字体,包含多种语言的字符集,适合国际化开发。它的...

    取色工具playcolor

    PlayColor作为一款优秀的取色工具,提供了高效且精准的颜色选取解决方案。 PlayColor的工作方式通常是这样的:当用户启动该工具后,光标会变成一个吸管形状,用户只需将这个“吸管”移动到屏幕上想要取色的位置,...

    网站组建团队方案.doc

    那么,如何才能打造出优秀甚至杰出的团队就会成为管理者首要解决的问题,也是对管理者们的一种挑战。网站团队建设是网站运营中的重点。在网站团队建设中,从吸纳贤才到管理贤才,每一步都不是件容易的事。步步为营,...

    分享100个漂亮的图标图标

    1. **清晰易懂**:优秀的图标应该在第一时间传达其含义,无需文字辅助。例如,一个保存图标通常表现为硬盘或磁盘的图像。 2. **一致性**:在同一个应用或界面中,图标的风格应保持一致,以提供统一的视觉体验。这...

    Delphi2010 美化工具

    在编程世界中,Delphi作为一款强大的对象 Pascal 开发环境,以其高效、快速的编译能力和直观的可视化设计界面深受程序员喜爱。随着技术的发展,用户对软件界面的需求不断提升,美观、易用的界面设计成为提升用户体验...

Global site tag (gtag.js) - Google Analytics