0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣做快樂的程序員

工程師人生 ? 來源:工程師吳畏 ? 2019-01-04 09:13 ? 次閱讀

我要講的,是怎樣做快樂的程序員。什么是快樂的程序員呢?就是把編程當(dāng)作興趣和愛好的人,享受著編程的快樂的一群人。

優(yōu)秀的程序員都是從快樂的程序員開始的。因為,成為優(yōu)秀的程序員是需要很長時間的磨練的,如果在編程中連快樂都沒有,很難熬到優(yōu)秀程序員的。事實上,做任何事情只要找到了快樂,成功是遲早的事情。

我們每一個程序員都希望在快樂的編程中成長為一名優(yōu)秀的程序員。

一。什么是優(yōu)秀的程序員

先講一個編程大師的傳說:

傳說在很久很久以前,軟件界出過一位大師。他能直接用二進制編寫復(fù)雜高效且無錯的程序;他寫過的機器碼比我們吃過的米還要多;他用眼睛看看閃爍的硬盤燈就知道程序當(dāng)前的運行狀態(tài);他用耳朵聽聽機器的噪音就可以準(zhǔn)確地判斷出錯誤在哪個模塊的哪一行代碼上。

他寫的程序極為精簡,10行代碼就可以頂別人寫的100行代碼,且效率更高。他不輕易給人寫程序,即使千金也難換來他的一行代碼。但他一旦開始寫編碼,那可是瀟瀟灑灑一揮而就,代碼都是一行千金。

他從不困惑于軟件的宏觀體系和微觀結(jié)構(gòu)之中,因為他通曉軟件的本原,預(yù)知軟件的未來。他早已看透軟件世界與現(xiàn)實世界的本質(zhì),面向?qū)ο笾皇撬┐缶畹奈涔χ械囊惶组L拳。他能使用所有的軟件開發(fā)工具,從CASE工具到DEBUG。傳說曾有人親眼看見過他用一把小刀在硬盤表面刻寫操作系統(tǒng)的一段內(nèi)核。

自他死后,軟件界再也沒有出現(xiàn)過真正的大師。世間只殘存一些有關(guān)他的傳奇,一代一代地流傳下去……

可能這個故事編得太玄了。但在我們的心里卻真希望軟件領(lǐng)域能有這樣的神人,或許夢想自己有朝一日也能練出這樣的道行。

大家都知道:軟件是計算機的靈魂!

程序員是軟件的創(chuàng)造者,是計算機靈魂的工程師。而優(yōu)秀的程序員就是用靈魂書寫代碼的人,他們將自己的生命與軟件機融為一體,從而讓計算機世界充滿生機和活力。

優(yōu)秀的程序員往往將編程當(dāng)作藝術(shù),對待自己的每一個程序,就像對待自己的藝術(shù)品一樣。優(yōu)秀的程序員總喜歡對自己的代碼精雕細(xì)琢,他希望自己的代碼都是精品,絕不愿意敷衍了事地將垃圾代碼提供給他人。

優(yōu)秀的程序員大都有很好的人品修養(yǎng)。他們知道自己的長處,也更加知道自己的短處。在外人眼里他是神,但他自己明白他也是會犯錯誤的人。因此,優(yōu)秀的程序員往往會在展現(xiàn)實力的同時,保持著謙虛的美德。偶爾狂妄,那也只是性情中人。

優(yōu)秀的程序員對計算機的本質(zhì)了解很深,喜歡從哲學(xué)上去理解軟硬件的關(guān)系和數(shù)據(jù)代碼的運轉(zhuǎn)規(guī)律。有時候,他們看起來更像個思想家,因為他們想像力非常豐富,小到螞蟻,大到星云,都能聯(lián)系到代碼上。據(jù)說,他們走在大街上也能敏銳地感覺到兩旁大樓里各種計算機的脈沖跳動。

優(yōu)秀的程序員對新技術(shù)有獨特的洞察能力。他們的思想非常超前,總能提前做好準(zhǔn)備,迎接新技術(shù)的到來,而不是被新技術(shù)推著走。即使遇到尚未涉足過的新技術(shù)領(lǐng)域,他們總能很快地把握新技術(shù)的本質(zhì),迅速適應(yīng)該領(lǐng)域的工作,并成為這些技術(shù)的帶頭人。

的確,一名優(yōu)秀的程序員是讓人敬佩和羨慕的。要想成為一名優(yōu)秀的程序員,必須首先要堅信自己一定能行。再經(jīng)過努力地修煉,總有一點你也能成為一名優(yōu)秀的程序員的。

二。程序員的修煉歷程

如果大家都希望成為一名優(yōu)秀的程序員,秘訣只有兩個字:修煉!

程序員為什么要進行修煉呢?先給大家講一個禪宗小故事,這個故事也是于丹講過的:

有一座寺廟的香火很旺,多少年來人們總踩著那些石階來到佛像面前進香。

終于有一天,石階們不服氣了。

石階對佛像說:你和我們都生自同一塊山石,為什么人們總踩在我們的身上,而卻要對你頂禮膜拜?

佛像淡淡地說:因為你們只經(jīng)過六刀就到了今天這個位置,而我卻是經(jīng)過千刀萬剮,才最終成佛。..

同樣,在IT行業(yè)中要想成為一名優(yōu)秀的程序員,必須需要經(jīng)過千錘百煉,才能最終修煉成佛。事實上,程序員必須在IT大潮的實踐中接受改造,不斷取得進步,提高自己能力和修養(yǎng)。由一個幼稚的菜鳥,要變成一個成熟老道的大牛,往往需要經(jīng)過一個很長的修煉的過程。

首先,要想成為一名優(yōu)秀的程序員,必須要熱愛編程工作,完全將編程當(dāng)作自己的興趣和愛好,甚至畢生追求的圣神目標(biāo)。如果你沒有這樣的想法,只是把編程當(dāng)作工作,最好別做程序員,趁早改行。

許多人說,編程是非??菰锓ξ兜氖虑?,程序員必須要耐得住寂寞,能忍受孤獨。但真正的程序員卻感受著編程的快樂,一點都不覺得孤獨和寂寞。他們深信硬件的堅強,享受著軟件的溫柔,在計算機世界里,他們個個都是情種。

許多人說,程序員職業(yè)是一碗青春飯,都是20-30歲的年輕人干的。超過30歲之后呢,就干不動了。是這樣嗎?的確,早些年一些目光短淺的軟件企業(yè)確實為了降低成本,雇傭年輕的低價程序員來完成工作。不是老程序員干不動了,而是挨踢了,所以程序員就叫挨踢一族。

但是,隨著軟件企業(yè)的不斷成熟,老板們發(fā)現(xiàn)程序的開發(fā)和維護都是長期的事情。而有經(jīng)驗的老程序員編寫的代碼更加可靠和簡潔,系統(tǒng)開發(fā)反而會減少很多麻煩事情,因此總體軟件開發(fā)成本反而比雇傭大量年輕程序員要低。不但如此,老程序員而且還能幫企業(yè)帶出一批新人,使得企業(yè)積累的技術(shù)經(jīng)驗?zāi)艿玫絺鞒泻桶l(fā)展。

其實,在發(fā)達國家的程序員,那可是越老越吃香。現(xiàn)在,國內(nèi)越來越多的企業(yè)都愿意招聘有經(jīng)驗的老程序員,甚至某些軟件企業(yè)還專招30歲以上的老程序員。越來越多的軟件企業(yè)認(rèn)識到,由老中青三代人構(gòu)成的開發(fā)團隊,才是真正永遠有戰(zhàn)斗力的團隊。因此,程序員職業(yè)將不再是一碗青春飯,同樣也是可以干一輩子的。

要成為優(yōu)秀的程序員需要有很強的自學(xué)能力,必須不斷地學(xué)習(xí)新技術(shù)和新知識。除了要學(xué)習(xí)前人的理論和經(jīng)驗之外,還必須親自參加到具體的項目中去,在實踐中運用所學(xué)的知識,解決和處理具體問題。

只有這樣,他才能夠逐漸地體驗和認(rèn)識編程的規(guī)律性,才能真正深刻地認(rèn)知編程的本質(zhì),才能發(fā)現(xiàn)自己的弱點和原來不正確的思想、習(xí)慣、成見,并加以改正,從而提高自己編程質(zhì)量,改善編程的方法等。

所以,程序員要改造和提高自己,必須參加具體項目,絕不能離開工作實踐。更為關(guān)鍵的是,程序員必須要有自我學(xué)習(xí)和修煉的主動性,否則再多的項目實踐也無法使自己進步。

經(jīng)常會看到這樣的情況,幾個程序員一起參加一個軟件項目。項目結(jié)束之后,有些程序員提高很快,有的進步很慢,有的卻原地踏步。這是什么原因呢?

提高較快的程序員大都勤奮好學(xué),喜歡探究編程的規(guī)律,并能逐漸總結(jié)出自己的方法。而進步較慢的程序員雖然也勤奮努力,但往往只著眼于具體的代碼,不善于抽象和總結(jié)規(guī)律。而原地踏步的程序員呢,大都是混飯吃的,根本沒有主動學(xué)習(xí)和提高自己的意識。

程序員不但要修煉自己的技術(shù),還要善于修煉自己的人品。不是說編程中的大多數(shù)問題都是人品問題嗎?當(dāng)然,這里說的是程序員性格和人格的修養(yǎng)。

三。程序員的學(xué)習(xí)能力

沒有哪個人是天生就會編程序的。大多數(shù)剛畢業(yè)的學(xué)生走上工作崗位時,常常抱怨學(xué)校教的知識都派不上用場,一切都得重頭學(xué)起。在IT行業(yè),這種現(xiàn)象更加嚴(yán)重,知識更新的頻度和密度是其他行業(yè)沒法比擬的。

學(xué)校的時光也許真的沒有教給我們多少實用的知識,但卻教會我們一個重要的法寶:自學(xué)能力!既然吃了程序員這碗飯,我們就必須牢記一句話:活到老,學(xué)到老。

學(xué)習(xí)有很多方式,讀書是最好的學(xué)習(xí)方法,喜歡讀書的程序員大都是愛學(xué)習(xí)的人。不過,現(xiàn)在的技術(shù)書真是太多太雜,我們不可能有太多時間來讀書,更不可能讀遍所有的書,需要挑選好書來讀。

要挑一本好書也確實不容易,因為現(xiàn)在的技術(shù)書是魚龍混雜。有優(yōu)秀的精品,有濫竽充數(shù)的;有大家名作,也有誤認(rèn)子弟的。一般來說,我們可以購買兩種圖書,一種是可以反復(fù)閱讀的精華,另一種是現(xiàn)用現(xiàn)查的資料類圖書。網(wǎng)上購書是個不錯的方式,可以參考銷量排行榜和其他讀者的評價。

網(wǎng)上學(xué)習(xí)也是非常不錯的方式。只要善于搜索,總能在網(wǎng)上找到需要的文章和資料。最近,人們發(fā)明了一個新詞叫“搜商”,它衡量人的網(wǎng)絡(luò)使用能力。搜商高的人把網(wǎng)絡(luò)當(dāng)作蘊藏寶藏的海洋,他們更能熟練地從垃圾網(wǎng)頁中淘出自己需要的寶貝。這也可以稱作“淘寶能力”,網(wǎng)上學(xué)習(xí)也是需要很強的淘寶能力的。

此外,喜歡做實驗也是非常好的學(xué)習(xí)方式。如果,書上有例子,不妨親手試試。如果,學(xué)習(xí)中有什么新想法,也不妨馬上試試。因為,通過實驗不但可以加深對所學(xué)知識的領(lǐng)悟,還能增加對技術(shù)的感性認(rèn)識,甚至帶來某些意想不到的靈感。

喜歡學(xué)習(xí),是一個程序員最大的優(yōu)點。不過,這學(xué)習(xí)也是大有學(xué)問的。再給大家講一個故事:

孔子曾跟師襄學(xué)琴,師襄就隨手扔給他一首曲子,讓他自已練習(xí)??鬃幽?,把這首曲子都練了十幾天,還是不厭其煩地繼續(xù)練習(xí)。

師襄忍不住了,對孔子說:“你可以再換個曲子練習(xí)了。”

孔子回答說:“我雖然已熟悉了曲調(diào),但還沒有把握曲中的韻律。”

過了好些天,師襄又說:“你已把握到曲中的韻律了,可以換曲子練了?!?/p>

誰知,孔子又說:“我還沒有感受到曲中的人物形象呢?!?/p>

又過了一段時間,師襄又說:“你已經(jīng)感受到曲中的人物形象了,可以換曲了!”

孔子還是說:“我雖已感受到曲中的人物形象,但還沒有達到他的心智境界?!?/p>

終于有一天,師襄看到孔子神情莊重,器宇非凡,志向高遠,仿佛完全變了一個人。

還未等師襄開口,孔子便說:“我感悟到了,曲中人物黝黑高大,目光深邃,心懷天下蒼生,真乃王者氣象,此人必定是周文王!”

師襄聽罷,大吃一驚,因為此曲就叫《文王操》,而他從未對孔子說過!

這是一種怎樣的學(xué)習(xí)精神呢?

這就是一種把知識學(xué)透的精神!不但要學(xué)習(xí)人家的概念和技巧,還要學(xué)習(xí)方式和方法,更要學(xué)習(xí)人家的思想境界。沒有那種刨根問底的精神,是很難將知識學(xué)透的。

學(xué)習(xí)就要刨根問底!任何事情喜歡刨根問底的人,一定能成為優(yōu)秀的程序員!

問大家一個問題:Java為什么要取名為Java?

如果你能回答這個問題,你一定喜歡刨根問底,我也相信你一定比其他人更加理解Java!

如果你回答不上來,就聽我給你講講。

Java一詞來源于印度尼西亞南端的一個島名,即爪哇島,那里以盛產(chǎn)咖啡聞名。當(dāng)SUN公司的開發(fā)人員在給這種語言取名的時候,正好喝著爪哇咖啡,于是Java由此得名。

我怎么知道這個故事呢?不瞞您說,我從來就沒有編過一句Java的代碼,我那是刻意查過資料的。如果我要學(xué)Java,我一定要先搞懂Java是怎么來的,搞懂為什么要發(fā)明Java語言等一系列問題,這其實就是刨根問底。

然后,我會先用記事本寫一個Helloworld程序,看看怎么編譯它,看看它怎么運行,需要哪些文件等等。至于語法語義等,編譯器會告訴我該怎么寫。然后邊學(xué)邊做,看書,查資料。實在搞不明白,我就像大家請教。相信一段時間下來,我也能編出地道的Java程序。

在學(xué)習(xí)過程中,我會以自學(xué)為主,盡量自己解決問題。如果拿一些基礎(chǔ)性的問題向各位高手請教的話,你們一定會回答:自己看書!我要請教各位的問題一定是那種雪天裸體360度空翻跪地拜求,書上沒講,網(wǎng)上查不到的疑難問題。

事實上,這也是向高手和前輩們請教的學(xué)問,也是學(xué)習(xí)方式之一。作為編程高手,他們最喜歡幫助那些經(jīng)過自身實踐的探索和琢磨,快要入門但不得要領(lǐng)的人。這時,只需輕輕點化,新手就能體會到頓悟的快感,而高手也有渡人成佛的成就感。

四。程序員的思想境界

年輕的程序員最喜歡追求新技術(shù)和新潮流,這是無可厚非的。我們應(yīng)該大力鼓勵年輕的程序員學(xué)習(xí)新知識,愛學(xué)習(xí)的都是好同志。

不過,我們不但要學(xué)習(xí)技術(shù)的應(yīng)用,更重要的是學(xué)習(xí)技術(shù)背后所蘊含的思想真諦甚至情感境界。一種新技術(shù)的誕生,一種新潮流的興起,往往背后都有理論思想的指導(dǎo)。只有深刻地理解了這些技術(shù)背后的理論思想,才能更好地把握技術(shù)本身。

比如,面向?qū)ο缶幊淌谴蠹叶荚谟玫募夹g(shù)吧。有的程序員已經(jīng)能用C++或Java或C#寫一個類,定義屬性,編寫方法,然后創(chuàng)建一個對象,就可以調(diào)用它的方法,操縱它的屬性了。這樣,他也可以編寫出面向?qū)ο蟮某绦?。不過,他所看到的只是程序?qū)ο蟆?/p>

深入學(xué)習(xí)和理解面向?qū)ο蟮乃枷胫?,我們就會明白:所有的對象都是對現(xiàn)實世界的抽象,面向?qū)ο缶幊叹褪怯萌祟愖钭匀坏乃季S模式來編寫程序。這時,我們看到的分類就是現(xiàn)實世界的門綱屬科,那些對象也就成了現(xiàn)實世界的活物,屬性和方法也就成了他們的性格和活動。

這時候,我們再寫面向?qū)ο蟮某绦?,就像寫作文一樣。各種命名都很自然地用到現(xiàn)實世界的各種名詞,代碼本身就無需多少注釋,因為它們大都是自注釋的。編寫代碼邏輯,就像編寫現(xiàn)實世界的游戲規(guī)則。整個程序的思路非常清晰明了,代碼也顯得非常簡潔優(yōu)雅,運行效率也自然會高些。

因此,學(xué)會技術(shù)的思想之后會對使用技術(shù)的能力產(chǎn)生一個質(zhì)飛躍,可以更深層次地使用這些技術(shù),而不會被表現(xiàn)的形式所迷惑。事實上,只要掌握了面向?qū)ο笏枷氲谋举|(zhì),即使不用面向?qū)ο蟮恼Z言,也能編寫有面向?qū)ο笏枷氲某绦?。就好像武林高手用樹枝也能玩劍法,雖然樹枝不是劍,但處處體現(xiàn)劍法的精髓。

學(xué)會編程思想就足夠了嗎?如果還想更上一層樓,就得追求編程的境界。境界這個東西很虛,看不見摸不著,但可以從內(nèi)心感覺得到。這種感覺有點像心靈相通的默契,若有若無。編程的境界追求的是人與程序間的心靈相通和情感交融,將自己的身心與程序世界融為一體,與現(xiàn)實世界融為一體。

編程境界這個東西的確有點玄,境界這個東西是因人而異的,每個人的感悟都不同。就像佛教里的禪的思想,什么是禪呢?禪是需要自己體驗的東西,別人說的都不算,是不能用語言來描述的。所謂,不立文字,直指人心。我也是只知皮毛啊。

如果要我說什么是禪?一句話:通過感悟生活,得到生命的快樂。

編程之禪也就是:通過感悟編程的真諦,得到編程的快樂。

編程的境界只有高低之分,而且永遠沒有盡頭。當(dāng)你的編程境界到了一定高度,你的思想將會跳出編程的范疇。你將會發(fā)現(xiàn),軟件的根本實際上是哲學(xué)問題,很多方面都是和其他科學(xué)相通的。就像現(xiàn)代的量子理論發(fā)展到最后,發(fā)現(xiàn)量子論事實上是與哲學(xué)相關(guān)的一樣。這個撤得就遠了,但是喜歡哲學(xué)思考的程序員一定會成為一名優(yōu)秀的程序員。

不過,再高的思想境界也得落到實處。光玩思想境界也不行啊,畢竟大家都在軟件企業(yè)工作,都得道成仙了,誰來編碼呢?

優(yōu)秀的程序員也一定是務(wù)實的程序員。務(wù)實就是理論與實踐相結(jié)合,追求的是完美與現(xiàn)實的平衡。畢竟理想和現(xiàn)實是有差距的,我們只有胸懷遠大理想,面對殘酷現(xiàn)實。

前段時間我還給人講過一句話:

為了玩刀而上戰(zhàn)場的人大都死于刀下,臨死時怪自己的刀沒有選好。

為了殺人而上戰(zhàn)場的人大都成了將軍,臨死時放下屠刀立地成佛了。

所以,程序員要想成佛,不但要追求編程境界,還要學(xué)會在殘酷的現(xiàn)實中拼殺,解決具體的問題才行。

五。程序員的協(xié)作能力

現(xiàn)代軟件軟件開發(fā),都是多人協(xié)作的大規(guī)模軟件開發(fā)。對于大中型應(yīng)用系統(tǒng),特別是大中型網(wǎng)站系統(tǒng),基本上不會產(chǎn)生單打獨斗的軟件英雄了。在現(xiàn)代軟件開發(fā)中,將誕生越來越多的英雄的團隊,而我們這些程序員也只能是這個團隊的一員。

因此,程序員是否具有協(xié)作能力,成了衡量程序員水平的另一個重要指標(biāo)。成員的協(xié)作能力對于一個團隊來說,往往比個人能力更加重要。一個優(yōu)秀的團隊,并不一定要由優(yōu)秀的個體組成。反過來,優(yōu)秀的個體如果缺乏協(xié)作能力,也無法成就一個優(yōu)秀的團隊。

溝通交流能力是最基本的協(xié)作能力。什么是溝通交流能力呢?很簡單,一是能聽得懂讀得懂別人的話,二是能準(zhǔn)確表達自己的思想和看法。不過,這看似簡單的東西,卻不是人人都會的。

有的人并不善于傾聽別人,常常誤解人家的意思。有的人呢,說話都說不清楚,腦袋里裝的東西說不出來也寫不出來,或者說了半天人家無法理解。

為什么會出現(xiàn)這樣的問題呢?據(jù)我多年的觀察和研究,主要有兩個原因,一是沒有耐心,二是沒把話說清楚。什么意思呢?沒有耐心聽人說話,又懶得把話說清楚。

都說傾聽別人是一種美德,可有的人就只顧自己說,喜歡打斷人家說話,甚者人家還沒把話說完就否定別人。所以,我說溝通應(yīng)該從傾聽做起。

我在平常的生活中很喜歡與同事和朋友們交流,他們也都喜歡和我討論問題。一些同事和朋友找我解決一些問題,我總是耐心得傾聽,盡力去理解,不斷地點點頭。常常聽他們說了一半,突然說:啊,我知道問題在哪里了!這種情況我都遇到好多次了。

其實,有的時候只要做到了耐心的傾聽,就能解決問題。

其次是說話不清。這個說話不清并不是指說話的聲音不清晰,而是指話中的用詞不清,說話的邏輯不清,經(jīng)常使用大量的指代詞。

比如我對你說:“點一下這個,就讓它改變顏色?!?,誰能聽懂我在說啥?估計沒人能聽懂。如果我再說:“用鼠標(biāo)右鍵點擊一下網(wǎng)頁上的字體顏色按鈕,就可以讓選中的文本變成相應(yīng)的字體顏色?!?,這下聽懂了。

為什么前一句話他家聽不懂呢?因為我省略了大量的在自己腦海中的景象,沒告訴大家,潛意識中是以自我為中心的?!斑@個”、“它”這些代詞只有自己明白指代的是啥,而聽者并不清楚,自然聽不懂我在說什么?

第二句話能聽懂,是因為我盡量把每個腦海中的事物都說全把細(xì)節(jié)說全。這樣,聽者就能很快進入角色,大家迅速建立起溝通交流的上下文環(huán)境。一旦這個交流的上下文環(huán)境建立起來,再使用一些指代詞也就不會影響溝通過程了。

其實,這些簡單的道理不但適用于語言交流,還適用于客戶調(diào)研,需求分析,書面協(xié)作,等等方面。今后有機會再給大家繼續(xù)探討。

協(xié)作能力還有一個重要的方面,那就是按規(guī)矩辦事。按規(guī)矩辦事就是所謂的規(guī)范化,規(guī)范化是一個優(yōu)秀的團隊的頭等大事。作為一名有協(xié)作精神的程序員,就必須遵守團隊的規(guī)范。

如果你有個人英雄主義,那么,對不起,在你那深刻獨到的見解沒有成為團隊認(rèn)可的規(guī)范之前,你必須保留個人意見。編程的命名規(guī)范,接口形式,注釋要求,開發(fā)管理流程,必須要遵守。

接下來考驗一個人的協(xié)作能力就是:是否有責(zé)任心。也就是對待自己那部分工作的態(tài)度。說得高尚一點兒,就是程序員的職業(yè)美德。責(zé)任心就是對自己所屬的工作負(fù)責(zé),認(rèn)真對待自己那部分代碼,甚至象呵護自己的孩子一樣。其實,責(zé)任心也不是什么沉重的東西,有智慧的程序員總是喜歡將工作當(dāng)作樂趣,大家不妨試試。

以前有句老話說,文人相輕,就是文人之間互相瞧不起。事實上,程序員相輕,也是很普遍的事情。不是經(jīng)常都會聽到程序員說,那人代碼寫得真爛,重構(gòu)人家的代碼還不如自己重寫呢。其實,很多情況下,你留下的代碼也常常被人罵。

在一個團隊中,程序員相輕的現(xiàn)象是會引發(fā)團隊內(nèi)耗的。而具有協(xié)作精神的程序員對待其他程序員的代碼,總是有一顆包容的心。他們更愿意通過改變自己去影響他人,從而讓整個團隊共同進步。

接下來我再給大家講一個故事:

再伸手不見五指的崎嶇山路上,有一群結(jié)伴趕夜路的行人。大家都背著自己的行囊,跌跌撞撞地向前走。由于既難分辨前進的方向,有看不清前后的行人,不是你踩著我的鞋,就是我捧著你的腰。就這樣,一群人艱難地緩慢前行。

就在這時,有人從行囊里取出一個燈籠,點亮之后高高舉起。這小小的燈籠無疑給黑暗中行進的人們帶來了光明。大家借助這微弱的光亮看到了前進的方向,看清前后的行人。人群不再跌跌撞撞,從而有序地行進,大家也加快了前進的步伐。

當(dāng)?shù)诌_目的地之后,人們這才發(fā)現(xiàn)那個點燈籠的人竟然是個瞎子。人們都很奇怪,白天和黑夜對這瞎子來說不都一樣嗎,他干嘛要在黑夜點燈籠呢?正在大家疑惑的時候,有人說:他是為了方便大家才點起燈籠的,我們應(yīng)該感謝他才是!

于是,大家都來到瞎子跟前,感謝他為大家點燈照亮的善心。可瞎子卻不好意思地說:我這樣做其實也是為了我自己,因為人們總是撞我,我點起燈籠只是希望大家能看見我,就不會再撞到我了。

這個就是禪宗里面有名的“瞎子點燈”的故事,照亮自己也就是照亮了別人!

六。做快樂的程序員

一開始我就說過,優(yōu)秀的程序員是從快樂的程序員開始的。

什么是快樂呢?

快樂,誰不知道啊,大家都感受過快樂。但快樂怎么定義呢?

佛說:快樂 = 現(xiàn)實 / 欲望

什么意思呢?就是快樂的大小,與現(xiàn)實條件的多少成正比,與欲望的大小成反比。快樂就是現(xiàn)實對欲望的滿足感,就等于現(xiàn)實除以欲望。你擁有的現(xiàn)實條件越多,錢越多,房越大,車越好,快樂就多;你的欲望越大,解決了溫飽就想嬌妻,剛成為白領(lǐng)就想當(dāng)經(jīng)理,個個都想成為馬云和比爾蓋茨,現(xiàn)實滿足不了,你就不快樂。

當(dāng)然,每個人追求的目標(biāo)不一樣,就會有不同的快樂和痛苦。程序員也一樣,想實現(xiàn)更多功能,想讓程序跑得更快,現(xiàn)實世界的軟硬件條件又滿足不了,客戶的需求又變來變?nèi)ィ_發(fā)確實是一件痛苦的事情。

程序員怎樣使自己快樂呢?最簡單的辦法就是“知足常樂”。知足常樂就是把欲望控制在現(xiàn)實條件可以滿足的基礎(chǔ)之上。在編程中呢,就是把功能控制在可以實現(xiàn)的范圍只能。在軟件工程中呢,就是把用戶需求控制在開發(fā)成本和期限之內(nèi)。

當(dāng)然,要做到知足常樂是很不容易的事情。人們難免會不被各種欲望引誘,程序員也難免不被新技術(shù)吸引,也總想給客戶提供更加強大的軟件功能。要知道,人的欲望總是無窮無盡的,而現(xiàn)實條件總是有限的。佛說,有欲望就有痛苦。

削除欲望會怎樣呢?就是欲望為零。學(xué)過算術(shù)的人都知道,任何數(shù)除以零,等于無窮大。當(dāng)欲望為零的時候,任何一點點現(xiàn)實的滿足,就能帶來無窮的快樂。這可能就是佛所說的極樂吧,似乎有些道理。

再給大家講一個禪宗的故事:

古時候,有個老婆婆在家里供養(yǎng)一位修行的僧人,那時候一般家里人都以供養(yǎng)出家人為榮。在被供養(yǎng)三年之后,這位僧人也儼然有些道行。老婆婆想試探一下這位僧人的修為成就,于是特意找來村里最美的女子來服侍這位僧人。

當(dāng)花枝招展的美女出現(xiàn)在僧人面前時,他一下就把持不住了,一幅驚慌失措六神無主的樣子,所有的修為全都費了。老婆婆見狀非常生氣,抄起笤帚就將僧人猛打一頓。然后讓他重新修行。

又過了三年,這位僧人已經(jīng)修煉得體態(tài)安然,任何世俗都不能擾其心。老婆婆又想試探一下他的修為,又找來那位美女來服侍僧人。

當(dāng)美女再次出現(xiàn)在僧人面前時,這位僧人紋絲不動,對美女視若未見。不管美女如何挑逗他,都不毫不理睬。老婆婆見狀,又抄起笤帚將他痛打一頓,并大罵:沒想到這三年竟養(yǎng)了一個行尸走肉。

于是,又過了三年,僧人終于參透禪機,看起來卻和普通人一樣了。老婆婆又找來美女試探他,他卻一點都不害羞,大大方方地行賞起美女來,和美女相談甚歡。這是后的老婆婆才滿意地點點頭說:你已經(jīng)得道了!

這個故事很有意思吧?

禪是讓人快樂的東西。消除欲望固然可以讓人快樂,但只是自己快樂,修的是小乘佛法。但欲望就像雜草,今天除了,明天有會長,就算用巨石壓住,仍然會從石頭縫里長出來。俗話說“斬草除根”,只有除去這欲望之根,才能消除欲望。那么這欲望之根是啥呢?就是“自我”。

大乘佛法就是放下自我,沒有自我,將自我融入整個宇宙,去體驗生命真正的快樂。禪不但可以讓自己快樂,還會給別人帶來快樂。因為放下了自我,就不再有你我之分,對待他人就和對待自己一樣。將自己的快樂帶給他人,就是普度眾生。

同樣在編程之禪的修煉中,也大致會經(jīng)歷三個階段。第一個階段,總是逃不出編程世界的各種誘惑,程序員都被花花世界給搞迷糊了。這個階段就是“看山是山,看水是水”。

第二個階段呢,程序員已經(jīng)修得很高的當(dāng)行,對各種編程思想和概念都了然于心,并不再為之所動。這個階段就是“看山不是山,看水不是水”。

而第三個階段呢,就是徹底放下了自我,將自己與編程融為一體,和團隊融為一體,和世界融為一體。這時再看編程世界,就是另一個生機勃勃的世界。這個階段又是“看山還是山,看水還是水”,但山是真正的青山,水也是真正的綠水。

這就是返璞歸真的境界。

大家都知道金庸筆下的老頑童周伯通吧。一生的歷練,什么樣的武功沒學(xué)過?什么樣的風(fēng)浪沒見過?都不知多大年紀(jì)了?卻始終象一個孩子般天真爛漫,對什么事情都好奇,任何時候都是快快樂樂的,最后還長出了黑頭發(fā)。返璞歸真啊。

其實呢,我講周伯通是想告訴大家:快樂的程序員還要有一顆童心。

童心會使我們對任何事物都充滿好奇心,這會讓我們在學(xué)習(xí)和探索新知識的過程中,充滿無限的樂趣。童心會讓我們把編程當(dāng)作游戲,編程就像玩過家家,用心呵護自己的程序。童心讓我們跳出狹隘的自私心,與同事快樂地相處。充滿童心真是可以為我們帶來許許多多的快樂,這是快樂程序員的有一個秘訣。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 程序員
    +關(guān)注

    關(guān)注

    4

    文章

    945

    瀏覽量

    29682
收藏 人收藏

    評論

    相關(guān)推薦

    程序員節(jié)視頻創(chuàng)意大賽,用串口屏贏取千元大獎

    10月24日,程序員專屬的節(jié)日里,我們盛大開啟“程序員節(jié)視頻創(chuàng)意大賽”特別活動!這不僅是一場視覺的盛宴,更是智慧與創(chuàng)意的璀璨碰撞。我們誠摯邀請每一位程序員及編程愛好者,拿起你的鏡頭,記錄下那些平凡日子中的不凡瞬間,讓編程的魅力與
    的頭像 發(fā)表于 07-08 10:38 ?72次閱讀
    <b class='flag-5'>程序員</b>節(jié)視頻創(chuàng)意大賽,用串口屏贏取千元大獎

    程序員節(jié)視頻創(chuàng)意盛宴,邀您共襄盛舉!

    10月24日,程序員專屬的節(jié)日里,我們盛大開啟“程序員節(jié)視頻創(chuàng)意大賽”特別活動!這不僅是一場視覺的盛宴,更是智慧與創(chuàng)意的璀璨碰撞。我們誠摯邀請每一位程序員及編程愛好者,拿起你的鏡頭,記錄下那些平凡日子中的不凡瞬間,讓編程的魅力與
    的頭像 發(fā)表于 07-04 09:00 ?67次閱讀
    <b class='flag-5'>程序員</b>節(jié)視頻創(chuàng)意盛宴,邀您共襄盛舉!

    適者生存,程序員最終會流向哪……

    程序員沒有永遠的護城河??!就目前的互聯(lián)網(wǎng)大環(huán)境來看,it行業(yè)已經(jīng)是……
    的頭像 發(fā)表于 03-11 17:11 ?279次閱讀
    適者生存,<b class='flag-5'>程序員</b>最終會流向哪……

    瑞薩Flash程序員V3 發(fā)布說明

    電子發(fā)燒友網(wǎng)站提供《瑞薩Flash程序員V3 發(fā)布說明.pdf》資料免費下載
    發(fā)表于 02-19 09:37 ?1次下載
    瑞薩Flash<b class='flag-5'>程序員</b>V3 發(fā)布說明

    2024程序員的未來方向如何走?還看今朝

    這幾年的IT行業(yè)想必大家已經(jīng)感受到了,Android、Java、前端等等程序員都經(jīng)歷了大廠……
    的頭像 發(fā)表于 02-02 09:45 ?688次閱讀
    2024<b class='flag-5'>程序員</b>的未來方向如何走?還看今朝

    程序員表白程序

    電子發(fā)燒友網(wǎng)站提供《程序員表白程序.rar》資料免費下載
    發(fā)表于 11-21 10:41 ?0次下載
    <b class='flag-5'>程序員</b>表白<b class='flag-5'>程序</b>

    嵌入式程序員應(yīng)知道的幾個基本問題

    電子發(fā)燒友網(wǎng)站提供《嵌入式程序員應(yīng)知道的幾個基本問題.pdf》資料免費下載
    發(fā)表于 11-20 11:21 ?0次下載
    嵌入式<b class='flag-5'>程序員</b>應(yīng)知道的幾個基本問題

    智能低代碼洪流涌動程序員節(jié),華為云 Astro 觸發(fā) 1024 的乘法效應(yīng)!

    ? 從人工智能至量子計算,再到最新的云原生技術(shù),越來越多的榮耀被程序員斬獲。今年 1024 程序員節(jié),華為云 Astro 向全民致敬:「低代碼高產(chǎn)出?拓荒數(shù)字化版圖——人人皆是程序員」,為全球工程師
    的頭像 發(fā)表于 11-13 09:39 ?365次閱讀
    智能低代碼洪流涌動<b class='flag-5'>程序員</b>節(jié),華為云 Astro 觸發(fā) 1024 的乘法效應(yīng)!

    中軟國際鴻蒙生態(tài)實踐成果閃耀程序員節(jié),以智聯(lián)創(chuàng)新碼動程序世界

    10月24-25日,由中國軟件行業(yè)協(xié)會、中軟國際有限公司聯(lián)合主辦的2023中國程序員節(jié)活動在北京展覽館隆重舉辦。作為面向程序員群體的年度盛會,本屆中國程序員節(jié)以“技術(shù)創(chuàng)新與開源合作”為主題,盛邀院士
    的頭像 發(fā)表于 10-27 09:30 ?390次閱讀
    中軟國際鴻蒙生態(tài)實踐成果閃耀<b class='flag-5'>程序員</b>節(jié),以智聯(lián)創(chuàng)新碼動<b class='flag-5'>程序</b>世界

    一文速覽!拓維信息@1024程序員節(jié)精彩看點

    10月23日,第四屆“長沙·中國1024程序員節(jié)”在湖南長沙盛大開幕。自2020年首次啟動以來,1024程序員節(jié)已行至第四屆,以獨特的IT先鋒視角見證了新一代信息技術(shù)與經(jīng)濟社會發(fā)展深度融合的關(guān)鍵過程
    的頭像 發(fā)表于 10-25 08:15 ?469次閱讀
    一文速覽!拓維信息@1024<b class='flag-5'>程序員</b>節(jié)精彩看點

    喜迎1024程序員節(jié)!祝各位開發(fā)者們“碼”到“程”功!

    祝各位開發(fā)者們,節(jié)日快樂! 程序員(Programmer)是從事程序開發(fā)、維護的專業(yè)人員。 對于奮斗在一線的程序員們來說, 10月24日 是一個特殊的日子,這一天是屬于
    的頭像 發(fā)表于 10-24 20:00 ?604次閱讀
    喜迎1024<b class='flag-5'>程序員</b>節(jié)!祝各位開發(fā)者們“碼”到“程”功!

    今天程序員節(jié)長沙出招 全國首個!長沙為程序員打造“1024街”

    今天10月24日,今天程序員節(jié);先給程序員點贊,我們還看到有一些平臺舉辦了程序員節(jié);而在長沙,更有為程序員打造“1024街”。 昨天第四屆“長沙·中國1024
    的頭像 發(fā)表于 10-24 14:29 ?523次閱讀

    程序員節(jié) | 今年程序員們都想要的禮物竟然是……

    原文標(biāo)題:程序員節(jié) | 今年程序員們都想要的禮物竟然是…… 文章出處:【微信公眾號:微軟科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
    的頭像 發(fā)表于 10-24 10:35 ?407次閱讀
    <b class='flag-5'>程序員</b>節(jié) | 今年<b class='flag-5'>程序員</b>們都想要的禮物竟然是……

    “程”力來襲 2023中國程序員節(jié)即將在京開幕

    隨著科技的不斷進步和經(jīng)濟的全球化,編程已成為當(dāng)今社會的重要組成部分,在眾多行業(yè)領(lǐng)域發(fā)揮著重要作用,同時也促進了社會產(chǎn)業(yè)升級和創(chuàng)新突破。程序員通過編程正在深刻影響和改變著千行百業(yè),程序員群體的成長
    的頭像 發(fā)表于 10-24 10:30 ?379次閱讀
    “程”力來襲 2023中國<b class='flag-5'>程序員</b>節(jié)即將在京開幕

    16位MCU和DSC程序員參考手冊

    電子發(fā)燒友網(wǎng)站提供《16位MCU和DSC程序員參考手冊.pdf》資料免費下載
    發(fā)表于 09-25 14:51 ?9次下載
    16位MCU和DSC<b class='flag-5'>程序員</b>參考手冊