博客的名称是“放下程序,立地成佛”,似乎有些莫名其妙,有必要解释一番。
按照佛经所说,“放下屠刀、立地成佛”,即使是双手沾满血腥的屠夫或刽子手,由于他一生只做一件事,专注于“屠刀”,因此只要他抛弃这最后一个执著,当下就可证得“真空”之境界,也就成了一个“觉者”,而“佛”的意思,按照梵文意思,就是“觉悟了的人”。
我本人对佛法是很感兴趣的,对“佛”那种心无挂碍,山河自在的境界非常的向往。然而自己又是一个凡人,不可避免为世间种种俗事所困扰,为生计而奔波,尽管我已经尽力使自己的生活尽可能地简单,但无论如何现在是很难修到“空”的境界的。有一次在和公司的一位同事在谈到这些的时候,他说现在的人啊,“执一”尚难做到,更别说“真空”了。我当时就想,我现在确实做不到空,那我何妨先“执一”呢,将自己所有的热情、所有的追求与付出都集中在一件事上,做到“衣带渐宽终无悔,为伊消得人憔悴”,做到心无旁鹜。直到有一天我老得干不下去的时候,放下这个东西,就放下了一切,也就做到了空。而这件事,对我来说,就是程序。
真的到那么一天,我放下程序,回首往事的时候,我可以欣慰地说,这辈子我至少专心地做了一件事,不算光阴虚度了。我想,人一生真的做好一件事,也是很不容易了。
同时,“放下程序”还有另一层含义。
在国外,一个好的程序员,他可以干到40岁,50岁甚至更老,他的收入并不会因为一直呆在程序员的职位上而停滞不前,相反,随着他水平的提高,解决问题能力的增强,为团队做的贡献更大,会担任“首席程序员”这样的职务。但在中国,程序员被人戏称为和坐台小姐一样在吃“青春饭”,年过30还在Coding简直好像是不可思议的事情。在人们看来,这个时候还没有当上Leader或者是技术主管这个人就是无能。其实这是一种反常,因为程序员需要的不仅仅是他这一个领域的新知识、新工具,还有宝贵的经验。当我们好不容易穿透层层迷雾,走上良性发展的轨道时,属于我们的时代却结束了。于是就有这么一个怪现象,总是在培养新的程序员,又总是觉得人员的修炼水平没有达到满意的境界。在我的理想中,一个程序员正象一个剑客,在他行走江湖的生涯中,剑术逐渐纯熟,接着达到“人剑合一”的程度,然而再向下修炼的话,他会发现手中的剑是他进一步提高修为的障碍。同样的,程序员会使用各种语言写程序,写程序的技巧也会日渐纯熟,成为一个技术上的“牛人”。但如果整天埋头于代码之中,缺乏更深入的思考,就反被编程所困了。从我个人来说,初期以“Qbasic”敲开编程之门,然后是C、C++、VB、PB、C#……算来也是不少的了,但是现在回首有一种感觉,就是自己从来没有跳出这些语言的圈子,从更高层面从分析和解决实际问题。无论是什么语言,使用什么样的编程技巧,说到底还是在做一些简单的重复劳动。这是今年到年末我才体会到的感觉,当我感觉到这一点的时候,眼前似乎打开了一个新的天地,令我有一种目不暇接的感觉。这也是为什么我开始关注设计模式、架构的原因。
一个剑客,他可能先后使用铁剑、钢剑、宝剑、神剑,然而到最后,必然会朝着“无剑”的境界修炼。到这个时候,世间万物,信手拈来就是剑,甚至飞花摘叶,聚气成剑,什么都是剑,又什么都不是剑。对程序员来说又何尝不是如此呢,套用《金刚经》的话说,“所谓程序,并非程序,是名程序”,什么都是程序,又什么都不是程序,任何编程语言和工具,都不过是一个人换了不同马甲而已。我们将能够透过纷乱的语言语法的表象,直接掌握实际问题的本质。那个时候,我们眼中的世界,就是用面向对象理论诠释下一个又一个优美抽象的模型。这个时候,我们可以说,程序,我们放下了。
此时的程序员,已经将程序完全融入自己的人生,而感觉不到程序的存在,是一个觉悟的程序员,是“佛”。
这就是“放下程序,立地成佛”的由来。