“在摩托车维修方面我并不同意他们的看法,并不是我没有同情心,而是我认为他们的逃避和厌恶只是一种自欺的行为。(佛陀或者耶稣坐在电脑和变速器的齿轮旁边修行会像坐在山顶和莲花座上一样自在。如果情形不是如此,那无异于亵渎了佛陀——也就是亵渎了你自己。)这就是我在这次肖陶扩(Chautauqua,野外教育集会)旅程当中讨论的主题。”
——《禅与摩托车维修艺术》
我常常想起上面这句话。这句话告诉我,人生在世,何处不是修行。编程就是一种修行。作为程序员,如果不能心平气和地接受自己职业中的一切并不断提升自我,以达到更高的境界,那么,即便换种职业,换种生活,事实上对于自己的人生也毫无益处。
在我看来,程序员是一种极具创造性的职业。通过手中的代码,构建硬件或软件系统,就好像创造了一种“生命”,能够根据外界的刺激做出反应。无论程序的大小、无论其“反应”的性质,都蕴含了一种有趣的创造体验。
而程序员的工作和千万种其他职业一样,本身即是修炼。每一个需求,每一行代码,每一个难题,都是对程序员个人的历练。有枯燥的折磨,有琐碎的烦躁,也有成功发布的喜悦,以及得到用户认可的收益。这些痛苦和快乐构成了每一个试炼程序员的磨刀石。
是不是有些人更适合做程序员?我并不确定。但我认为程序员的特质应该是理性的,重视逻辑的。对一个程序员来说,基本的关注是输入、输出、算法和数据。这也促使程序员逐渐养成比较明确的工作思路和方法,包括目标导向,方法论,时间管理,总结进阶四个方面。
然而,最关键的问题还是程序员的主观认知。即程序员是否能够从思想上真正认识到自己职业的特性,接受之,并愿意付出努力去提升自己。这不仅是一个职业问题,更是一个人生问题。这种认知就如同禅宗的顿悟一样,既不是别人说什么就能领悟的,也不是自己口不对心的宣言,更可能是一种完全无法言说的体验。
有了这种体验会有什么不同?简单的说就是不浮躁。编程就是编程,不会想会挣多少钱,产品能不能大卖,公司会不会经营不下去,自己是不是能成为大牛……。还有就是能够耐得住性子读代码,不会急着从网上扒一段代码塞到自己的程序里就了事。想起以前看沃伦巴菲特的传记,其中提到巴菲特最大的爱好就是看公司财报。这种体验大致是相通的吧。