在一个阴雨的早上,我坐在桌子旁,开始想如何才能高效的工作。在我成为一个自由职业者之前,我有很长一段时间都很努力工作,但收效甚微。
我在2006开始接触禅学。我马上意识到:古代的禅宗大师们几百年前早就已经知道现今的程序员应该如何工作。虽然我很讨厌“如何成为一个更好的程序员”之类的文章,但我仍旧想分享一些我的想法。它对我来说起到个提醒的作用,如果你有什么想法,也请留言。
0.专注 | Focus
如果你决定开始工作,请尽力的做好它。不要同一时间做几件事情。一次只做一件事情。如果你多线程工作的话,你不一定会更快。多线程会让你精疲力尽,出错,转换任务时消耗更多的时间。这不是仅限于编程,这是个普遍的法则。
Kodo Sawaki说过:如果你需要睡觉,去睡吧。当你试图睡觉的时候,不要想着程序,单纯的睡觉。如果你在编程,就专注编程吧,不要做白日梦。如果你很累的话,不能再编程的时候,就睡觉吧。就算是著名的多线程超人Stephan Uhrenbacher也决定以后单线程工作。我也有与Stephan类似的经历,最后我写了Time & Bill,一个追踪时间的工具。目的是想只需要点一个键,就能追踪我的时间。结果很糟糕:我经常在一个任务只专注了几分钟就转移到另外一个任务去了。现在我好多了。类似于Pomodoro technique,我计划了一些工作时段,专注于它们。不聊天,不睡觉,不查看Appstore里的新游戏。(《追踪时间的10个给力应用程序》)
1. 保持清醒 | Keep your mind clean
在编程时,你需要清除你的内存。抛开你脑袋中的其他东西。如果你被其他事情所烦恼,不要让它们影响你。大部分情况下麻烦会自动消失。但如果有很大麻烦的话,你不能遗忘它们,就不要工作。试着清除杂念。当你开始工作的时候,让外部的世界远离你。
邮件列表中有很激动人心的事情吗?不要管它。你之后还有机会看到这则激动人心的事情的。立即关掉能填满你脑袋的应用吧:关掉Twitter,Facebook,E-mails。你应该将手机静音,放在口袋里。你也许会说这同第一条,专注,很接近,但还有一条,吃饭的时候或者开始工作之前不要使用那些工具。它们会将你与外部世界联系起来,分散你的注意力。
想想:大部分时间当你起床的时候你的脑袋是清醒,毫无杂念的。如果不是这样,做些运动也许有帮助(我会长跑)。如果你感到毫无杂念时,去工作吧,你能表现得很好。等你不再工作的时候,这时候你可以让你的脑袋充满杂念了。你将会看到一整天辛勤的工作已经被你抛在脑后了,这是多么棒的体验。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,因为他们对于食物和水更加渴望。
所以,为什么只有你是独一无二的?仅仅因为你很幸运的生活在西方?因为你会编程?不,你没有什么特别的。你应该让你的自我感消失,放松的生活。享受花朵的香气和颜色吧,当冬天来临时不要过于悲伤,春天到来时不要过于高兴。这是自然规律。当别人否认你的程序时也要这么宠辱不惊。因为公司并没有那么重要。
声明
我不是一个禅师。我仅仅在学习和练习。如果你认为有什么你需要更深入的了解,请教你当地的禅师。当然我可以试着在这个博客上回答,但我只是个初学者。不管怎样,我很乐意看到你们的评论,如果你喜欢这篇文章,或者用这篇文章的链接发条推,我会很高兴的。谢谢阅读!
相关推荐
作为一名程序员,要成为高手,需要遵循一系列基本原则。以下是根据标题和描述中提到的要点进行的详细阐述: 1. **扎实的基础**:对于任何程序员来说,扎实的计算机科学基础至关重要。数据结构、离散数学和编译原理...
看到自己的代码运行顺畅,或者得到用户的好评,那是程序员最甜美的时刻。此外,通过编程实现创新想法,为社会带来便利,也是他们内心深处的甜蜜来源。 三、苦——加班与压力 程序员的苦,莫过于无休止的加班和高...
工作日志是程序员日常工作中不可或缺的一部分,它可以帮助程序员更好地管理自己的时间、提高工作效率、记录工作进度、总结工作经验等。本文档是一个程序员工作日志示例,旨在帮助程序员更好地管理自己的工作,提高...
程序员简历模板10份--蓝色主题 各不相同 程序员简历模板10份--蓝色主题 各不相同 程序员简历模板10份--蓝色主题 各不相同 程序员简历模板10份--蓝色主题 各不相同 程序员简历模板10份--蓝色主题 各不相同 程序员简历...
介绍了程序员如何进一步进阶提升自己能力的转载文档!真是有效,字字珠玑,大家快来下载啊!
程序员简历模板10份--蓝色主题 各不相同 程序员简历模板10份--蓝色主题 各不相同 程序员简历模板10份--蓝色主题 各不相同 程序员简历模板10份--蓝色主题 各不相同 程序员简历模板10份--蓝色主题 各不相同 程序员简历...
《程序员》2004 第10期 PDF
【程序员修身养性的十大原则】是针对IT从业者提升个人素养和职业发展的重要指南。这些原则不仅关乎编程技能的提升,更关乎心态调整、人生观的塑造,旨在帮助程序员在快速发展的科技环境中保持竞争力,同时平衡工作与...
10x程序员工作法笔记
1. **设计原则与模式**:书中可能会介绍如单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)、依赖倒置原则(DIP)等面向对象设计的基本原则,以及工厂模式、单例模式、观察者模式等经典设计...
在文档中提出程序员的生涯是否是一碗青春饭的观点,这实际上涉及到IT行业快速变化的特性,以及程序员如何保持自己的竞争力。摩尔定律是指计算机技术每隔一定时间就会翻倍更新,对于程序员而言,这意味着需要持续学习...
程序员从初级到中级10个秘诀程序员从初级到中级10个秘诀程序员从初级到中级10个秘诀程序员从初级到中级10个秘诀程序员从初级到中级10个秘诀程序员从初级到中级10个秘诀程序员从初级到中级10个秘诀程序员从初级到中级...
【程序员个性电脑桌面壁纸】这一主题,其实涵盖了两个主要方面:一是程序员文化,二是电脑桌面壁纸的个性化选择。这两者都是IT行业中与个人工作环境和精神风貌紧密相关的元素。 首先,我们来谈谈程序员文化。程序员...
多色主题-程序员简历模板 各不相同10份 多色主题-程序员简历模板 各不相同10份 多色主题-程序员简历模板 各不相同10份 多色主题-程序员简历模板 各不相同10份 多色主题-程序员简历模板 各不相同10份 多色主题-程序员...
10. 综合能力:前端程序员通过一年来的学习和锻炼,提高了自己的综合能力,如设计、调试、开发、测试等能力,也提高了自己的独立完成工作的能力。 2021年前端程序员的年终工作总结展示了前端程序员的一年来的经验和...
标题中的“程序员专用编程输入法”指的是专门为程序员设计的特殊输入法工具,旨在提升编码效率。这类输入法通常具有以下特点: 1. **快捷代码输入**:程序员输入法能够通过快捷键、组合键或者自定义短语来快速输入...
java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流...
【程序员考试试题---程序员考试教程】是一系列针对程序员资格认证的...通过对这些试题的反复练习和复习,考生可以有效提升自己的编程技能和应试能力,更好地应对程序员资格认证考试,为自己的职业生涯铺设坚实的基础。
这一法则提醒程序员不要过度设计,只实现当前需求,避免浪费时间和资源在可能永远不会用到的功能上。 2. **DRY(Don't Repeat Yourself)**:不要重复自己。这意味着代码应保持模块化和可重用,避免复制粘贴代码,...
程序员项目交接文档概要 IT 项目交接文档概要是程序员在项目交接过程中的重要文件,它对项目的开发、测试和维护起着至关重要的作用。本文档概要将对程序员项目交接文档的主要内容进行概要介绍。 人事模块是程序员...