青年程序员的肖像
(代自序)
我一直愚蠢地认为,程序员的工作与艺术家的工作有着某些共通之处。我向上帝保证我曾亲眼看到中关村一个使用美国作息时间编写代码的程序员,在即将结束第一百零一次测试之际,孤身擎网线、泪眼眺朝阳,踌躇满志地吟诵:“我已经是第一百万次迎接经验的现实,在灵魂的冶坊里锻铸未经上帝创造的人类的良知。”这一经历使我毫不犹豫地从乔伊斯老头儿那儿攫取了写作这篇短文的灵感。——感谢二十世纪最伟大的程序员詹姆斯·乔伊斯,感谢他在上个世纪初就创作出了《青年艺术家的肖像》这样精彩的“软件”。
毕业之前我在公司接受面试,一个姓汤的经理用非常严肃的语调问我如何看待程序员的工作。我闭上眼睛抱着肩膀苦苦思索,样子像一只挖不出胡萝卜的鼹鼠。然后我睁开眼,故作镇定,强打精神,告诉考官我觉得程序员的工作是一种创造性的工作就像画家作曲家钢琴家歌唱家舞蹈家小说家诗人美工编剧导演化妆师街头艺术家的工作一样,我觉得作为一个程序员一要睿智二要幽默三要诙谐四要打趣五要搞笑,我还觉得……到现在我也没有想通为什么公司可以容忍我做程序员的工作做到现在,反正我的程序员的生涯是从这位汤经理的面前开始的。
严格意义上说,我在公司这几年少说也写足了三十万行程序。也许有一天我可以把这些大大小小的可用的瘫痪的高速的低效的人工智能的人工白痴的程序都打印出来,收编成册,堆积成山,体会一下著述等身的成就感,然后用王朔的口气跟记者说我写着写着手都写残了可是还得写没办法谁让我是程序员呢。我老是问自己老写程序烦不烦呀,我总也找不到答案也总没停止写程序;直到昨天我看到海德格尔说“时间性使得生存性、事实性和沉沦的统一成为可能并从根本上构成烦的整体结构”,我这才知道原来“烦”也和程序一样是有结构的,也要经过需求分析概要设计详细设计并且要随着时间的延展才能烦得起来。这么说来程序员的工作除了艺术性之外还能表现出半点哲学性来,这么说来我在有生之年或许还可以攒出一部哲学书叫做《存在与烦》。
相信有一天硅谷的老板会亲自到复旦北大北师大南大山大浙大的中文系高薪聘请会写诗的程序员,因为写程序的终极真理和写诗基本类似。如果一个人没办法弄明白为什么“仄仄平平仄仄平”的下句非要对“平平仄仄仄平平”,那么他也一定弄不明白为什么循环只能嵌套不能交叉为什么用跳转语句就会得到“意大利面条”。套用静安先生的话讲就是:“程序以境界为最上。有境界则自成高格,自有名句。”这种道理很难用一两句话解释清楚,非要讲的话我们可以从华山岳掌门那里的“以气御剑”学起。至少我们知道,会编程序和会编好的程序是两码事,这就好比写“我的所爱在山腰”和写“枝上柳绵吹又少”是两码事一样。
我很自豪我是一个青年程序员(“青年”的意思是指程序员的年龄结构与职业足球运动员大致相仿),我最为得意的一幅自画像出现在加菲猫的连环画里——
加菲猫腆着肚子拿起一件黑白间条衫说:“听说穿竖条纹的衣服可以显得苗条一些。”……加菲猫照着镜子说:“可现在我就像一个大西瓜。”
王咏刚
2002年3月
(本文最初创作于2001年7月,曾刊登在公司的内部通讯上,此次收入本书,作者对个别字句作了调整。)