如今的開發者應了解哪些過去聞所未聞的新技能
譯文除了編程技術之外,如今的軟件開發者們還需要了解許多在過去聞所未聞的技能
如今的軟件開發者們已經不必像前輩們那樣擔心諸多因素,尤其是編碼工作中最大限度降低內存占用(即使這意味著執行時間將會大大延長)或者局域網連接最大帶寬不能超過14.4KB每秒等等。(盡管其中有些時至今日仍然具有一定的指導意義甚至有重新發揮作用的可能,但畢竟不是主流趨勢。)
不過從另一個角度來說,當下在軟件開發、硬件開發、系統及網絡管理以及其它IT專業領域充斥著大量全新的技能乃至業務范疇,這些內容在過去往往根本不存在(所謂的‘過去’涵蓋很廣,從三個月之前到五年、十年甚至二十年都說得通),或者只出現于預算龐大的某些特定機構或應用程序當中。
“大家可以給自己必需的技能列一張單子,其中具體內容的取舍與我們何時走出學校、對待工作是否認真以及接受新的技術、產業動態與工程發展的積極性密切相關,”Embarcadero技術公司開發部門副總裁兼企宣負責人David Intersimone如是說。
無論各位是剛剛躋身于軟件開發者行列(或者是正有此打算),還是已經成為一位經驗豐富的專業人士,了解自己需要掌握的內容都是很有價值的。這樣大家才能具備足夠的競爭力,輕松自如地選擇繼續從事這一行業、重新選擇其它領域或者著力爭取晉升。
因此在這里我要與此前自己編寫的“回顧那些失傳的技能”一文做個呼應,著重探討“發掘全新的技能”——相信我,無數IT專業人士們正緊盯這些新興領域,因此同樣身為軟件開發者的你絕對不能錯過這個將技能添加進自己知識結構中的機會。(聲明:很明顯,大多數情況下我不會討論具體某種編程語言的相關話題)
函數庫的靈活使用
第一條沖擊到我傳統觀念的新技能就是,開發者們對預置在新語言中大量分類庫及模板庫的把握能力,這一點在Java、C++乃至Python中都表現明顯。如今我們要想完成復雜的應用程序,對函數庫指令加以充分運用絕對是必不可少的能力。如果我們只懂得使用某種語言而不會使用函數庫的話,那么軟件成果只能是空談。
站在用戶立場打造產品
就在兩三年前,“信息架構”與“可用性工程”還屬于冷僻詞匯。而到了2010年,圍繞這兩個關鍵詞產生的招聘崗位不斷涌現。總結起來,這些技能其實是用于為用戶打造良好的使用體驗——用戶界面設計、信息展示架構以及獨特的平面布局,這一切已經組成了全新的正規專業知識領域。
異步編程及其它相關技術
將業務平臺向云計算轉移主要通過基于Web的接口實現,因此如今異步編程正越來越受到業界的關注。眼下即使是最簡單的應用程序也可能會需要異步編程技術,這一切都歸結于AJAX的廣泛應用,其編程風格迥異于以往,因此開發者們恐怕要投入相當大的心力以跟上時代的腳步了。
擴大技術的涉獵范圍
隨著時代的發展,業界對技術的要求也日新月異。如今精通某個單獨領域的員工已經不那么搶手,能夠掌握自己專業周邊的各類相關技術才足以笑傲職場。客戶的要求越來越多,而那些萬金油式的全面人才已然成為獵頭公司中公認的熱門人選。
特色專長造就全新崗位
在這一話題當中,我希望用客觀現狀代表主觀評述。在下面這份來自某招聘管理者的列表中,羅列出了數條能夠為求職者加分的技能內容:
1. 基于語音識別技術的非可視化用戶界面設計師;
2. 無硬盤大屏幕移動設備軟件設計師;
3. 位置及方向響應(類似于導航類)應用程序設計師;
4. 石油及天然氣勘探及地質領域的輔助軟件專家;
5. 體內嵌入式醫療器械設計專家。
通過這份列表,我們可以看出,除了軟件編寫技能之外,廣闊的IT天地間還有許多特色專長的用武之地。
開發工作中的快速反應與協作能力
今天的開發者們需要對軟件開發過程中的快速反應具備更詳盡的了解。反應速度與協作能力常常能夠為企業提供極大的市場競爭優勢。驅動測試開發、自動化驗收測試、代碼重構等等工作內容的順利實施都迫切需要上述能力的支持。
圍繞可部署性、可擴展性及可管理性開展開發工作
系統管理員們比軟件開發商更了解具體產品,不僅是從業務應用角度,從企業負責人的采購決斷角度更是如此。因此,開發商應該從管理者的立場密切監控產品的部署情況、擴展性以及管理難度。從這一點出發,企業的競爭力將會得到大大提升,而且管理員的一句贊許永遠強過投入巨資打造的廣告。
其它建議
以下是來自專家的其它一些補充內容:
◆ 為嚴格要求可擴展性的云計算提供類似Hadoop的分布式計算技術;
◆ “大數據”分析能力,以應對網絡及科學數據等帶來的龐大數據量,比如說那些用戶數量驚人的超大型門戶網站。
◆ 為了提高生產力而部署的Web應用程序框架,例如Ruby on Rails以及Grails等。
◆ 動態“腳本語言”強調開發者在實時性能表現方面的生產力,Python、Ruby、PERL、JavaScript以及Groovy(作為Java的替代方案存在)等都在此列。
高級軟件工程師Amy Unruh還補充說,“當下對于開發者們來說,了解關于實時搜索、流水線數據分析以及活動數據流管理方面的知識非常重要。此外大家還應該在自己的知識儲備中時常添加一些小型體系,包括微格式的使用、服務相關API的支持等等,這些都是計算原則之外頗具價值的實用技能。”
諸位讀者在工作過程中發現了哪些必不可少的技能,又是如何將相關學習付諸實踐的呢?
原文鏈接:
http://www.infoworld.com/d/application-development/what-todays-software-developers-need-know-173201?page=0,0
【編輯推薦】