讀程序員之禪

寫在之前

如需轉(zhuǎn)載,請注明出處。如有侵權(quán)或者其他問題,煩請指正。

作為一個工科院校的工科生,科研、學習中經(jīng)常需要編寫、開發(fā)程序,并且大多數(shù)的人在離開這所學校的時候,會繼續(xù)從事相關方面的職業(yè)。所以,在一次瀏覽圖書館的時候,無意之中接觸到了這本書《程序員之禪》,并本著了解前人在職業(yè)之中所遇到的問題,尋找職業(yè)之路的燈塔的目的,決定了這本書的進一步深入了解。

《程序員之禪》的作者是Christian,是一名德國程序員老兵,深諳程序員的喜怒哀樂。他原本是一名牙科技師,因為德國的醫(yī)改政策,丟掉了工作。失業(yè)之后成為一名公務員,并自學了編程。在經(jīng)過一些項目之后,在一個偉大的公司成為一名實習生,待遇卻不及一名初級的程序員。生活需要他努力工作才能有一定的收入,這段時間他早上6點起床,去做白天公司的工作,下午6點回家做一些承接的項目以賺到外快。完成培訓之后,不料該公司卻破產(chǎn)了。此時,他仍然是身無分文,好不容易找到一家大咨詢公司并簽了約。因為該公司的項目又在異地,每周往返就需要12小時。項目混亂不堪,在清理代碼的時候,一不小心就會破壞代碼,所以工作的時候需要精神高度緊張。大量開發(fā)者離開了公司。兩年之后項目組換到了離家近的地方,但是生活并沒有因此變得好起來,反而更加早出晚歸了。瘋狂編程的后遺癥就是晚上做夢的時候都會在編寫代碼。早上5點,醒了,他嘗試坐下來,使自己的大腦停止思考一會,沒過多久就安靜下來了。以此,作者開始禪修之路。Christian的內(nèi)心發(fā)生了一些改變,禪修之花綻放。他開了自己的公司,重新控制了自己的生活,不再自憐自艾,,能夠心平氣和對待所有事情。

最初的禪來源于佛教。作者提出的禪則是來源與禪宗和生活,這是一種生活態(tài)度和生活方式。在物欲橫流的今天,禪對于所有的程序員有著特殊的意義。

禪,是正思維的做事方式。所謂正思維,就是行事保持善念,滅除嗔怒,不夾雜私念,不應該冷酷地或者攻擊性得對待他人或者傷害他人。思維方式影響一個人的行為。當帶著攻擊性的思維編程時,引入錯誤的風險就大大增加,消極情緒在編程的時候也在大腦中運作。所以思維不正的時候,應該先解決問題,再繼續(xù)工作。

禪,是正定的工作方式。有時候工作的時候會有郵件,或者微信信息,抑或是和同事愉快的聊天,最終也可能因此導致需要一直待到晚上8點才能改完工作。有了正定,就可以更好地設定事務的優(yōu)先順序。保持專注力也是氣禪的一種修煉,降低思維的混亂度,專注于事物的核心,心無旁騖。編寫代碼的時候更是需要如此全力以赴,電子郵件是工作中的一部分,但顯然不是最重要的。不過,工作的時候同事的打擾可能在所難免,這個時候可以預先溝通,和大家在這個專注時間段達成一致。并且保持自己的這種做法,避免電子郵件、微信上的溝通,否則團隊成員可能會不高興,也不會尊重這個專注時間段。

禪,是一種正精進的狀態(tài)。任何人的內(nèi)心可能會遇到侵略,但一個人的一天是美好的還是糟糕的完全取決于個人。保持正精進的狀態(tài),我們應該拋棄消極的心理。努力保持對自己內(nèi)心的控制。擁有一個純凈的內(nèi)心,工作的時候就不會把心情帶入其中。編寫的程序,正確率也會提高。

禪,是一種正念的思想。正念,是認識自己的身體、思想、感情以及外物,看清自己的能力以及周圍事物的變化。當我們清楚地知道自己的能力范圍,可以申請一個合理的項目的時間,不必因為低估難度而在后期經(jīng)常加班。工作的時候,有時候會感到疲倦。如果無視身體的信號,最終會導致疾病甚至過勞死。意識到自己的欲望和情緒,認識自己的身體和心靈,有助于在工作中時刻保持高效的狀態(tài),一旦身體發(fā)出信號,及時調(diào)整。如果覺得累,就需要晚上保證睡眠,,中午午休的時候盡可能騰出時間打個盹。

禪,是苦修。禪,不是獨自在房間中修行,這不是僅靠大腦就能完成的修習。工作、生活的每一秒鐘,都是禪修。作為程序員,需要活在當下,不斷充實完善自己,并且時刻保持一個初學者心態(tài),向別人學習,及時掌握新技術(shù)和新思維才能保證不會被逐漸淘汰。

在閱讀這本書的時候,會讓自己和周圍的世界感到安寧,從而能夠更加高效地學習。

最后附上程序員之禪的10條法則,是作者的原生態(tài)的凝練,遠比我的解讀更加精彩。

http://geek.csdn.net/news/detail/35777

程序員是一份特別辛苦的職業(yè),也是一個承受各種壓力的群體。每周6天工作,無休止的加班,甚至過勞死,程序員的身心健康面臨很大的問題。禪是另一種生活方式,在物欲橫流的今天,禪對于程序員有著特殊的意義和價值。

幾百年前,禪宗大師開示眾生:該說“不”時且開口,生命掌握在你手中。

今天依然如此。禪修并非史蒂夫?喬布斯這樣的業(yè)界精英的專利,你也可以。禪修并非只能在周末進行,任何時候都行,甚至是現(xiàn)在,是的,就在此刻,從程序員禪的10條法則開始。

1、專注

禪修程序員一旦開始工作,就應該全力以赴,做到最好。請不要同時展開多項工作。一次僅做一事就好。一心多用不會讓效率更高,只會使你應接不暇。超負荷工作會讓人疲憊不堪、容易出錯,而且在不同的工作之間頻繁切換也會浪費時間。這是條通用的建議,不僅僅適用于編程工作。

澤木興道禪師教誨:若需睡覺,盡管睡。當決定休息的時候,不要再去想軟件的事,盡管睡覺。要是打算編程,就盡管去編,不要再做白日夢,專注它。一旦你疲倦不堪而無法編程,你就需要睡覺了。即使是以一心多用出名的Stephan Uhrenbacher,也會決定進行單線程式的工作。我有和Setphan類似的體會,于是自己寫了一個時間跟蹤工具—Time & Bill。我的目標是方便地跟蹤時間消耗,包括像打電話這樣的小事?,F(xiàn)在,每日伊始我會創(chuàng)建幾個秒表,鼠標一點就可以跟蹤時間的使用。起初慘不忍睹,有時我在一項工作上只花了幾分鐘就轉(zhuǎn)到另一項工作上?,F(xiàn)在我做得好多了。與番茄工作法類似,我計劃了幾個時段,努力保持專注,其間不閑聊,不睡覺,不去查看AppStore上好玩的新游戲。

2、心無雜念

在動手編程之前,你需要清空頭腦,摒棄一切雜念。如果你有什么麻煩事,不要讓它影響你。在大多數(shù)情況下,煩惱會自行消失。如果雜念太多,無法驅(qū)除,就暫且不要工作。一定努力清除它們。而你一旦開始工作,請暫且忘記身外的世界。

郵件列表中有令人興奮的內(nèi)容?別管它,你可以晚些時候再興奮。關掉所有會占據(jù)你頭腦的垃圾程序:推特、臉書和電郵。你甚至應該將手機設為靜音并放進口袋里?;蛟S你會說這條規(guī)則類似于第1條“專注”,然而這條中還應有一個限制:在工作前或午餐時不要使用這些工具。這些東東把你連接到花花世界,帶來新的煩惱或耗精力玩意兒。

設想一下,當清晨醒來時,通常你的頭腦會很清醒。如果不然,可以做些運動(我喜歡長跑)。等你感到神清氣爽了,請盡所能立馬開展工作。工作結(jié)束后,你才可以去想那些亂七八糟的東西。當歷經(jīng)繁忙而充實的一個工作日后,你會發(fā)現(xiàn)原來那些東西其實并非多么有趣。推特、臉書之類會消耗我們大量的精力,別以為只要分把鐘,絕非如此。

你懂的!

3、初學者心態(tài)(虛懷若谷)

別忘了自己還是初學者的那些日子?;蛘呷绻隳壳熬褪莻€初學者,請堅守這份新人情懷。你所學到的遠遠不夠。如果你已經(jīng)是個專家了,不妨每天也把自己當成初學者。堅持以初學者的心態(tài)來對待技術(shù)問題,這樣你就能更容易去接受那些讓軟件更好的修改,不落俗套。即使那些經(jīng)歷不如你的人也可能會提出一些好主意。有哪一個軟件的兩次構(gòu)建方法會完全相同呢?即使你去復制(仿制)軟件,建構(gòu)過程也不會完全相同。

4、無我

一些程序員存在的大問題是:過于自我。但其實,我們沒有時間過于自我,沒有時間成為一個搖滾明星。

誰能決定你的編程水平呢?你自己?不是。別人?可能吧。你可以拿蘋果跟香蕉比嗎?不能。你是個個體。你無法將整個自己與他人去比較,只能說某些方面的比較。

有個技能有啥可自豪的?你擅長Java?酷,別人是不如你,但他擅長打保齡球,你行嗎?Java比保齡球更重要嗎?恐怕要視具體情況而定。你可能因為Java賺得多一些,但別人可能從生活中獲得了更多的樂趣,因為他有一群保齡球友。

你真的對自己是個極客感到自豪嗎?過于自我的程序員容易固步自封。請保持謙虛,向他人學習,不管他是個老手,還是菜鳥。

澤木興道禪師教誨:“你并不重要。”

自己想想。

5、不要設置職業(yè)目標

如果你總是想得到些什么以至于忽略了當下的生活,你已經(jīng)輸了。對于工作,全力以赴即可,別去管將來很長一段時間后才可能達成的目標。

難道拼命工作20年,就是為了成為公司股東?為什么不能因為樂趣而勤奮工作呢?如果真心喜歡,即使辛苦也會樂在其中?!耙蝗詹蛔鳎蝗詹皇场?,禪宗如是說。

沒有必要等到20年后再去尋找快樂。即使不是公司股東,即使沒有保時捷跑車,現(xiàn)在的你也能擁有快樂。天有不測風云,你可能突然大病一場,可能被解雇,也可能會面臨油盡燈枯(如果你遵循了所有這些忠告,我猜這種可能性會大大降低)。

除非這些不好的事情發(fā)生,否則只管盡力去工作,并樂在其中。沒有理由去和同事攀比收入,也沒有理由對未得到的高薪職位耿耿于懷。

畢竟,所得終將會來。你將收獲美好的回憶,或許還有個好職位—以及那精彩的20年。每一天都是美好的。

如果某天你認為在公司工作已毫無樂趣可言,請果斷離開。千萬不要待在奪走你生活之樂的公司。當然,這要在發(fā)達國家才現(xiàn)實,因為這里的人完全可以自由跳槽。如果你正生活在這樣的優(yōu)越環(huán)境中,果斷下決心吧。盡管離開,無怨無悔。時間不可輕易浪費—生命無常,或許明天它就會消逝。

如果你沒有設定職業(yè)目標,轉(zhuǎn)身離開將會容易很多。

6、敏事慎言

如果沒有什么要說的,就不要去浪費同事的時間。這樣做并不會讓你看上去懦弱無能。在每天的工作中,盡量不要去無端惹人心煩。試想一下,要是每個人都努力做到,那將是一個多么好的工作環(huán)境?。侩m然有時這是不可能的,但請努力做到,你會喜歡的。

如果你不過于自我,就很容易做到謹言,只關注當講之事。不要把你的“個人經(jīng)驗”變成了“自負”。永遠記?。耗闶且晃怀鯇W者。如果他人有好主意,請保持隨喜心。

7、正念、觀照、覺察

是的,你正在工作。但與此同時,你也在呼吸,在生活。即使工作再忙再累,也要傾聽身體發(fā)出的信號。你要知道哪些東西對你是有好處的,所有的,包括像食物等生活必需品。要關心自己及周圍環(huán)境中一切,畢竟,你所喝之水就來自于周邊這條河流。記住,你是為自己而生的—一個人生來,也將一個人死去。即使沒有你,地球依舊轉(zhuǎn)動。

請避免在你不喜歡的那種環(huán)境下工作。如果某類無償工作已經(jīng)讓你毫無樂趣可言,而且又剝奪了你的睡眠時間,那就拒絕它。放下所有那些讓你不快樂的事情。你以為無償工作只停留在理想中嗎?想一想那些在空閑時間編寫開源軟件的人。要是你曾訂閱過某個開源項目的郵件列表,你就會知道那兒有多少激烈爭論(至少有時如此)。如果你覺得它沒有什么樂趣,就不要再做了。我認識不少人,他們在自己不喜歡的開源環(huán)境中依舊貢獻著。利用Time & Bill軟件,我再次跟蹤了自己在開源項目上花的時間,結(jié)果真是令人驚訝。我在那兒浪費了大量的時間,尤其是在許多自己不太喜歡的項目上。

鑒于此,有些人認為只有當有空閑時間,晚上有Xbox玩、有啤酒喝才會快樂。偶爾為之這尚且算是個好主意,但未必在人生的每時每刻這都算是“樂趣”。如果你能避免不喜歡的環(huán)境,請避開它們。話說回來,有時我們確實需要做一些無趣的事。例如,手工將經(jīng)理給的Excel電子表格數(shù)據(jù)復制/粘貼到phpMyAdmin中。這可能要花上幾天,而且無聊至極。這種事沒有樂趣可言,但有時你確實需要去做。你總不能因為被分配一個乏味的任務就辭職。禪僧也不羞于他們的工作。他們凌晨3點起床(有時早一些,有時晚一些,取決于僧院),然后即開始靜坐和勞動(他們甚至將勞作當作禪修的一部分)。或者清掃廁所,或者料理菜園。如果是一名火頭僧,還要做飯。無論做什么,他們都一心一意。沒有痛苦,樂在其中。對他們而言,每一秒都是生命中寶貴的一刻,逝去即永不再回,即便是在掃廁所時。

換言之:停止抱怨,如果你需要復制/粘貼Excel,做就是了。無須為這樣的事情心神不寧,一切都會過去,就讓自己成為最好的Excel復制/粘貼者吧。

要是你在工作中心臟病發(fā)作,有人也許會說:“是的,他真是一個勤勞的員工,甚至在晚上為我免費加班”。沒有人可以指引你去另一個世界,最后一步是由我們自己走的。你無法拿這個世界中的任何東西與另一個世界進行交換。在生命中的每一秒你都要多多保重。如果你死了,人也就沒了,一切成空。但如果你還活著,你就是活生生的一個人。沒有時間可以浪費。

在禪宗中,“觀照”是一個重要的詞匯,并且我認為在各種佛教宗派中都是如此。我無法用言語來表達這個詞所要表達的一切內(nèi)容。要理解“觀照”的方方面面含義是很難的。也許用“覺察”這個詞更好把握一些。每時每刻,你都要覺察自己的所作所為。在你的一生中必須保持正念,否則就是在浪費時間。當然,究竟該怎么做,完全取決于你自己。勉力為之。

8、做自己的老板

是的,某人付你薪水,告訴你需要做什么。而且他還可以解雇你。但這都不是你放棄自己的生活,成為工作狂的理由??傊?,老板對你沒有控制權(quán)。你甚至也可以懷疑你對自己有無控制權(quán)—打住,不要走火入魔。

回到談老板。如果你一味縱容的話,老板可以讓你的生活變得老糟糕。但是有一個解決辦法。如果他要你做一些惡心或有違個人道德底線的事情,你大可說“不”。這會有什么后果?最壞的結(jié)果無非是被他開除。那又如何?如果你生在發(fā)達國家,如果你是一個程序員(要是你正在閱讀這些文字,你大概跑不了),你會找到另一份工作。

我并非說對將CSV數(shù)據(jù)轉(zhuǎn)換為HTML格式之類的任務說“不”。我指的是,一周工作80小時,導致你精神崩潰;你的孩子需要你的照料時;或者僅僅因為老板不喜歡誰就要你開掉他;又或者身為一名咨詢師,卻受雇為核電廠或坦克開發(fā)軟件(有些人可能會說為核電企業(yè)工作好極了,但這違背了我的道德底線,這里只是舉例而已),等等這些,你大可以說“不”。

9、玩物養(yǎng)志

程序員不止是一個程序員。你應該嘗試一些跟計算機無關的事情。在你的閑余時間,可以揚帆出海,去釣魚或潛水,或者靜坐冥想,練練武術(shù),吹吹尺八。不管你做什么,都要盡情盡意,就像在工作時間那般投入。認真去做。愛好不僅僅是愛好,它也展示了你究竟是怎樣的一個人。不要被任何說愛好不重要的人蒙騙?,F(xiàn)在我們有能力擁有愛好。我已經(jīng)錄制多張CD,還寫了幾本科幻小說(后者尚未出版,我還得多加練習)。這些事情塑造了今天的我,并最終導致我參禪,寫成本書。近來我時常練習禪宗尺八,它在我日常生活中占據(jù)重要的地位。

10、淡泊寧靜

花朵再美也不過是一朵花而已,并無特別之處。而你,是一名程序員,也許很優(yōu)秀,那也沒什么特別的。你、我以及生活在這個星球上的其他人,都沒什么兩樣。

你需要吃喝拉撒。當然,你還需要睡覺。很久以后你終究難免一死,你擁有的一切全都會失去。很久以后,甚至金字塔都會消失。你知道建造金字塔的人們的名字嗎?好吧,就算你知道,但這很重要嗎?一點都不。金字塔佇立在那兒,或者不佇立在那兒,有什么特別的呢?

這同樣適用于你的軟件。銀行用你開發(fā)的軟件賺錢,當你離開后,沒有人會再記得你。這本來也沒什么錯,只不過時間流逝,逝者如斯矣。不應該對此感到煩惱。如果你遵循了上面的9條規(guī)則,就會明白:那個優(yōu)秀、有趣的項目已經(jīng)過去了?,F(xiàn)在,是時候繼續(xù)前行專注他事了。

公司因為財務問題關閉了,沒什么大不了的,生活仍將繼續(xù)。Xbox、汽車等并非不可或缺。這個星球上的大多數(shù)人還很貧困,他們不關心Xbox,得到食物甚至只是飲水都會讓他們快樂不已。

那么,為什么你是特別的?因為你命好出生在一個發(fā)達國家?因為你可以編寫代碼?不,沒有什么特別之處。請放棄“我執(zhí)”,自由自在地生活,享受花兒的美色和馨香。當冬天來臨時,不必傷心難過;等春天回歸,亦不必欣喜若狂。不過乃四季交替,順其自然就好。請記住這一點,尤其在有人拒絕你的求職申請時。沒有哪家公司是如此特別,值得你非要得到它的青睞。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 書中講了禪,也講了程序員的禪。 作者作為一名程序員,自習禪后先是發(fā)現(xiàn)自己的生活態(tài)度變化,進而影響了自己的生活。于是...
    mengguoru閱讀 239評論 0 0
  • 本文把程序員所需掌握的關鍵知識總結(jié)為三大類19個關鍵概念,然后給出了掌握每個關鍵概念所需的入門書籍,必讀書籍,以及...
    dle_oxio閱讀 11,403評論 6 244
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,351評論 25 708
  • 庭院深深不知去,小路幽幽通何處。 連綿滂沱的大雨完全不顧及矗立在德州這片粘土地上的一幢幢獨立屋的感受,隨時而來,悄...
    石頭_老吳閱讀 1,003評論 0 1
  • 人,總是被心情左右著,有什么樣的心情,就有什么樣的人生。 生活,總是被夢想包圍著,有多大的夢想,就有多大的希望。 ...
    云峰山云閱讀 657評論 0 0

友情鏈接更多精彩內(nèi)容