摘要:學(xué)生進(jìn)入IT行業(yè),一般經(jīng)過培訓(xùn)過程后方可成為準(zhǔn)職業(yè)人,如何讓學(xué)生由“學(xué)校人”變?yōu)椤皽?zhǔn)職業(yè)人”,降低學(xué)習(xí)成本,縮短學(xué)生的社會適應(yīng)期。本文將從職業(yè)素質(zhì)、綜合能力、理論基礎(chǔ)和工作習(xí)慣的培養(yǎng)談起。
關(guān)鍵詞:職業(yè)素質(zhì);綜合能力;理論基礎(chǔ);工作習(xí)慣
中圖分類號:TP311.5 文獻(xiàn)標(biāo)識碼:B
文章編號:1672-5913(2007)10-0056-03
我院實(shí)行院企聯(lián)姻,把IT企業(yè)中培訓(xùn)過程引入到學(xué)校教育過程中,目的是擴(kuò)大就業(yè)門路,縮短學(xué)生的社會適應(yīng)期,降低學(xué)生的學(xué)習(xí)成本,提高學(xué)生的就業(yè)質(zhì)量。按照當(dāng)前行業(yè)所使用的最新技術(shù)進(jìn)行項(xiàng)目訓(xùn)練,使其達(dá)到或接近就業(yè)的專業(yè)素質(zhì)要求,達(dá)到積累工作實(shí)踐經(jīng)驗(yàn)的目的。在培訓(xùn)過程中,除了對學(xué)生進(jìn)行專業(yè)的培養(yǎng)外,本人認(rèn)為還應(yīng)該在職業(yè)素質(zhì)、綜合能力、理論基礎(chǔ)、工作習(xí)慣等方面進(jìn)一步培養(yǎng)。
1職業(yè)素質(zhì)
未走出象牙塔的學(xué)生心比天高,一向“飯來張口,衣來伸手”的生活方式培養(yǎng)出來的嫩芽撐不住勞動強(qiáng)度的摧殘,對于有些工作不是不能,而是不為,出現(xiàn)了退縮念頭;有些學(xué)生就業(yè)期望值太高,受經(jīng)濟(jì)利益的驅(qū)使,想一口吞個(gè)胖子,淡化了過程培訓(xùn)的含義,情緒上出現(xiàn)煩躁,導(dǎo)致對前途迷茫,失去信心。
程序員的工作是枯燥的,整天面對計(jì)算機(jī),用26個(gè)英文字母和其他符號編程。程序員的工作非常辛苦,是一項(xiàng)智力勞動,需要投入很多的精力,因而需要程序員能夠熱愛這個(gè)職業(yè),有工作熱情,有投入的精神。雖然有的人很聰明,但是對軟件開發(fā)沒有興趣,或者工作很不專心,工作效率很低,別人半天能干完的,他需要兩天甚至三天才能干完;情緒浮躁,抵擋不住計(jì)算機(jī)游戲、各種新聞等誘惑,不能處理好工作與娛樂的關(guān)系,自制力和自控力差;寫出的代碼漏洞百出,質(zhì)量不高,這樣的學(xué)生不適合做程序員。有時(shí)程序員的成就在很大程度上不是取決于智商,而是取決于情商。程序員應(yīng)該雄心壯志,面對困難時(shí)比較堅(jiān)毅,吃苦耐勞、講紀(jì)律、講服從、講誠信。
2綜合能力
綜合能力方面主要是:良好的邏輯思維能力、溝通能力與再學(xué)習(xí)能力。
2.1邏輯思維能力
軟件開發(fā)過程是解決復(fù)雜業(yè)務(wù)邏輯的過程,是簡化復(fù)雜邏輯的過程,是用精確來實(shí)現(xiàn)模糊的過程,開發(fā)人員需要具有良好的邏輯思維能力才能勝任?,F(xiàn)實(shí)空間是模糊的,數(shù)字空間是精確的,在現(xiàn)實(shí)世界中很簡單的問題,在數(shù)字空間中模擬時(shí),就變成了一個(gè)復(fù)雜的問題。它要求程序員能夠全面、準(zhǔn)確、簡潔地把握、分析和解決問題。
下面要求學(xué)生畫出問題的程序流程圖來測驗(yàn)學(xué)生的邏輯思維能力:輸入三個(gè)整數(shù),作為三角形的三個(gè)邊,判斷是否構(gòu)成:等邊、等腰、直角、銳角、鈍角三角形。
這個(gè)題目的邏輯很簡單,需要處理的邏輯包括:
1) 輸入的合法性判斷:輸入的是否是正整數(shù)。
2) 是否構(gòu)成三角形:任意兩邊之和大于第三邊。
3) 是否構(gòu)成等腰或等邊三角形。
4) 是否構(gòu)成鈍角、直角、銳角三角形。
上邊的題目是一個(gè)很簡單的程序,但是學(xué)生回答完全的卻很少,常見的錯誤見下表。
類似的邏輯問題在實(shí)際的軟件開發(fā)中是經(jīng)常用到的,需要程序員能夠?qū)Ω鞣N情況進(jìn)行仔細(xì)的分析、歸納、總結(jié)。如果在這樣的問題上出錯,是很難成為出色的程序員的。
2.2溝通能力
現(xiàn)在的軟件越來越龐大,需要多人來協(xié)同工作。作為程序員要善于溝通,習(xí)慣溝通,要有團(tuán)隊(duì)精神。學(xué)生與學(xué)生、學(xué)生與老師交流問題時(shí),往往要花費(fèi)大量的時(shí)間描述問題。有的學(xué)生自己心里明白,但就是說不清楚,或者干脆不說,默默地做項(xiàng)目,甚至閉門造車。這些情況都會降低整個(gè)團(tuán)隊(duì)的工作效率。
再者,全球IT外包市場主要是歐美和日本,其中85%的IT外包市場是以英語為溝通語言。作為未來軟件企業(yè)生力軍,程序員應(yīng)具備良好的英語應(yīng)用能力,這是最基本的要求,如果對英語的熟練程度不高,對待引進(jìn)的高技術(shù)以及與客戶的溝通將會出現(xiàn)語言上的障礙。
2.3再學(xué)習(xí)能力
信息技術(shù)的更新速度是驚人的,程序員的職業(yè)生涯是一個(gè)要求不斷學(xué)習(xí)的過程,永遠(yuǎn)不能滿足現(xiàn)狀,必須有很好的再學(xué)習(xí)能力。只有善于學(xué)習(xí)的人,才能夠不斷進(jìn)步。真正優(yōu)秀的程序員一定是掌握了很好的學(xué)習(xí)方法,否則現(xiàn)在是優(yōu)秀程序員,兩年后可能就被淘汰了。只有再學(xué)習(xí),才能談到創(chuàng)新,IT技術(shù)的日新月異使很多程序員眼花繚亂,什么都想學(xué),卻又不知從何學(xué)起,今天看看這個(gè),明天學(xué)學(xué)那個(gè),貪多不熟。雖然IT技術(shù)發(fā)展迅速,但很多技術(shù)都是有規(guī)律可循,一些基本的概念、原理和方法是通用的,可以舉一反三。再學(xué)習(xí)的方法有很多,類比法、詢問法、閱讀示范程序、網(wǎng)上檢索相關(guān)的資料等等。
3理論基礎(chǔ)
大學(xué)計(jì)算機(jī)專業(yè)課大多是從二年級開起,有的學(xué)生由于目標(biāo)不明確或數(shù)學(xué)基礎(chǔ)不好,對專業(yè)課程學(xué)習(xí)不是非常扎實(shí)。由于信息技術(shù)發(fā)展快,有些課程內(nèi)容陳舊。在培訓(xùn)階段,對于知識的匯總歸納是非常有必要的。如果基于.net做多層結(jié)構(gòu)的軟件開發(fā),以下的知識是必須的:操作系統(tǒng)原理、實(shí)體關(guān)系理論、SQL語句、面向?qū)ο蟮幕纠碚?、?shù)據(jù)結(jié)構(gòu)、軟件工程、VC++/JAVA、ASP/HTML、PSP/TSP/ISO、專業(yè)英語、程序設(shè)計(jì)風(fēng)格、系統(tǒng)分析與設(shè)計(jì)等等??梢钥闯鋈绻麤]有學(xué)過數(shù)據(jù)結(jié)構(gòu)、程序設(shè)計(jì)方法、數(shù)據(jù)庫概論以及軟件工程的基本知識,要想成為一名合格的程序員顯然是很困難的,而且一名熟練的程序員需要的知識遠(yuǎn)不止這些。掌握了基礎(chǔ)的計(jì)算機(jī)科學(xué)理論,再擁有一定的學(xué)習(xí)能力,才能不斷進(jìn)步。
4工作習(xí)慣
良好的工作習(xí)慣是程序員個(gè)人開發(fā)過程成熟的體現(xiàn),是效率的保證。程序員的培養(yǎng)很大程度上是習(xí)慣的培養(yǎng)。在實(shí)訓(xùn)過程中應(yīng)注重培養(yǎng)如下幾個(gè)方面的習(xí)慣:
4.1按照明確的編碼過程工作
在進(jìn)行一項(xiàng)編碼工作時(shí),需要按一個(gè)規(guī)范的過程來進(jìn)行:
第一,定義做什么,包括功能范圍、接口,任務(wù);
第二,定義如何做,包括數(shù)據(jù)結(jié)構(gòu)、算法;
第三,定義驗(yàn)收標(biāo)準(zhǔn),如何檢驗(yàn)正確與否;
第四,動手編程序、調(diào)程序;
最后,測試程序。
按照規(guī)范的過程來編碼,才能真正提高工作效率。職業(yè)程序員的設(shè)計(jì)時(shí)間長于編碼時(shí)間,業(yè)余程序員編碼的時(shí)間長于設(shè)計(jì)時(shí)間。職業(yè)的程序員是設(shè)計(jì)程序,業(yè)余程序員是調(diào)試程序。職業(yè)程序員是預(yù)防BUG,業(yè)余程序員是修改BUG。為什么會出現(xiàn)這種情況呢?因?yàn)槁殬I(yè)程序員是按照一個(gè)規(guī)范的編碼過程來工作,編碼的前期工作量超過了其實(shí)際的編碼工作量。有的程序員經(jīng)過簡單考慮后就急于去寫程序,往往是把簡單的問題搞復(fù)雜了,復(fù)雜的問題搞亂了,效率很低。
4.2編碼之前寫文檔
文檔是軟件實(shí)現(xiàn)思想的載體,是開發(fā)人員之間、開發(fā)人員與管理人員之間交流的工具,是設(shè)計(jì)人員與編碼人員之間、設(shè)計(jì)人員與需求人員之間的一種約定,是組織的軟件設(shè)計(jì)經(jīng)驗(yàn)的積累,是組織軟件財(cái)富的記錄,是軟件復(fù)用的基礎(chǔ)。只有真正認(rèn)識到了設(shè)計(jì)文檔的重要性,才能積極主動地寫文檔。對程序員而言,在動手編程之前通過寫文檔可以把實(shí)現(xiàn)的方法想清楚、表達(dá)清楚、討論清楚,這是已經(jīng)通過無數(shù)的實(shí)踐來證明了的好經(jīng)驗(yàn)。初級的程序員往往在寫程序的過程中發(fā)現(xiàn)越寫越覺得復(fù)雜,程序越改越亂,等真正把工作做完了,再反思一下,卻發(fā)現(xiàn)原來是很簡單的事情。為什么會有這種感覺呢?問題就在于事先沒有真正想清楚,弄明白,一旦進(jìn)入問題的解決細(xì)節(jié)中,就很容易出錯了,所以職業(yè)程序員應(yīng)該具備寫文檔的好習(xí)慣。
4.3遵循設(shè)計(jì)進(jìn)行編碼
程序員不能隨意自己決策,不按設(shè)計(jì)人員的設(shè)計(jì)去施工。同一個(gè)問題,可能有多種解決方案,在考慮解決方案時(shí),程序員想的是局部,設(shè)計(jì)人員想的是全局,因而在進(jìn)行決策時(shí),設(shè)計(jì)人員是從全局的角度的考慮問題。在這種情況下,程序員要嚴(yán)格按照設(shè)計(jì)去實(shí)現(xiàn),不能在如何實(shí)現(xiàn)上偏離設(shè)計(jì),造成隱患。對于設(shè)計(jì)中有疑問的問題,可以討論,但是不可以隨意變更。
4.4按照良好程序設(shè)計(jì)風(fēng)格編碼
對于程序設(shè)計(jì)風(fēng)格,原來要求效率第一,而現(xiàn)在要求清晰第一。
有人講程序設(shè)計(jì)是一門個(gè)人藝術(shù),包含了程序員個(gè)人的創(chuàng)造性,正是這樣,才使得很多程序構(gòu)思精巧,耐人尋味。但是同時(shí)它又使得程序的可讀性較差,尤其是在多個(gè)人合作開發(fā)一個(gè)軟件時(shí),風(fēng)格迥異的程序使得軟件的可靠性與可維護(hù)性大大降低。程序設(shè)計(jì)語言一方面是人與計(jì)算機(jī)之間進(jìn)行交流的工具,還是人與人之間進(jìn)行交流的工具。單純地作為人機(jī)交流的工具,只要程序能夠正確、忠實(shí)地表達(dá)設(shè)計(jì)者的思想,也就發(fā)揮了其作用。但是人與人之間的交流沒有一種固定的統(tǒng)一的模式,因此作為人與人之間的交流工具,還要表達(dá)得清晰易懂,能夠?yàn)槠渌绦騿T所理解,這也正是要求程序員講究程序設(shè)計(jì)風(fēng)格的主要原因。
5總結(jié)
通過嚴(yán)格的專業(yè)素質(zhì)訓(xùn)練和職業(yè)素質(zhì)、綜合能力、理論基礎(chǔ)、工作習(xí)慣的培養(yǎng),基本上可以使大學(xué)生走上社會前,從“學(xué)校人”轉(zhuǎn)變?yōu)橐粋€(gè)準(zhǔn)“職業(yè)人”,使大學(xué)生在就業(yè)市場立于不敗之地!
參考文獻(xiàn)
[1] 王長春. 印度軟件人才教育 成功就這么簡單?[J]. 軟件工程師,2005,(Z1).
[2] 劉克青,廖建新,張俊光. 軟件項(xiàng)目策劃中的工作量估算方法探討[J]. 計(jì)算機(jī)工程與應(yīng)用,2004,(27).
[3] 李洛,吳紹根. 基于印度NIIT培養(yǎng)模式的兩年制高職軟件人才培養(yǎng)思路[J]. 高教探索,2004,(2).
[4] 杜建立. 軟件人才培養(yǎng)新挑戰(zhàn)[J]. 中國遠(yuǎn)程教育,2004,(2).
收稿時(shí)間:2007-2-5
作者簡介:李宗璞(1969-),女,山東郯城,臨沂師范學(xué)院副教授
E-mail:lizp2002@163.com