电脑程序员的十条禅法
程序员是一份特别辛苦的职业,也是一个承受各种压力的群体。每周6天工作,无休止的加班,甚至过劳死,程序员的身心健康面临很大的问题。禅是另一种生活方式,在物欲横流的今天,禅对于程序员有着特殊的意义和价值。
几百年前,禅宗大师开示众生:该说“不”时且开口,生命掌握在你手中。
今天依然如此。禅修并非史蒂夫·乔布斯这样的业界精英的专利,你也可以。 禅修并非只能在周末进行,任何时候都行,甚至是现在,是的,就在此刻,从程序员禅的10条法则开始。
1.专注
禅修程序员一旦开始工作,就应该全力以赴,做到最好。请不要同时展开多项工作。一次仅做一事就好。一心多用不会让效率更高,只会使你应接不暇。超负荷工作会让人疲惫不堪、容易出错,而且在不同的工作之间频繁切换也会浪费时间。这是条通用的建议,不仅仅适用于编程工作。
泽木兴道禅师教诲:若需睡觉,尽管睡。当决定休息的时候,不要再去想软件的事,尽管睡觉。要是打算编程,就尽管去编,不要再做白日梦,专注它。一旦你疲倦不堪而无法编程,你就需要睡觉了。即使是以一心多用出名的Stephan Uhrenbacher,也会决定进行单线程式的工作。我有和Setphan类似的体会,于是自己写了一个时间跟踪工具—Time & Bill。我的目标是方便地跟踪时间消耗,包括像打电话这样的小事。现在,每日伊始我会创建几个秒表,鼠标一点就可以跟踪时间的使用。起初惨不忍睹,有时 我在一项工作上只花了几分钟就转到另一项工作上。现在我做得好多了。与番茄工作法类似,我计划了几个时段,努力保持专注,其间不闲聊,不睡觉,不去查看AppStore上好玩的新游戏。
2.心无杂念
在动手编程之前,你需要清空头脑,摒弃一切杂念。如果你有什么麻烦事,不要让它影响你。在大多数情况下,烦恼会自行消失。如果杂念太多,无法驱除,就暂且不要工作。一定努力清除它们。而你一旦开始工作,请暂且忘记身外的世界。
邮件列表中有令人兴奋的内容?别管它,你可以晚些时候再兴奋。关掉所有会占据你头脑的垃圾程序:推特、脸书和电邮。你甚至应该将手机设为静音并放进口袋里。或许你会说这条规则类似于第1条“专注”,然而这条中还应有一个限制:在工作前或午餐时不要使用这些工具。这些东东把你连接到花花世界,带来新的烦恼或耗精力玩意儿。
设想一下,当清晨醒来时,通常你的头脑会很清醒。如果不然,可以做些运动。等你感到神清气爽了,请尽所能立马开展工作。工作结束后,你才可以去想那些乱七八糟的东西。当历经繁忙而充实的一个工作日后,你会发现原来那些东西其实并非多么有趣。推特、脸书之类会消耗我们大量的精力,别以为只要分把钟,绝非如此。
3.初学者心态
别忘了自己还是初学者的那些日子。或者如果你目前就是个初学者,请坚守这份新人情怀。你所学到的远远不够。如果你已经是个专家了,不妨每天也把自己当成初学者。坚持以初学者的心态来对待技术问题,这样你就能更容易去接受那些让软件更好的修改,不落俗套。即使那些经历不如你的人也可能会提出一些好主意。有哪一个软件的两次构建方法会完全相同呢?即使你去复制(仿制)软件,建构过程也不会完全相同。
4.无我
一些程序员存在的大问题是:过于自我。但其实,我们没有时间过于自我,没有时间成为一个摇滚明星。
谁能决定你的编程水平呢?你自己?不是。别人?可能吧。你可以拿苹果跟香蕉比吗?不能。你是个个体。你无法将整个自己与他人去比较,只能说某些方面的比较。
有个技能有啥可自豪的?你擅长Java?酷,别人是不如你,但他擅长打保龄球,你行吗?Java比保龄球更重要吗?恐怕要视具体情况而定。你可能因为Java赚得多一些,但别人可能从生活中获得了更多的乐趣,因为他有一群保龄球友。
你真的对自己是个极客感到自豪吗?过于自我的程序员容易固步自封。请保持谦虚,向他人学习,不管他是个老手,还是菜鸟。
泽木兴道禅师教诲:“你并不重要。”
自己想想。
5.不要设置职业目标
如果你总是想得到些什么以至于忽略了当下的生活,你已经输了。对于工作,全力以赴即可,别去管将来很长一段时间后才可能达成的目标。
难道拼命工作20年,就是为了成为公司股东?为什么不能因为乐趣而勤奋工作呢?如果真心喜欢,即使辛苦也会乐在其中。“一日不作,一日不食”,禅宗如是说。
没有必要等到20年后再去寻找快乐。即使不是公司股东,即使没有保时捷跑车,现在的你也能拥有快乐。天有不测风云,你可能突然大病一场,可能被解雇,也可能会面临油尽灯枯(如果你遵循了所有这些忠告,我猜这种可能性会大大降低)。
除非这些不好的事情发生,否则只管尽力去工作,并乐在其中。没有理由去和同事攀比收入,也没有理由对未得到的高薪职位耿耿于怀。
毕竟,所得终将会来。你将收获美好的回忆,或许还有个好职位—以及那精彩的20年。每一天都是美好的。
如果某天你认为在公司工作已毫无乐趣可言,请果断离开。千万不要待在夺走你生活之乐的公司。当然,这要在发达国家才现实,因为这里的人完全可以自由跳槽。如果你正生活在这样的优越环境中,果断下决心吧。尽管离开,无怨无悔。时间不可轻易浪费—生命无常,或许明天它就会消逝。
如果你没有设定职业目标,转身离开将会容易很多。
6.敏事慎言
如果没有什么要说的,就不要去浪费同事的时间。这样做并不会让你看上去懦弱无能。在每天的工作中,尽量不要去无端惹人心烦。试想一下,要是每个人都努力做到,那将是一个多么好的工作环境啊?虽然有时这是不可能的,但请努力做到,你会喜欢的。
如果你不过于自我,就很容易做到谨言,只关注当讲之事。不要把你的“个人经验”变成了“自负”。永远记住:你是一位初学者。如果他人有好主意,请保持随喜心。
如果没有什么要说的,就不要去浪费同事的时间。这样做并不会让你看上去懦弱无能。在每天的工作中,尽量不要去无端惹人心烦。试想一下,要是每个人都努力做到,那将是一个多么好的工作环境啊?虽然有时这是不可能的,但请努力做到,你会喜欢的。
如果你不过于自我,就很容易做到谨言,只关注当讲之事。不要把你的“个人经验”变成了“自负”。永远记住:你是一位初学者。如果他人有好主意,请保持随喜心。
7.正念·观照·觉察
是的,你正在工作。但与此同时,你也在呼吸,在生活。即使工作再忙再累,也要倾听身体发出的信号。你要知道哪些东西对你是有好处的,所有的,包括像食物 等生活必需品。要关心自己及周围环境中一切,毕竟,你所喝之水就来自于周边这条河流。记住,你是为自己而生的—一个人生来,也将一个人死去。即使没有你,地球依旧转动。
请避免在你不喜欢的那种环境下工作。如果某类无偿工作已经让你毫无乐趣可言,而且又剥夺了你的睡眠时间,那就拒绝它。放下所有那些让你不快乐的事情。你以为无偿工作只停留在理想中吗?想一想那些在空闲时间编写开源软件的人。要是你曾订阅过某个开源项目的邮件列表,你就会知道那儿有多少激烈争论(至少有时如此)。如果你觉得它没有什么乐趣,就不要再做了。我认识不少人,他们在自己不喜欢的开源环境中依旧贡献着。利用Time & Bill软件,我再次跟踪了自己在开源项目上花的时间,结果真是令人惊讶。我在那儿浪费了大量的时间,尤其是在许多自己不太喜欢的项目上。
鉴于此,有些人认为只有当有空闲时间,晚上有Xbox玩、有啤酒喝才会快乐。偶尔为之这尚且算是个好主意,但未必在人生的每时每刻这都算是“乐趣”。如果你能避免不喜欢的环境,请避开它们。话说回来,有时我们确实需要做一些无趣的事。例如,手工将经理给的Excel电子表格数据复制/粘贴到 phpMyAdmin中。这可能要花上几天,而且无聊至极。这种事没有乐趣可言,但有时你确实需要去做。你总不能因为被分配一个乏味的任务就辞职。
禅僧也不羞于他们的工作。他们凌晨3点起床(有时早一些,有时晚一些,取决于僧院),然后即开始静坐和劳动(他们甚至将劳作当作禅修的一部分)。或者清扫厕所,或者料理菜园。如果是一名火头僧,还要做饭。无论做什么,他们都一心一意。没有痛苦,乐在其中。对他们而言,每一秒都是生命中宝贵的一刻,逝去即永不再回,即便是在扫厕所时。
换言之:停止抱怨,如果你需要复制/粘贴Excel,做就是了。无须为这样的事情心神不宁,一切都会过去,就让自己成为最好的Excel复制/粘贴者吧。
要是你在工作中心脏病发作,有人也许会说:“是的,他真是一个勤劳的员工,甚至在晚上为我免费加班”。没有人可以指引你去另一个世界,最后一步是由我们自己走的。你无法拿这个世界中的任何东西与另一个世界进行交换。在生命中的每一秒你都要多多保重。如果你死了,人也就没了,一切成空。但如果你还活着,你就是活生生的一个人。没有时间可以浪费。
在禅宗中,“观照”是一个重要的词汇,并且我认为在各种佛教宗派中都是如此。我无法用言语来表达这个词所要表达的一切内容。要理解“观照”的方方面面含 义是很难的。也许用“觉察”这个词更好把握一些。每时每刻,你都要觉察自己的所作所为。在你的一生中必须保持正念,否则就是在浪费时间。当然,究竟该怎么做,完全取决于你自己。勉力为之。
8.做自己的老板
是的,某人付你薪水,告诉你需要做什么。而且他还可以解雇你。但这都不是你放弃自己的生活,成为工作狂的理由。总之,老板对你没有控制权。你甚至也可以怀疑你对自己有无控制权—打住,不要走火入魔。
回到谈老板。如果你一味纵容的话,老板可以让你的生活变得老糟糕。但是有一个解决办法。如果他要你做一些恶心或有违个人道德底线的事情,你大可说 “不”。这会有什么后果?最坏的结果无非是被他开除。那又如何?如果你生在发达国家,如果你是一个程序员(要是你正在阅读这些文字,你大概跑不了),你会找到另一份工作。
我并非说对将CSV数据转换为HTML格式之类的任务说“不”。我指的是,一周工作80小时,导致你精神崩溃;你的孩子需要你的照料时;或者仅仅因为老板不喜欢谁就要你开掉他;又或者身为一名咨询师,却受雇为核电厂或坦克开发软件(有些人可能会说为核电企业工作好极了,但这违背了我的道德底线,这里只是举例而已),等等这些,你大可以说“不”。
9.玩物养志
程序员不止是一个程序员。你应该尝试一些跟计算机无关的事情。在你的闲余时间,可以扬帆出海,去潜水,或者静坐冥想,练练武术,吹吹尺八。不管你做什么,都要尽情尽意,就像在工作时间那般投入。认真去做。爱好不仅仅是爱好,它也展示了你究竟是怎样的一个人。不要被任何说爱好不重要的人蒙骗。现在我们有能力拥有爱好。我已经录制多张CD,还写了几本科幻小说(后者尚未出版,我还得多加练习)。这些事情塑造了今天的我,并最终导致我参禅,写成本书。近来我时常练习禅宗尺八,它在我日常生活中占据重要的地位。
10.淡泊宁静
花朵再美也不过是一朵花而已,并无特别之处。而你,是一名程序员,也许很优秀,那也没什么特别的。你、我以及生活在这个星球上的其他人,都没什么两样。
你需要吃喝拉撒。当然,你还需要睡觉。很久以后你终究难免一死,你拥有的一切全都会失去。很久以后,甚至金字塔都会消失。你知道建造金字塔的人们的名字吗?好吧,就算你知道,但这很重要吗?一点都不。金字塔伫立在那儿,或者不伫立在那儿,有什么特别的呢?
这同样适用于你的软件。银行用你开发的软件赚钱,当你离开后,没有人会再记得你。这本来也没什么错,只不过时间流逝,逝者如斯矣。不应该对此感到烦恼。如果你遵循了上面的9条规则,就会明白:那个优秀、有趣的项目已经过去了。现在,是时候继续前行专注他事了。
公司因为财务问题关闭了,没什么大不了的,生活仍将继续。Xbox、汽车等并非不可或缺。这个星球上的大多数人还很贫困,他们不关心Xbox,得到食物甚至只是饮水都会让他们快乐不已。
那么,为什么你是特别的?因为你命好出生在一个发达国家?因为你可以编写代码?不,没有什么特别之处。请放弃“我执”,自由自在地生活,享受花儿的美色和馨香。当冬天来临时,不必伤心难过;等春天回归,亦不必欣喜若狂。不过乃四季交替,顺其自然就好。请记住这一点,尤其在有人拒绝你的求职申请时。没有哪家公司是如此特别,值得你非要得到它的青睐。
《程序员之禅》[德] Christian Grobmeier