让我问你一个问题吧:你上次回家时,大概是一个什么景象,不用太长,只要讲一下进家门前5分钟就好。
你可能会说,这……没什么特别的,我先是右转进入通向我家小区的路,路两旁是常年经营的水果摊,还有一个最近才出现的烤肉摊。路上人很多,经常需要左躲右闪的,沿着路大约走50米,右手边就是小区门口,黑色的铁门还是只开一边,穿过铁门后就到了小区的主路上,因为是个旧小区所以还是水泥地,路两旁的灌木还是没有人修剪,已经超过了大多数小朋友的身高,小区里面的车辆紧紧的挨着灌木,几乎占据了一半的路。再往前走20米就是一个路口,向左转,但必须要走快一点,因为路口旁边的垃圾桶常年都不怎么好闻。再往前走就是小区的自行车棚,我家就在自行车棚旁边的楼里,一单元的入口很好找,因为家住一楼的奶奶把自己的盆栽放在入口的旁边。我家在二楼,也就是说只要上够5+8+8=21级台阶就好了,右手边贴对联的就是我家,开门的时候需要稍微把钥匙抬高一点,这样更容易把门打开。
好吧,其实这是我回家前5分钟的景象,我几乎可以闭着眼睛把上述文字写出来,我相信只要你愿意,你也可以。
那么,我再问另一个问题,如何将你的工作效率提高3倍?
两个问题看起来没什么关联性,但如果你能以回答第一个问题的状态用在工作上,我保证你一定会轻松提高3倍效率。也就是说,你可以尝试一下像描述你回家一样把你要写的代码描述出来,或者说在脑海里面想象出来,然后只要坐在电脑前,把刚才想好的代码“抄一遍”,duang,完成!如果你可以,那恭喜你,你已经掌握了一种特殊技能,也就是我要说的“冥想编程”——在“冥想”状态下完成“编程”,当一切都准备好时,你要做的只是把你想好的代码“抄一遍”而已。
如果你在尝试“冥想编程”时遇到了困难,别灰心,因为至少你可以轻松的描述回家的景象。那为什么你可以容易的描述出回家的场景呢?原因很简答,你非常熟悉你家周围的环境,起码一周五天,一天两次,你瞬间就可以脑补整个过程,一幅一幅流动的画面,帮助你更加流畅的描述整个过程,一切都非常自然,就好像你真的回了一趟家一样。那我们来尝试总结成三点吧(不要问我为什么是三点)
1. 你很熟悉
2. 你很会想象
3. 你很专注
这就是“冥想编程”的三要素!
你很熟悉
对,你必须要非常熟悉,熟悉到每一个细节,就像你闭着眼睛都能记得你家周边的环境一样。项目背景,典型用户,业务逻辑,项目代码结构,模块之间的关系,每个文件的大体内容,设置包括一些繁琐的细节,比如开发常用命令行,IDE快捷键等。这是“冥想编程”的基础,这会帮助你把“冥想”变得更加真实,更多的细节会激发你更加深入的思考,让你专注于当前上下文,否则你会因为某些缺失的东西而停止前进,无法继续冥想。不过这样也好,你可以更准确的发现自己不熟悉的东西,接下来只要尽可能的烂熟于心就好了。
你很会想象
如果我像乔布斯一样有才,那我就……
如果我昨天把手机的电充满,那也许……
如果我没有读研究生就参加工作,那可能……
其实你很会想象,只是你没有发现而已,你的大脑无时无刻不在接受信息的刺激,想象随时随刻都会发生。一句话,一个表情,一种声音,一种感觉,有时只是一个简单的刺激,都可能会引发无限的连锁反应,“脑洞大开”也许就是这个道理。有了想象,静态的图片开始变得鲜活,不连续的记忆片段变得流畅,一切都像被插了电一样。想象是你宝贵的工具,你要做的只是把它用在工作上而已。烂熟于心的细节,加上逼真的想象,会让“冥想变成”更加流畅,更加容易发生。
你很专注
重要的事情说三遍,要专注,要专注,要专注。想象固然很重要,但也经常跑偏,你可能会从今天的早餐想到卖煎饼的阿姨,再想到提着煎饼挤公交被偷钱包的悲惨经历。想象很难控制,就好像你在看这篇文章的时候可能已经开始想象自己用了“冥想编程”之后变得多么牛逼。在“冥想编程”时,不会被打断的想象是最后一步,你需要把整个过程串起来,所以你要专注,而且是异常专注。这通常很难做到,原因很简单:
1. 突然想看看微信朋友圈
2. 接到了诈骗短信或者电话
3. 已经有半个小时没有看公司邮箱了,也许有什么有趣的事情发生
4. 能叫醒装睡的人的快递小哥开始约你
5. 项目组的人突然开始聊些劲爆的八卦
6. ……
这一切都有可能打断你的想象,就好像小心翼翼垒的积木突然倒塌一样,你会突然感到迷茫,之前的想象也许会一股脑的烟消云散。你只能从中断的地方重新开始,甚至从头开始,别无他法。这是“冥想编程”中最困难的一部分,你需要专注,用力抓住你的想象,保证它按照你设计好的方向继续进行下去。努力营造一个安静的环境(或者对别人说我想静静),或者可以小声的重复你想象的事情,声音一方面可以屏蔽一些外界的噪声,另一方面又继续刺激你的想象继续前进,保证整个“冥想”过程的顺利完成。
对我来说,我可以随时随地开始编程,在公交站等车时,干家务时,洗澡时,蹲厕所时,都可以用来编程(当然,我也会控制自己不在开车,过马路,和老婆聊天时开始冥想),第二天上班时,只要把脑子里想好的敲出来就好了,而且因为已经排除了可能遇到的坑或者雷,所以速度和准确率都会大大提高(正可谓是居家旅行,杀人灭口,必备良药)。其实冥想不应该只用在编程上,理论上来说你可以把它用在任何事情上,BA安排一个迭代的story,UX设计某个角色的用户流程,取悦不怎么喜欢你的丈母娘,做一道色香味俱全的美食,或者像我一样写一篇文章。冥想让你更加熟悉你周围的事物,让你拥有更丰富的想象,让你更加专注的思考。我想已经找到了提升我工作效率的方法,你值得拥有。