導讀:近日,著名的技術書籍出版商 PACKT 基於 8000 名開發人員以及技術專家的工作經驗進行了調查研究,最終發布了《2018 年開發人員技能提升報告》,旨在追蹤開發人員的工具使用方式以及最新的技能趨勢,確保開發人員做出正確的學習選擇。
本技能提升報告從 App 開發、Web 開發、安全和系統管理、資料科學四大方面入手,一窺 2018 年開發人員最受歡迎的工具以及更能獲得高薪的技能。
01 App 開發:Java 坐穩霸主之位、iOS 應用開發更能獲高薪
1. 程式設計語言:Python 受高薪程式員青睞、Java 在移動開發中大顯身手
2018 年以來,Java、Java、Python 開始爭奪程式設計語言界的頭把交椅。不過,霸主依舊是霸主,無可比擬,Java 仍占榜首,據報告顯示,有 40% 的開發人員使用 Java 進行 App 研發。而 Java 和 Python 稍遜一籌,Java 占 36.85%,Python 占 36.47%,後兩者之間相差不到 1%,流行度可謂不分伯仲。
除此之外,用於 App 開發的程式設計語言 Top 10,還有 C#、SQL、C++、C、PHP、Swift、Go。
據調查結果顯示,Python 最受高收入的 App 程式員的青睞;C# 適用於企業和傳統型應用程式的開發,也在遊戲開發中大顯身手,因此最受此領域的開發人員們喜愛;而 Java 最受移動開發人員的歡迎。
對於 App 開發,我們已經看到基於 C 語言的開發支援已經越來越少。且只有在案頭開發人員和遊戲指令碼編寫人員中,C#仍然佔據著榜首位置,這意味著更多的開發人員都在嘗試新的方法來構建瀏覽器以及移動端應用。
2. 移動開發工具:Android Studio 穩操勝券
Android Studio 是行動裝置端(39%)開發時的主導工具,其使用量比Xcode(16%)多出一倍以上。總體上來看,Android 開發人員的數量比 iOS 要多得多。
但是,使用 Xcode,iOS SDK 或 macOS 進行開發的開發人員中,有 50% 的人薪酬為 70000 美元甚至更高,所以想要在移動開發中掙取更多的薪酬,具備 iOS 技能看起來更容易實現這一目標。
3. 遊戲開發工具:Unity 猛超 Unreal,成為遊戲開發首選引擎
對所有開發人員而言,Unity 是遊戲開發的首選工具。據調查報告顯示,26% 的受訪者使用 Unity,同等類別的第二大受歡迎的遊戲開發引擎為 Unreal,佔比 11%。
4. 企業和案頭應用開發工具
.NET、Visual Studio 和 Java EE 無疑為企業和案頭應用開發工具的前三甲。
5. MySQL 成為最受歡迎的資料庫
MySQL,SQL Server 和 SQLite 是最常用的資料庫。
6. 技能提升方向
機器學習:過去一年,經過資料科學、人工智慧等領域的洗禮,機器學習技術成為 App 開發人員學習的下一個重要內容。將演算法智能整合到 App 中的目標極具挑戰性,並且與 App 開發的諸多功能(如會話式 UI)密切相關。基於此,受訪者還將 TensorFlow 和深度學習列為他們正在學習的新技能,這意味著 App 開發人員正在學習一些最複雜、最強大的機器學習工具和技術。
Python:如果 App 開發人員正在深入探索機器學習技術,那麼其正在使用 Python 進行學習。 由於其適應性、並從機器學習演算法到 GUI 能夠構建任何內容,2018 年的 Python 正成為開發人員當之無愧的選擇。 這也是高收入的 App 開發人員青睞的語言。
Web 技術:如今 App 開發和 Web 開發之間的差距正在逐漸消失。諸如 React Native 證明了將本機 App 的可用性與 Web 應用程式的互動性相結合的體驗比以往的更強大。同樣,後端和前端之間的關係也在改變。 隨著微服務和無伺服器架構成為常態,Web 開發人員和 App 開發人員開始共用非常相似的工具鏈。
區塊鏈:根據今年的調查,我們發現很多 App 開發人員正在轉型區塊鏈,這也成為 App 開發人員須關注的領域之一。雖然區塊鏈對電子商務等主流 App 是否有影響還有待觀察,但在不久的將來,區塊鏈更多細分的應用將會更加明顯。
Kotlin:誕生於 2011 年,但直到最近才開始真正吸引工程師的特別青睞。Google 在 2017 年宣布 Kotlin 在 Android Studio 3.0 中完全獲得支援,使之成為 Android 開發語言之一。預計到今年年底,Kotlin 將與 Java 展開激烈競爭。
Rust:已經有一段時間了,但 Mozilla 去年專門成立一個團隊來繼續開發。他們希望將 Rust 定位為串連前後端的關鍵性語言——wasm-bindgen,使 Rust 與 Java 可互操作。
02 Web 開發:Angular、React、Vue 不分伯仲
隨著越來越多的應用程式遷移到瀏覽器和雲端,網站變得越來越複雜,Web 開發也成為企業的重中之重。那麼,為了保持在 Web 開發中的領域地位,身為開發人員需要瞭解什嗎?在頂尖 Java 架構的爭奪戰中,誰更勝一籌?開發人員是否仍使用 Java 語言呢?
當被問及時,近 2000 名受訪者表示其正在從事 Web 開發。
1. 程式設計語言:Java 仍然是 Web 的重點語言
令人驚訝的是,Java 仍然是 Web 的重點語言。但是繼 HTML / CSS 之後的第三和第四名爭奪戰中,Python 以 3% 的差距落敗於 PHP。
然而,要論 Web 開發人員學會哪種程式設計語言更能獲得高薪?以下這個最受歡迎的程式設計語言熱門排行榜並不意味著開發人員可獲薪酬的高低。據報告顯示,收入超過 7 萬美元的 Web 開發人員更可能使用C#(37%)、Java(32%)和 Type(29%)。
2. 誰贏得了 Java 架構的 NO.1?
有 40% 的開發人員表示他們經常使用 Angular,與之相對的是 25% 的開發人員使用 React,20% 的開發人員使用 Vue。但 React 的使用率正在逐日增長,特別是在薪水較高的 Web 開發人員中,他們更有可能成為 React 使用者。
有趣的是,當被問及“誰應該贏得前端工具的 NO.1?”時,開發人員的支援率幾乎持平。Angular 和 React 支援者的比例相差不到 1%,Vue 也獲得了 20% 的好評。
在後端開發中,Node 仍然是開發人員最喜歡的工具。 但是,位居第二的 ASP.NET Core 使用率正快速增長,目前有 25% 的受訪者使用。
在研究收入最高的 Web 開發人員青睞的工具時,ASP.NET Core 的受歡迎程度進一步提高,超過 35% 的受訪者經常使用它。
3. 技能提升方向
機器學習:對於機器學習技術進入 Web 開發領域的事實並不令人感到意外。作為 IT 從業人員,只需查看一些受歡迎的網站即可隨處見到個人化推薦正在塑造更好的使用者體驗。與此同時,隨著聊天機器人和會話式 UI 作為數字型驗的重要部分迅速興起,Web 開發人員必須儘快瞭解該技術。此外,領先的雲平台已經開始構建機器學習解決方案,以便開發人員構建和部署演算法。今年早些時候發布的 TensorFlow.js 也標誌著在瀏覽器上運行機器學習系統將會更簡單。
React:React 為複雜管理和擁有大量資料的 App 建立提供了一種簡單的方法。它的速度也非常快,因為虛擬 DOM 是 React 的 USP 之一。可以說 React Native 已經鞏固了 React 作為權威的前端 Java 庫的地位,從而可以輕鬆構建跨平台。
Angular:它是一個完全成熟的架構,相比 React,它有更多的工具套件。而且由於它是 Google 建立的,因此可以確信它始終適合 Web 使用者的需求。
Golang:它是一種非常高效的語言,可以解決現代 Web 開發中的一些痛點,如單頁面 Web 應用程式和部署在雲上。
AWS:2018 年,雲已經成為主流,而 AWS 對於 Web 開發人員越來越重要的原因始於其正在向雲端轉型。AWS 是一個雲平台,其在設計時考慮到了持續傳遞和 DevOps。
GraphQL:在今年年底,GraphQL 作為 2018 年最重要的工具之一。 我們對 Web 開發人員開始關注它並採用它並不感到驚訝——Facebook 的資料查詢語言正在協助塑造 API 設計的未來。 隨著 React 的知名度不斷提高,GraphQL 將會整齊地融入到 Web 開發工具鏈中。
03 安全和系統管理:Linux 獨佔鰲頭
過去一年裡,科技圈經曆前所未有的惡意軟體攻擊和資料泄露事件之後,強大的網路安全和良好的管理系統的愈發。但是安全和專業的系統人員每天都在使用哪些工具?
當被問及時,超過 1500 名受訪者表示他們正在從事安全和系統管理工作,諸如系統管理員、DevOps 專家、安全專家、IT 支援、後台開發人員等等。
1. 程式設計語言:Python 更具安全性
作為安全和系統管理中最常用的指令碼語言,Python 和 Bash 位居一二。這對於從事安全以及網路和系統管理工作的受訪者而言,這兩方面都同樣重要。
2. 頂級安全工具
Wireshark 和 Nmap 是安全工具的首選。 但僅有不到 50% 的受訪者使用 Kali Linux,它仍然是安全或系統專業人員庫中最重要的測試載入器。
3. 頂級的系統管理員和虛擬化工具
不出所料,最常用的作業系統是 Linux、WindowsOS。 但是,作為一個重要的行業工具,以快速為優勢的是 Docker。 超過 45% 的受訪者表示他們定期使用 Docker。
4. 技能提升方向
機器學習:對於專業的安全人員來說,機器學習已經提供了識別漏洞和安全威脅的有效方法。對於系統管理員來說,機器學習可能看起來像是一種威脅,但實際上它將重塑角色。 沒錯,系統管理員可能需要提高技能,但隨著軟體基礎設施變得越來越複雜,它需要人工智慧來成功管理其整合和維護。
Kubernetes:它在 2018 年構思了集裝箱化的未來。隨著 Docker 現在通過在企業版中提供支援來認可 Kubernetes 在集裝箱化領域的實力,可以說 Kubernetes 在集裝箱業務方面是同類中最好的。隨著集裝箱化持續發展,Kubernetes 將變得越來越重要,它在大規模部署中提供的控制層級令人印象深刻。
Python :一種多功能語言。 作為指令碼語言,它為測試人員和 DevOps 工程師提供了大量的控制權——可以協助他們解決問題。通過機器學習,Python 也將發揮重要作用,使其不再是來自資料科學特定背景的工程師。
AWS 和云:在雲端運算領域,Google、微軟、亞馬遜競爭非常激烈。但是相比之下,AWS 似乎確實成為許多人選擇的雲解決方案。它是否能夠維持其知名度還有待觀察 - 隨著企業和工程師尋找更多定製的雲平台,我們可能會開始看到混合雲解決方案脫穎而出。
Ansible:Ansible 可能是最權威的組態管理工具。Ansible 在過去幾年的崛起主要歸功於它的自動化功能。 並且隨著對工程師和系統管理員面臨持續的時間壓力,自動化成為必要的需求。
04 資料科學:Python 逆襲 R,使用率高達 77%
2018 年,資料分析是否會侵入 IT 領域的方方面面?
在 Skill Up 資料調查中,App 以及 Web 開發人員均談到機器學習以及其他頂尖的資料技術對於其未來成功的重要性。那麼對於資料而言,運用的程式設計語言有哪些?資料分析師常用的庫和工具是什嗎?在此過程中,資料分析師最關心的是什嗎?
1. 資料科學的第一語言——Python
整體來看,Python 儼然成為資料科學的第一語言。相比它的傳統競爭者 R,Python 的使用率高達 77%,是 R 的兩倍還多。Python 的易用性、功能強大的工具和庫、以及在資料領域之外通用可以快速使用,種種因素使其在 2018 年幾乎成為每位開發人員必備的程式設計語言技能。
令人驚奇的是,在資料科學領域,Java 比 Java 更為常用。究其根本原因,是因為隨著構建基於 Web 可訪問的商業項目的需求不斷增長,越來越多的資料科學專家需要掌握 Web 技術。
2. 庫、工具、架構
撇開傳統的 Excel 之後,十大最常用的資料工具中的八個是從 Python 中派生出來的。這也是導致 Python 崛起的關鍵優勢之一。
3. 技能提升方向
TensorFlow、深度學習和機器學習:進一步推進機器學習演算法將成為未來一年及以後每個資料科學人員面臨的主要挑戰之一。 對於某些人來說,這意味著要深入研究難以置信的複雜 AI 系統。對於其他人,特別是那些從資料分析開始的人來說,通過 TensorFlow 熟悉深度學習將是深入學習的重要一步。
區塊鏈:資料專家是最有可能將區塊鏈視為革命性的組織。這是有道理的,特別是在 2018 年對資料的焦慮的情況下。通過區塊鏈,資料更安全;分布式分類賬可以讓資料科學專家更清楚地瞭解資料的來源和收集時間。 從分析和信任的角度來看,這都是好訊息。
云:如果今天的軟體基礎架構都是雲端式,那麼資料科學專家的前景將無可限量。雲不僅改變了資料存放區的方式,也可使分析人員和科學家更容易接觸資料,此外,一些雲解決方案開始具備機器學習功能。這消除了資料分析師面臨的一些挑戰,最重要的是,節省了大量時間。
Spark:將 Spark 歸於技能提升源於其兩個關鍵因素——規模和速度。 沒有其他資料平台可以讓開發人員以極快的速度處理大量的資料。
05 總結
根據 2018 年開發人員技能提升報告整體來看,Java 在程式設計語言中雖佔據主導地位,但是受 Google 支援的 Kotlin 發展趨勢也不容小覷。與此同時,Python 成為眾星中最閃爍的一顆,在 App 開發、Web 開發、安全和系統管理、資料科學中,它均為必備技能之一。
最後,隨著 Google Duplex 聊天機器人等進階人工智慧助理的不斷升級,機器學習技術的廣泛運用,或許我們正處於另一場真正技術革命的邊緣。