[譯文] 程序員的禪修之路

程序之禪
服務器君一共花費了213.977 ms進行了6次數據庫查詢,努力地為您提供了這個頁面。
試試閱讀模式?希望聽取您的建議

做一名禪修程序員意味著什么?那意味著,你要持守我從禪宗 習得的10條戒律,它們與計算機程序員的現代世界息息相關。

早晨,外面下著雨,我發覺自己正坐在辦公桌上琢磨有關高效率工作(efficient working)的問題。在我成為自由職業者之前的那些日子,盡管做了許多工作,然而回首往昔,不過是一片狼藉罷了。

回想2006年我開始禪修之際,當時有好一陣子,這種念頭清晰地浮現在我的腦海里:幾百年前,老禪師就已知曉今天的程序員到底該如何工作。盡管我并不喜歡那些諸如“成為更好的程序員”之類的帖子,但是從那天早上起,我想概括我的一些想法。謹以此文作為自我提醒,但如果你對此有任何想法,歡迎不吝賜教。

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

一旦你已決定處理某項任務,就要盡你所能把它做好。不要同時啟動幾件事。一次只做一件事。一心多用不會使你變得更快,你只不過是在進行多線程式的工作。如果進行多線程式的工作,那么你將變得精疲力竭、錯誤倍出,而且為了從一個任務跳轉到另一任務也會浪費時間。這不僅適用于編程,而且是條通用建議。

澤木興道(Kodo Sawaki)禪師說過:要是你想睡就睡。當你準備睡覺時,就別盤算軟件了。只管去睡。要是你想編碼就編碼。切勿虛度光陰——專心編碼。要是你累得寫不動程序了,那就睡吧!即使像Stephan Uhrenbacher那樣知名的多任務處理者在此時也會決定進行單線程式的工作。我有著與Stephan類似的經歷,并最終寫出了名為Time & Bill的時間跟蹤工具。其目的是跟蹤我的時間,哪怕是像打電話那樣的小任務也可輕松跟蹤?,F在我可以在每天伊始創建幾個秒表,而且只需輕輕一點便可跟蹤我的時間。但是過去的結果卻是場災難:有時直到我移至下一個任務為止,我僅僅在某個任務上工作了幾分鐘?,F在我的情況已有所改善。與番茄工作法類似,我會計劃若干時段,并且在那些時段里全神貫注地工作,不聊天、不瞌睡、不瀏覽應用商店上那些精彩的新游戲。

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

你在開始編寫軟件之前,需清除雜念。暫時達到心無旁騖的境界。要是你遇到什么麻煩,請勿受它影響。大多數情況下,煩惱會煙消云散。要是麻煩嚴重到揮之不去的地步,那就切勿工作。應盡量把問題解決。至少當你著手工作時,要讓自己進入與世隔絕的狀態。

郵件列表中是不是有些精彩內容?就讓它留在那里吧!你可以回頭再來了解那些精彩內容。停掉那些使你心煩意亂的玩意:關閉Twitter、Facebook、以及你的電子郵件。你甚至應該把手機調成靜音,然后放進口袋。你可能會說這與第一點“專心”很相似。然而還有一個限制就是:在工作之前或午餐時,不要使用那些工具。它們把你與外部世界聯系起來,而且很可能會帶來一些新麻煩或是讓你分心的事情。

像這樣想:在大部分時間,當你清早醒來時,頭腦是非常清醒的。否則,就需要借助某些運動讓你清醒(我會進行長跑)。要是你覺得神清氣爽了,就去著手工作并全力以赴地工作。當你不再工作時,再讓塵世的喧囂充斥你的心靈。當你完成一整天的工作之后,你就會發現那也不過如此。Twitter之流會消耗你很多能量。千萬不要認為:就只一小小會兒。而事實并非如此!

你對此已是心知肚明。 (譯注:確實如此!就我而言,只要一打開微博,幾十分鐘、甚至幾個小時轉眼即逝,而手頭的工作卻停滯不前 )。

3. 虛懷若谷(Beginners mind.——菜鳥心態。)

請回憶你是菜鳥的往日?;蚴倾懹浽谛?,設想自己還是只菜鳥。你覺得永遠都學不夠。每天都把自己當成菜鳥看待。總是努力從菜鳥的角度去看待各種技術。你可以接受使你的軟件更好的修正,而且要是你想更輕松一些,那就脫離標準路徑(譯注:正所謂“初生牛犢不怕虎”)。即便是那些經歷與你不同的人,他們也會有些奇思妙想。

你曾經有過兩次以相同方式生成某個軟件的經歷么?即使你復制軟件,也會多少有點兒不一樣。

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

一些程序員有個大問題:他們擁有自我。不過沒時間用于形成自我。更沒時間讓你成為搖滾明星。

到底是誰決定了你作為程序員的質量?是你自己么?當然不是。是其他人么?有可能是。不過你的真地可以把一個蘋果與一根香蕉放在一起比較么?不可以。由于你是獨立的個體,因此你無法拿自己的整個身心與他人進行比較,你只能比較幾個方面。

某個方面根本不能引以為豪。你擅長Java么?那非常好。其他人確實不如你,不過他們更擅長打保齡。是Java比打保齡更重要么?這要視情況而定?;蛟S你用Java賺到更多的錢,不過其他人由于結識他的保齡球友,他們可能擁有更多的生活樂趣。

由于你是名極客,就真地值得驕傲么?擁有自我的程序員不會學習。正所謂“滿招損,謙受益”。世人皆為吾師,不妨同時向高手和菜鳥學習。正如子曰,三人行,必有我師焉。

澤木興道(Kodo Sawaki)禪師說過:你無關緊要——俗話說,別總拿自己當棵蔥,不是誰都拿你熗鍋的。

不妨想一想?。ㄗg注:3、4兩點看似獨立,實則相互呼應,唯有先虛其心,然后慢慢地眼里才能容得下別人,看得到別人的長處,驕橫之氣也能慢慢散去,并真正達到無我境界。)

5. 無欲則剛(There is no career goal.——沒有職業目標。)

如果在你想得到些什么的同時,卻忽視了“當下”的生活,那么你就已經輸掉了這場比賽。只要竭盡所能,無需顧及你可能在很久以后才能達到的目標。

難道歷經千辛萬苦工作20年只為做股東?為什么你不能僅為享受工作之趣而全力以赴呢?其實,努力工作也能樂趣無窮。禪宗有言,一日不作,一日不食。

無需待到20年后再開啟幸福之門。你現在即可幸??鞓?,就算你不是股東、或是沒有開上保時捷也一樣可以幸??鞓?。世事難料,你可能會大病一場,可能會被炒魷魚,也可能心力交瘁(如果你遵循本文講述的所有這些內容,那么我猜發生這種情況的可能性會很低)。

在這些不幸的事發生以前,只要全力以赴地工作并樂在其中就好了。沒必要盯著同事們的收入。沒必要惦記你未得到的很棒的新職位。

畢竟,你終會有所成就。你最終將得到美好的回憶,或許還有個好職位——還有那杰出的20年。每天都是好日子。

如果你曾經直截了當地提到,你覺得在你的公司工作根本就不開心,那么你必須馬上離開。決不要留在奪走你生活中的快樂的公司。當然,人們可以選擇離開只有在發達國家才可能發生。不過要是你正生活在如此良好的環境中,那你就這么做吧。無怨無悔地離開。你沒有時間可以浪費,因為或許你明天就會死去。

一旦你沒有了職業目標,那么離開時便可逍遙自在。?

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

要是你沒什么可說的,就不要浪費其他同事的時間。這樣做并不會使你看上去懦弱無能。每天你工作時,你需要設法做到不讓他人心煩不安。想象一下,如果每人都試著這樣做的話——那應該是個很棒的工作環境吧?盡管有時這是不可能的。但只要努力嘗試,你就會樂意這么做的。

如果沒有形成自我,那么閉嘴就很容易做到,還會謹慎對待你所說的每件事。不要把你的“經驗”與自負相混淆,永遠記?。耗闶侵徊锁B。要是別人有了好主意,就該支持。

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

沒錯,你正在工作。不過與此同時你也正在生活和呼吸。即便你在工作中遇到了一些困難,你也需要聆聽你的身體所發出的信號。你需要了解的那些對你有益的東西。這包括一切,包括譬如食物等生活必需品。你需要關心你自己以及你周圍環境中的一切——因為畢竟你喝的水是奔流不息的河水。因為你只為自己而生。你獨自生活,并且將會獨自逝去。即使沒有你,世界依然生生不息。

要避免在你不喜歡的情境下工作。要避免無償工作,如果那意味著你會覺得很無聊,而且會奪走你休息時間的話。與那些讓你不悅的事物一刀兩斷。難道無償工作聽起來只是個理論么?想想那些在其黃金時間從事開源軟件開發的人們。要是你曾訂閱過某些項目的郵件列表,那么你可能就會知道那里是何其熱鬧(至少有時候會如此)。要是你無法從中體會到樂趣——那就不要再做下去了。我知道有很多人,他們工作在并不喜歡的開源軟件環境之下。此外,我用Time & Bill來跟蹤我花費在開源項目上時間,而且驚訝地發現我居然在那里浪費了如此之多的時間——尤其是在一些我不太喜歡的項目上。

有鑒于此,有些人認為,只有當他們擁有黃金時間,并且整晚與xbox游戲機和啤酒相伴時,才是他們唯一的樂趣。盡管這有時是個好主意,不過那未必在你一生時間里都是“樂趣”。要是你可以避免你不喜歡的情境,那就要避免它們(如上所述)。不過有時需要做些真的很糟糕的事。例如從你經理的Excel表格中手動復制/粘貼原始數據到phpmyadmin中。這項工作可能會花費你數天時間,而且確實很無聊,毫無樂趣可言。不過有時你需要做諸如此類的工作。你不能每當得到一個無聊的任務時就辭職不干。禪僧也不會羞于他們的工作。他們早上4點起床(有時早些,有時晚些,依僧院而定),接下來開始打坐參禪,接下來勞動(他們甚至將勞動視為參禪之法門)。他們有事要做,例如清掃廁所、或者在菜園務農、或者作為火頭僧,他們要燒火做飯。他們全心全意地做事。無論他們做什么,他們做的時候都毫無苦惱,而且他們都(或應該)很高興,因為每秒都是他們生命的瞬間,即便那一秒他們正在清掃廁所也是如此。

話雖如此:停止哭泣,要是你需要復制/粘貼excel,就只管去做好了。不要為此類事情浪費精力,它們都會過去?;蛘咭猿蔀樽詈玫膃xcel復制/粘貼者取而代之。

要是你患有心臟病,人們可能會說:“呃,是的,他確實工作很賣力,他甚至在夜里為我無償工作”。但是沒有人會領你到另一個世界。這最后一步要我們獨自走完。在冥界之中你無法交換任何東西。甚至連個屁也不行。因此這就要取決于在每一秒中你對自己的照顧。要是你沒了也就沒了。不過既然你活著就該好好活著。沒有時間可以浪費,必須爭分奪秒。

在禪宗中,"留心(care)"是個集大成的詞匯(而且我認為在所有的佛教形式中皆如此)。我無法表達我想說的一切。要理解"留心(care)"的不同含義是很難的??赡苣阕詈眠€是使用“覺察(awareness)”一詞。在生命中的每一刻,你必須知道自己在做什么。在你的生命中,你必須時刻保持正念。否則你就會浪費生命。不過當然,這取決于你的所作所為,隨你的便吧!

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

是的,有人付給你薪水。有人告訴你需要做什么,而且他還可以解雇你。但是,沒有理由放棄你自己的生活,或是因公害病??傊?,你的老板無法控制你。即便你對自己可否進行自我管理心存懷疑——但切勿走上這條不歸路。

回來接著談你的老板:要是你允許他控制你,那他可能會把你的生活搞得一塌糊涂。而唯一的出路是,如果要你去做的事會有損健康或是違背你的道德標準,那么請說“不”。接下來會發生什么?最不濟就是他把你解雇。那又怎樣?如果你生活在西方國家,并且是名碼農(當你閱讀此文時,很可能你就是名碼農),那么你將得到另一份工作。

對于將CSV格式的數據轉換為HTML格式等諸如此類的任務,我并不想對它們說“不”。我要說的是,是否每周80小時的工作時間讓你的身體吃不消,或者你覺得你的孩子需要更多的重視;或者你是否被迫解雇某些人,僅僅因為你的老板不喜歡他們;或者你是否是名咨詢師,并且受雇為核電廠或坦克開發軟件(有人可能會說為核電公司工作簡直棒極了——這違背了我的道德標準,并且只是舉例而已)。對于以上情況,你可以說“不”!

9. 玩物明志(Do something else)

程序員不僅僅是程序員。你應該做些與計算機無關的事。在你血氣方剛之時,不妨乘風破浪揚帆遠航、釣魚、潛水。還可以練習冥想、武術、或者演奏尺八(即Shakuhachi,是我國唐代時傳入日本的一種竹笛)。無論你做什么,都要不遺余力。跟你在工作時間的狀態一模一樣。應嚴肅對待。愛好不僅僅是愛好,它還是在展示自我。要是有人說愛好無足輕重,謹防上當受騙!現如今,我們可以嘗試各種各樣的愛好。我已經錄制了幾張個人CD,還創作了幾本科幻小說(不過小說尚未出版,我還得多多練習)。正是這些愛好塑造了現在的我,而且最終引導我練習禪修,并撰寫出此博文。最近我在練習禪宗尺八,它在我的日常生活中占有至關重要的地位。?

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

盡管花兒很漂亮,但只不過是朵漂亮的花——僅此而已。并無任何非凡之處。而你只是個會編程的人?;蛟S你很優秀,但沒有什么與眾不同。你與我、或者這個星球上其他所有人都是同類。

你不僅要吃喝拉撒。當然,還要睡。(最好)在很久以后,你會駕鶴西游,你所創造的一切也將隨之消失。甚至是象征不朽的金字塔很久以后也會消失。你知道那些建造金字塔的人的名字么?即便你真的知道,難道你知道了就那么重要么?并非如此。金字塔依然聳立在那里,或是隨風而逝。平淡無奇。

你的軟件也一樣。銀行正在用你的軟件賺錢。不過在你駕鶴西游之后,沒人會記得你。這沒有任何不妥之處。正是“逝者如斯夫”!你應該對此了無牽掛。如果你正在遵循前9誡生活,那么你會發現最后這項修行既有益又有趣?,F在僅有兩件事,即時間的流逝,以及全神貫注地做事。

要是你的公司因財務問題而關門大吉,那沒什么大不了。生活將會繼續。其實根本無須xbox游戲機、汽車、或是別的東西。由于這個星球上大部分人生活在極度貧困之中。他們根本不在乎xbox游戲機,因為他們很樂意得到一些食物、乃至是水。

所以……你到底為什么與眾不同?難道是因為你有幸出生在西方國家?還是因為你會寫代碼?不,沒有什么與眾不同。你可以放棄自負去自由自在地生活。盡情享受周圍花兒的顏色和香味。當冬季降臨時無需泣不成聲,而春回大地時也不必欣喜若狂。那不過是四季更替罷了。請銘記在心,一旦某人拒絕了你的求職申請,是因為那家公司并未與眾不同到你需要為那份工作而勞心費力。

免責聲明

我不是一名禪僧。我只是正在實踐和學習之中。如果你覺得有些需要深入理解的內容,那么請向你本地的禪僧求教。當然,我會在博客中盡量為你解答,盡管如此,我還只是名初學者。無論如何,我很高興能收到你的評論,并且要是你喜歡此文,可否愿意將本文鏈接發到微博上。感謝閱讀!

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

本文地址:http://www.824886.live/librarys/veda/detail/2436,歡迎訪問原出處。

不打個分嗎?

轉載隨意,但請帶上本文地址:

http://www.824886.live/librarys/veda/detail/2436

如果你認為這篇文章值得更多人閱讀,歡迎使用下面的分享功能。
小提示:您可以按快捷鍵 Ctrl + D,或點此 加入收藏。

大家都在看

閱讀一百本計算機著作吧,少年

很多人覺得自己技術進步很慢,學習效率低,我覺得一個重要原因是看的書少了。多少是多呢?起碼得看3、4、5、6米吧。給個具體的數量,那就100本書吧。很多人知識結構不好而且不系統,因為在特定領域有一個足夠量的知識量+足夠良好的知識結構,系統化以后就足以應對大量未曾遇到過的問題。

奉勸自學者:構建特定領域的知識結構體系的路徑中再也沒有比學習該專業的專業課程更好的了。如果我的知識結構體系足以囊括面試官的大部分甚至吞并他的知識結構體系的話,讀到他言語中的一個詞我們就已經知道他要表達什么,我們可以讓他坐“上位”畢竟他是面試官,但是在知識結構體系以及心理上我們就居高臨下。

所以,閱讀一百本計算機著作吧,少年!

《Head First設計模式(中文版)》 弗里曼 (作者), 等 (作者)

《Head First設計模式》(中文版)共有14章,每章都介紹了幾個設計模式,完整地涵蓋了四人組版本全部23個設計模式。前言先介紹這本書的用法;第1章到第11章陸續介紹的設計模式為Strategy、Observer、Decorator、Abstract Factory、Factory Method、Singleton,Command、Adapter、Facade、TemplateMethod、Iterator、Composite、State、Proxy。最后三章比較特別。第12章介紹如何將兩個以上的設計模式結合起來成為新的設計模式(例如著名的MVC模式),作者稱其為復合設計模式(這是作者自創的名稱,并非四人組的標準名詞)。

更多計算機寶庫...

云南快乐十分走势一定牛 十一运夺金开奖号码 捕鱼大师安卓官网下载 怎么买指数股票 山东11选5的最好方法 微乐麻将辅助器ios免费版 龙王捕鱼游戏 在线股市行情 富贵棋牌源码 连云港股票股吧 快乐八-首页