.net軟件工程師,他們的工作內(nèi)容包括完成軟件的設(shè)計、實現(xiàn)、測試、修改bug等工作,包括業(yè)務(wù)需求的溝通,功能模塊詳細設(shè)計,業(yè)務(wù)功能實現(xiàn)與單元測試,系統(tǒng)維護;參與產(chǎn)品構(gòu)思和架構(gòu)設(shè)計等。那么,.net軟件工程師發(fā)展前景如何?.net軟件工程師發(fā)展方向怎么寫?
一、.net軟件工程師發(fā)展前景
.NET 是世界上最大的軟件公司微軟公司花費300億美元精心推出的下一代開發(fā)平臺,可以開發(fā)Web程序、Windows應(yīng)用程序和Wap 無線網(wǎng)絡(luò)應(yīng)用程序等。.NET在大型系統(tǒng)開發(fā)中占有的開發(fā)份額越來越重。近年來呈現(xiàn)越來越大的用人趨勢,就業(yè)前景非常廣闊。易學(xué)、易用、學(xué)習(xí)周期短,是 .NET最大的優(yōu)勢。根據(jù)業(yè)界人士統(tǒng)計,學(xué)習(xí).NET所花費的周期比學(xué)習(xí)Java 的時間少一半,但是.NET初級程序員比Java 初級程序員的薪水要高。
現(xiàn)代信息部門的開發(fā)團隊必須因應(yīng)高度競爭的商業(yè)環(huán)境,快速進行應(yīng)用軟件系統(tǒng)的設(shè)計、開發(fā)、測試以及部署帶領(lǐng)企業(yè)贏得市場。大部分的軟件開發(fā)團隊,都面臨以下幾項挑戰(zhàn):開發(fā)團隊間的溝通困難,開發(fā)工具形形色色,分散且難以互相整合開發(fā)程序、開發(fā)標(biāo)準(zhǔn)難以建立。因此,.NET高級軟件工程師就顯得尤為重要了,各大企業(yè)全都繼續(xù)軟件開發(fā)人才,IT界.NET軟件工程師缺口非常大,就業(yè)容易但薪資卻很高。
據(jù)有關(guān)權(quán)威部門統(tǒng)計,未來幾年內(nèi)我國軟件行業(yè)的從業(yè)機會十分龐大,每年對軟件人才的需求將達到 80萬 -100 萬人,而現(xiàn)有行業(yè)從業(yè)人員只有 50 萬人左右,專業(yè)開發(fā)人員不到25萬,目前大部分院校出來的應(yīng)屆計算機系學(xué)生,真正能當(dāng)年進入軟件公司工作的只有10%~20%左右,缺口很大。所以.net軟件工程師的就業(yè)前景一片光明。
有句話說“跟著微軟準(zhǔn)有飯吃”,微軟在軟件行業(yè)的龍頭老大位置沒有任何人能夠否認,她總是引領(lǐng)開發(fā)技術(shù)的前沿。如今微軟正高舉.NET大旗繼續(xù)向前,她正努力使開發(fā)變得更加輕松。
.net軟件工程師“錢”景不錯。中國“軟件藍領(lǐng)”等同.net軟件工程師。麥可瑞咨詢公司顧問劉忠民這樣說,在發(fā)達程度高的軟件開發(fā)團體中,“軟件藍領(lǐng)”是指一線編碼人員,就像工廠中的一線生產(chǎn)工人,只要能夠按照規(guī)范完成自己的編碼書寫工作就可以了,而.net軟件工程師就好像工廠中的“車間主任”,絕大部分精力投入在局部系統(tǒng)的架構(gòu)設(shè)計上。根據(jù)現(xiàn)今中國軟件業(yè)發(fā)展的情況,企業(yè)對真正的軟件“藍領(lǐng)”的需求不多,在企業(yè)中,要既當(dāng)軟件“藍領(lǐng)”,又當(dāng)軟件架構(gòu)員,既要進行軟件的架構(gòu)設(shè)計,同時又要掌握實際操作,進行編碼測試和軟件文稿的書寫。因此,中國“軟件藍領(lǐng)”可以等同于.net軟件工程師。
首先,人才需求量大。我們來看一個數(shù)據(jù),據(jù)有關(guān)權(quán)威部門統(tǒng)計,將來幾年內(nèi)我國軟件行業(yè)的從業(yè)機會十分龐大,每年對軟件人才的需求將達到35萬-40萬人,而每年高校培養(yǎng)出來的計算機相關(guān)專業(yè)的畢業(yè)生只有6萬人左右,而處于軟件人才金字塔結(jié)構(gòu)的底部的軟件“藍領(lǐng)”,需求自然也就是最大的。
其次,較高的就業(yè)薪水。據(jù)幾位業(yè)內(nèi)人士透露,以一線操作為主的從業(yè)人員每月工資應(yīng)在2500元至6000元左右,在北京地區(qū),職業(yè)教育軟件相關(guān)專業(yè)的學(xué)生每月平均收入可達到四五千元左右,而具有一定工作經(jīng)驗的編碼人員的月薪就可高至七八千元。他們說,與其成為一個“平庸的管理者”,不如成為一名“出色的操作者”,因此,軟件工程師自然是前途無量。
再次,用人單位需求旺盛,用人單位對.net軟件工程師的需求可以用“如饑似渴”來形容,用人單位中很多是銀行的IT部門和跨國IT企業(yè),對于具有實際操作能力的軟件人才是用人單位最為需要的,而且越是上規(guī)模的公司,工作的拆分層次越清晰,對于軟件人才的需要越大。
最后,軟件工廠有大量需求量。據(jù)有關(guān)部門了解,由于人才嚴重不足,不得不從軟件人才的培訓(xùn)做起,等到具有了一定的人才儲備之后,才能夠開始當(dāng)“軟件藍領(lǐng)”,隨著來自印度的IT培訓(xùn)被耳熟能詳時,更有重金招募“軟件藍領(lǐng)”的信息地激起人們對該職業(yè)的向往。這就可想而知這個職位的發(fā)展前景是如何的廣闊了。
二、.net軟件工程師發(fā)展方向
經(jīng)過一段時間的工作經(jīng)驗的積累后,可發(fā)展成為高級軟件工程師、算法應(yīng)用開發(fā)工程師和需求工程師,但需要具有豐富的軟件開發(fā)經(jīng)驗和相關(guān)工作的技術(shù)背景。如果想成為技術(shù)精英、項目經(jīng)理,則還需要具有較強的管理和組織等方面的能力。
.NET軟件工程師一般分為WEB應(yīng)用開發(fā)和桌面程序開發(fā)兩個方向。WEB應(yīng)用開發(fā)方向?qū)⒅饕獜氖缕髽I(yè)網(wǎng)站系統(tǒng)開發(fā),是目前比較熱門的方向。
三、.net軟件工程師職業(yè)規(guī)劃
當(dāng)經(jīng)歷過數(shù)年之后,一些人在.NET軟件工程師的某方面成為了專家,有些人精通數(shù)據(jù)庫方面,有些人精通web界面設(shè)計,有些人精通系統(tǒng)架構(gòu)。還有一些人是什么都會,但不管哪一方面都算不上精通。當(dāng)然還有另一些人,他們沒有選擇.NET軟件工程師,他們選擇了java,在若干年之后,他們說:java程序系統(tǒng)比.net系統(tǒng)更穩(wěn)定之類。既然大家都是.net陣營,暫且對他們不予討論,下面就介紹下.NET軟件工程師職業(yè)規(guī)劃。
1.選擇研究方向后不要動搖
對.net好還是java好的問題,我一向的觀點是:它們都好,它們都是軟件開發(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。而如果你過度地徘徊在研究它們到底誰更好的時候,甚至不斷地在二者之間輾轉(zhuǎn)的時候,你損失的將是寶貴的時間。
2.盡量縮小研究范圍
.net只是一個大方向,你應(yīng)盡量將自己的研究范圍縮小,比如專注于數(shù)據(jù)庫,專注于xml方面,專注于ajax,只要你專注任何一個區(qū)域深入研究,當(dāng)你成為專家之后,都不會愁飯吃。反之如果你什么都會,而沒有一樣真正精通,那么你可能永遠只能做一個普通程序員。
3.找到正確的入門方法
不管做什么事,方法很重要。特別是入門時的方法。正確的入門方法將大大加快你學(xué)習(xí)的進度。了解語言本身和前提技術(shù)是最先要做的事情,比如你選擇c#方向的asp.net,那么你必須先學(xué)習(xí)c#基礎(chǔ)語法,和asp.net基礎(chǔ)知識,并實際寫小程序測試你學(xué)習(xí)的成果。當(dāng)學(xué)會基本語法后馬上找到asp.net的官方入門指導(dǎo)。微軟做得很好的一個地方就是他的幫助系統(tǒng)做得很好。新人容易入門,建議首先從入門教程開始,這個東西就在你的機子上,在Framework SDK的菜單里面。強烈建議把這個教程全部學(xué)會。
4.多看別人的成果(源代碼)
這個很重要,如果你是一個團隊的新成員,那么看他們寫好的代碼將是非常好的學(xué)習(xí)途徑,因為那些都是成功的代碼經(jīng)驗。如果你還沒有加入團隊,是自學(xué),那么找一個好的學(xué)習(xí)網(wǎng)站,多看上面的源代碼也是很好的方式。另外一個強烈推薦的途徑:仔細研究微軟的.net StarterKit,個人認為這是.net入門學(xué)習(xí)途中最大的收獲。
5.敢于接受新項目挑戰(zhàn),敢于嘗試
主動承擔(dān)公司的開發(fā)任務(wù),敢于在項目中嘗試你最新的研究成果將對你自身技術(shù)水平提高帶來非常大的幫助。記得當(dāng)初我在做一個建站平臺項目時有過這樣的經(jīng)歷,之前公司開發(fā)的項目大都在原有技術(shù)積累下面用成型的框架做開發(fā),那時我也正在學(xué)習(xí)asp.net,不過那個項目我是主程序員,因此在開發(fā)上有很大自主性。于是1.0時我嘗試將所有用戶文章保存在web服務(wù)器的xml文件里,而不是像傳統(tǒng)項目那樣保存在數(shù)據(jù)庫里,以希望減少web服務(wù)器和db服務(wù)器之間的數(shù)據(jù)傳輸。結(jié)果1.0系統(tǒng)實際運行時確實達到了我的目的,雖然隨著數(shù)據(jù)量的大量增加,最終導(dǎo)致了IO瓶頸。但通過后來對IO瓶頸的優(yōu)化解決,我在文件系統(tǒng)、服務(wù)器進程、xml應(yīng)用、代碼規(guī)范和性能優(yōu)化等方面學(xué)到了很多東西,倘若當(dāng)初按原來的模式寫程序,將錯過學(xué)習(xí)這些知識的很好機會。
6.不斷推翻自己,敢于重構(gòu)
這是對程序質(zhì)量的要求,我認為只有不斷地優(yōu)化和改造自己的程序代碼,才能最終寫出高質(zhì)量的程序,做出高質(zhì)量的系統(tǒng),最終使自己的技術(shù)水平提高。通常我會把實現(xiàn)一個功能的代碼量作為衡量代碼質(zhì)量的標(biāo)準(zhǔn),代碼越少,越精簡,同時又具有良好的可讀性,就越理想。重構(gòu)需要幾個前提:首先是項目時間允許,然后是確實找到更好的代碼組織邏輯,如一種很好的結(jié)構(gòu)模式,更合理的面向?qū)ο笳{(diào)用方式等等。只要找到更好的解決辦法,那么勇敢地推翻原來的程序框架,重構(gòu)它,經(jīng)過不斷地重構(gòu)后,有一天你回過頭去看之前自己寫的程序時會有一個感嘆:哇,怎么以前我的程序?qū)懙倪@么爛阿。
7.跟上技術(shù)更新的腳步
軟件技術(shù)更新速度有時真的讓人很郁悶,經(jīng)常聽人說,剛學(xué)會.net1.0,馬上就出了1.1,1.1剛完成一兩個項目,又出了2.0,用2.0不到一年已經(jīng)出了3.5,但現(xiàn)實就是這樣,你必須得跟上腳步,當(dāng)使用asp.net的時候,你就不能再像以前用asp那樣去寫程序,當(dāng)使用.net2.0的時候,你要敢于使用masterpage,skin去代替原來的usercontrol模式,原來的網(wǎng)站皮膚實現(xiàn)模式。而現(xiàn)在出3.5了,你必須馬上學(xué)習(xí)vs2008,學(xué)習(xí)Silverlight。只有跟得上技術(shù)更新的步伐,你才永遠保持自己的技術(shù)領(lǐng)先地位。