coding的路。。。

來源:互聯網
上載者:User
剛在TopLanguage上發的一帖,回顧自己的編程之路。所有人的貼在這裡,推薦大家看看。

我學程式的路也走得比較詭異,不是那種紮紮實實一步一步往上走的。高中畢業到大一,開始淘騰程式,基本覺得好玩的都去學學,主要是VB,混著還有Html,ASP,ActionScript等等之類。總之是雜七雜八,每樣沾點皮毛。這算是第一個開頭階段。
由於本科學的是飛行器動力(研究飛彈發動機...),只能自己選一些電腦方面的選修課滿足慾望。於是碰到了對我影響極大的金旭亮老師。金老師是那種超負
責超有激情的人,從他身上你可以看到那種對技術的渴望和對學生的負責。我想無論他的學生資質如何,大部分都可以成為一個合格的軟體工程師的。我上了他一年
的課,從VB學到了VB.net。這時候就基本進入第二個階段,屬於蒙頭猛做期,這個階段最大的特點就是實踐脫離理論,快樂高於一切。那時候做東西沒什麼
目標、技術方向、設計之類的,也無所謂什麼技術含量,只是想到做什麼軟體好玩,就寫代碼實現。那時候自己一個人寫了很多的小軟體玩,印象最深的有兩個。一
個是GDI/GDI+做的遊戲(這東西做遊戲還真是夠爛...),將三國無雙的必殺技系統和俄羅斯方塊做在了一起,算起來也是火拚俄羅斯的前輩了,只是個
人感覺比火拚要有意思些^_^(一共寫過兩版,VB版和VB.Net版,本來想做成一個傳統小遊戲+三國人物+人物必殺系統+故事模式的系列,只是代碼寫
太爛帶最後完全無法維護...);還一個就比較猥瑣了,大學我考分最低的課是那該死的物理實驗,在上完那學期課後,我做了一個工具,不僅能幫你快速計算出
實驗結果,甚至可以自動產生所有實驗資料,對錯誤的實驗資料進行校正,保證每一份報告都正確且獨一無二,免去copy被發現之苦,用此來發泄我心中的不滿
(我承認,我瀆職了,我利用我物理課代表的職務之便黑下來大量的正確的實驗報告,在它們協助下我成功的助紂為虐...)。那時候寫代碼真是很開心,沒有所
謂的項目,完全是為了自己的樂趣。
但蒙頭寫多了,人總是會疲憊的,特別是在那種代碼品質下。那時候我很少看編程方面的書,看起來也就是樣本比較多的入門級書,導致的結果就是代碼Bug狂
多,到最後維護至吐血。仔細回想一下,什麼垃圾代碼我都生產過,總結一下,絕對可以拼成一本《代碼大全(錯誤版)》了。於是痛定思痛,開始提高閱讀品質,
狂啃書。系統自學了一下電腦系的大部分課程,讀了一些設計模式方面的書。空閑之餘,隨手寫些小東東練手。那時候的coding樂趣明顯有所下降,很多代
碼都是為了學習而演練的。coding的效率也明顯降低,很多時候寫了就得不夠優雅,就不停的推倒重寫,到最後也沒有寫出一個我覺得有意思的東西來。這時
候就來到了第三個階段,蒙頭苦讀期,其特點是理論沒學到精髓,引導了錯誤的實踐...。
再接著,就是考研。由於本科不是學電腦,考得又是THU,慘烈程度可見一斑。那時候除了啃書就是啃書,偶爾從書堆裡爬出來敲兩行代碼也都是書中的樣本,
混得和剛學程式的小孩似的。這勉強算是第四階段吧。在這個階段,我獲得的東西都不是技術上的,而是心理和學習能力上的,雖然整個考研過程搞得跌宕起伏,但
我想這份付出也算是有所回報的。
再後來,就是實習和畢設。我同學的大四下都過得悠然自得,只有我自己把自己忙得很鬼似的。起早坐一小時車摸到公司coding外包項目一天,晚上摸黑爬回
宿舍繼續coding畢設項目。好不容易做完了畢設,又被老師抓著去做別的項目,順帶著還幫兄弟姐妹做了幾個畢設。導致的結果就是我出色的不睡覺能力在那
個階段有了進一步提升...。算一下,這是第五個階段了。在這階段最重要的有兩點,一個是我扒開門縫窺看了一眼中國外包行業和大學做軟體的現狀,協助我找
到了我的發展方向;還有一個是我總與開始正二八經做C++了,並從此覺得喜歡上了這傢伙,純正的.net血統開始分崩離析,我的coding生涯終於開始
從空中樓閣迴歸地面...。
再再後來,就是現在,算第六個階段。開始一邊讀書一邊做項目,感覺在經過理論脫離實際,實際脫離理論後,總算開始找到節奏,對技術的理解也開始有所提高。
科研項目是C++/MFC的,雖然建立在一片狼藉的千年老妖精項目基礎上,但是相對還是比較獨立,我也可以嘗試一些自己的想法,找到了久違的樂趣。業餘做
Android,蠻好玩的一個東西。看書基本是跟著當下需求走,有時間就看自己儲備的東西。現在再讓我說什麼叫做技術,我會覺得做技術就是要做好兩頭,再
來做中間。一個是基礎的模組,包括純數學知識和電腦相關的演算法,資料結構之類的,這是構架大廈的磚塊,不搞紮實了,大廈搖搖欲墜;另一頭是程式設計的理
念,架構抉擇的思想,設計能力,對程式理解力之類的抽象的東西,只有具備這些素質,才不會一葉障目,不說做大師級的東西,至少不會一看自己明明想做住宅怎
麼做成了豬圈。做好了這些,再往中間走,這就包括語言細節的理解,工具的使用,調試測試等實際工程能力的培養之類的,想成為紮紮實實的實幹者,這些硬條件
時必須努力提升的,而且這些東西都是可以融匯貫通的,不同平台不同語言之間都有著相似的分析方法,不能說是一通百通,至少也是可以舉一反三的。
回顧那麼多年(其實和很多前輩比,著實算不上什麼長...),我覺得,無論你起點如何,經過什麼樣的曲折,只要多學,多想,多練,總歸會殊途同歸(一個收斂的函數^_^...)。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.