编程也怕猪一样的队友
有个人曾经问拿破仑是如何给士兵指派任务的。拿破仑回答说这很简单:士兵要么聪明要么愚蠢,要么懒惰要么精力充沛。
- 聪明且精力充沛的我让他当战地指挥官。他知道该做什么而且能召集队伍去做。
- 聪明且懒惰的我让他当将军。他也知道该做什么,但他不会浪费精力去做不必要做的事情。
- 愚蠢且懒惰的我让他当步兵。
但那些愚蠢且精力充沛的呢?“他们,”拿破仑回答说,“我全给毙了。”
每当有人因为“很能干”而受到赞扬时我就会想起拿破仑的这个笑话。这样的人我们是该让他当指挥官呢?还是毙掉?
Joel Spolsky 说,理想的程序员应该是 聪明且能干的 。但怎么看待那些愚蠢且能干的人呢?
1992年当 罗斯·佩罗( Ross Perot ) 竞选总统时,他的支持者惊呼”他很能干!“于是我问“他会做出什么你们想要看到的事情?” 我不记得得到过答案。他将要做什么看起来并不重要。(我并不是说Perot的竞选纲领很愚蠢。我不想讨论这个。我只是想说,即使很愚蠢,有些人也不知道,不关心。)
有一次,我听到有个人被赞扬为一个好老师。并不是知识渊博,只是个好老师。我不赞成一个无知的人可以被称为好老师,难道是说他在教授他的无知时很有效率吗?这不是一件很糟糕的事情吗?不,重要的是他是个好老师。
计算机程序有代码行组成,代码有字符组成。所以程序员应该擅长打字符。当然,更重要的是,他们要打出正确的,可维护的,能完成有价值的任务的程序码。
为什么有人会在不知道一个总统候选人的政治立场的情况下支持他?为什么会有人愿意给他们的孩子找个无知但有效率的老师?为什么有人愿意找一个精通编写烂程序的程序员?
我想没有人愿意看到这种事情,尽管有些人很短视。人们喜欢的有魅力的总统,好老师,高效的程序员。但人们很容易把这种事情简单化,只关注某些基本的品质,忽略了事情的整体情况。
领导要能干出点事情。老师要能教授。程序员要能写代码。这都是些基本必要的技能,但还不够。