我或許夠不上什麼頂級程式設計師,但是我在程式設計時享受到了無窮的快樂。作為一個自學成才的黑客,程式設計一直是我的最愛,但是也不是沒有心情低落不想碰程式碼的時候。這就促使我思考我享受程式設計的原因,我希望通過找出原因,從而能不斷激勵自己,保持這種積極狀態,不斷進步。
為挑戰而生
有很多原因導致我們一寫軟體就頭大:
——需要全神貫注。
——特別複雜。
——快速高效的工作成果。
——無論專案難易程度,都需要具備大量知識。
這些年我在程式設計上明白了一件事,如果我所從事的工作不能讓我感覺到一丁點挑戰,那我很難激勵自己去完成任務,工作的分分鐘鍾都像煎熬。
而我最享受的就是,搞定那些看似不可能的任務,比如構建軟體,不僅時間上有緊急要求,而且在精力上還需要付出極大的努力。當然特殊情況除外,比如有的時候因為實際情況需要不得不寫一個簡單的軟體。但是在大多數情況下,只有當我面對具有挑戰性的專案時,我的技能才會甦醒。
戰鬥的心態
我們應對挑戰的方式決定了我們工作的質量。如果對一個專案掉以輕心,隨隨便便搗鼓了一下就算完工了,那你的軟體質量肯定不會過關。在過去的兩年時間裡,在那些不斷修改軟體的日子裡,我悟了:我們需要把自己當成武士,用一種戰鬥的心態,我們的工作才能高效高質量完成。下面我具體講一下怎麼做。
實現戰士心態的第一步是要明白,一旦接受了某個任務,那麼你必須完成——就像古代的軍令狀,不成功便成仁——千萬不要有“試試看”的心理。可能你會問,如果每個都要完成,我就是死一百次也不夠啊?是的,這就需要你在接受任務的時候,能夠有所選擇,不要什麼阿貓阿狗的活都接下來。
如果一個專案你一看就特中意,即使為它累死也甘願,那麼請毫不猶豫地選擇它,而如果不是,那麼它就不值得你花費時間和精力。
實現戰士心態的第二步就是和你的程式碼戰鬥。如果你一直不能解決某個問題,那麼就找到一個切入點並且堅持下來,比如對上一個解決不了的難纏對手,你上去砍上一刀,然後一直砍這個地方,一直砍一直砍,決不半途而廢,這樣無論問題有多複雜,對手有多強悍,通過堅持和不惜一切的決心,我們終能勝利。
在完成那個不可能的任務之後,一種澎湃的滿足感和成就感洶湧而來,這或許就是傳說中工作裡的“高潮”吧。
共享
開源是開發軟體中一個非常強大的激勵因素。在開源環境裡寫程式碼有著難以置信的快感。
關於開源的優點:
——提高程式碼品質。
——鼓勵協作。
——從錯誤中學習從而成長。
——建立自己的名望,和優秀的程式設計師做朋友。
不過千萬不能忘記這個最明顯的好處——我在網上釋出軟體之後,我自己本身就有一個巨大的進步。於我而言,我通過程式碼解決問題之後,心中那得意勁就先不提了哈,並且經過這次練手之後,以後再碰到這類問題,我就再也不怕不怕了。
釋出我的成果,讓我感覺我為這個難題畫上了句號,世界因為我的奉獻而璀璨,當然有沒有人需要我的成果就被我完全忽略了。
不要墨守成規
軟體行業是很殘酷的——每個人都很聰明,每個人都特別自信。但是這也是導致我們不能推陳出新的罪魁禍首。
常常聽到身邊的人說你的這種技術爛或者這種技術早就應該被替換了,這個時候我們往往會很輕易就附和他們所說的,但是有的時候事實卻並不是這樣的。
程式設計應該是一件很美好的事情,每個人的經驗、能力等等都不一樣,所以別人的情況不一定適合你。不要老是做你的朋友、同事的“應聲蟲”,人云亦云,沒有主見——要積極主動去做你自己感興趣的事情。
打個比方,如果僅僅是因為別人告訴你,你不適合雲端計算,那你就真的不涉及這個領域了,那你就真的狗熊掉進洞裡——蠢到底了。
不要去管大家的想法是怎麼樣的——要推陳出新,不可墨守成規。自己的路自己走。喜歡什麼就去嘗試,不要因為人言而禁錮自己,另外還有牢記,即使遇到挫折也要保持樂觀。
閱讀
絕對不可低估閱讀的力量。如果你有時間,請務必多多閱讀那些科技類的書籍。
閱讀這些書籍不光可以增長你的領域知識,最重要的是,你可以認識到那些優秀的程式設計師。如果你想要得到以下正能量,那麼沒有什麼能比閱讀更好:
——有用的技術資訊。
——作者的心態。
——作者的想法,成果和原因。
——最佳做法。
——用多種途徑去完成同一個效果(很多書都有這方面內容)。
——更好的理解我們最常用的技術,以及如何更好的使用這個技術。
我很奇怪,為什麼我的同事和朋友都不怎麼花時間去看這類書籍,要知道,這真的是個能提升自己的相當好的工具和方法。
對我而言,程式設計的樂趣很大一部分是來源於學習新的事物,而學習新事物最好的方法之一就是閱讀,增長自己的知識面。
記憶
寫軟體首先要打好腹稿,需要我們及時分析想法和執行之後的結果。
要謹記,你在做什麼,以及你這麼做的原因。要把你的巨集偉目標印在腦子裡,這樣你才能時刻充滿動力,真正享受程式設計。但是,日復一日的完成細節工作,很容易讓我們遺忘了我們的初衷是什麼。這個時候,如果我們能回頭看,看看我們已有的成就,以此為榮的同時,你怎麼還會不喜歡程式設計呢?
無論多麼沮喪,心情低落,或者恨死了搞不定的程式碼——如果你想讓自己開心起來的話——想想你為什麼要寫程式碼。當我感覺“不會愛了的時候”。我就想想我的目標,一般要不了幾分鐘,我的活力就回來了,然後繼續“不畏艱辛、披荊斬棘”。
和其他程式設計師交流
人生有高峰也會有低谷,其中一個能不斷激勵和鞭策自己的絕佳方法就是,把自己放入到同水平的程式設計師中。
在你的周圍肯定會有極其喜歡學習新生事物,工作能力特強的牛人,和他們在一起會讓你黯然失色。一夥相互支援、志同道合的朋友可以促進你的個人發展,增強工作滿意度。
譯文連結:http://news.html5tricks.com/how-to-fun-programming.html