英文原文:The 10 rules of a Zen programmerphp
在一个阴雨的早上,我坐在桌子旁,开始想如何才能高效的工做。在我成为一个自由职业者以前,我有很长一段时间都很努力工做,但收效甚微。html
我在 2006 开始接触禅学。我立刻意识到:古代的禅宗大师们几百年前早就已经知道现今的程序员应该如何工做。虽然我很讨厌“如何成为一个更好的程序员”之类的文章,但我仍旧想分享一些个人想法。它对我来讲起到个提醒的做用,若是你有什么想法,也请留言。程序员
0. 专一 Focus编程
若是你决定开始工做,请尽力的作好它。不要同一时间作几件事情。一次只作一件事情。若是你多线程工做的话,你不必定会更快。多线程会让你精疲力尽,出错,转换任务时消耗更多的时间。这不是仅限于编程,这是个广泛的法则。多线程
Kodo Sawaki 说过:若是你须要睡觉,去睡吧。当你试图睡觉的时候,不要想着程序,单纯的睡觉。若是你在编程,就专一编程吧,不要作白日梦。若是你很累的话,不能再编程的时候,就睡觉吧。就算是著名的多线程超人 Stephan Uhrenbacher 也决定之后单线程工做。我也有与 Stephan 相似的经历,最后我写了 Time & Bill,一个追踪时间的工具。目的是想只须要点一个键,就能追踪个人时间。结果很糟糕:我常常在一个任务只专一了几分钟就转移到另一个任务去了。如今我好多了。相似于 Pomodoro technique,我计划了一些工做时段,专一于它们。不聊天,不睡觉,不查看 Appstore 里的新游戏。ide
1. 保持清醒 Keep your mind clean工具
在编程时,你须要清除你的内存。抛开你脑壳中的其余东西。若是你被其余事情所烦恼,不要让它们影响你。大部分状况下麻烦会自动消失。但若是有很×××烦的话,你不能遗忘它们,就不要工做。试着清除杂念。当你开始工做的时候,让外部的世界远离你。学习
邮件列表中有很激动人心的事情吗?不要管它。你以后还有机会看到这则激动人心的事情的。当即关掉能填满你脑壳的应用吧:关掉 Twitter,Facebook,E-mails。你应该将手机静音,放在口袋里。你也许会说这同第一条,专一,很接近,但还有一条,吃饭的时候或者开始工做以前不要使用那些工具。它们会将你与外部世界联系起来,分散你的注意力。spa
想一想:大部分时间当你起床的时候你的脑壳是清醒,毫无杂念的。若是不是这样,作些运动也许有帮助(我会长跑)。若是你感到毫无杂念时,去工做吧,你能表现得很好。等你再也不工做的时候,这时候你可让你的脑壳充满杂念了。你将会看到一成天辛勤的工做已经被你抛在脑后了,这是多么棒的体验。Twitter 和 Co 会消耗你大部分的能量。你也许会想:就是一分钟的事情。你错了,其实不止。线程
你其实已经意识到了吧。
2. 保持初学者的思惟 Beginner’s Mind
还记得你做为一个新兵时候的日子吧。若是你仍旧仍是个新人,就记住这个时候吧。你时刻渴望新知。天天都想象本身是一个新人。试着以一个新人的角度来看那些技术。这样你能更好的接受指正,或者不按常规出牌,开陈出新。也能够从一些新人身上学到许多好的想法。
3. 抛开自负 No ego
一些程序员有个大问题:太自我。但咱们没有时间来发展自我,咱们没有时间成为一个摇滚明星。
是谁决定要作一个程序员的?你吗?不是,那是其余人?可能吧。你能比较究竟是苹果好仍是香蕉好么?不能。你是个个体。你也不能将你的方方面面和其余个体做比较。你只能做片面的比较。
你有某一点很厉害,你也不能骄傲自满。你 Java 很厉害?很酷。另外一我的 Java 的确不如你厉害,但他保龄球比你厉害。Java 比打保龄球更重要么?视状况而定。可能你能够依赖 Java 赚更多钱,但那我的也许由于有一些保龄球球友而享受了许多乐趣。
你能够由于你是个 geek 就沾沾自喜么?太自个人程序员不会虚心向他人学习。
Kodo Sawaki 曾经说过:你没有那么重要。
想一想这句话吧。
4. 不要想着职业目标 There is no career goal
若是你想获得什么事物,而且不关心你如今的生活,那么你已经输掉了这个游戏。不要想象你以后将会达到什么职业目标。
工做 20 年,成为一个股东合做人?为何不为了兴趣而努力工做呢?努力工做能够很是有趣。禅说,一日不做,一日不食。
咱们不须要等到 20 年后才开心。你能够如今就开心,就算你还不是一个股东合做人,你也没有开保时捷。事情会很快就转变的。你会生病,你也可能被炒,你可能自我耗尽(若是你遵循全部的这些规律,我想可能性很低)。
在全部的这些事情发生之前,尽情的努力工做吧,快乐的工做。不要仅仅盯着学校里的成就,不要想着你没有获得的一个职位。
毕竟你终究会达到某个位置。你会有一些珍贵的记忆,也许还会有一个不错的职位,业绩辉煌的 20 年。每一天都是很棒的一天。
若是你以为在你如今的公司工做不开心,当即离开吧。不要呆在一个剥夺你快乐的公司工做。固然这仅仅可能在富有的国家里可行,人们能够选择离开。但若是你生活在这么好的环境里,就这么去作吧。不要后悔离开,你没有时间能够浪费,你可能明天就死掉。
5. 中止争论 Shut up
若是你没有什么要说的,就不要浪费时间和你同事争吵。这并非说你懦弱。天天你都要工做,你不须要搞得其余人紧张。想象一下,若是每一个人都这么作,那会是多么好的工做环境啊。有时这是不可能的。但尽力尝试这么作吧,你会喜欢的。
若是你不自负的话,便很容易作到不争吵,而是去关注那些你真正想说的事情。不要将“自我”和经验搞混淆了,记住:你是一个新人。若是其余人有好的想法,就去支持他的想法吧。
6. 留心\细心\意识 Mindfulness. Care. Awareness
是的你在工做。但同时你在呼吸。即便你的工做有困难,你也须要聆听你身体的信号。你应该学习对你身体好的事情,譬如食物。你应该学会照顾好本身,以及留心你所在的环境,毕竟你喝的水将会又流到河里去。由于你仅仅为你本身而活,你独自来到这个世界,也将独自离开。地球没有你照样运转。
不要工做在你不喜欢的环境。不要作不拿报酬的工做,这意味着你不会快乐,你不得不离开你的卧床。远离那些让你不开心的事物。不计回报的工做听起来是天方夜谭吗?想一想那些在黄金时间里作开源项目的人。若是你在邮件列表中订阅过一些项目,你可能已经知道这是多么热门的事情。若是你并不感到开心,就不要这么作吧。我知道许多人作开源项目,可是他们并不喜欢。用 Time Bill 我追踪过我为开源项目花费的时间,我浪费了太多的时间,尤为是那些我并不喜欢的项目。
有些人认为只有当他们有消遣时间的时候,能在晚上有 xbox 玩,有酒喝才会感到开心。虽然有时享乐是很是不错的,但不表明你一生的全部时间都是快乐的。若是你能避免你不喜欢的状况,请尽可能避免(就像我上面提到的),但有时你不得不面对那些你不想作的事情。譬如人手将经理的 Excel 中的数据复制粘贴到 phpmyadmin 中去。这些可能要花上几天,甚是枯燥。你感到极为无聊,但有时你不得不这么作。你不能由于碰到一个枯燥的任务就随意的辞职。禅宗大师们也不会逃避他们的工做的。他们在 4 点钟起床(有时早些,有时晚些,取决于习俗),开始冥想和工做(他们认为工做也是冥想)。他们会作清扫厕所的工做,或者作园艺,若是是斋饭僧,他们会作饭。他们会全神贯注的工做。无论他们作什么,他们都会全身心的去作,而且感到快乐满足。由于每时每刻,甚至是打扫厕所,对他们来讲都是他们的生活。
也就是说:若是你须要复制粘贴 excel,也不要哭诉了。仅仅去作吧。不要浪费你的时间在抱怨上,它们会过去的。试着作个最好的复制粘贴者吧。
若是你得了心脏病死了,人们也许会说:“哦,他工做太长时间了,他常常为我在深夜里无偿工做。”没有人会指引你去另外一个世界,最后一步要咱们本身走。你不能转换世界上的任何东西。什么都不行。因此你须要照顾好本身,每时每刻。若是你死了,就死了,若是你活着,就应该好好的活着。没有时间去浪费了。
在禅学中“心”是个很大的词(在任何一种形式的禅学中都是)。我不可能彻底表示清楚它的含义。要明白“心”的不一样的含义是很困难的。可能“意识”这个词对你来讲更容易懂些。你须要意识到你作的每一件事情。不然你就是在浪费时间。固然你能够这么作,取决于你本身,若是你喜欢这样的话。
7. 拒绝老板 There is no Boss
是的,老板付你工资,他告诉你须要作什么,他也能够炒掉你。但没有必要放弃掉你本身的生活,为你的工做而生病。最终你的老板不能控制你了,也许你也失控了 – 请不要走上这条路。
回到你的老板:若是你容许的话,他可让你的生活更加糟。但有解决的方法,若是他要你作你感到不开心的事情,或者违背你原则的事情,坚定说不。会发生什么?最坏的状况,他会炒掉你。那又怎样?若是你生活在西方国家,若是你是个程序员(若是你在读这篇文章,那么你很可能是程序员),你会找到另一份工做。
我并非说对相似将 CSV 数据拷贝成 HTML 这样的任务说不。我说的是一个星期工做 80 小时的工做。或者你以为你的孩子须要更多的关注。或者你被逼要炒掉其余人仅仅由于你老板不喜欢他们。或者你是个顾问,可是须要为一个核电站或是为坦克编写程序(有些人会说为核电公司工做是多么的好啊 – 但这违背个人原则,并且仅是一个例子),你均可以说不。
8. 有其余爱好 Do something else
程序员不只是一个程序员。你应该作一些和电脑无关的事情。在业余时间,你能够去航海、钓鱼、潜水、冥想、军事艺术、玩尺八(Shakuhachi,一种乐器)。无论作什么,用掉你剩下的能量吧,就像你工做的时候那么不遗余力。兴趣爱好不单是兴趣,它也是你是谁的一种象征。当别人说兴趣不重要时,不要让他得逞。如今咱们能够拥有本身的爱好。我录了一些 CD,写了几本科幻书(没有发表过,我须要更多的练习写做)。这些事情都能体验我是什么样的人,最终它们引领我接触到禅学,以及写下这篇博客。最近我在练习尺八。这些都是我平常生活的一部分。
9. 没有什么东西是不可取代的 There is nothing special
一朵花很美丽,但它仅仅是一朵漂亮的花朵,没有什么更特别的了。它一点也不稀奇。你是一个会编程的生命体,可能你很棒,但也没有什么稀奇的了。你仅仅和我同样是这个星球上存在的一个生命体而已。
你要上厕所,你要吃饭,你要睡觉。好久之后(但愿如此)你会死去,你所创造的一切将会随之而去。就算是金字塔好久之后也会消失。你知道建造金字塔的人的名字吗?若是你知道,那么这很重要么?不重要。金字塔在或是不在,都没什么特别的。
一样你写的程序也同样。银行经过你写的软件赚钱。但当你离开以后,没人会记住你。这不是谁的错,这是时间的规律。你不须要担心。若是你相信这一条规律,你会意识到上一个项目是很是有趣的项目。如今仅仅须要继续,专一的去看其余的什么事情。
若是你的公司由于财政缘由倒闭了,不要担忧。生命还会继续。咱们不是真的须要一个 xbox,一辆车或是什么其余的。这个世界上大部分人都生活中水生火热中。他们不在意 xbox,由于他们对于食物和水更加渴望。
因此,为何只有你是独一无二的?仅仅由于你很幸运的生活在西方?由于你会编程?不,你没有什么特别的。你应该让你的自我感消失,放松的生活。享受花朵的香气和颜色吧,当冬天来临时不要过于杯水,春天到来时不要过于高兴。这是天然规律。当别人否定你的程序时也要这么宠辱不惊。由于公司并无那么重要。
声明
我不是一个禅师。我仅仅在学习和练习。若是你认为有什么你须要更深刻的了解,请教你当地的禅师。固然我能够试着在这个博客上回答,但我只是个初学者。无论怎样,我很乐意看到大家的评论,若是你喜欢这篇文章,或者用这篇文章的连接发条推,我会很高兴的。谢谢阅读!