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