天天看點

我的DotNet學習曆程

   我是一名.Net技術的熱愛者,02年我還在上學的時候學校開設了這門課,當時就非常着迷,那時候開發工具用的是Visual InterDev,雖不及現在的VS.NET功能這般強大,比起EditPlus還是要友善很多,但因為沒有涉及到具體的項目,光靠着書本上的案例,隻是學了點皮毛!        畢業後在一所大專院校的計算機系科學系任教,說實話我從小就讨厭做老師,大學念的也是非師範專業,可最後偏偏做了老師,造物弄人啊。不過現實比我想象中的要好,大學老師空餘時間比較多,可以好好利用多學些知識。       由于大專院校招生時錄取分數線相對較低,剛開始授課的時候總是抱怨學生學不會,咬碎嚼爛了都聽不明白,很惱火!後來慢慢明白了,其實能考上大學的學生都不笨,教學效果不好絕大部分責任在老師,說白了再難的知識點,總能化繁為簡把它講清楚,就看你有沒有花時間去琢磨教學手段和授課的方式。算算到現在任教快五年了,自己也從ASP、HTML、CSS、JavaScript、XML、C#、Asp.Net、軟體工程、設計模式一路學過來,一路教過來,中間也做了不少項目。今天就在這第一篇日志中花些時間整理,總結一下自己的學習曆程,歸納起來主要經曆以下幾個階段:        1、混沌階段:這個階段什麼都學,靜态網頁制作、Potoshop圖象處理、Flash、HTML、JavaScript、Css、Asp、網絡基礎等等,一味的照着書本上做,也不知道具體有什麼用,反正能做出個東西來就很滿意,哪怕是照着書本上的代碼一個字元一個字元的照抄一遍。這個階段總覺得自己要能完整的做出一個東西來很難,什麼都得會,什麼都得學,很累,問題的關鍵是還不知道這些學了今後具體在什麼地方應用,怎麼用?後來我才慢慢知道,學習其實是應該從一個點或一個突破口開始,慢慢擴散,日積月累。而且需要在項目中學,在實踐中不斷補充新知識,才會越學越快、越專越深,而不是等所有的知識都具備了才正式開始,學無止境,永遠不會有準備好的那一天。        2、實戰階段:因為接了一個項目,逼迫要把已學知識應用到實際(事實上一開始就應該這樣做,不過人總是要在摸索中總結失敗,這樣的領悟才會印象深刻),在這個階段,學習的速度明顯加快,問題雖然層出不窮,但在解決問題的過程中能迅速積累經驗,同時養成了查閱文檔資料的習慣、形成了讨論的氛圍,提高了獨立解決問題的能力,收獲很多。        3、反思階段:做了一些項目以後,程式設計的領悟能力和程式設計的速度是提高了,但随着時間的推移,原先做的一些項目開始出現一些問題,不停的需要調錯或增加新的功能,有些問題更是牽一發而動全身,動也不能動,維護成本太高,有時候一調試就是一下午,恨不得推翻了重寫。那些日子最怕的就是接到客戶的電話,聽到手機鈴聲心都要咯噔一下。這個時候的我開始反思自己出現的一些問題:在項目架構上、在程式設計規範上、在團隊協作上、在軟體過程管理上都存在問題,而且學過的各種語言也開始覺得混亂:彙編、VB、JavaScript、C++、Passcal、Java、C#,以及各種技術Asp、Php、Jsp、Asp.Net、Delphi什麼都搞了一點,什麼都沒搞精,總結一下就是:技術方向迷茫、内功不深厚、規範性差、過程管理不熟悉。         4、提高階段:通過反思,我決定主攻DotNet方向,深入研究C#語言,苦修内功,因為我覺得我之前所做的都是一些應用層的東西,技術含量不高,是以我決定從“上”“下”兩個方向專研:向下,研究技術的底層,主要是.Net Framework架構設計,了解了細節的實作原理後,程式設計自然會得心應手;向上,學習系統架構方面的知識,主要是設計模式,站在巨人的肩膀上體會程式設計的藝術美。為了能迅速提高,我花了大量的時間精讀大師的作品,如:Jeffrey Richter先生的《.Net架構程式設計》、Gof的《設計模式:可複用面向對象軟體的基礎》、DeJanSunderic的《SQL Server2000存儲過程與XML程式設計》、《代碼大全2》等,還拜讀了部落格園開發者征途系列所有已出版的圖書,這些對我的提高非常大,當然很多知識點一開始看的時候并不太明白,尤其是Jeffrey Richter先生的作品,整整花了一年的時間才看完第一遍,但随着知識的積累,閱讀的速度也明顯提升,視野也開闊了,當然了,技術學習是學的越多,越是覺得自己的知識匮乏。        5、鞏固階段:我常教導我的學生說:一個知識點,看一遍,忘了;做一遍,會了;教别人一遍,才真正懂了。利用教師的職業優勢,把我所了解的知識,用最通俗的表達方式表達給學生,這對我來說是一個很好的鞏固過程。同時,在後來的一些項目的開發過程中,我也下意識的把自己的所學加以應用(不過不能牽強附會),學以緻用,在實踐中細細品位技術的提升給我所帶來的快樂。        另外,我覺得拓寬自己的知識面對我們專研技術會有一些輔助作用!身體是革命的本錢,我自學了中醫基礎和皇帝内經,從年輕的時候就開始養生(我認為老了再做這件事就晚了,那時應該叫治療了),保持好的身體狀态;一些勵志類的書籍可以幫助我們調節抑郁或煩躁的情緒,我個人非常喜歡卡耐基先生的《人性的弱點》和《人性的缺點》這兩本書,反複精讀,并與自己的經曆結合,以求獲得共鳴,期望能讓自己可以在一定程度上駕馭情緒,以保持一個良好的精神狀态;另外閱讀一些金融、管理類的書籍可以提高自己看待問題的高度、提升邏輯思維能力和總結歸納能力,便于自己在授課的時候有更多案例可以用來類比或對比;一些美學的書籍還可以幫助提升自己的審美觀念,當然了,要避免讓自己的眼光由審美變為挑剔。        我屬于80初一代,除去中間學習其他技術的經曆,真正學習DotNet的時間加起來也不過兩三年,技術上跟那些前輩們不可相提并論,他們是我學習的榜樣,但我會繼續前進,也會把自己學習以及教學的一些心得體會跟大家共享,就像蔣金楠前輩在給Anytao的新書《你必須知道的.NET》寫的推薦序所說的那樣:樂于與大家共享是一種胸懷,也是一種能力的展現。        共享,将是我接下來我要進入的第六個學習階段!

   [ 本文分别撰寫在我在部落格園和CSDN的部落格上 ]

繼續閱讀