文人与程序员
鹏澍 | 2013-04-29
硅谷创业之父:保罗.格雷厄姆,在《黑客与画家》一书中,就如此说:“黑客也是创造者,与画家、建筑师、作家一样”。确实如此,在业内,技术超强,文字艺术也了得的人,是大有人在,比如,计算机科学家,《人月神话》的作者,佛瑞德·布鲁克斯,用一本小册子,至今仍然指引着我们;写了四十多年代码的,可谓“终身程序员”的 Bob 大叔,Robert C. Martin,单说一本《程序员的职业素养》就足以让外行人深刻理解什么是专业的程序员,一点不复杂;还有一位Windows编程界大师,世界顶级技术作家,Charles Petzold,其表达能力之强,令人匪夷所思,不信,你可以看看他的《编码. 隐匿在计算机软硬件背后的语言》一书,如果你具有高中的文化水平,你就可以造出你自己的电脑,真正意义上的电脑哦。而且,很容易发现,程序员很容易和艺术发生关系。另一位计算机科学家,艾伦.C.凯,就曾认真的考虑过自己是否应该转行从事音乐,他根据《霍比特人历险记》还自己写了一部戏。我们从一部电影《硅谷传奇》中,也可了解到,Apple 和 Microsoft对于梵高有一种相同的艺术品味。Google 则是另一个神奇的国度,在那里天才们不定什么时候造出一些异想天开的东西,本身就如同漫画中的骑士一般,充满艺术的味道。前几年,有本小说火遍了“博客园”社区,绝影所著的《疯狂的程序员》,不论行文结构,还是剧情控制,都不能称为写作的外行人。
不过,在我的理解之中,文人与作家亦是有别的,要说即为程序员又可称为文人的人,我至今未曾见,但我相信一定会有。我绝不是瞎说,因为程序员这个职业就如保罗所言,它和其他的艺术创作行为是一致的。时至今日,我才真的发现一个关于我的真理:我并不喜欢程序本身,但是却喜欢程序设计的过程;我的最本源的冲动来自设计创作,而不是对解决问题的执着,而且,我的确不善于解决问题。这个发现对我意义重大,这让我真的看清了自己的人生道路:一条充满灵感与设计的非凡道路。但不是每个程序员都能领悟到自己职业的艺术本质。特别对于中国程序员而言,他们坚信,“自己是学理的!”这种从小灌输、浸染的对知识的偏见非常顽固,我在公司开展的培训课上,总愿意花上个十分钟,十五分钟的样子来讲这个问题。
“我们为何要学习C#编程语言呢?”这个话题,首先是这么引出来的。
“那么编程语言到底起到了一个什么作用,我们写代码,实际上又是在干一件什么事呢?”当我们把问题泛化之后就更容易获得高层次的概念认知,以便我们直击本质。
“我们说话、书写,也称为语言,那么编程语言和我们的自然语言有何关联呢?”如此,当体悟一番自己使用汉语进行沟通交流,或者用英文来书写报告的时候,显而易见,我们是要描述这个真实世界的事务,来使得互相理解明白。紧接着,想到编程的语言给计算机阅读,再联想到自然语言给人类阅读,就不难发现,学习一门编程语言和学习英语没有本质区别,只是,学英语为了和美国人沟通,学编程为了和计算机沟通。那进一步推论,完全可信编写计算机能理解的语言艺术和写一本小说的语言艺术则是同质的行为,当然比较的前提是我们描述的对象是同一个真实的世界。
于是,程序员也要像艺术家那样,从一片荒芜的地方,用自己熟悉的语言来描述清楚自己梦想中的世界。在这里,你可以天马行空自我创造,也可以模拟现实。所以大部分程序员会从事艺术活动一点不奇怪,说编程是一项艺术活动,也丝毫不夸张。这也是为何你感受到的程序员总是不可一世的原因,因为我们确实是“那个世界”的造物主!