未來5年開發人員必需具備的10項技能
由于最近經濟形勢的變化,很多開發人員只關注他們短期的工作前景。與此同時,把時間和精力花在學習最能帶來回報的新技術上是件非常重要的事情。這里是我們列舉的10種你需要馬上開始學習的技術,讓你的簡歷在未來5年不會落伍。這個列表并不完全,有很多業界的領域(比如大型機開發人員)沒有涉及。盡管如此,對通常的主流開發來說,學習其中至少7項技能肯定不會錯 ——不但要達到能在面試時侃侃而談的程度,還得能在工作中運用自如。
1: “三大”之一 (.NET, Java, PHP)
除非開發世界有根本的改變(類似小行星擊中雷德蒙),在不遠的將來,大部分開發人員將需要了解三大開發系統——.NET (VB.NET或者C#), Java, 或者PHP——中的至少一個。并且只了解核心語言也是不夠的。因為項目會包含越來越多不同的功能,你需要對相關框架和庫有深入的了解。
2: 富客戶端應用 (RIAs)
不管愛她還是恨她,最近幾年,Flash的用途突然間不僅僅是制作政治人物弱智歌曲演唱動畫而已了。Flash也萌生出了以Flex和AIR為形式的附加功能。Flash的競爭對手,比如JavaFx和Silverlight,也在不停的在特性和性能上加籌碼。HTML5集成了所有RIA的功能,包括數據庫連接和把正式的W3C印章加到AJAX(譯者:這個地方拿不準)。在不久的將來,RIA專家將會是簡歷的一個重要篩選條件。
3: Web開發
Web開發在近期內不會消失。很多開發人員滿足于忽略Web或者只是使用他們的框架給他們提供的"基本元素"。但是公司需要越來越多的真正知道怎樣使用底層技術進行“手工編碼”的人。所以要獲得成功請在未來5年里努力鉆研JavaScript,CSS和HTML。
4: Web服務
REST或者SOAP? JSON或者XML? 盡管選項和答案取決于項目本身,不使用或者創建Web服務對一個開發人員(甚至是那些不做Web應用程序的)來說越來越困難。那些原來采用ODBC,COM或者RPC domains的領域,現在也在某種程度上過渡到了Web服務。不會用Web服務的開發人員將會發現他們被排擠或者淪為維護人員。
5: 軟技能
有一種已經開始了很久的趨勢,IT在企業內部或者外部變得越來越透明。開發人員被卷入越來越多的非開發性會議和過程以給與反饋。舉個例子,CFO要改變會計規則不能不依靠IT去更新系統。如果沒有IT去升級CRM的工作流,運營經理就不能更改呼叫中心的流程。同樣的,客戶常常需要和開發小組一起工作來保證他們的需求被滿足。每一個開發人員都需要找主持人幫助或者去學習《怎樣結交朋友并影響別人》么?不是。但是擁有這種能力的開發人員對他們的雇主來說更有價值——并且更搶手。
6: 一種動態的和/或者函數編程語言
像Ruby,Python, F#, 和Groovy這樣的語言并不很主流——但是他們包含的想法卻是。比如說,微軟的.NET中的LINO系統是函數編程技術的直接產物。Ruby和Python在某些部門很熱門,分別感謝Rails框架和Silverlight。學習其中的一門語言不只會提升你的簡歷;它能開闊你的視野。我見過的每一個頂級開發人員都推薦學習至少一種動態或者函數編程語言,用來理解新的思考方式,個人經驗來講,我可以告訴你確實有用。
7: 敏捷開發方法
在敏捷開發方法剛開始進入主流視線的時候,我持懷疑態度,和其他我認識的很多家伙一樣。它看起來就像某種對傳統的下意識反應,丟掉控制和標準而偏愛混亂。但是隨著時間的推移,敏捷開發背后的智慧被更好的定義和表達出來。很多團隊不是應用了敏捷開發就是在進行敏捷開發的概念證明實驗。盡管敏捷開發不是治愈項目失敗的終極靈藥,它的確在很多項目上有一席之地。在未來幾年里,對有著敏捷開發環境的理解和成功經驗的開發人員的需求將會高速增漲。
8: 領域知識
和敏捷開發密切關聯,開發小組在項目定義中被越來越多的看做是同伴。這意味著了解問題領域的開發人員能夠用更可見的,高價值的方式給項目作出貢獻。敏捷開發中,一個能夠說,“從這里,我們也可以很簡單的添加這項功能,而且這能給我們帶來很多回報,” 或者 “噢,這個要求和我們的日志中顯示的使用模式并不相符” 的人將是優勝者。正如許多開發人員有抵制了解問題領域的想法,不可否認的是越來越多的組織希望(如果不是要求)開發人員至少能理解基本的內容。
9: “清潔”開發
幾年之前,很多(如果不是大部分)團隊都沒有使用bug跟蹤系統,版本控制,和其他類似工具;只有開發人員和他們選擇的IDE。但是,感謝新的整合套件的開發,比如Microsoft Visual Studio Team System以及高質量開源環境的爆炸性發展,沒用到這些工具的組織變得更不常見。開發人員必須比知道怎么在代碼控制中提交和獲得代碼或者怎樣用VM系統配置測試環境了解更多的東西。他們需要在適當的地方養成嚴格的衛生習慣以保證他們和其他的小組恰當的合作。“代碼牛仔”,把所有的東西存放在私人USB盤上,不把對任務對象的相應改變記錄成文檔,等等的人,在傳統的團隊里不受歡迎,在需要團隊成員之間緊密合作的敏捷開發環境中更是如此。
10: 手機開發
上世紀90年末代web開發被主流接受開始在很多領域將傳統的桌面程序邊緣化,在2008年,手機開發開始興起,在未來5年里,它將會變得越來越重要。當然,手機開發有很多不同的方法:針對手機設備的web應用程序開發,針對市場的RIAs,和直接在設備上運行的應用程序。不管你選擇了哪個方向,把手機開發加入你的技能集會保證你滿足未來的需求。
【編輯推薦】