張磊
天津中德職業(yè)技術(shù)學(xué)院
基于J2EE企業(yè)級(jí)開(kāi)發(fā)方向的軟件行業(yè)現(xiàn)狀與現(xiàn)代軟件教學(xué)中的對(duì)比研究
張磊
天津中德職業(yè)技術(shù)學(xué)院
由于筆者過(guò)去在軟件公司做開(kāi)發(fā)以及項(xiàng)目經(jīng)理,并且一直是用Java這門語(yǔ)言做開(kāi)發(fā),加上現(xiàn)在轉(zhuǎn)行做了計(jì)算機(jī)方面的教師,通過(guò)在企業(yè)中的實(shí)際開(kāi)發(fā)經(jīng)驗(yàn)與現(xiàn)在的教學(xué)經(jīng)驗(yàn)進(jìn)行對(duì)比,發(fā)現(xiàn)了兩者之間有很多可以互相借鑒,互相彌補(bǔ)的方面。
首先,現(xiàn)在的軟件公司分為兩大類,一類是開(kāi)發(fā)國(guó)內(nèi)項(xiàng)目的軟件公司,一類是外包企業(yè)。外包企業(yè)大部分都是外企,工資待遇較高,對(duì)入門級(jí)程序員來(lái)說(shuō)入門門檻較低,因?yàn)樗麄冇型暾能浖こ棠J?。?duì)這些職場(chǎng)新人而言好處是門檻低,工資高。壞處就是其實(shí)學(xué)不著什么東西,因?yàn)橥耆珜?duì)著文檔寫永遠(yuǎn)不會(huì)有自己的想法,想提升技術(shù)很難很難。而國(guó)內(nèi)這些企業(yè)入門門檻較高,待遇也不高。但是很鍛煉人,為什么呢?就是因?yàn)檫@些國(guó)內(nèi)企業(yè)的老總希望招一個(gè)什么都會(huì)的人,既會(huì)前臺(tái)美工,也會(huì)后臺(tái)編程,更會(huì)干DBA的那套活,會(huì)的越多人力成本越低,所以企業(yè)非常希望要一個(gè)人當(dāng)三個(gè)人用的能人。
Java基礎(chǔ)知識(shí)——J2EE企業(yè)級(jí)架構(gòu)開(kāi)發(fā)——架構(gòu)設(shè)計(jì)
以上3個(gè)階段我認(rèn)為是一個(gè)0基礎(chǔ)的人到技術(shù)牛人的技術(shù)發(fā)展歷程?,F(xiàn)代軟件開(kāi)發(fā)的趨勢(shì)一般都是用B/S結(jié)構(gòu)進(jìn)行開(kāi)發(fā),C/S結(jié)構(gòu)的相對(duì)較少。
這階段應(yīng)該是在學(xué)校學(xué)習(xí)的,即需要老師把學(xué)生帶進(jìn)編程的大門,需要讓學(xué)生產(chǎn)生編程的樂(lè)趣,讓他們喜歡編程,至少不厭煩它。這是至關(guān)重要的一個(gè)起步階段,我們國(guó)家學(xué)軟件的學(xué)生多如牛毛,而真正能學(xué)出來(lái)能干開(kāi)發(fā)的人與學(xué)軟件的人相比那可是鳳毛麟角,為什么?我認(rèn)為是在學(xué)校中的很多編程基礎(chǔ)把學(xué)生們的興趣扼殺在了搖籃里,很多教材中所出的題基本上都是在企業(yè)開(kāi)發(fā)中絕對(duì)禁止的。歸根結(jié)底是因?yàn)榭荚囆枰鲱}考學(xué)生,看學(xué)生掌握的知識(shí)是否牢固是否清楚,會(huì)出各種讓人混淆的概念來(lái)考學(xué)生的知識(shí)掌握程度。而在企業(yè)軟件開(kāi)發(fā)中,編程最基本的要求就是簡(jiǎn)單易懂,用最簡(jiǎn)單的代碼完成任務(wù)即可。
這階段需要學(xué)的技術(shù)有很多,首先,前臺(tái):JSP,JQUERY,CSS, HTML,EL,AJAX,JS。后臺(tái):Struts2,Spring,Hibernate,Ibatis架構(gòu)級(jí)開(kāi)發(fā)模式,面向接口編程,WebService。數(shù)據(jù)庫(kù):SQL,HQL,視圖,觸發(fā)器,存儲(chǔ)過(guò)程,如何提高數(shù)據(jù)查詢性能,MYSQL,Oralce。系統(tǒng)部署:linux系統(tǒng)命令行,SSH Secure Shell,Tomcat,集群負(fù)載均衡,自動(dòng)化部署。這階段是現(xiàn)在國(guó)內(nèi)大部分軟件開(kāi)發(fā)人員都在的階段,在這個(gè)階段的人有很多而且時(shí)間也是最長(zhǎng)的,也是有很多開(kāi)發(fā)人員在這個(gè)階段停滯不前。而這些技術(shù)也是阻擋剛畢業(yè)的學(xué)生進(jìn)入這個(gè)行業(yè)的高山,其實(shí)也是阻擋很多開(kāi)發(fā)人員繼續(xù)前進(jìn)的高山。就是因?yàn)檫@些技術(shù)有很多,每個(gè)技術(shù)深入研究都是很難的,如果僅僅是在應(yīng)用檔次那這些技術(shù)還是可觸及的。一般在這個(gè)階段6年左右,有想法的開(kāi)發(fā)人員是可以往上面的架構(gòu)師發(fā)展的。所以這個(gè)階段可以說(shuō)是黃金階段,企業(yè)領(lǐng)導(dǎo)喜歡這個(gè)階段的人因?yàn)榭梢愿苫?,而且有希望發(fā)展成更高的技術(shù)人才,帶領(lǐng)團(tuán)隊(duì)開(kāi)發(fā)。
到此階段的開(kāi)發(fā)人員已經(jīng)到達(dá)了大牛級(jí)別,靈活運(yùn)用各種開(kāi)發(fā)架構(gòu),了解各種先進(jìn)的技術(shù)核心,可自己設(shè)計(jì)出適合本項(xiàng)目的架構(gòu)。國(guó)內(nèi)軟件公司這種階段的人屈指可數(shù),如果有,基本已經(jīng)到達(dá)技術(shù)經(jīng)理級(jí)別。他可以帶領(lǐng)團(tuán)隊(duì)開(kāi)發(fā)項(xiàng)目,為項(xiàng)目初期策劃開(kāi)發(fā)架構(gòu),輔導(dǎo)前兩階段開(kāi)發(fā)人員開(kāi)發(fā)項(xiàng)目,解決前兩階段開(kāi)發(fā)人員無(wú)法解決的問(wèn)題。想到此階段需要后天的努力以及一些天分。當(dāng)你在第二階段開(kāi)發(fā)時(shí)意識(shí)到為什么這樣寫是高效的,為什么我們需要這樣編程,這些架構(gòu)師怎么寫出來(lái)的,我是不是也能寫出來(lái)的時(shí)候,你就可以說(shuō)有向架構(gòu)設(shè)計(jì)這個(gè)階段發(fā)展的意識(shí)了。否則一輩子只能是熟練的程序員。這個(gè)階段的待遇則是你有多大膽工資就有多大產(chǎn),敢要領(lǐng)導(dǎo)就敢給。
我認(rèn)為現(xiàn)代高校的學(xué)生在經(jīng)過(guò)系統(tǒng)集中的訓(xùn)練后到達(dá)第二階段完全沒(méi)有問(wèn)題,但為什么結(jié)果卻大相徑庭,往往我們的學(xué)生不行呢。其實(shí)也包括大多數(shù)的本科生,也是無(wú)法畢業(yè)后就能去企業(yè)工作的。我在企業(yè)也面試過(guò)不少剛剛從學(xué)校畢業(yè)的本科生以及??粕?,基本上都差不多。好一點(diǎn)的僅僅是基礎(chǔ)熟一點(diǎn),差的就不提了。而且我接觸過(guò)很多剛剛從計(jì)算機(jī)專業(yè)畢業(yè)的學(xué)生跟我非常真誠(chéng)的說(shuō)過(guò),畢了業(yè)之后只要不是干跟計(jì)算機(jī)相關(guān)的工作干什么都行。我聽(tīng)完這句話之后心情很復(fù)雜,我能理解他們但又感慨我們的學(xué)校教育在3,4年的光景里教出的學(xué)生是多么的悲哀。
我們?cè)谄髽I(yè)中帶新人的時(shí)候是這樣的,包括我剛在企業(yè)干時(shí)也是如此。我們?cè)谡衅竸倧膶W(xué)校畢業(yè)的學(xué)生時(shí),對(duì)他們的水平是非常清楚的,計(jì)算機(jī)這個(gè)行業(yè)一個(gè)人技術(shù)的高低實(shí)在太透明了,做一個(gè)東西,立判高下。所以在招聘時(shí)招的是有一定基礎(chǔ)技能的即第一階段還可以的,能知道第二階段部分知識(shí)的,最重要的是能有快速自學(xué)的能力,比較聰明機(jī)靈,這是至關(guān)重要的,說(shuō)白了就是著眼于未來(lái)。如果看當(dāng)下除了有工作經(jīng)驗(yàn)的,剛畢業(yè)的學(xué)生一個(gè)也進(jìn)不了企業(yè)做開(kāi)發(fā)。按照這個(gè)標(biāo)準(zhǔn)招進(jìn)來(lái)學(xué)生之后,一般企業(yè)都有1到3個(gè)月試用期,其實(shí)這個(gè)試用期是至關(guān)重要的,可以說(shuō)真正的考驗(yàn)是這個(gè)試用期。因?yàn)楫吘苟潭痰氖畮追昼姷拿嬖嚹苤肋@個(gè)人的現(xiàn)在的技術(shù)水平但是很難看出這個(gè)孩子的未來(lái)發(fā)展是否有前景,所以在試用期中我會(huì)給他們一些開(kāi)發(fā)任務(wù),是在他們能力范圍之內(nèi)的。在企業(yè)中沒(méi)有學(xué)校這樣的老師手把手教你怎么做,永遠(yuǎn)伴隨你的老師就是谷歌和百度。當(dāng)你精通了一門語(yǔ)言后,你會(huì)發(fā)現(xiàn)語(yǔ)言其實(shí)就是那么回事,最重要的是那種編程的思想。
哪種思想呢?其實(shí)就是“偷懶”的思想。任何語(yǔ)言上都是如此,我在上課時(shí)也在向?qū)W生們灌輸這種思想,即Write once,Run anywhere。寫代碼就寫一遍,寫好后把這個(gè)功能封裝起來(lái),等到下次再用時(shí)直接拿來(lái)就用。久而久之,你會(huì)有自己的一套代碼庫(kù),包羅萬(wàn)象,沒(méi)準(zhǔn)什么時(shí)候你就能用上。最后干編程的人最寶貴的財(cái)富就是他的代碼庫(kù),那是他多年經(jīng)驗(yàn)的結(jié)晶。這樣才能有跳槽的資本,人可以隨便跳槽,到哪都比別人開(kāi)發(fā)的既快又好。這才是所有軟件公司夢(mèng)寐以求的人才。其實(shí)面向?qū)ο笳Z(yǔ)言從根本上就是這么構(gòu)成的,它的類庫(kù),語(yǔ)言庫(kù)就是這么來(lái)的,這才是語(yǔ)言的精髓。