做一名禪修程序員意味著什么?那意味著,你要持守我從禪宗 習得的10條戒律,它們與計算機程序員的現代世界息息相關。
早晨,外面下著雨,我發覺自己正坐在辦公桌上琢磨有關高效率工作(efficient working)的問題。在我成為自由職業者之前的那些日子,盡管做了許多工作,然而回首往昔,不過是一片狼藉罷了。
回想2006年我開始禪修之際,當時有好一陣子,這種念頭清晰地浮現在我的腦海里:幾百年前,老禪師就已知曉今天的程序員到底該如何工作。盡管我并不喜歡那些諸如“成為更好的程序員”之類的帖子,但是從那天早上起,我想概括我的一些想法。謹以此文作為自我提醒,但如果你對此有任何想法,歡迎不吝賜教。
1. 一心不亂(Focus——集中精神)
一旦你已決定處理某項任務,就要盡你所能把它做好。不要同時啟動幾件事。一次只做一件事。一心多用不會使你變得更快,你只不過是在進行多線程式的工作。如果進行多線程式的工作,那么你將變得精疲力竭、錯誤倍出,而且為了從一個任務跳轉到另一任務也會浪費時間。這不僅適用于編程,而且是條通用建議。
澤木興道(Kodo Sawaki)禪師說過:要是你想睡就睡。當你準備睡覺時,就別盤算軟件了。只管去睡。要是你想編碼就編碼。切勿虛度光陰——專心編碼。要是你累得寫不動程序了,那就睡吧!即使像Stephan Uhrenbacher那樣知名的多任務處理者在此時也會決定進行單線程式的工作。我有著與Stephan類似的經歷,并最終寫出了名為Time & Bill的時間跟蹤工具。其目的是跟蹤我的時間,哪怕是像打電話那樣的小任務也可輕松跟蹤。現在我可以在每天伊始創建幾個秒表,而且只需輕輕一點便可跟蹤我的時間。但是過去的結果卻是場災難:有時直到我移至下一個任務為止,我僅僅在某個任務上工作了幾分鐘。現在我的情況已有所改善。與番茄工作法類似,我會計劃若干時段,并且在那些時段里全神貫注地工作,不聊天、不瞌睡、不瀏覽應用商店上那些精彩的新游戲。