• [转]禅修程序员十诫


    摘要:做一名禅修程序员意味着什么?那意味着,你要持守我从禅宗 习得的10条戒律,它们与计算机程序员的现代世界息息相关。

      查看英文原文:The 10 rules of a Zen programmer

      早晨,外面下着雨,我发觉自己正坐在办公桌上琢磨有关高效率工作(efficient working)的问题。在我成为自由职业者之前的那些日子,尽管做了许多工作,然而回首往昔,不过是一片狼藉罢了。

      回想2006年我开始禅修之际,当时有好一阵子,这种念头清晰地浮现在我的脑海里:几百年前,老禅师就已知晓今天的程序员到底该如何工作。尽管我并不喜欢那些诸如“成为更好的程序员”之类的帖子,但是从那天早上起,我想概括我的一些想法。谨以此文作为自我提醒,但如果你对此有任何想法,欢迎不吝赐教。

     

    1. 一心不乱(Focus——集中精神)

      一旦你已决定处理某项任务,就要尽你所能把它做好。不要同时启动几件事。一次只做一件事。一心多用不会使你变得更快,你只不过是在进行多线程式的工作。如果进行多线程式的工作,那么你将变得精疲力竭、错误倍出,而且为了从一个任务跳转到另一任务也会浪费时间。这不仅适用于编程,而且是条通用建议。

      泽木兴道(Kodo Sawaki)禅师说过:要是你想睡就睡。当你准备睡觉时,就别盘算软件了。只管去睡。要是你想编码就编码。切勿虚度光阴——专心编码。要是你累得写不动程序了,那就睡吧!即使像Stephan Uhrenbacher那样知名的多任务处理者在此时也会决定进行单线程式的工作。我有着与Stephan类似的经历,并最终写出了名为Time & Bill的时间跟踪工具。其目的是跟踪我的时间,哪怕是像打电话那样的小任务也可轻松跟踪。现在我可以在每天伊始创建几个秒表,而且只需轻轻一点便可跟踪我的时间。但是过去的结果却是场灾难:有时直到我移至下一个任务为止,我仅仅在某个任务上工作了几分钟。现在我的情况已有所改善。与番茄工作法类似,我会计划若干时段,并且在那些时段里全神贯注地工作,不聊天、不瞌睡、不浏览应用商店上那些精彩的新游戏。

     

    2. 心如止水(Keep your mind clean.——保持心无杂念)

      你在开始编写软件之前,需清除杂念。暂时达到心无旁骛的境界。要是你遇到什么麻烦,请勿受它影响。大多数情况下,烦恼会烟消云散。要是麻烦严重到挥之不去的地步,那就切勿工作。应尽量把问题解决。至少当你着手工作时,要让自己进入与世隔绝的状态。

      邮件列表中是不是有些精彩内容?就让它留在那里吧!你可以回头再来了解那些精彩内容。停掉那些使你心烦意乱的玩意:关闭Twitter、Facebook、以及你的电子邮件。你甚至应该把手机调成静音,然后放进口袋。你可能会说这与第一点“专心”很相似。然而还有一个限制就是:在工作之前或午餐时,不要使用那些工具。它们把你与外部世界联系起来,而且很可能会带来一些新麻烦或是让你分心的事情。

      像这样想:在大部分时间,当你清早醒来时,头脑是非常清醒的。否则,就需要借助某些运动让你清醒(我会进行长跑)。要是你觉得神清气爽了,就去着手工作并全力以赴地工作。当你不再工作时,再让尘世的喧嚣充斥你的心灵。当你完成一整天的工作之后,你就会发现那也不过如此。Twitter之流会消耗你很多能量。千万不要认为:就只一小小会儿。而事实并非如此!

      你对此已是心知肚明。 
      (译注:确实如此!就我而言,只要一打开微博,几十分钟、甚至几个小时转眼即逝,而手头的工作却停滞不前。)

     

    3. 虚怀若谷(Beginners mind.——菜鸟心态。)

      请回忆你是菜鸟的往日。或是铭记在心,设想自己还是只菜鸟。你觉得永远都学不够。每天都把自己当成菜鸟看待。总是努力从菜鸟的角度去看待各种技术。你可以接受使你的软件更好的修正,而且要是你想更轻松一些,那就脱离标准路径(译注:正所谓“初生牛犊不怕虎”)。即便是那些经历与你不同的人,他们也会有些奇思妙想。

      你曾经有过两次以相同方式生成某个软件的经历么?即使你复制软件,也会多少有点儿不一样。

     

    4. 心中无我(No Ego.——无我。)

      一些程序员有个大问题:他们拥有自我。不过没时间用于形成自我。更没时间让你成为摇滚明星。

      到底是谁决定了你作为程序员的质量?是你自己么?当然不是。是其他人么?有可能是。不过你真的可以把一个苹果与一根香蕉放在一起比较么?不可以。由于你是独立的个体,因此你无法拿自己的整个身心与他人进行比较,你只能比较几个方面。

      某个方面根本不能引以为豪。你擅长Java么?那非常好。其他人确实不如你,不过他们更擅长打保龄。是Java比打保龄更重要么?这要视情况而定。或许你用Java赚到更多的钱,不过其他人由于结识他的保龄球友,他们可能拥有更多的生活乐趣。

      由于你是名极客,就真的值得骄傲么?拥有自我的程序员不会学习。正所谓“满招损,谦受益”。世人皆为吾师,不妨同时向高手和菜鸟学习。正如子曰,三人行,必有我师焉。

      泽木兴道(Kodo Sawaki)禅师说过:你无关紧要——俗话说,别总拿自己当棵葱,不是谁都拿你炝锅的。

      不妨想一想! 
      (译注:3、4两点看似独立,实则相互呼应,唯有先虚其心,然后慢慢地眼里才能容得下别人,看得到别人的长处,骄横之气也能慢慢散去,并真正达到无我境界。)

     

    5. 无欲则刚(There is no career goal.——没有职业目标。)

      如果在你想得到些什么的同时,却忽视了“当下”的生活,那么你就已经输掉了这场比赛。只要竭尽所能,无需顾及你可能在很久以后才能达到的目标。

      难道历经千辛万苦工作20年只为做股东?为什么你不能仅为享受工作之趣而全力以赴呢?其实,努力工作也能乐趣无穷。禅宗有言,一日不作,一日不食

      无需待到20年后再开启幸福之门。你现在即可幸福快乐,就算你不是股东、或是没有开上保时捷也一样可以幸福快乐。世事难料,你可能会大病一场,可能会被炒鱿鱼,也可能心力交瘁(如果你遵循本文讲述的所有这些内容,那么我猜发生这种情况的可能性会很低)。

      在这些不幸的事发生以前,只要全力以赴地工作并乐在其中就好了。没必要盯着同事们的收入。没必要惦记你未得到的很棒的新职位。

      毕竟,你终会有所成就。你最终将得到美好的回忆,或许还有个好职位——还有那杰出的20年。每天都是好日子。

      如果你曾经直截了当地提到,你觉得在你的公司工作根本就不开心,那么你必须马上离开。决不要留在夺走你生活中的快乐的公司。当然,人们可以选择离开只有在发达国家才可能发生。不过要是你正生活在如此良好的环境中,那你就这么做吧。无怨无悔地离开。你没有时间可以浪费,因为或许你明天就会死去。

      一旦你没有了职业目标,那么离开时便可逍遥自在。

     

    6. 谨言慎行(Shut up.——住口。)

      要是你没什么可说的,就不要浪费其他同事的时间。这样做并不会使你看上去懦弱无能。每天你工作时,你需要设法做到不让他人心烦不安。想象一下,如果每人都试着这样做的话——那应该是个很棒的工作环境吧?尽管有时这是不可能的。但只要努力尝试,你就会乐意这么做的。

      如果没有形成自我,那么闭嘴就很容易做到,还会谨慎对待你所说的每件事。不要把你的“经验”与自负相混淆,永远记住:你是只菜鸟。要是别人有了好主意,就该支持。

     

    7. 明心见性(Mindfulness. Care. Awareness.——正念、留心、觉察)

      没错,你正在工作。不过与此同时你也正在生活和呼吸。即便你在工作中遇到了一些困难,你也需要聆听你的身体所发出的信号。你需要了解的那些对你有益的东西。这包括一切,包括譬如食物等生活必需品。你需要关心你自己以及你周围环境中的一切——因为毕竟你喝的水是奔流不息的河水。因为你只为自己而生。你独自生活,并且将会独自逝去。即使没有你,世界依然生生不息。

      要避免在你不喜欢的情境下工作。要避免无偿工作,如果那意味着你会觉得很无聊,而且会夺走你休息时间的话。与那些让你不悦的事物一刀两断。难道无偿工作听起来只是个理论么?想想那些在其黄金时间从事开源软件开发的人们。要是你曾订阅过某些项目的邮件列表,那么你可能就会知道那里是何其热闹(至少有时候会如此)。要是你无法从中体会到乐趣——那就不要再做下去了。我知道有很多人,他们工作在并不喜欢的开源软件环境之下。此外,我用Time & Bill来跟踪我花费在开源项目上的时间,而且惊讶地发现我居然在那里浪费了如此之多的时间——尤其是在一些我不太喜欢的项目上。

      有鉴于此,有些人认为,只有当他们拥有黄金时间,并且整晚与xbox游戏机和啤酒相伴时,才是他们唯一的乐趣。尽管这有时是个好主意,不过那未必在你一生时间里都是“乐趣”。要是你可以避免你不喜欢的情境,那就要避免它们(如上所述)。不过有时需要做些真的很糟糕的事。例如从你经理的Excel表格中手动复制/粘贴原始数据到phpmyadmin中。这项工作可能会花费你数天时间,而且确实很无聊,毫无乐趣可言。不过有时你需要做诸如此类的工作。你不能每当得到一个无聊的任务时就辞职不干。禅僧也不会羞于他们的工作。他们早上4点起床(有时早些,有时晚些,依僧院而定),接下来开始打坐参禅,接下来劳动(他们甚至将劳动视为参禅之法门)。他们有事要做,例如清扫厕所、或者在菜园务农、或者作为火头僧,他们要烧火做饭。他们全心全意地做事。无论他们做什么,他们做的时候都毫无苦恼,而且他们都(或应该)很高兴,因为每秒都是他们生命的瞬间,即便那一秒他们正在清扫厕所也是如此。

      话虽如此:停止哭泣,要是你需要复制/粘贴excel,就只管去做好了。不要为此类事情浪费精力,它们都会过去。或者以成为最好的excel复制/粘贴者取而代之。

      要是你患有心脏病,人们可能会说:“呃,是的,他确实工作很卖力,他甚至在夜里为我无偿工作”。但是没有人会领你到另一个世界。这最后一步要我们独自走完。在冥界之中你无法交换任何东西。甚至连个屁也不行。因此这就要取决于在每一秒中你对自己的照顾。要是你没了也就没了。不过既然你活着就该好好活着。没有时间可以浪费,必须争分夺秒。

      在禅宗中,"留心(care)"是个集大成的词汇(而且我认为在所有的佛教形式中皆如此)。我无法表达我想说的一切。要理解"留心(care)"的不同含义是很难的。可能你最好还是使用“觉察(awareness)”一词。在生命中的每一刻,你必须知道自己在做什么。在你的生命中,你必须时刻保持正念。否则你就会浪费生命。不过当然,这取决于你的所作所为,随你的便吧!

     

    8. 明哲保身(There is no Boss.——没有老板。)

      是的,有人付给你薪水。有人告诉你需要做什么,而且他还可以解雇你。但是,没有理由放弃你自己的生活,或是因公害病。总之,你的老板无法控制你。即便你对自己可否进行自我管理心存怀疑——但切勿走上这条不归路。

      回来接着谈你的老板:要是你允许他控制你,那他可能会把你的生活搞得一塌糊涂。而唯一的出路是,如果要你去做的事会有损健康或是违背你的道德标准,那么请说“不”。接下来会发生什么?最不济就是他把你解雇。那又怎样?如果你生活在西方国家,并且是名码农(当你阅读此文时,很可能你就是名码农),那么你将得到另一份工作。

      对于将CSV格式的数据转换为HTML格式等诸如此类的任务,我并不想对它们说“不”。我要说的是,是否每周80小时的工作时间让你的身体吃不消,或者你觉得你的孩子需要更多的重视;或者你是否被迫解雇某些人,仅仅因为你的老板不喜欢他们;或者你是否是名咨询师,并且受雇为核电厂或坦克开发软件(有人可能会说为核电公司工作简直棒极了——这违背了我的道德标准,并且只是举例而已)。对于以上情况,你可以说“不”!

     

    9. 玩物明志(Do something else)

      程序员不仅仅是程序员。你应该做些与计算机无关的事。在你血气方刚之时,不妨乘风破浪扬帆远航、钓鱼、潜水。还可以练习冥想、武术、或者演奏尺八(即Shakuhachi,是我国唐代时传入日本的一种竹笛)。无论你做什么,都要不遗余力。跟你在工作时间的状态一模一样。应严肃对待。爱好不仅仅是爱好,它还是在展示自我。要是有人说爱好无足轻重,谨防上当受骗!现如今,我们可以尝试各种各样的爱好。我已经录制了几张个人CD,还创作了几本科幻小说(不过小说尚未出版,我还得多多练习)。正是这些爱好塑造了现在的我,而且最终引导我练习禅修,并撰写出此博文。最近我在练习禅宗尺八,它在我的日常生活中占有至关重要的地位。

     

    10. 恬淡寡欲(There is nothing special.)

      尽管花儿很漂亮,但只不过是朵漂亮的花——仅此而已。并无任何非凡之处。而你只是个会编程的人。或许你很优秀,但没有什么与众不同。你与我、或者这个星球上其他所有人都是同类。

      你不仅要吃喝拉撒。当然,还要睡。(最好)在很久以后,你会驾鹤西游,你所创造的一切也将随之消失。甚至是象征不朽的金字塔很久以后也会消失。你知道那些建造金字塔的人的名字么?即便你真的知道,难道你知道了就那么重要么?并非如此。金字塔依然耸立在那里,或是随风而逝。平淡无奇。

      你的软件也一样。银行正在用你的软件赚钱。不过在你驾鹤西游之后,没人会记得你。这没有任何不妥之处。正是“逝者如斯夫”!你应该对此了无牵挂。如果你正在遵循前9诫生活,那么你会发现最后这项修行既有益又有趣。现在仅有两件事,即时间的流逝,以及全神贯注地做事。

      要是你的公司因财务问题而关门大吉,那没什么大不了。生活将会继续。其实根本无需xbox游戏机、汽车、或是别的东西。由于这个星球上大部分人生活在极度贫困之中。他们根本不在乎xbox游戏机,因为他们很乐意得到一些食物、乃至是水。

      所以……你到底为什么与众不同?难道是因为你有幸出生在西方国家?还是因为你会写代码?不,没有什么与众不同。你可以放弃自负去自由自在地生活。尽情享受周围花儿的颜色和香味。当冬季降临时无需泣不成声,而春回大地时也不必欣喜若狂。那不过是四季更替罢了。请铭记在心,一旦某人拒绝了你的求职申请,是因为那家公司并未与众不同到你需要为那份工作而劳心费力。

     

    免责声明

      我不是一名禅僧。我只是正在实践和学习之中。如果你觉得有些需要深入理解的内容,那么请向你本地的禅僧求教。当然,我会在博客中尽量为你解答,尽管如此,我还只是名初学者。无论如何,我很高兴能收到你的评论,并且要是你喜欢此文,可否愿意将本文链接发到微博上。感谢阅读!

  • 相关阅读:
    git常用指令 github版本回退 reset
    三门问题 概率论
    如何高效的学习高等数学
    数据库6 关系代数(relational algebra) 函数依赖(functional dependency)
    数据库5 索引 动态哈希(Dynamic Hashing)
    数据库4 3层结构(Three Level Architecture) DBA DML DDL DCL DQL
    梦想开始的地方
    java String字符串转对象实体类
    java 生成图片验证码
    java 对象之间相同属性进行赋值
  • 原文地址:https://www.cnblogs.com/superdo/p/4422395.html
Copyright © 2020-2023  润新知