一個(gè)程序員,從最基本的做做coding,到成為一代宗師,通常需要經(jīng)過下面六個(gè)階段:
第一階段
此階段主要是能熟練地使用某種語(yǔ)言。這就相當(dāng)于練武中的套路和架式這些表面的東西。一般來說,比較好的入門語(yǔ)言有c/c++、java、delphi和perl(當(dāng)然,匯編也是一門相當(dāng)重要的工具)。就這四門語(yǔ)言而言,我通常只使用c/c++進(jìn)行開發(fā),這是目前應(yīng)用最為常見的語(yǔ)言,特別是c,和低級(jí)語(yǔ)言有很多相似之處;java的最大優(yōu)勢(shì)在于跨平臺(tái)性,但是其執(zhí)行效率確實(shí)是一大問題;delphi是數(shù)據(jù)庫(kù)開發(fā)人員的利器,如果你希望從事erp開發(fā),一定要學(xué)好這門語(yǔ)言(當(dāng)然,也有c#,不過我沒有用過,也就不便評(píng)價(jià):-P);至于perl,如果你要使用unix/linux平臺(tái),這門語(yǔ)言一定要學(xué)會(huì)的!我推薦各位可以看看eckle寫的thinking in c++或者是thinking in java入門。這一階段最好的練習(xí)方法是多用最基本的語(yǔ)言寫程序,比如用c++的話,除了i/o之外,就不要使用任何的庫(kù)函數(shù)和api了,這樣才能盡快的掌握一門語(yǔ)言的基礎(chǔ)。
第二階段
此階段能精通基于某種平臺(tái)的接口(例如我們現(xiàn)在常用的win32 api)以及所對(duì)應(yīng)語(yǔ)言的自身的庫(kù)函數(shù)。到達(dá)這個(gè)階段后,也就相當(dāng)于可以進(jìn)行真實(shí)散打?qū)毩,可以真正地在?shí)踐中做些應(yīng)用。目前,在windows平臺(tái)下最好的參考資料當(dāng)屬msdn,上面有絕大多數(shù)win32 api的介紹,不過都是e文的(最起碼我拿到的版本是),要求有較高的e文能力(大概也就6級(jí)的水準(zhǔn)吧)。至于庫(kù)函數(shù),一般在網(wǎng)上很容易找到相應(yīng)參考資料的。最好的練習(xí)方法就是多寫些程序,但和第一階段不同的是,這一階段要盡量用api和庫(kù)函數(shù)寫。
第三階段
這個(gè)階段要求程序員深入地了解某個(gè)平臺(tái)系統(tǒng)的底層,具備初級(jí)的內(nèi)功,也就是“手中有劍,心中無劍”。這個(gè)階段要求程序員對(duì)os的原理和實(shí)現(xiàn)有一定的理解,最好使用開源平臺(tái)進(jìn)行學(xué)習(xí),如linux,因?yàn)樵趙indows下,所有的細(xì)節(jié)都是屏蔽的,很難了解到它到底是怎樣運(yùn)行的。這個(gè)階段正是我目前努力的目標(biāo),按照目前的進(jìn)度,我在今年就應(yīng)該能夠升級(jí)到這里了:-)
第四階級(jí)
到達(dá)這個(gè)階段的人就不多了,這些人大都是一流的黑客、公司的骨干了,能直接在平臺(tái)上進(jìn)行比較深層次的開發(fā)。比如能進(jìn)行vxd(想想當(dāng)年陳盈豪的cih病毒)或操作系統(tǒng)的內(nèi)核的修改。這時(shí)已經(jīng)不再有語(yǔ)言的束縛,惟一的束縛就是你的開發(fā)思想,語(yǔ)言只是一種工具,即使要用自己不會(huì)的語(yǔ)言進(jìn)行開發(fā),也只是簡(jiǎn)單地熟悉一下,就手到擒來,完全不像是第一階段的時(shí)候?qū)W習(xí)語(yǔ)言的那種情況。一般來說,從第三階段過渡到第四階段是比較困難的,因?yàn)楹芏嗳说乃枷胱儾贿^來。
第五階級(jí)
前幾個(gè)階段就好比獨(dú)孤求敗年輕用的那柄削鐵如泥的寶劍和那把玄鐵重劍,在一定程度上依賴著武器的威力。但在這個(gè)階段,程序員就如同四十之后的獨(dú)孤求敗,劍由心生,隨便選取一根樹枝就能當(dāng)作威力無窮的寶劍。全局把握、整體設(shè)計(jì),包括從內(nèi)核到外層,這時(shí)的程序員已經(jīng)不是傳統(tǒng)意義上的程序員了,或許叫做項(xiàng)目更合適。如果達(dá)到這個(gè)階段,你就可以直接向ms遞交申請(qǐng)了,而且一定成功:-P
第六階級(jí)
此階段也是最高的境界,達(dá)到“無招勝有招”。這時(shí)候,任何問題就純粹變成了一個(gè)思路的問題,不是用什么代碼就能表示的。也就是“手中無劍,心中也無劍”。此時(shí),對(duì)于練功的人來說,他已不用再去學(xué)什么少林拳,只是在旁看一下少林拳的對(duì)戰(zhàn),就能把此拳拿來就用(就像張無忌學(xué)習(xí)三十六式龍爪手一樣)。這就是真正的大師級(jí)的人物,比如linus,或許gates也能算達(dá)到這個(gè)境界了吧。這時(shí),Win 32或Linux在你眼里是沒有什么差別的。
每一個(gè)階段再向上發(fā)展時(shí)都要按一定的方法。第一、第二個(gè)階段通過自學(xué)就可以完成,只要多用心去研究,耐心地去學(xué)習(xí)。要想從第二個(gè)階段過渡到第三個(gè)階段,就要有一個(gè)好的學(xué)習(xí)環(huán)境。例如有一個(gè)高手帶領(lǐng)或公司里有一個(gè)好的練手環(huán)境。經(jīng)過二、三年的積累就能達(dá)到第三個(gè)階段。但是,有些人到達(dá)第三個(gè)階段后,常常就很難有境界上的突破了。他們這時(shí)會(huì)產(chǎn)生一種觀念,認(rèn)為軟件無非如此,認(rèn)為自己已無所不能。其實(shí),這時(shí)如果遇到大的或難些的軟件,他們往往還是無從下手。
現(xiàn)在我們國(guó)家大部分程序員都是在第二、三級(jí)之間。他們大多都是通過自學(xué)成才的,不過這樣的程序員一般在軟件公司也能獨(dú)當(dāng)一面,完成一些軟件的模塊。但是,也還有一大堆處在第一階段的程序員,他們一般就能玩玩VB,做程序時(shí),去找一堆控件集成一個(gè)軟件。坦白的說,利用控件完成程序本身也是一種很好的開發(fā)模式,但是這樣對(duì)于程序員自身的提高而言并無任何好處。
相關(guān)推薦:考試吧策劃:2010年軟件水平考試完全指南北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |