劉晨,1996年進(jìn)入IT業(yè),從程序員干起。1999年,在“群情激憤、血?dú)夥絼偂敝麻_始與朋友一起創(chuàng)業(yè),建立技術(shù)團(tuán)隊(duì),擔(dān)任技術(shù)負(fù)責(zé)人,規(guī)劃產(chǎn)品線,并獲得兩輪海外融資。現(xiàn)在公司已經(jīng)小有規(guī)模,但身為老技術(shù)員的他經(jīng)歷幾次招聘之后,發(fā)現(xiàn)現(xiàn)在的程序員水平堪憂,于是他想告訴大家——程序員如何鋪就職業(yè)坦途。
三大原因阻礙進(jìn)步
一、不扎扎實(shí)實(shí)地鉆研理論,打好基礎(chǔ)。雖然很多程序員也讀書,但讀的大多是比較熱門的所謂“技術(shù)”書,業(yè)界炒什么“單詞”,他就讀什么,但理論基礎(chǔ)不牢、功底太淺的缺點(diǎn)卻不去修正。例如,一些程序員和大學(xué)生成天讀.NET、J2EE、Ajax之類的書籍,但關(guān)于數(shù)據(jù)庫原理、數(shù)據(jù)結(jié)構(gòu)與算法等基礎(chǔ)理論,卻一竅不通。甚至有些學(xué)生不好好學(xué)習(xí)學(xué)校規(guī)定的課程,卻到外面參加培訓(xùn)機(jī)構(gòu)培訓(xùn)。
二、敬業(yè)精神差,程序漏洞百出。很多程序員工作帶身不帶腦,邊寫代碼邊上網(wǎng)聊天,程序漏洞百出。很少考慮程序問題給用戶造成的損失,給公司帶來的負(fù)面影響,很少去研究自己寫的代碼能否進(jìn)一步優(yōu)化,總認(rèn)為代碼只要通過編譯就OK了。
三、過于頻繁地跳槽,沒有長期規(guī)劃。剛踏入社會(huì),就成天想著房子和車子,由此抱怨工資太低、待遇太差、老板太小氣、房價(jià)太高。由于行業(yè)發(fā)展迅速,這些程序員就會(huì)頻繁跳槽,他們很少結(jié)合自己的實(shí)際能力和水平衡量自身的“價(jià)值”,更缺乏通過一個(gè)長期規(guī)劃不斷提升自身價(jià)值的意識(shí)。
三個(gè)結(jié)合鋪就坦途
把知識(shí)學(xué)習(xí)與企業(yè)需求相結(jié)合。大多數(shù)程序員都是科班出身,但大學(xué)教育是普及教育,教給學(xué)生的只是知識(shí),而企業(yè)對學(xué)生的需求是技能。當(dāng)雙方都不愿意承擔(dān)“銜接”的作用時(shí),就需要學(xué)生自己想辦法。目前,企業(yè)對軟件工程流程越來越重視,所以,適應(yīng)企業(yè)的需要就要學(xué)會(huì)規(guī)范的文檔,然后才是技術(shù)。東軟的副總、CTO方發(fā)和這樣描述他對IT專業(yè)學(xué)生的要求:“我們要求學(xué)生注重4方面的能力:眼界、學(xué)習(xí)的方法、技能和規(guī)范。要學(xué)習(xí)如何與別人合作,比如在代碼風(fēng)格上統(tǒng)一。雖然只是一名程序員,但仍需要站在項(xiàng)目經(jīng)理的層面上看自己的工作,這樣才能更好地融入到團(tuán)隊(duì)中。”可見,不斷積累能夠和企業(yè)順利接軌的素質(zhì)與能力是迅速發(fā)展的基礎(chǔ)。
將技術(shù)提升與行業(yè)相結(jié)合。程序員首先要在技術(shù)上做得比較深入,成為技術(shù)專家。無論是Java還是.NET,還是數(shù)據(jù)庫領(lǐng)域,都要成為行家里手。要想出頭,必須提高系統(tǒng)設(shè)計(jì)能力。2000年以后,軟件業(yè)的編程思維和模式、方法發(fā)生了翻天覆地的轉(zhuǎn)變,軟件工程流程的普及,使得對程序員的基礎(chǔ)要求降低了,但對系統(tǒng)設(shè)計(jì)的要求提高了。然而,系統(tǒng)設(shè)計(jì)能力是要與行業(yè)結(jié)合的,也就是說,要從一個(gè)行業(yè)應(yīng)用軟件設(shè)計(jì)的角度來看待程序員的工作,這不僅能夠幫助工作,還為以后的“進(jìn)階”提供了保障。
把發(fā)展方向與自身性格相結(jié)合。已經(jīng)工作兩年以上的程序員有幾種基本的職業(yè)規(guī)劃:技術(shù)專家、軟件架構(gòu)師、實(shí)施顧問或銷售。最主要的發(fā)展方向是技術(shù)專家,但技術(shù)專家再往上就比較困難,架構(gòu)師總是只有那么幾個(gè)。所以,程序員應(yīng)該根據(jù)自己的情況,決定自己做軟件架構(gòu)師還是高級的顧問銷售,或者走向行政管理。實(shí)施顧問和銷售比較偏向市場,除了一定的技術(shù)能力外,需要掌握很多IT以外的知識(shí)。這些發(fā)展方向?qū)τ趶钠渌麑I(yè)轉(zhuǎn)入IT的人員更為適合。比如煙草行業(yè),一定要了解大的趨勢、煙草行業(yè)的產(chǎn)業(yè)政策是什么、直接導(dǎo)致需求是什么等,這些信息對于職業(yè)發(fā)展很重要。IBM的一些顧問都是行業(yè)內(nèi)的資深專家,他們的發(fā)展就非常具有代表性。
TIPS程序員應(yīng)具備的7個(gè)核心能力
1.團(tuán)隊(duì)精神和協(xié)作能力;2.文檔習(xí)慣;3.規(guī)范化,標(biāo)準(zhǔn)化的代碼編寫習(xí)慣;4.需求理解能力;5.復(fù)用性,模塊化思維能力;6.測試習(xí)慣;7.學(xué)習(xí)和總結(jié)的能力。