作為一個(gè)混跡于軟件行業(yè)十多年的老碼農(nóng),來(lái)聊聊我的看法。
一般來(lái)說(shuō),編程分為不同的階段和方向,每個(gè)階段側(cè)重點(diǎn)各不相同,需要學(xué)習(xí)的技能也隨發(fā)展方向的不同而不同。
入門階段,也就是剛?cè)腴T時(shí),對(duì)于所有的人來(lái)說(shuō)都一樣,那就是快速的學(xué)會(huì)一門編程語(yǔ)言,熟練使用一款高效的開發(fā)環(huán)境,能使用一些版本控制工具,如Git,SVN等。對(duì)于新手來(lái)說(shuō),學(xué)習(xí)編程最好的辦法就是多寫代碼,熟能生巧嘛。自己寫當(dāng)然最好,自己寫不出來(lái),把書上的代碼敲上去,修改、編譯、再運(yùn)行比較結(jié)果與自己的預(yù)期,都會(huì)讓你印象深刻的(好象是王者農(nóng)藥的一句臺(tái)詞,呵呵)!這個(gè)階段少則半年,多則兩三年,如果超過三年還停留在此,只能說(shuō)明并不適合編程。
提升階段,在掌握了基本的編程技能并有了一定的實(shí)戰(zhàn)經(jīng)驗(yàn)之后,一般能夠自己編寫模塊級(jí)的程序,但是大部分人還不能獨(dú)立的開發(fā)軟件,也無(wú)法解決一些技術(shù)難題,這時(shí)候就需要在理論與管理方面有所提升。比如學(xué)習(xí)其它的編程語(yǔ)言、學(xué)習(xí)一些編程方法論,如面向過程編程、面向?qū)ο缶幊獭⒚艚菥幊獭⒃O(shè)計(jì)模式,還有如軟件工程、質(zhì)量控制等管理方面的知識(shí)。這個(gè)階段持續(xù)的時(shí)間因人而異,有很多程序員,特別是非專業(yè)出身的,往往會(huì)卡在這里。
分化階段,隨著各種技能的不斷提升,逐漸對(duì)軟件行業(yè)有了自己的認(rèn)識(shí),這時(shí)候因?yàn)槊總€(gè)人的興趣愛好不一樣,就開始朝著不同的方向發(fā)展。大部分人到了一定階段會(huì)選擇管理,但是受能力與人際關(guān)系等多方面的影響,只有較少的人能如愿;也有一部分人因?yàn)闊釔劬幊潭^續(xù)在此深耕,他們有的會(huì)向理論層面深入研究,有的則會(huì)向架構(gòu)設(shè)計(jì)方面靠近,也有一部分人在開源領(lǐng)域奉獻(xiàn)著自己的才智;當(dāng)然受國(guó)內(nèi)大環(huán)境的影響,也有很多人即沒有管理的能力,也無(wú)法再技術(shù)方面深耕,最終早早離開編程崗位。
總之,學(xué)習(xí)編程在開始階段敲的代碼越多,學(xué)的就越快,但是到了一定階段之后,就需要有理論知識(shí)做支撐。