程序员,为你的程序而骄傲吧

 

转载时请注明出处

 

一些人认为程序员都有自大狂倾向,我不知道这种想法源于何处有何根据。谦虚是中华民族的传统美德,我们不但从小到大都受这类教育,而且在关于软件的方面的书中,也不忘提醒我们要谦虚谨慎,一些前辈更是无私的和我们分享要谦虚的经验。

 

在这样的多重教育下,难道我们还会顽固不改吗?每次代码评审时,我们都会说,不好意思,代码写得比较烂。每次移交工作时,我们都会说,不好意思,工作做得不好。每次发布软件时,我们都会说,不好意思,里面还有很多问题。你看,我们是何等的谦虚,也是何等的诚实(不是真的很烂吗)

 

不是自大,相反,我们是太谦虚了。程序员会说,放心吧,这是我做的设计,这是我写的代码。或者是说,我是这方面的专家,有问题只管找我。你听过类似的话吗?至少我是很少听到的。当然,或许在简历上这样写过,但扪心自问,那是自大还是骗人?

 

谦虚已经不再是促进我们进步的力量,而是成了掩饰我们不负责任的外衣。代码评审前先谦虚一下,即使在评审过程中发现大量问题,也心安理得,反而证明了我们诚实的品质。在移交工作时谦虚一下,把烂摊子推给别人,我们不再内疚。在发布软件时,谦虚一下,把软件中的BUG视为理所当然。

 

我对Donald E. Knuth的景仰并非源于他的几本巨著,因为总共看了不到200页,也不是源于他那套著名的排版软件,因为从来都没有用过。而是源于他说过的一句话:

 

“我确信TEX的最后一个错误已经在1985年11月27日被发现并排除掉了。但是如果出于目前尚不知道的原因,TEX仍然潜伏有错误,我非常愿意付给第一个发现者$20.48元。(这一金额已是以前的两倍。我打算在本年内再增加一倍。你看我是多么自信!)”

 

大师李敖说: 表面上我是非常的狂傲,而我内心冷静得不得了。这话同样适用于KnuthKnuth在说前面那句话之前,不知道把TEX的代码和设计检查了多少遍,考虑过多少种可能性,所以他确信没有BUG了。

 

Knuth这样说,决不是出于冲动或者虚荣心,而是出于一种敢于承担责任的勇气,一种对自己作品的自信,一种追求完美的态度。这种勇气、这种自信和这样态度正是我们所缺乏的!

 

试想,如果他说,我已经在TEX里发现了大量BUG,根据经验表明,发现的BUG越多,说明软件里残留的BUG也越多。这没有办法,测试只能证明软件有BUG,而不能证明软件没有BUG,大家先用着吧。

 

对比前后两者,我们是喜欢前者的勇气和自信还是后者的谦虚?至少我更欣赏前者的勇气和自信,更景仰那他那种追求完美的态度。

 

现实中这样的程序员太少了。以前有位同事,他是linux组的leader。当时我刚毕业,负责写一些小工具和测试程序。他负责一个重要模块,估计有三万来行代码,让我去测试它。我说现在太忙,可能没有时间。他微微一笑说,其实也不用测试,没什么问题的。没多久他走了,我继续呆了两年多,事实证明他说的没错,三万行代码中出现的BUG不超过5个!

 

没见过第二敢这样说的人,大家都是谦虚的好孩子。

 

这到底是水平问题,还是态度问题?什么时候我们才那样的水平,什么时候我们才那样的态度?什么时候我们才敢说,这是我写的,没有问题,放心的用吧!什么时候我们才会为我们的作品而骄傲?