我要講的,是怎樣做快樂的程序員。什么是快樂的程序員呢?就是把編程當作興趣和愛好的人,享受著編程的快樂的一群人。
優秀的程序員都是從快樂的程序員開始的。因為,成為優秀的程序員是需要很長時間的磨練的,如果在編程中連快樂都沒有,很難熬到優秀程序員的。事實上,做任何事情只要找到了快樂,成功是遲早的事情。
我們每一個程序員都希望在快樂的編程中成長為一名優秀的程序員。
一。什么是優秀的程序員
先講一個編程大師的傳說:
傳說在很久很久以前,軟件界出過一位大師。他能直接用二進制編寫復雜高效且無錯的程序;他寫過的機器碼比我們吃過的米還要多;他用眼睛看看閃爍的硬盤燈就知道程序當前的運行狀態;他用耳朵聽聽機器的噪音就可以準確地判斷出錯誤在哪個模塊的哪一行代碼上。
他寫的程序極為精簡,10行代碼就可以頂別人寫的100行代碼,且效率更高。他不輕易給人寫程序,即使千金也難換來他的一行代碼。但他一旦開始寫編碼,那可是瀟瀟灑灑一揮而就,代碼都是一行千金。
他從不困惑于軟件的宏觀體系和微觀結構之中,因為他通曉軟件的本原,預知軟件的未來。他早已看透軟件世界與現實世界的本質,面向對象只是他博大精深的武功中的一套長拳。他能使用所有的軟件開發工具,從CASE工具到DEBUG。傳說曾有人親眼看見過他用一把小刀在硬盤表面刻寫操作系統的一段內核。
自他死后,軟件界再也沒有出現過真正的大師。世間只殘存一些有關他的傳奇,一代一代地流傳下去……
可能這個故事編得太玄了。但在我們的心里卻真希望軟件領域能有這樣的神人,或許夢想自己有朝一日也能練出這樣的道行。
大家都知道:軟件是計算機的靈魂!
程序員是軟件的創造者,是計算機靈魂的工程師。而優秀的程序員就是用靈魂書寫代碼的人,他們將自己的生命與軟件機融為一體,從而讓計算機世界充滿生機和活力。
優秀的程序員往往將編程當作藝術,對待自己的每一個程序,就像對待自己的藝術品一樣。優秀的程序員總喜歡對自己的代碼精雕細琢,他希望自己的代碼都是精品,絕不愿意敷衍了事地將垃圾代碼提供給他人。
優秀的程序員大都有很好的人品修養。他們知道自己的長處,也更加知道自己的短處。在外人眼里他是神,但他自己明白他也是會犯錯誤的人。因此,優秀的程序員往往會在展現實力的同時,保持著謙虛的美德。偶爾狂妄,那也只是性情中人。
優秀的程序員對計算機的本質了解很深,喜歡從哲學上去理解軟硬件的關系和數據代碼的運轉規律。有時候,他們看起來更像個思想家,因為他們想像力非常豐富,小到螞蟻,大到星云,都能聯系到代碼上。據說,他們走在大街上也能敏銳地感覺到兩旁大樓里各種計算機的脈沖跳動。
優秀的程序員對新技術有獨特的洞察能力。他們的思想非常超前,總能提前做好準備,迎接新技術的到來,而不是被新技術推著走。即使遇到尚未涉足過的新技術領域,他們總能很快地把握新技術的本質,迅速適應該領域的工作,并成為這些技術的帶頭人。
的確,一名優秀的程序員是讓人敬佩和羨慕的。要想成為一名優秀的程序員,必須首先要堅信自己一定能行。再經過努力地修煉,總有一點你也能成為一名優秀的程序員的。
二。程序員的修煉歷程
如果大家都希望成為一名優秀的程序員,秘訣只有兩個字:修煉!
程序員為什么要進行修煉呢?先給大家講一個禪宗小故事,這個故事也是于丹講過的:
有一座寺廟的香火很旺,多少年來人們總踩著那些石階來到佛像面前進香。
終于有一天,石階們不服氣了。
石階對佛像說:你和我們都生自同一塊山石,為什么人們總踩在我們的身上,而卻要對你頂禮膜拜?
佛像淡淡地說:因為你們只經過六刀就到了今天這個位置,而我卻是經過千刀萬剮,才最終成佛。..
同樣,在IT行業中要想成為一名優秀的程序員,必須需要經過千錘百煉,才能最終修煉成佛。事實上,程序員必須在IT大潮的實踐中接受改造,不斷取得進步,提高自己能力和修養。由一個幼稚的菜鳥,要變成一個成熟老道的大牛,往往需要經過一個很長的修煉的過程。
首先,要想成為一名優秀的程序員,必須要熱愛編程工作,完全將編程當作自己的興趣和愛好,甚至畢生追求的圣神目標。如果你沒有這樣的想法,只是把編程當作工作,最好別做程序員,趁早改行。
許多人說,編程是非常枯燥乏味的事情,程序員必須要耐得住寂寞,能忍受孤獨。但真正的程序員卻感受著編程的快樂,一點都不覺得孤獨和寂寞。他們深信硬件的堅強,享受著軟件的溫柔,在計算機世界里,他們個個都是情種。
許多人說,程序員職業是一碗青春飯,都是20-30歲的年輕人干的。超過30歲之后呢,就干不動了。是這樣嗎?的確,早些年一些目光短淺的軟件企業確實為了降低成本,雇傭年輕的低價程序員來完成工作。不是老程序員干不動了,而是挨踢了,所以程序員就叫挨踢一族。
但是,隨著軟件企業的不斷成熟,老板們發現程序的開發和維護都是長期的事情。而有經驗的老程序員編寫的代碼更加可靠和簡潔,系統開發反而會減少很多麻煩事情,因此總體軟件開發成本反而比雇傭大量年輕程序員要低。不但如此,老程序員而且還能幫企業帶出一批新人,使得企業積累的技術經驗能得到傳承和發展。
其實,在發達國家的程序員,那可是越老越吃香。現在,國內越來越多的企業都愿意招聘有經驗的老程序員,甚至某些軟件企業還專招30歲以上的老程序員。越來越多的軟件企業認識到,由老中青三代人構成的開發團隊,才是真正永遠有戰斗力的團隊。因此,程序員職業將不再是一碗青春飯,同樣也是可以干一輩子的。
要成為優秀的程序員需要有很強的自學能力,必須不斷地學習新技術和新知識。除了要學習前人的理論和經驗之外,還必須親自參加到具體的項目中去,在實踐中運用所學的知識,解決和處理具體問題。
只有這樣,他才能夠逐漸地體驗和認識編程的規律性,才能真正深刻地認知編程的本質,才能發現自己的弱點和原來不正確的思想、習慣、成見,并加以改正,從而提高自己編程質量,改善編程的方法等。
所以,程序員要改造和提高自己,必須參加具體項目,絕不能離開工作實踐。更為關鍵的是,程序員必須要有自我學習和修煉的主動性,否則再多的項目實踐也無法使自己進步。
經常會看到這樣的情況,幾個程序員一起參加一個軟件項目。項目結束之后,有些程序員提高很快,有的進步很慢,有的卻原地踏步。這是什么原因呢?
提高較快的程序員大都勤奮好學,喜歡探究編程的規律,并能逐漸總結出自己的方法。而進步較慢的程序員雖然也勤奮努力,但往往只著眼于具體的代碼,不善于抽象和總結規律。而原地踏步的程序員呢,大都是混飯吃的,根本沒有主動學習和提高自己的意識。
程序員不但要修煉自己的技術,還要善于修煉自己的人品。不是說編程中的大多數問題都是人品問題嗎?當然,這里說的是程序員性格和人格的修養。
三。程序員的學習能力
沒有哪個人是天生就會編程序的。大多數剛畢業的學生走上工作崗位時,常常抱怨學校教的知識都派不上用場,一切都得重頭學起。在IT行業,這種現象更加嚴重,知識更新的頻度和密度是其他行業沒法比擬的。
學校的時光也許真的沒有教給我們多少實用的知識,但卻教會我們一個重要的法寶:自學能力!既然吃了程序員這碗飯,我們就必須牢記一句話:活到老,學到老。
學習有很多方式,讀書是最好的學習方法,喜歡讀書的程序員大都是愛學習的人。不過,現在的技術書真是太多太雜,我們不可能有太多時間來讀書,更不可能讀遍所有的書,需要挑選好書來讀。
要挑一本好書也確實不容易,因為現在的技術書是魚龍混雜。有優秀的精品,有濫竽充數的;有大家名作,也有誤認子弟的。一般來說,我們可以購買兩種圖書,一種是可以反復閱讀的精華,另一種是現用現查的資料類圖書。網上購書是個不錯的方式,可以參考銷量排行榜和其他讀者的評價。
網上學習也是非常不錯的方式。只要善于搜索,總能在網上找到需要的文章和資料。最近,人們發明了一個新詞叫“搜商”,它衡量人的網絡使用能力。搜商高的人把網絡當作蘊藏寶藏的海洋,他們更能熟練地從垃圾網頁中淘出自己需要的寶貝。這也可以稱作“淘寶能力”,網上學習也是需要很強的淘寶能力的。
此外,喜歡做實驗也是非常好的學習方式。如果,書上有例子,不妨親手試試。如果,學習中有什么新想法,也不妨馬上試試。因為,通過實驗不但可以加深對所學知識的領悟,還能增加對技術的感性認識,甚至帶來某些意想不到的靈感。
喜歡學習,是一個程序員最大的優點。不過,這學習也是大有學問的。再給大家講一個故事:
孔子曾跟師襄學琴,師襄就隨手扔給他一首曲子,讓他自已練習。孔子呢,把這首曲子都練了十幾天,還是不厭其煩地繼續練習。
師襄忍不住了,對孔子說:“你可以再換個曲子練習了。”
孔子回答說:“我雖然已熟悉了曲調,但還沒有把握曲中的韻律。”
過了好些天,師襄又說:“你已把握到曲中的韻律了,可以換曲子練了。”
誰知,孔子又說:“我還沒有感受到曲中的人物形象呢。”
又過了一段時間,師襄又說:“你已經感受到曲中的人物形象了,可以換曲了!”
孔子還是說:“我雖已感受到曲中的人物形象,但還沒有達到他的心智境界。”
終于有一天,師襄看到孔子神情莊重,器宇非凡,志向高遠,仿佛完全變了一個人。
還未等師襄開口,孔子便說:“我感悟到了,曲中人物黝黑高大,目光深邃,心懷天下蒼生,真乃王者氣象,此人必定是周文王!”
師襄聽罷,大吃一驚,因為此曲就叫《文王操》,而他從未對孔子說過!
這是一種怎樣的學習精神呢?
這就是一種把知識學透的精神!不但要學習人家的概念和技巧,還要學習方式和方法,更要學習人家的思想境界。沒有那種刨根問底的精神,是很難將知識學透的。
學習就要刨根問底!任何事情喜歡刨根問底的人,一定能成為優秀的程序員!
問大家一個問題:Java為什么要取名為Java?
如果你能回答這個問題,你一定喜歡刨根問底,我也相信你一定比其他人更加理解Java!
如果你回答不上來,就聽我給你講講。
Java一詞來源于印度尼西亞南端的一個島名,即爪哇島,那里以盛產咖啡聞名。當SUN公司的開發人員在給這種語言取名的時候,正好喝著爪哇咖啡,于是Java由此得名。
我怎么知道這個故事呢?不瞞您說,我從來就沒有編過一句Java的代碼,我那是刻意查過資料的。如果我要學Java,我一定要先搞懂Java是怎么來的,搞懂為什么要發明Java語言等一系列問題,這其實就是刨根問底。
然后,我會先用記事本寫一個Helloworld程序,看看怎么編譯它,看看它怎么運行,需要哪些文件等等。至于語法語義等,編譯器會告訴我該怎么寫。然后邊學邊做,看書,查資料。實在搞不明白,我就像大家請教。相信一段時間下來,我也能編出地道的Java程序。
在學習過程中,我會以自學為主,盡量自己解決問題。如果拿一些基礎性的問題向各位高手請教的話,你們一定會回答:自己看書!我要請教各位的問題一定是那種雪天裸體360度空翻跪地拜求,書上沒講,網上查不到的疑難問題。
事實上,這也是向高手和前輩們請教的學問,也是學習方式之一。作為編程高手,他們最喜歡幫助那些經過自身實踐的探索和琢磨,快要入門但不得要領的人。這時,只需輕輕點化,新手就能體會到頓悟的快感,而高手也有渡人成佛的成就感。
四。程序員的思想境界
年輕的程序員最喜歡追求新技術和新潮流,這是無可厚非的。我們應該大力鼓勵年輕的程序員學習新知識,愛學習的都是好同志。
不過,我們不但要學習技術的應用,更重要的是學習技術背后所蘊含的思想真諦甚至情感境界。一種新技術的誕生,一種新潮流的興起,往往背后都有理論思想的指導。只有深刻地理解了這些技術背后的理論思想,才能更好地把握技術本身。
比如,面向對象編程是大家都在用的技術吧。有的程序員已經能用C++或Java或C#寫一個類,定義屬性,編寫方法,然后創建一個對象,就可以調用它的方法,操縱它的屬性了。這樣,他也可以編寫出面向對象的程序。不過,他所看到的只是程序對象。
深入學習和理解面向對象的思想之后,我們就會明白:所有的對象都是對現實世界的抽象,面向對象編程就是用人類最自然的思維模式來編寫程序。這時,我們看到的分類就是現實世界的門綱屬科,那些對象也就成了現實世界的活物,屬性和方法也就成了他們的性格和活動。
這時候,我們再寫面向對象的程序,就像寫作文一樣。各種命名都很自然地用到現實世界的各種名詞,代碼本身就無需多少注釋,因為它們大都是自注釋的。編寫代碼邏輯,就像編寫現實世界的游戲規則。整個程序的思路非常清晰明了,代碼也顯得非常簡潔優雅,運行效率也自然會高些。
因此,學會技術的思想之后會對使用技術的能力產生一個質飛躍,可以更深層次地使用這些技術,而不會被表現的形式所迷惑。事實上,只要掌握了面向對象思想的本質,即使不用面向對象的語言,也能編寫有面向對象思想的程序。就好像武林高手用樹枝也能玩劍法,雖然樹枝不是劍,但處處體現劍法的精髓。
學會編程思想就足夠了嗎?如果還想更上一層樓,就得追求編程的境界。境界這個東西很虛,看不見摸不著,但可以從內心感覺得到。這種感覺有點像心靈相通的默契,若有若無。編程的境界追求的是人與程序間的心靈相通和情感交融,將自己的身心與程序世界融為一體,與現實世界融為一體。
編程境界這個東西的確有點玄,境界這個東西是因人而異的,每個人的感悟都不同。就像佛教里的禪的思想,什么是禪呢?禪是需要自己體驗的東西,別人說的都不算,是不能用語言來描述的。所謂,不立文字,直指人心。我也是只知皮毛啊。
如果要我說什么是禪?一句話:通過感悟生活,得到生命的快樂。
編程之禪也就是:通過感悟編程的真諦,得到編程的快樂。
編程的境界只有高低之分,而且永遠沒有盡頭。當你的編程境界到了一定高度,你的思想將會跳出編程的范疇。你將會發現,軟件的根本實際上是哲學問題,很多方面都是和其他科學相通的。就像現代的量子理論發展到最后,發現量子論事實上是與哲學相關的一樣。這個撤得就遠了,但是喜歡哲學思考的程序員一定會成為一名優秀的程序員。
不過,再高的思想境界也得落到實處。光玩思想境界也不行啊,畢竟大家都在軟件企業工作,都得道成仙了,誰來編碼呢?
優秀的程序員也一定是務實的程序員。務實就是理論與實踐相結合,追求的是完美與現實的平衡。畢竟理想和現實是有差距的,我們只有胸懷遠大理想,面對殘酷現實。
前段時間我還給人講過一句話:
為了玩刀而上戰場的人大都死于刀下,臨死時怪自己的刀沒有選好。
為了殺人而上戰場的人大都成了將軍,臨死時放下屠刀立地成佛了。
所以,程序員要想成佛,不但要追求編程境界,還要學會在殘酷的現實中拼殺,解決具體的問題才行。
五。程序員的協作能力
現代軟件軟件開發,都是多人協作的大規模軟件開發。對于大中型應用系統,特別是大中型網站系統,基本上不會產生單打獨斗的軟件英雄了。在現代軟件開發中,將誕生越來越多的英雄的團隊,而我們這些程序員也只能是這個團隊的一員。
因此,程序員是否具有協作能力,成了衡量程序員水平的另一個重要指標。成員的協作能力對于一個團隊來說,往往比個人能力更加重要。一個優秀的團隊,并不一定要由優秀的個體組成。反過來,優秀的個體如果缺乏協作能力,也無法成就一個優秀的團隊。
溝通交流能力是最基本的協作能力。什么是溝通交流能力呢?很簡單,一是能聽得懂讀得懂別人的話,二是能準確表達自己的思想和看法。不過,這看似簡單的東西,卻不是人人都會的。
有的人并不善于傾聽別人,常常誤解人家的意思。有的人呢,說話都說不清楚,腦袋里裝的東西說不出來也寫不出來,或者說了半天人家無法理解。
為什么會出現這樣的問題呢?據我多年的觀察和研究,主要有兩個原因,一是沒有耐心,二是沒把話說清楚。什么意思呢?沒有耐心聽人說話,又懶得把話說清楚。
都說傾聽別人是一種美德,可有的人就只顧自己說,喜歡打斷人家說話,甚者人家還沒把話說完就否定別人。所以,我說溝通應該從傾聽做起。
我在平常的生活中很喜歡與同事和朋友們交流,他們也都喜歡和我討論問題。一些同事和朋友找我解決一些問題,我總是耐心得傾聽,盡力去理解,不斷地點點頭。常常聽他們說了一半,突然說:啊,我知道問題在哪里了!這種情況我都遇到好多次了。
其實,有的時候只要做到了耐心的傾聽,就能解決問題。
其次是說話不清。這個說話不清并不是指說話的聲音不清晰,而是指話中的用詞不清,說話的邏輯不清,經常使用大量的指代詞。
比如我對你說:“點一下這個,就讓它改變顏色。”,誰能聽懂我在說啥?估計沒人能聽懂。如果我再說:“用鼠標右鍵點擊一下網頁上的字體顏色按鈕,就可以讓選中的文本變成相應的字體顏色。”,這下聽懂了。
為什么前一句話他家聽不懂呢?因為我省略了大量的在自己腦海中的景象,沒告訴大家,潛意識中是以自我為中心的。“這個”、“它”這些代詞只有自己明白指代的是啥,而聽者并不清楚,自然聽不懂我在說什么?
第二句話能聽懂,是因為我盡量把每個腦海中的事物都說全把細節說全。這樣,聽者就能很快進入角色,大家迅速建立起溝通交流的上下文環境。一旦這個交流的上下文環境建立起來,再使用一些指代詞也就不會影響溝通過程了。
其實,這些簡單的道理不但適用于語言交流,還適用于客戶調研,需求分析,書面協作,等等方面。今后有機會再給大家繼續探討。
協作能力還有一個重要的方面,那就是按規矩辦事。按規矩辦事就是所謂的規范化,規范化是一個優秀的團隊的頭等大事。作為一名有協作精神的程序員,就必須遵守團隊的規范。
如果你有個人英雄主義,那么,對不起,在你那深刻獨到的見解沒有成為團隊認可的規范之前,你必須保留個人意見。編程的命名規范,接口形式,注釋要求,開發管理流程,必須要遵守。
接下來考驗一個人的協作能力就是:是否有責任心。也就是對待自己那部分工作的態度。說得高尚一點兒,就是程序員的職業美德。責任心就是對自己所屬的工作負責,認真對待自己那部分代碼,甚至象呵護自己的孩子一樣。其實,責任心也不是什么沉重的東西,有智慧的程序員總是喜歡將工作當作樂趣,大家不妨試試。
以前有句老話說,文人相輕,就是文人之間互相瞧不起。事實上,程序員相輕,也是很普遍的事情。不是經常都會聽到程序員說,那人代碼寫得真爛,重構人家的代碼還不如自己重寫呢。其實,很多情況下,你留下的代碼也常常被人罵。
在一個團隊中,程序員相輕的現象是會引發團隊內耗的。而具有協作精神的程序員對待其他程序員的代碼,總是有一顆包容的心。他們更愿意通過改變自己去影響他人,從而讓整個團隊共同進步。
接下來我再給大家講一個故事:
再伸手不見五指的崎嶇山路上,有一群結伴趕夜路的行人。大家都背著自己的行囊,跌跌撞撞地向前走。由于既難分辨前進的方向,有看不清前后的行人,不是你踩著我的鞋,就是我捧著你的腰。就這樣,一群人艱難地緩慢前行。
就在這時,有人從行囊里取出一個燈籠,點亮之后高高舉起。這小小的燈籠無疑給黑暗中行進的人們帶來了光明。大家借助這微弱的光亮看到了前進的方向,看清前后的行人。人群不再跌跌撞撞,從而有序地行進,大家也加快了前進的步伐。
當抵達目的地之后,人們這才發現那個點燈籠的人竟然是個瞎子。人們都很奇怪,白天和黑夜對這瞎子來說不都一樣嗎,他干嘛要在黑夜點燈籠呢?正在大家疑惑的時候,有人說:他是為了方便大家才點起燈籠的,我們應該感謝他才是!
于是,大家都來到瞎子跟前,感謝他為大家點燈照亮的善心。可瞎子卻不好意思地說:我這樣做其實也是為了我自己,因為人們總是撞我,我點起燈籠只是希望大家能看見我,就不會再撞到我了。
這個就是禪宗里面有名的“瞎子點燈”的故事,照亮自己也就是照亮了別人!
六。做快樂的程序員
一開始我就說過,優秀的程序員是從快樂的程序員開始的。
什么是快樂呢?
快樂,誰不知道啊,大家都感受過快樂。但快樂怎么定義呢?
佛說:快樂 = 現實 / 欲望
什么意思呢?就是快樂的大小,與現實條件的多少成正比,與欲望的大小成反比。快樂就是現實對欲望的滿足感,就等于現實除以欲望。你擁有的現實條件越多,錢越多,房越大,車越好,快樂就多;你的欲望越大,解決了溫飽就想嬌妻,剛成為白領就想當經理,個個都想成為馬云和比爾蓋茨,現實滿足不了,你就不快樂。
當然,每個人追求的目標不一樣,就會有不同的快樂和痛苦。程序員也一樣,想實現更多功能,想讓程序跑得更快,現實世界的軟硬件條件又滿足不了,客戶的需求又變來變去,開發確實是一件痛苦的事情。
程序員怎樣使自己快樂呢?最簡單的辦法就是“知足常樂”。知足常樂就是把欲望控制在現實條件可以滿足的基礎之上。在編程中呢,就是把功能控制在可以實現的范圍只能。在軟件工程中呢,就是把用戶需求控制在開發成本和期限之內。
當然,要做到知足常樂是很不容易的事情。人們難免會不被各種欲望引誘,程序員也難免不被新技術吸引,也總想給客戶提供更加強大的軟件功能。要知道,人的欲望總是無窮無盡的,而現實條件總是有限的。佛說,有欲望就有痛苦。
削除欲望會怎樣呢?就是欲望為零。學過算術的人都知道,任何數除以零,等于無窮大。當欲望為零的時候,任何一點點現實的滿足,就能帶來無窮的快樂。這可能就是佛所說的極樂吧,似乎有些道理。
再給大家講一個禪宗的故事:
古時候,有個老婆婆在家里供養一位修行的僧人,那時候一般家里人都以供養出家人為榮。在被供養三年之后,這位僧人也儼然有些道行。老婆婆想試探一下這位僧人的修為成就,于是特意找來村里最美的女子來服侍這位僧人。
當花枝招展的美女出現在僧人面前時,他一下就把持不住了,一幅驚慌失措六神無主的樣子,所有的修為全都費了。老婆婆見狀非常生氣,抄起笤帚就將僧人猛打一頓。然后讓他重新修行。
又過了三年,這位僧人已經修煉得體態安然,任何世俗都不能擾其心。老婆婆又想試探一下他的修為,又找來那位美女來服侍僧人。
當美女再次出現在僧人面前時,這位僧人紋絲不動,對美女視若未見。不管美女如何挑逗他,都不毫不理睬。老婆婆見狀,又抄起笤帚將他痛打一頓,并大罵:沒想到這三年竟養了一個行尸走肉。
于是,又過了三年,僧人終于參透禪機,看起來卻和普通人一樣了。老婆婆又找來美女試探他,他卻一點都不害羞,大大方方地行賞起美女來,和美女相談甚歡。這是后的老婆婆才滿意地點點頭說:你已經得道了!
這個故事很有意思吧?
禪是讓人快樂的東西。消除欲望固然可以讓人快樂,但只是自己快樂,修的是小乘佛法。但欲望就像雜草,今天除了,明天有會長,就算用巨石壓住,仍然會從石頭縫里長出來。俗話說“斬草除根”,只有除去這欲望之根,才能消除欲望。那么這欲望之根是啥呢?就是“自我”。
大乘佛法就是放下自我,沒有自我,將自我融入整個宇宙,去體驗生命真正的快樂。禪不但可以讓自己快樂,還會給別人帶來快樂。因為放下了自我,就不再有你我之分,對待他人就和對待自己一樣。將自己的快樂帶給他人,就是普度眾生。
同樣在編程之禪的修煉中,也大致會經歷三個階段。第一個階段,總是逃不出編程世界的各種誘惑,程序員都被花花世界給搞迷糊了。這個階段就是“看山是山,看水是水”。
第二個階段呢,程序員已經修得很高的當行,對各種編程思想和概念都了然于心,并不再為之所動。這個階段就是“看山不是山,看水不是水”。
而第三個階段呢,就是徹底放下了自我,將自己與編程融為一體,和團隊融為一體,和世界融為一體。這時再看編程世界,就是另一個生機勃勃的世界。這個階段又是“看山還是山,看水還是水”,但山是真正的青山,水也是真正的綠水。
這就是返璞歸真的境界。
大家都知道金庸筆下的老頑童周伯通吧。一生的歷練,什么樣的武功沒學過?什么樣的風浪沒見過?都不知多大年紀了?卻始終象一個孩子般天真爛漫,對什么事情都好奇,任何時候都是快快樂樂的,最后還長出了黑頭發。返璞歸真啊。
其實呢,我講周伯通是想告訴大家:快樂的程序員還要有一顆童心。
童心會使我們對任何事物都充滿好奇心,這會讓我們在學習和探索新知識的過程中,充滿無限的樂趣。童心會讓我們把編程當作游戲,編程就像玩過家家,用心呵護自己的程序。童心讓我們跳出狹隘的自私心,與同事快樂地相處。充滿童心真是可以為我們帶來許許多多的快樂,這是快樂程序員的有一個秘訣。
-
程序員
+關注
關注
4文章
951瀏覽量
29799
發布評論請先 登錄
相關推薦
評論