当您进入Iriternet,并在Yahoo或Infoseek等搜索引擎中输入“The Tao of Programming”(本书的英文名)后,您将会惊奇地发现,这本书的出现频率是如此之高,竟然有500多个站点贴有该书的内容!该书的流行程度,由此可见一斑。
更有意思的是,本书中的很多格言妙语,在美国被印在了T恤衫、咖啡杯等商品上,成为这些商品促销的手段之一。可见,这本书当时在美国极为风靡,与其说它导致了一段流行时尚,不如说它形成了一个文化热点。
至今为止已重印12次的《编程之道》,自发行以来,不断受到来自各方面的青睐和好评。
本书一出版,《纽约时报》和《科学家》杂志便节选了该书的内容;美国的许多全国性报刊,包括《迈阿密先驱报》和众多广播电台,像“美国公众广播电台”,均高度评价了本书;本书是美国Prerltice Hall Book Club的特别推介读物,并被《电脑购买者》杂志评为最受欢迎的十本书之一。
本书出自美国一位资深的程序设计师Geoffrey James之手。他以一种幽默、辛辣的眼光审视着发生在程序设计室里的各种故事,并运用东方的哲学思想进行深层次的思考和理解。本书语言优美、比喻生动,叙述了这些看似简单但蕴含深奥道理的故事。
本书配以中英文对照,使从事软件开发人员、软件项目管理人员、软件工程研究人员,以及广大电脑爱好者在阅读这些故事的同时,还领略到本书英文原文的文采。
编程大师如是说:
“当你有本事夺走我手中的这块水晶石时,就是你出师的时候了。”
1.1
在静寂的空宇里。一种神奇的物质形成并诞生了。它立刻便静止了,独自守候着,毫无动静,然而又处于永恒的运动之中。它是所有程序的源头,我不知道它的名字,所以我将称它为编程之道。
如果此道是完美的,那么操作系统就是完美的;如果操作系统是完美的,那么编译程序就是完美的;如果编译程序是完美的,那么应用程序就是完美的。用户满意之至——和谐便应运而生。
编程之道流逝远去.又乘着晨风而归。
1.2
此道产生了机器语言,机器语言又产生汇编语言。
汇编语言产生了编译程序,如今有了上万种的语言。
每一种语言都有其各自的卑微用途。每一种语言都表达出软件的阴和阳。每一种语言都在此道之中有其一席之地。
但是,应尽量避免用COBOL语言编写程序。
1.3
宇宙之初有道。
道产生了空间和时间。
空间和时间便是编程设计之阴阳。
不能领悟此道的编程者总是耗尽他们所要编写的程序的时间和空间;P15-17
如今程序设计类的图书可谓是层出不穷,其中绝大部分是以教程、使用手册和编程技巧为主,它们都是用来处理一些技术性问题的。
然而,怎样领悟程序设计的内涵和精髓呢?那些程序员编程时是一种怎样的思维方式?他们的工作、生活是个什么样子?他们在想些什么?作为一名经理如何同他们相处并充分发挥他们的积极性?涉及这些方面的书却寥寥无几。但没有并不代表不重要一随着我国程序设计事业从起步到发展,这方面的内容显得越来越重要,我们越来越希望了解它们。
美国是个软件产业和程序设计水平处于世界领先地位的国家,我们是不是可以从那里借鉴点什么呢?这本《编程之道》便出自美国的一位善于进行哲学性思考、有十多年工作经验的程序设计师——Geoffrev James之手。
在这本书中,作者以一种幽默、辛辣的眼光审视着发生在美国的程序设计室里的各种各样的小故事,并运用东方的哲学思想进行深层次的思考和理解,即进行“道”式的思考和理解。简单的故事蕴含深奥的道理,是本书的最大特色。
本书不光语言优美、比喻生动,而且在结构上颇具匠心。
本书在美国出版时分为三册——《编程之道》、《编程之禅》和《计算机寓言——信息时代的启示》,经与作者协商,决定将中英文对照译本汇总为一本以《编程之道》的书名出版。
1.《编程之道》
本书的构思新颖而奇特。作者作为一名计算机考古的业余爱好者,偶然发现了在程序设计业内传说的《编程之道》。这其中的内容,每个程序员都想知道,但谁也没有见到过,这就有点像金庸的小说《射雕英雄传》中的《九阴真经》。于是作者便将它“翻译”成此书,公之于众。全书共分为九篇:
第一篇静寂的空宇
第二篇古代的大师
第三篇设计
第四篇编码
第五篇维护
第六篇管理
第七篇公司里的学问
第八篇硬件和软件
第九篇尾声
2.《编程之禅》
在本书中,作者借用中国传统文化中的五行——“木、火、土、金、水”来代表与计算机相关的概念,并以此将多个富有禅宗色彩的故事有机地组织起来。全书共分为五篇:
第一篇木
第二篇火
第三篇土
第四篇金
第五篇水
3.《计算机寓言集——信息时代的启示》
作者以四季——“秋、冬、春、夏”来组织本书的结构。全书共分为四篇:
第一篇秋——虚幻与真实
第二篇冬——战争与死亡
第三篇春一真爱与新生
第四篇夏——启示
我们将此书献给那些爱笑也爱思考的程序设计者, 以及那些同程序设计者打交道的管理人员,当然他们也爱笑爱思考!
译者
2006年6月于北京
《编程之道》是一本另类的计算机图书,它没有教你编程技巧,也没有教你开发工具和方法,而是用富有哲理的故事和短小精悍的语言来启发我们的思考。
程序的源头来自西方科学,而“道”来自东方哲学,故这本书颇有东方古典的韵味。
以老庄关于“道”学说为中心的学术流派——“道家”深深地影响了中国几千年的文化思想。我猜想作者反复读过中国老子和庄子的书,东西方文化早已在他心中融会贯通。
从编程之“道”我不由得想起庄子的一个脍炙人口的故事,庖丁解牛:“庖丁为文惠君解牛,手之所触,肩之所倚,足之所覆,膝之所跻,砉(音hua)然响然,奏刀劐(音huo)然,莫不中音,合於桑林之舞,乃中经首之会。文惠君日:‘嘻,善哉!技艺至此乎?’庖丁释刀对日:‘臣之所好者道也,近乎技矣。始臣之解牛之时,所见无非全牛者;三年之后,未曾见全牛者也方今之时,臣以神遇而不以目视,官知止而神欲行。……提刀而立,为之四顾,为之踌躇满志,善刀而藏之’”。
有人说程序是一门艺术,程序高手就是艺术大师,写程序充满了成就感;也有人说写程序应该是一种体力活,程序员应该是蓝领干的活,写程序也充满了无奈感。 其实不管说法如何,写程序是一门技艺,写程序的最高境界应该是“技近乎道”。这样的绝顶高手现实存在吗?有,我记得有一本Delphi书籍的作者就写过这样的一个故事:他在Borland工作时,有一次运行测试程序出现故障,正好Anders Hellsberg和另外一位高手看到,Anders马上就和那个高手说这是哪个系统的代码有问题。所以在Anders的眼里,整个计算机系统对他来说几乎是透明的。
如何修炼自己的技艺呢?第一要掌握正确的方法和技巧,没有掌握方法,一味蛮干,再努力也是不会成功的;第二要坚持不断地磨练,这里还可以举一个脍炙人口的故事“卖油翁”作佐证,卖油翁可以滴油穿针孔而不沾的惊人技巧和神箭手的高超射术相比,高手技巧只是由于“惟手熟尔”,“无他”;第三要“悟”,如何才能“悟”,才能“技近乎道”?“汝果欲学诗,功夫在诗外”,《编程之道》教我们练的是诗外的功夫,埋头修炼的同时,也要抬头看看周围的世界,静下心来思考思考。
程序员也许是天下最古怪的行业。这是因为现在几乎所有的行业都在使用信息化工具,程序员的工作就是要和各种各样的行业打交道,并用自己的语言来描述和创造这样的工具。这也使得程序员这门职业与众不同,他们面对的是代码和机器,却创造了一个信息化的世界。
程序员比较孤独,也不太容易管理。《编程之道》充分展示了程序员独特的文化,虽然书中涉及的技术比较陈旧,但这丝毫不影响其内容的价值,甚至时间越长,越证明程序员文化的独特性,不会因为计算机技术的进步而不存在。
《编程之道》一书可以长备程序员的案头,累了困了,换换脑筋,读读其中的故事,虽然短小,但要言不繁,都是作者日积月累的甘苦之谈,实践之谈,明白之谈。
看了你可以会心一笑,可以有所体悟。“开卷有益”,这也是作者最大的心愿了。
《程序员》杂志及CSDN总裁
蒋 涛
2006年7月于北京