未來(lái)五年程序員應(yīng)當(dāng)具備的十項(xiàng)技能
當(dāng)前的經(jīng)濟(jì)形勢(shì)下,很多程序員將目光聚焦在短期內(nèi)的工作形式上,但是你仍然要抽出時(shí)間和精力學(xué)習(xí)新的技能。以下是作為程序員應(yīng)當(dāng)即刻學(xué)習(xí)的十項(xiàng)技能,以確保在未來(lái)五年內(nèi)你的簡(jiǎn)歷上有真材實(shí)料。當(dāng)然這個(gè)名單很難做到詳盡而沒(méi)有遺漏,有些領(lǐng)域沒(méi)有涉及到(比如大型機(jī)開(kāi)發(fā)者)。然而,對(duì)于一般的主流開(kāi)發(fā)而言,你至少要學(xué)會(huì)以下十條中的七條,而且掌握的程度不是那種你在工作面試上能夠夸夸其談,而是真正能夠用于實(shí)際開(kāi)發(fā)。
1 三大主流開(kāi)發(fā)體系之一(.NET, Java, PHP)
除非軟件開(kāi)發(fā)領(lǐng)域發(fā)生巨大的變革(這機(jī)率好比行星撞擊地球),不然程序員至少需要知道三大開(kāi)發(fā)系統(tǒng)中(.NET (VB.NET or C#), Java, PHP)的一種。而且僅僅了解核心語(yǔ)言是不夠的,因?yàn)楝F(xiàn)在的項(xiàng)目擁有越來(lái)越多的不同功能,這也迫使程序員對(duì)相關(guān)的框架和庫(kù)了解得更深。
2 富客戶端應(yīng)用(Rich Internet Applications)
無(wú)論你對(duì)Flash是愛(ài)還是恨,我們都不得不承認(rèn)在過(guò)去的幾年里Flash的發(fā)展壯大已遠(yuǎn)不僅是應(yīng)用于動(dòng)畫(huà)制作。Flash以及Flex和AIR都具備越來(lái)越多的功能。而Flash的競(jìng)爭(zhēng)者,如JavaFX和Silverlight等也在不斷提升自身的性能和表現(xiàn)。讓富互聯(lián)網(wǎng)應(yīng)用更加活躍的是,HTML 5正整合進(jìn)所有種類(lèi)的RIA功能,包括數(shù)據(jù)庫(kù)連接、將W3C置于AJAX上等。在不遠(yuǎn)的將來(lái),作為一名RIA領(lǐng)域的專家無(wú)疑將給你的簡(jiǎn)歷添上濃重的一筆。
3 Web頁(yè)面開(kāi)發(fā)
Web開(kāi)發(fā)恐怕在未來(lái)的很長(zhǎng)時(shí)間內(nèi)都是主流技術(shù)之一。許多程序員往往滿足于構(gòu)建后臺(tái)、或者只是專注于框架基礎(chǔ)而忽略了Web。但是越來(lái)越多的企業(yè)需要如何在交互代碼(hand code)級(jí)別處理Web技術(shù)的人員,所以掌握J(rèn)avaScript、CSS和HTML必將在未來(lái)五年內(nèi)的職場(chǎng)上無(wú)往不勝。
4 Web服務(wù)端開(kāi)發(fā)
REST 還是SOAP? JSON 還是XML?當(dāng)然選擇答案得依據(jù)項(xiàng)目來(lái)定,但如果一名程序員不會(huì)創(chuàng)建Web服務(wù)(盡管這個(gè)程序員也許不用寫(xiě)Web應(yīng)用),那么他在工作崗位上一定倍感艱難。因?yàn)榧幢闶沁^(guò)去那些被ODBC, COM或者 RPC主宰的領(lǐng)域現(xiàn)在也轉(zhuǎn)到了一些形式的Web服務(wù)上了。
5 軟性技能
一段時(shí)間以來(lái)就有這樣一種趨勢(shì)即:無(wú)論在企業(yè)內(nèi)部還是企業(yè)外部提高IT的能見(jiàn)度。程序員被越來(lái)越多地帶去參加非開(kāi)發(fā)性會(huì)議來(lái)提供技術(shù)支持。例如,沒(méi)有IT升級(jí)系統(tǒng),***財(cái)務(wù)官不可能改變收支細(xì)則;沒(méi)有IT升級(jí)CRM工作流,運(yùn)營(yíng)總監(jiān)不可能改變一個(gè)中心呼叫進(jìn)程。同樣,客戶經(jīng)常直接與開(kāi)發(fā)團(tuán)隊(duì)溝通以確保他們的需求被完成。是否每個(gè)程序員都應(yīng)該回去學(xué)習(xí)禮儀課來(lái)與別人更好的交往呢?那倒不必,但是程序員的確要提高待人接物的軟性能力,以在職場(chǎng)上獲得更大的價(jià)值。
6 一種動(dòng)態(tài)或者函數(shù)式程序設(shè)計(jì)語(yǔ)言(Functional Programming Language)
類(lèi)如Ruby, Python, F#和Groovy等的語(yǔ)言雖然不完全主流,但是語(yǔ)言內(nèi)部包含的思想?yún)s是開(kāi)發(fā)界的主流。比如,微軟.NET中的LINQ系統(tǒng)就是函數(shù)式程序設(shè)計(jì)語(yǔ)言的一個(gè)直接派生。得益于Rails框架和Silverlight的發(fā)展,Ruby和Python語(yǔ)言在一些領(lǐng)域變得很熱門(mén)。學(xué)習(xí)這樣一門(mén)語(yǔ)言不僅豐富了你的簡(jiǎn)歷,而且會(huì)開(kāi)闊你的開(kāi)發(fā)視野。我所遇到的***開(kāi)發(fā)者幾乎都曾在演講中提到學(xué)習(xí)一門(mén)動(dòng)態(tài)語(yǔ)言或者函數(shù)式程序設(shè)計(jì)語(yǔ)言的重要性,就我的個(gè)人經(jīng)歷而言,這確實(shí)很有用。
7 敏捷開(kāi)發(fā)
當(dāng)敏捷開(kāi)發(fā)***次沖擊主流的開(kāi)發(fā)意識(shí)時(shí),我跟許多開(kāi)發(fā)者一樣持懷疑的觀點(diǎn)。因?yàn)樗鼟仐壛丝刂?、?biāo)準(zhǔn)等,看起來(lái)是一種完全與傳統(tǒng)方法相悖的開(kāi)發(fā)方法。但隨著時(shí)間的發(fā)展,敏捷背后的思想被定義的越來(lái)越好,應(yīng)用得也越來(lái)越棒。許多開(kāi)發(fā)或者采用敏捷,或者在敏捷開(kāi)發(fā)的實(shí)驗(yàn)階段。盡管敏捷不是失敗項(xiàng)目的萬(wàn)靈藥,但它確實(shí)在軟件開(kāi)發(fā)中有一席之地。那些對(duì)敏捷有很好的理解并且有應(yīng)用經(jīng)歷的開(kāi)發(fā)者必將在未來(lái)五年內(nèi)成為搶手貨。
8 業(yè)務(wù)領(lǐng)域知識(shí)
開(kāi)發(fā)團(tuán)隊(duì)越來(lái)越被看做是項(xiàng)目的合作者,這意味著了解該領(lǐng)域的開(kāi)發(fā)者將對(duì)該項(xiàng)目的貢獻(xiàn)更大。有了敏捷,開(kāi)發(fā)者可以說(shuō)我們可以在這兒很簡(jiǎn)單地增加這個(gè)功能,而這將讓我們的產(chǎn)品更具價(jià)值?;蛘哌@個(gè)要求不符合我們?nèi)罩撅@示的常用類(lèi)型。由于越來(lái)越多的程序員反對(duì)必須了解該領(lǐng)域內(nèi)的所有問(wèn)題(實(shí)際上也不可能做到),所以不可否認(rèn)的是越來(lái)越多的企業(yè)希望開(kāi)發(fā)者起碼了解該領(lǐng)域內(nèi)的基礎(chǔ)知識(shí),越多越好。
9 質(zhì)量控制
幾年前的時(shí)候,很多企業(yè)和產(chǎn)品沒(méi)有bug跟蹤系統(tǒng)、沒(méi)有版本控制和其他類(lèi)似的工具,所寫(xiě)出的代碼和產(chǎn)品都只是跟程序員和他所用的IDE有關(guān)。幸而開(kāi)發(fā)領(lǐng)域有了新的、集成的工具如Microsoft Visual Studio Team System,而且產(chǎn)品、代碼高質(zhì)量及可用性的透明度提高,開(kāi)源環(huán)境等,現(xiàn)在沒(méi)有這種工具的企業(yè)已經(jīng)越來(lái)越少***。開(kāi)發(fā)者除了知道如何源代碼控制、如何使用VM系統(tǒng)構(gòu)建測(cè)試環(huán)境之外,還要做更多的質(zhì)量控制工作,并具備很好的清潔意識(shí)來(lái)確保他與他的團(tuán)隊(duì)協(xié)調(diào)一致。那些將代碼處存在個(gè)人硬盤(pán)中,沒(méi)有記錄代碼變更、任務(wù)目錄等的開(kāi)發(fā)者,不但在傳統(tǒng)的開(kāi)發(fā)環(huán)境中不受歡迎,在敏捷的開(kāi)發(fā)環(huán)境中也不受歡迎。
10 移動(dòng)開(kāi)發(fā)
在上世紀(jì)90年代末,Web開(kāi)發(fā)一躍成為主流并且將原來(lái)傳統(tǒng)的桌面應(yīng)用開(kāi)發(fā)邊緣化。在2008,移動(dòng)開(kāi)發(fā)大肆進(jìn)入人們的視野,而且至少在五年內(nèi)移動(dòng)開(kāi)發(fā)都將是開(kāi)發(fā)領(lǐng)域的重中之重。當(dāng)然移動(dòng)開(kāi)發(fā)的方式有很多種,但無(wú)論你選擇哪一種都將令你成為未來(lái)的搶手貨。
【編輯推薦】