2009年1月27日星期二

最好的软件工程师的个人特征


(这是从我的公司内部博客上转贴的老文,做了些补充)

怎样招聘和培养最好的软件工程师,这肯定是每一个软件公司/互联网公司的带头人最关心的问题之一。在招聘的时候,作为公司,往往只有几个小时或者更短的时间就需要判断一个人是否是“可造之材”,在这样的情况下,是否可能,或者怎样找出佼佼者呢?我觉得下面这篇Rob Walling的文章从性格的角度,讲到了一些非常不错的点:

by Rob Wallings, 2006-8-20

我复述一些文章讲到的优秀软件工程师的性格特征(英文原文讲得透彻很多)
  • “悲观”。或者准确地说“对短期的极度悲观,加对长期的极度乐观”。这一条,我觉得是这篇文章总结的最好的一点,给出的例子也很生动。
  • 对不整洁代码的自然愤怒。我想这个对于与比较多软件工程师打过交道的人来说,应该是很明显的一条,真的能够担负最关键的责任的软件工程师,一定是对于代码质量非常苛求的人。往往只有这样的工程师,才能够一劳永逸地开发出那些几个人都尝试过但完成不了的模块,才能保证一个复杂的系统不因为自身的重量而崩塌。
  • 对生活的长期规划。作者的观点是对系统的规划和对生活的规划是相通的,我对此没有特别深刻的体会。
  • 注重细节。这是被经常被提到的QA人员需要的性格特征,但我同意对开发人员同样重要。
任何一个近乎完美的产品背后,都是一批具有不一般特质的人,以及超越平常的艰苦努力。而找到这样的人,就是完成好产品的第一步。

2 条评论:

  1. Very interesting article. This probably is one of the best I read people talking about programmers' personalities.

    I think you are right on the third point. Imagine how would you expect a person to think over how the system will be in 5 years if she doesn't even care about her 401k? I don't like developers who only focus on finishing tasks in short term, sometimes even put dirty hacks on existing code base that is not good, instead of clean those code first. To think about long term plan is a sign of being organized, which is also important to be a good engineer.

    回复删除
  2. 对生活的长期规划感觉就是生活比较安定。有一个很直接的作用就是这个人不会三天两头告诉你想改行金融,要辞职了;或者想创业,要辞职了。

    回复删除