为什么骄傲会妨碍我们程序员的进步

jopen 10年前

  英文原文:Why pride of programmers stops their progress

  这是一个有争议的话题,我的表述仅代表我的观点。

  在详细解述题目的这个问题之前,我先讲个真实的故事。

  我们公司有个非常有才华的人,叫 Jim。他刚学编程不久,确切的说是在 4 年前吧,在我眼里,他真的非常有能力,并且肯定能在这一行大展宏图、展翅高飞。也因为他的能力很强,所以在我进这个公司之前,凡是大家有什么关于代码的问题,首先去找的就是他。

  起初,我还挺不理解为什么大家会如此崇拜他。不要误会我的意思,我再次强调,我也认为他很能干,我心中的困惑主要是因为他编程的时日尚短。

  其他员工告诉我他们特别欣赏关于他的传奇历程。然后我想如果这个传奇是真的话,那么我和他一定会相处愉快的,因为我第一次感觉到,我终于找到一个能畅谈的知音了,可以讨论复杂算法、代码优化等等不能随便抓一个程序员就能谈论的话题。

  而我会这么想是因为有两种类型的程序员,一种是消极型的,上班编程,写好走人,“不会多走一步,不会多说一句”。另一种积极型的则不是这样,他们会把业余时间绝大部分都用于编程,因为这是爱好,从中能得到妙不可言、无法描述的快感。我属于后者。我认为 Jim 也是我这类型的。

  这就是故事的背景,时间约莫在一年多前。

  然后我开始兴冲冲地和 Jim 讨论这些话题,以及我做的尝试和我得出的结论。老实说,每次我一提这些话题,他总是看上去一副高深莫测、了如指掌的样子,让我深以为他的确是个传奇,编程水平是高。但是奇怪的是,当我想询问他的意见时,他总是答非所问,不能提出有效的解决办法。而且不知为何他从来不问我问题,甚至于对我的问题毫无兴趣,最后实在挡不住我的热情,他就直接找借口转换话题或者干脆尿遁。对于这一点,一开始我真的是想不明白。你想,面对一种能优化软件和工作流程的专业方式,他竟然毫不动心,丝毫不感兴趣,这也太奇怪了。

  我开始有点怀疑,就试着问些专业问题,如果他没有真正理解的话是答不出来的。他开始结结巴巴,答非所问,顾左右而言他,这证实了我的猜测。

  我又去看了他写的源代码,然后我发现,他在软件行业还只能算是一个新手。不过说出来其实也没什么可耻的,毕竟每个牛逼的程序员刚刚开始的时候都是新手,犯错误也并不可怕,因为我们可以从错误中吸取经验教训从而鞭策自己。在几年后,我们甚至还会有自己特有的优化编程方式。而这个有才华的 Jim 只是犯了个和我 14 年前一样的错误。

  但是随之而来,有两个难题摆在我面前。我不能说出这个事实,因为大家都以为他是一个特厉害的程序员,我并不想破坏他的声誉。第二个难题是因为他的骄傲,对于我提的建议,他完全不以为然、不屑一顾。因为他过剩的骄傲,他宁可啥都学不到也不愿暴露他的缺点。对此我真心束手无策。

  俗话说,三人行必有我师,我就特别喜欢向他人请教,不光能学到新知识,还能查漏补缺改正自己的缺陷。知之为知之,不知为不知,人又不是神,不可能什么都知道,这是正常的,不必对此感到羞耻。

  接着,从他的日常行为中,我发现,但凡有人问到他有所涉猎的问题,拿 python 举个例子,他的回答通常是,“这个啊,我还一无所知的时候就会用了”。就我个人而言,我喜欢别人实话实说,这样我才能正确评估我获得的信息。我最讨厌别人给个自以为妙不可言的好建议,最后却证明是狗屎。

  不得不说,Jim 给我的建议就是这种“金玉其外败絮其中”型的。例如,我曾经有一个关于 jQuery 的问题,但是他给我的总是不现实的方法,并且他每次都说,这可是最好的解决方法了,但是当我我想到了一些很棒的优化展示给他看的时候,他兴致缺缺地说,这会超出预算或者这完全是多余的、没有必要。这样一段时间之后,我就不再向他请教了,因为他给不了什么建设性的意见,甚至有可能给出的意见完全是废话。此外,我也不再和他谈论那些双方都能受益的话题,因为他毫无兴趣,总不至于老是让我热脸贴个冷屁股吧。

  所有这些的罪魁祸首就是 Jim 的骄傲,正是他不合时宜的骄傲阻碍了他的进步,这样看来老话“骄傲使人落后”并非虚言。这也是我讲的这个故事的中心意思,特别是当你获得了与你真实能力不相称的声誉而又对之视若珍宝时,这个时候的骄傲真心要不得。

  下面我再详细地说一下,并且欢迎大家留下宝贵的意见。

  大多数人对于批评教育承认自己错误或多或少总有些耿耿于怀,不甚乐意。原因就在于他们把批评和错误看做是失败,是他们的耻辱。这是不可取的。我们首先应该承认错误,然后从中学习经验教训,这样才能不断促进自己成长。从现在开始就改变对错误的态度,把错误看成是进步的阶梯,时间会让你变得越来越优秀。

  像 Jim 这样的人其实对我们公司是有不利影响的。因为鉴于他的声望,没有人会质疑他所说的一切。关于由此会引发的问题,相信各位都心知肚明,我就不赘述了。

  我要说的是,他的大部分项目都是没有经过优化的,他的源代码根本没有我们想象的那么好,甚至有时候简直可以说是糟糕透了。大概他自己也发现了这些缺陷,开始意识到大家对他的看法可能过于盲目了。但是这也仅仅止步于他的思维活动。一个谎言说久了,就会使说的人自己也相信是真的。Jim 就是如此,而这妨碍了他的进步。

  在上述案例中,如果 Jim 能够承认自己的错误,向别人坦言自己并非是无所不知的,那他绝对会由此进入一个崭新的殿堂,对他今后的人生将会产生深远的积极影响。

  我深深地希望,Jim 也能看到这篇文章,并且从此抛弃他那愚蠢的骄傲,优化工作流程和项目,让公司里所有人都可以从中受益。如此一来,大家在一起工作将会更加愉悦,而对于 Jim,他将学到更多,他的职业生涯绝对会受益匪浅。

  我其实还想写写有关于 IT 现场的心理这个有趣的话题,但是想想还是算了,等下次有机会吧,可能很多童鞋要暗骂我是懒婆娘的裹脚布——又臭又长了。希望此文能对各位有所帮助,哪怕只有一个人叫好,那也值得了。最后请允许我借用英国著名小说家乔治·奥威尔的一句话结尾:

If liberty(自由) means anything at all, it means the right to tell people what they do not want to hear.

― George Orwell

  译文链接:http://news.html5tricks.com/why-pride-stops-programmer.html

  翻译作者:IT 新闻 – 蒋丽丽