禪道程序員的10條原則

 英文原文: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 會消耗你大部分的能量。你也許會想:就是一分鐘的事情。你錯了,其實不止。線程

  你其實已經意識到了吧。

road wallpaper

 

  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,由於他們對於食物和水更加渴望。

  因此,爲何只有你是獨一無二的?僅僅由於你很幸運的生活在西方?由於你會編程?不,你沒有什麼特別的。你應該讓你的自我感消失,放鬆的生活。享受花朵的香氣和顏色吧,當冬天來臨時不要過於杯水,春天到來時不要過於高興。這是天然規律。當別人否定你的程序時也要這麼寵辱不驚。由於公司並無那麼重要。

  聲明

  我不是一個禪師。我僅僅在學習和練習。若是你認爲有什麼你須要更深刻的瞭解,請教你當地的禪師。固然我能夠試着在這個博客上回答,但我只是個初學者。無論怎樣,我很樂意看到大家的評論,若是你喜歡這篇文章,或者用這篇文章的連接發條推,我會很高興的。謝謝閱讀!

相關文章
相關標籤/搜索