个体性最后的堡垒
--译《程序开发心理学》有感
   Poetry is what gets lost in translation.

  -- Robert Frost

   译完这本与自己年龄相近的奇书,掩卷沉思,我的目光再次落在封面的"Computer Programming"上面。十多年来,这个关键词犹如一个精灵,一直相伴在我的左右:在学生们、程序员们书架上成摞成摞的手册、大全、教程、进阶、技巧、精华、经典、探秘、未公开的内幕等等的封皮上,总能见到它;而与本书几乎同时出版的那三卷"The Art of Computer Programming",不知曾经将包括我在内的多少人引向了计算机科学之路。然而此时此刻,我却觉得这个再熟悉不过的关键词忽然间变得陌生起来,但又不知原因何在。我怀疑这可能就是所谓的"格式塔完形心理"在起作用,为了从其中摆脱出来,我决定尝试一下画家们"从裤裆下看世界"的方法。我打开Amazon搜索了一下,发现正在那里热销的书籍之中,与"Computer Programming"有关的有近30,000种(其中最近三年内出版的就有近7,000种),而其中与心理学有关的只有约30种。这时再回过头来看看手头的这本书,我终于意识到Weinberg所讲的"Computer Programming"的确有其与众不同之处--也许正是这种不同,才使得这本书经过30余载风采依旧。

  更确切地说,Weinberg是通过一个不同的视角来看待"Computer Programming"。贯穿本书的一个最重要的思想就是:"Computer Programming"是一项人类活动(Human Activity)。它不再是依靠某个人的技能就可以完成的行为,需要依靠人类集体的相互合作,因此绝不等同于我们通常所说的"编程"或者"掌握编程工具和技巧"。正因为在这个合作的过程中人性已经成为了至关重要的一个因素,所以每个程序员的个性、人格与其独特的问题求解模式都应该得到尊重。为了使这种合作的绩效达到最佳,需要借助于正确的选拔、培训、组织与管理方法,消除程序员与其主管之间的误解与偏见,并帮助他们从"人之个体性的最后堡垒(the Last Bastion of Individuality)"中走出来。(此外,软件企业与客户之间的矛盾也是一个重要方面,在Weinberg后期的"Quality Software Management"系列丛书中对此有深入的讨论。)时至今日,有很多的程序员和主管依然坚信"编程能力"是与生俱来的;而更可悲的是,仅仅将其视为一门手艺甚至饭碗的还大有人在。面对在软件业界依然十分流行的此类神话,Weinberg的话值得我们每一个人深思:"优秀的程序员是培养出来的,而不是天生的"(Good Programmers are made, not born,第172页)。但愿更多人能由此猛醒,从中找回做为程序员、做为人的自尊与自信。

  Weinberg对"Computer Programming"的理解与界定也与大学教授们很不一样。由于自认为能够站在计算机科学的高度分析和解决问题,后者总是会不由自主地流露出一种相对的优越感。的确,在计算机科学中所讨论的,都是一些有关计算机的本质与一般性规律的问题,其中有些问题甚至已经近乎玄妙了。因此,在教授们的词典里,"Computer Programming"往往被解释为"程序设计",他们感兴趣的只是计算机程序在时间与空间上的效率、复杂度和可行性等等。然而Weinberg却明确地表示,他并不认为"计算机科学"是一门科学(第195页,第12章之评注第一段)。作为计算机科学的一名"忠实信徒",我当然不敢苟同于Weinberg先生的这一断言。然而我也十分清楚,计算机科学并非十全十美,更谈不上全能全知。一旦将计算机科学奉若神明,人也就成为它了奴隶。在不知不觉之中,它成为了人与人之间的一座壁垒,将人与人之间的关系简单而生硬地切断开来。

  有个问题一直萦绕在我的头脑中:中国并不缺少(至少是潜在的)精于编程之道的人才,也不乏有志于投身计算机科学的青年人,但是为什么我们的软件研究与软件产业不能取得长足的发展呢?除了人才、资本、市场、法律和体制等因素之外,难道本书中提到的人性不也是一个重要的因素吗?事实上,我们的不同学科、不同领域,总是那样泾渭分明,其间似乎到处都是无形的壁垒。这种心理上的壁垒,也许就是我们最大的阻碍或敌人。

  为适应现代计算机科技的发展,国内众多的院校正在进行相应的结构调整,然而在此过程中所遇到的阻力之大,当事者始料未及,局外人更是难以想象。究其原因,仁者见仁,智者见智,让人莫衷一是,对症下药就更是无从谈起。当然,有一点是共同的--似乎大家都想当然地认为,问题完全来自外部,也就是说,与个人无关。无论如何,这类解释是难以令人信服的(尽管可以令解释者自己信服)。既然如此,我们是否应当将注意力转向我们共同的盲点,比如说,尝试一下Weinberg的建议--各自在内心中,自省一番?我相信,虽然不见得这样就能够一劳永逸地解决问题,但也绝不会徒劳无功。或许,我们可以从中悟出点什么--因为,即使你不相信,这就是问题的根源所在,但你也很难否认,这个方面的确曾经被我们忽视过,忽视过很久,而它却很重要。

  钱钟书先生所揭示的"围城效应"之所以如此深刻,也许正是由于它反映了人作为社会性动物的行为特征。绝大多数人不相信,有朝一日人类能够完全超出动物的层次。然而不容否定的是,计算机这一学科的发展,已经进入了一个全新的阶段,也出现了许多新的问题--比如,在今天,无论是软件产业界还是学术界,一种"反围城现象"屡见不鲜:"城里人既不想逃出去,城外人也不想冲进去"。当然,即使钱钟书先生再世,我们无法从他那里请教来方法,使自己脱离目前的这种窘境和苦境。或许有人会说,关键是要让城里、城外的人不再各自安于自己的现状。然而我却想对这部分朋友说,为什么大家不一同去拆除掉这座城呢?这座壁垒是可以拆除的,而且或早或晚,它必定要被拆除的--因为,它本来就是人为构建起来的。

  我喜欢借用金庸先生笔下的华山剑派,来比喻计算机科学与技术这一学科领域;而其中的科学与技术,就犹如"气"、"剑"二宗。二者各立门户,老死不相往来,整个学科就绝不可能取得持续的发展,甚至会走向衰落。"它山之石,可以攻玉",取长补短、相互促进,才是共同发展之道。从这个意义上讲,如果计算机界的同行们能够从本书中获得一点有益的启示,做为译者,我将会感到莫大的欣慰。

  就在2003年春节联欢晚会中,居然有三个小品分别演绎了父亲与儿子、交警与的哥、医生与病人的角色互换。这也许只是一种巧合,但我更愿意相信,中国人已经开始懂得如何从人性的角度去看待与理解他人,并通过他人反过来更加深刻地了解自己。但愿这其中有更多的程序员、软件管理人员、软件客户以及计算机科学工作者--未来计算机界的令狐冲,就将出自他们之中。

  我不想用"时间仓促"之类的托词,为自己工作中的错误预先铺设好退路。正如Frost所言,在翻译这样一本佳作的过程中,其中的"诗意"是注定会遗失的。比如这里的"Computer Programming"一词,最终译作"程序开发",虽然避免了与"编程"、"程序设计"等混为一谈,却实属反复推敲之后的无奈选择。尽管如此,在向Frost定律进行挑战的过程中,我自认已经竭尽了全部所能。因此,我真诚地渴望来自读者的批评指正,你们的意见,将是我发起下一次挑战的信心之源。

  在本书的翻译过程中,得到了Weinberg先生的多次热情帮助。他对自己的错误毫不避讳或隐瞒,本人曾经因为侥幸发现其中一处小纰漏,得到了Weinberg先生寄来的一美元奖励。他对科学的这种严谨而坦率的态度,令人钦佩。

  在此,我也想对不知名的审稿人表示感谢,他们为译本的改进与完善提供了宝贵的意见,而他们的细致与认真精神,更是值得我学习的。

  我的妻子王霞在繁重的工作与家务之余,也给本书的翻译直接提供了很多建议,并对整个译稿进行了审阅。再华美的言辞,也不足以表达我对这种支持与鼓励的感激。

   邓俊辉

2003年2月8日
相关链接
· 透明对温伯格的专访(《程序员》第9期) NEW!
·名人堂温伯格专栏(《程序员》第8期) NEW!
·微软亚洲研究院院长兼首席科学家张亚勤专文推荐
·剑、气和令狐冲
·七宝楼台今安在
·走出问题的乌托邦
·从今天开始,做你自己的上帝
Copyright by shinebook, who publishes best books for IT people.
Edited by Shiningxyy,and designed by Orrin.