1. 程式人生 > >一個程式設計師修煉之道《論程式設計師的自我修養》

一個程式設計師修煉之道《論程式設計師的自我修養》

?wxfrom=5&wx_lazy=1

程式設計師修煉之道階段之:

找到編碼的感覺

經過幾年的積累,逐漸認識了Java,Python。所學的知識當然要圍繞這兩門語言展開,一些框架的學習,經驗的積累,設計模式的學習都圍繞這兩門語言展開。其實學了這麼多,慢慢的發現基礎知識不牢固,很多東西學習也只是皮毛,知其然,而不知其所以然,簡單的說就還是個民工,只能進行簡單的堆砌,想向上走一步:沒門。所以補習理論知識成為好多程式設計師迫在眉睫的問題。

很多程式設計師估計像我一樣,對檔案操作,多執行緒,Socket等的高層次的編碼還停留在理論階段,只是做了一些demo,瞭解了一下API,基本沒有在實際中應用到相關的知識,或者是簡單的實踐了一下。其實我們都停留在寫程式碼的原始階段:簡單的堆砌程式碼,而沒有真的找到寫程式碼的感覺。雖然我自以為看了《重構》,看了《First Head in Design pattern》,《敏捷軟體開發原則,模式與實踐》,《模型驅動設計》等書就可以有所突破,其實我錯了,沒有量變就沒有質變。

尋找編碼的感覺,慢慢的熟悉了各種API後,有一種信手拈來,得來全不費工夫的感受的時候,慢慢的就自然理解了大師書中的知識了,或許你到時候會說:其實這就是我工作中碰到的問題的總結。

所以修煉階段平均每天編碼200行以上,找到編碼的感覺是必須的。

整理總結分享

在學習的過程中,能夠寫讀書筆記放到網上是一個好的習慣。學習的過程中,必定會碰到很多問題,告訴別人你是怎麼解決這些問題的是一種簡單的教,一方面可以讓自己記憶更加深刻,一方面可以傳遞知識。

當然,你學到一定的程度,就需要把知識做一個階段性的總結,不要怕別人笑話,寫出來,分享出去,告訴別人這是我的心得。如果現在讓我做一個設計模式的PPT,我估計會翻閱好多本書來整理相關的知識,對我來說其實是在溫習相關的知識。

我也需要把自己工作中碰到的問題分享到論壇或者是blog上去,例如:效能優化的心得,發現的oracle的bug,發現的Java框架的bug……當別人和我深入討論一些問題的時候,我才發現:自己研究的其實還不透徹,人外有人,天外有天。當我教別人一些東西的時候,自己也學到很多東西。教的過程中會逐漸發現自己的不足,慢慢的自己就成長起來了!

程式設計師自我修養階段:

      今天在改程式,當開啟一個方法的時候,裡面有一堆連續的else if。我數了一下,有超過40個。而且,每個else if裡面,還都有處理過程,或簡單或複雜。看了我當時就想罵娘,再偷懶也搞個switch啊。這個類其實是個html處理的類,在模板也加入特殊標籤,而方法裡這40多個else if的作用是用來逐一判斷特殊標籤輸入的引數並進行處理。以我不深的程式設計經驗看,完全應該可以用反射的方法把輸入引數轉化成類下面的物件或者對應的函式,這樣程式碼要清晰很多很多。

我專門看了下注釋,這孫子沒寫,讓我失去了指著名字大罵的機會。

我突然覺得,一個程式設計師的自我修養第一條應該就是在每個寫過的類裡面加上你的註釋,包括姓名,最好還有聯絡方法。這是一種責任,是程式設計師對其所寫的程式碼的一種必須的責任,當後來的人在檢視修改這些程式碼的時候,當這個可憐的維護人員被程式碼混亂的組織和噁心的結構氣得上竄下跳想砍人的時候,他至少可以指名道姓地一陣亂罵以洩心頭之恨。

無所謂有多少人會同意這個觀點。我知道在現實面對的很多是在不停的趕時間,只要在限定時間內完成,哪怕再爛的程式碼,也可以拿到薪水。但是我還是決定,在接下來我就要面對的那個必須在十月完成的專案裡面,我不會這麼做,不會寫下40個愚蠢的else if,我寧可專案延期哪怕為此丟掉工作,程式設計師也要有所為有所不為。

所以:要想養成良好的程式設計師的自我修養是離不開以下幾點的:

1、迷戀技術,保持對程式碼的熱情

興趣是最好的老師,如果不是最初對程式設計充滿興趣,應該很少有人會選擇程式設計師這個行業,但同時程式設計師是一個有點乏味枯燥的工作。如果你不迷戀技術,對程式碼充滿熱情,那你只能做一個平淡的程式設計師。

2、在實踐中成長,磨礪技術

程式設計師是一個在實踐中成長的職業。你看再多書,聽再多的視訊課,自以為學到很多東西,但正在接觸專案的時候,就兩手發軟,頭腦空白了。最好的提方法,是正在參與到專案中去,最好是能參與從設計到開發到測試到維護一整套的整套流程。

3、加班雖苦但也是提高的過程

虎虎在之前的文章中說過:畢業之後的前三年最為重要,要認認真真鑽研技術,積累經驗,至少能在某一方面成為技術達人。程式設計師加班是很正常的事情,要加班工作,加班學習,同時在這段時間要注意多總結,注意工作方法,合理安排時間,提高工作效率。你現在的付出是為了以後的成功!

4、不怕失敗,學會尋找成就感

新程式設計師由於技術水平、經驗的欠缺,寫出的程式bug多,執行效率低,可能被同事嘲笑(我發現這還是普遍現象),然後被上司責怪,內心充滿有挫折感。要學會自我減壓,相信挫折與失敗只是暫時的,發奮圖強。在工作中要學會尋找成就感,哪怕你只是完成一個小功能,優化了一段程式碼,都是你辛勤付出的結果,是你能力提高的體現。

5、要學會寫文件

不要以為程式設計師只要負責寫程式碼,如果是那樣,你永遠不能有上升的空間了。因為不管是走技術路線,還是管理路線,都離不開文件,方案文件,技術文件,產品介紹文件,管理文件等等,是你瞭解開發流程,產品運營的必由之路。

6、學會複製貼上

現在的開發資料已經非常的充實,遇到難以解決的問題不要過分糾結,為難自己,請開啟搜尋引擎搜尋一下。畢竟,你做的是工作,不是在學校做研究。

7、細節決定成敗

不少程式設計師都有這樣的習慣,好不容易思考出解決問題的方法,迫不及待的把程式碼寫出來,功能也實現了,立馬提交程式碼完事。殊不知你的程式碼中還有不少細節需要完善,大到記憶體洩露、資源釋放、程式碼是否高效,小到註釋是否規範,都是你必須關注的問題。且不談這些細節問題對你做出來的專案的影響,就是對你程式設計習慣的影響也是深遠的。

程式猿要學會讓資料來說話

其實數量只是一種表現的形式,有時候只能簡單的說明你這個人很努力,並不能說明這個人真的很強。我們追求的是資料的結果:帶來了什麼樣的質量!

以前寫blog,就是簡單的積累一下自己的說話,沒有什麼有價值的內容,所以關注的僅僅是自己的朋友而已,雖然也寫了很多,但是沒有什麼變化。當我整理自己以前的分類的時候,我很驚詫的發現自己的關注點怎麼如此之多,面積太大,投入再大,也不會產生多大的壓力,也不會產生什麼成果。現在我只寫 Java,python,mootools,web2.0和我的連載了,其實我感覺還是有點多,有點雜。如果現在讓我拿出點寫blog的資料:pagerank,alexa排名,日均ip,pv等,這將是一個很慘的結果。寫不出什麼有價值的東西,還不如不寫。從寫blog上我開始醒悟了。

編碼這麼長時間,我在論壇上提問少,回覆少,發帖少成為我的基本特徵。如果讓我拿一點資料說明我做了什麼的時候,也將是一個悲慘的結果。很少東西能證明我在編碼上有突破,與眾不同。

當你覺得技術已經OUT的時候,其實你還擁有很多,思路才是根基,要學會利用搜索引擎去查詢你想要的結果。

不能以bug小而不去修復,要懂得千里之堤毀於蟻穴。



資深程式設計師能很清楚的認識了自己,終於知道,自己那份堅持,還有執著、汗水只是讓自己有個回憶