當(dāng)問及很多人為什么選擇.net方向時,他們經(jīng)?;卮?,因?yàn)槁犂蠋熣f過,當(dāng)你在開發(fā)語言和工具方面不知道怎么選擇的時候,只要跟著微軟走就行了。所以最終他選擇了.net。當(dāng)經(jīng)歷過數(shù)年之后,一些人在.net的某方面成為了專家,有些人精通數(shù)據(jù)庫方面,有些人精通web界面設(shè)計(jì),有些人精通系統(tǒng)架構(gòu)。當(dāng)然,有些人,他們選擇了java,在若干年之后,他們說:java程序系統(tǒng)比.net系統(tǒng)更穩(wěn)定之類。這是個人對某類技術(shù)的偏愛,我們暫不討論。
那么準(zhǔn)備加入.Net陣營的程序員們該如何成長呢?下面就給大家一些建議。
1、要堅(jiān)持你的研究方向
對.net好還是java好的問題,我一向的觀點(diǎn)是:它們都好,它們都是軟件開發(fā)領(lǐng)域的杰出工具,它們都能夠做出非常出色的系統(tǒng)。評價一個系統(tǒng)好與不好的標(biāo)準(zhǔn)不在于開發(fā)語言,而在于系統(tǒng)本身,更多地在于這個系統(tǒng)的開發(fā)者-程序員本身。只要你是一個出色的程序員,你完全可以用你精通的開發(fā)語言開發(fā)出高質(zhì)量的系統(tǒng),而不管這種開發(fā)語言是.net還是java。而如果你過度地徘徊在研究它們到底誰更好的時候,甚至不斷地在二者之間猶豫的時候,你損失的將是寶貴的時間。
2、找到恰當(dāng)?shù)娜腴T途徑
不管做什么事,方法很重要。特別是入門時的方法。正確的入門方法將大大加快你學(xué)習(xí)的進(jìn)度。了解語言本身和前提技術(shù)是最先要做的事情,比如你選擇c#方向的asp.net,那么你必須先學(xué)習(xí)c#基礎(chǔ)語法,和asp.net基礎(chǔ)知識,并實(shí)際寫小程序測試你學(xué)習(xí)的成果。當(dāng)學(xué)會基本語法后馬上找到asp.net的官方入門指導(dǎo)。微軟做得很好的一個地方就是他的幫助系統(tǒng)做得很好。新人容易入門,建議首先從《示例和快速入門教程》開始,這個東西就在在Framework SDK的菜單里面。強(qiáng)烈建議把這個教程全部學(xué)會。
3、盡量縮小研究范圍
.net只是一個大方向,你應(yīng)盡量將自己的研究范圍縮小,比如專注于數(shù)據(jù)庫,專注于xml方面,專注于ajax,只要你專注任何一個區(qū)域深入研究,當(dāng)你成為專家之后,都不會愁飯吃。反之如果你什么都會,而沒有一樣真正精通,那么你可能永遠(yuǎn)只能做一個普通程序員。
4、不斷推翻自己,敢于重構(gòu)
這是對程序質(zhì)量的要求,我認(rèn)為只有不斷地優(yōu)化和改造自己的程序代碼,才能最終寫出高質(zhì)量的程序,做出高質(zhì)量的系統(tǒng),最終使自己的技術(shù)水平提高。通常我會把實(shí)現(xiàn)一個功能的代碼量作為衡量代碼質(zhì)量的標(biāo)準(zhǔn),代碼越少,越精簡,同時又具有良好的可讀性,就越理想。重構(gòu)需要幾個前提:首先是項(xiàng)目時間允許,然后是確實(shí)找到更好的代碼組織邏輯,如一種很好的結(jié)構(gòu)模式,更合理的面向?qū)ο笳{(diào)用方式等等。只要找到更好的解決辦法,那么勇敢地推翻原來的程序框架,重構(gòu)它,經(jīng)過不斷地重構(gòu)后,有一天你回過頭去看之前自己寫的程序時會有一個感嘆:哇,怎么以前我的程序?qū)懙倪@么差啊。
5、多看別人的成果(源代碼)
這個很重要,如果你是一個團(tuán)隊(duì)的新成員,那么看他們寫好的代碼將是非常好的學(xué)習(xí)途徑,因?yàn)槟切┒际浅晒Φ拇a經(jīng)驗(yàn)。如果你還沒有加入團(tuán)隊(duì),是自學(xué),那么找一個好的學(xué)習(xí)網(wǎng)站,多看上面的源代碼也是很好的方式。另外一個強(qiáng)烈推薦的途徑:仔細(xì)研究微軟的.net Starter Kit,個人認(rèn)為這是.net入門學(xué)習(xí)途中最大的收獲。
6、敢于接受新項(xiàng)目挑戰(zhàn),勇于嘗試
主動承擔(dān)公司的開發(fā)任務(wù),敢于在項(xiàng)目中嘗試你最新的研究成果將對你自身技術(shù)水平提高帶來非常大的幫助。記得當(dāng)初我在做一個建站平臺項(xiàng)目時有過這樣的經(jīng)歷,之前公司開發(fā)的項(xiàng)目大都在原有技術(shù)積累下面用成型的框架做開發(fā),那時我也正在學(xué)習(xí)asp.net,不過那個項(xiàng)目我是主程序員,因此在開發(fā)上有很大自主性。于是1.0時我嘗試將所有用戶文章保存在web服務(wù)器的xml文件里,而不是像傳統(tǒng)項(xiàng)目那樣保存在數(shù)據(jù)庫里,以希望減少web服務(wù)器和db服務(wù)器之間的數(shù)據(jù)傳輸。結(jié)果1.0系統(tǒng)實(shí)際運(yùn)行時確實(shí)達(dá)到了我的目的,雖然隨著數(shù)據(jù)量的大量增加,最終導(dǎo)致了IO瓶頸。但通過后來對IO瓶頸的優(yōu)化解決,我在文件系統(tǒng)、服務(wù)器進(jìn)程、xml應(yīng)用、代碼規(guī)范和性能優(yōu)化等方面學(xué)到了很多東西,倘若當(dāng)初按原來的模式寫程序,將錯過學(xué)習(xí)這些知識的很好機(jī)會。
7、跟上技術(shù)更新的腳步
軟件技術(shù)更新速度有時真的讓人很郁悶,經(jīng)常聽人說,剛學(xué)會.net1.0,馬上就出了1.1,1.1剛完成一兩個項(xiàng)目,又出了2.0,用2.0不到一年已經(jīng)出了3.5,但現(xiàn)實(shí)就是這樣,你必須得跟上腳步,當(dāng)使用asp.net的時候,你就不能再像以前用asp那樣去寫程序,當(dāng)使用.net2.0的時候,你要敢于使用masterpage,skin去代替原來的usercontrol模式,原來的網(wǎng)站皮膚實(shí)現(xiàn)模式。而現(xiàn)在出3.5了,你必須馬上學(xué)習(xí)vs2008,學(xué)習(xí)Silverlight。只有跟得上技術(shù)更新的步伐,你才永