近日,Stack Overflow 釋出了 2019 年的最新調查結果,總結了不同程式語言在行業中可能獲得的薪水。當然,在這個過程中也需要關注一些其他因素,比如:語言對使用者是否友好,這有助於更快地學習語言;是否與現在的科技趨勢相關。(注:該資料根據 Stack Oveflow2019 年關於程式語言薪酬排行開發者調查報告得出。)
如上圖是全球前十大收入最高的程式語言排名,但根據調查,收入與地域之間也是有區別的,比如在美國,Scala 的收入最高,可以達到 143k 美元,其次是 Clojure(139k 美元)、Go(136k 美元)、Erlang(135k 美元)、Objective-C(132k 美元);在印度,Clojure 和 Rust 收入最高。
工作經驗與薪酬肯定是相關的,但根據調查,有些程式語言無論工作經驗多少,薪資都比較高好,而有些程式語言無論多少年工作經驗都很一般。
如上圖,紅圈的大小不同代表著受訪者人數的範圍不同,橫軸代表著工作經驗(年數),縱軸代表著薪資中位數。
不難看出,使用 Clojure、F#、Scala、Go、Rust 和 R 語言的開發人員,雖然工作經驗並不見得非常多,尤其是 Rust、R、Ruby 和 Go,也會獲得不少的薪水。然而,PHP、Java、C、C++,即使有多年開發經驗,薪水也很難有比較高的提升。
當然,薪酬高低也與所從事的職業有非常大的關係。根據對全球四大 IT 市場的調查,DevOps 專家全部高居榜首,可見市場對這一技術的需求量有多大。除此之外,資料科學家、全棧工程師、嵌入式開發工程師、桌面開發人員的市場受歡迎度均較高。
如果按照職位來劃分,薪水又會出現一些不同。管理崗位的薪水肯定會略高一些,其餘基本與市場需求相對應,DevOps 專家的薪水可以達到 71k 美元,資料或者機器學習專家的薪水可以達到 61k 美元,全棧開發者的薪資為 57k 美元,後端開發者略低一些為 56k 美元。
國內整體的薪資水平要略低於全球,需求量較大的依舊是 Java、Python 這類語言。如果與全球薪資較高的程式語言比的話,如果對國內主流招聘網站進行統計,以“Go 語言”為關鍵字在全國範圍搜尋,熱門地區(北上廣深等需求量較大的城市)月薪基本集中在 15-30k 人民幣之間,一線網際網路大廠的薪酬確實更具競爭力,比如 BAT、高德、奇虎 360、滴滴等,不僅給出的月薪更高(25-60k 之間浮動),不少還明確標出可以給 14 至 16 個月的薪水,而所要求的工作經驗基本都在 3 到 5 年。
至於 Scala 語言,整體薪水確實比 Go 語言略高一些,在沒有篩選的情況下,首頁出現的大部分薪資集中在 20-50k 之間,這一結果倒是與全球的調查報告相匹配。
此外,在國內幾個招聘網站進行搜尋,都沒有找到太多有關 Clojure 的招聘需求,樣本數量太少,很難判斷這一崗位的薪資情況,但可以看出國內對此的需求極低,而 Clojure 在全球市場卻可以佔到薪資排行榜的第一名,這一結果倒還蠻出乎意料。
國內對於 Rust 的招聘需求並不旺盛,可搜尋到的崗位不到 Go 語言的十分之一,只比 Clojure 好一些,基本是規模較大的企業對此才有招聘需求,比如今日頭條、滴滴等,給出的薪資倒是還算優厚,月薪基本集中在 25k 人民幣以上。
至於 DevOps,雖然國內可搜尋到的崗位不少,但薪資並沒有太高,基本與 Go 語言的區間水平相當,要求具備 3 到 5 年工作經驗的依舊是最普遍的。
如果回看 2018 年某招聘網站釋出的統計資料,演算法研究員和機器學習工程師在過去一年的平均月薪偏高,分別為 28435 元和 26798 元,架構師薪資最高為 29600 元。程式語言中,Go 語言的平均月薪最高為 22961 元,其次是 C++、Python、Java。
雖然薪水高低會成為影響開發人員是否選擇的重要因素,但並不是唯一因素,不同程式語言的適用場景也是需要開發人員認真考慮的。
Go 語言由谷歌開發,並於 2009 年 11 月釋出。它是開源的,由於這個原因使得它在公司內部的不同專案中得到了積極應用,一些很有名的服務也使用 Go 語言開發,如 SoundCloud、Netflix 和 Dropbox。
近年來 Go 語言受歡迎程度大大提高,還得益於 Go 語言下面的優勢:
- 支援多執行緒任務
- 支援並行處理
- 快速的啟動時間
- 高效的記憶體管理
很多人都認為它將成為未來的伺服器語言,Go 有一些很不錯的特性:
- 它非常簡潔、簡單和安全
- 編譯非常快
- 它支援帶有嵌入式型別的介面
- 它不需要任何外部依賴關係來生成靜態連結的本機二進位制檔案
Kotlin 程式語言是由 JetBrains IT 公司開發的,它已經成為 Android 的官方開發語言。這是在 2017 年穀歌開發者大會上宣佈的。
它有很多優點,如:
- 易於理解的語法
- 與 Java 相容
- 谷歌的支援
- 快速增長的社群
很有可能不久之後的 Android 應用程式完全使用 Kotlin 編寫,所以如果想面向移動應用程式程式設計,應該考慮將 Kotlin 作為一個選擇。
Ruby(特別是 Rails)
作為開發 web 應用程式的工具,Ruby 獲得了廣泛歡迎,並被用於開發全球很多流行產品的服務端部分。Ruby 語言的主要目的是建立強大的、易於理解的程式,其中最重要的不是程式執行的速度,而是開發時間。此外,程式碼的清晰性和簡單性使 Ruby 非常受歡迎。
Ruby 一些不錯的特性有:
- 一切都是物件
- 模組——這些模組允許在執行時動態新增類層次結構的新元素
- 程式碼開發
- 動態型別
- 鴨子型別
- 程式碼質量
Objective – C
Objective-C 語言用於開發蘋果生態系統中的應用程式,純粹用於開發 Mac OS X 和 iOS。儘管出現了一種新的程式語言 Swift,,但 Objective-C 仍然是開發人員社群中非常流行的選擇。此外,因為它與蘋果的關係使其擁有一個非常高的需求市場。只要蘋果“依賴”Objective-C,開發人員就會一直有市場,並可以獲得豐厚的報酬。
Objective-C 一些很好的特性有:
- 類即物件——每個類都是一個元類的例項
- 動態型別
- 可選的靜態型別
- 動態執行時
- 內省 introspection
C #
從本質上講,C# 是一種簡單、現代和通用的物件導向的程式語言。C# 的一大優點是相對簡單,並且能夠更多地關注演算法而不是實現細節。目前,C# 被用於開發許多應用程式,從小型桌面程式到大型入口網站和人們日常使用的 web 服務。
C# 主要用於:
- Windows services——沒有 UI 的長時間執行的程式
- Web 應用程式——客戶端 / 服務端應用程式
- 視窗應用程式——執行在桌面上的應用程式
- Web 服務——通過 HTTP 提供服務的應用程式
- 遊戲——用 Unity 完成
- 控制檯應用程式——沒有 UI 的應用程式
Python
- 數學計算
- 資料分析
- Web 開發
- 機器學習
- 任務自動化
事實上 Youtube、Dropbox、Reddit 和 Google 等應用程式都是用 Python 開發的。
Java
很長一段時間以來,Java 程式語言一直是開發人員社群中需求最旺盛的語言之一。Java 主要用於開發銀行和自動化測試中的產品。它的跨平臺特性非常受歡迎,這是因為 JVM 的緣故。
Java 是一種很有前途的程式語言。它被廣泛地用於建立伺服器和移動應用程式,還被用作開發 Android 本地應用程式。
Java 可用於開發:
- 移動應用程式
- 網路應用程式
- 桌面應用程式
- 遊戲
- 資料庫連線
Swift
- MacOS
- iOS
- watchOS
- tvOS
這是一種非常通用的程式語言,主要用於開發蘋果產品。值得一提的是,它是在 5 年前(2014 年)剛釋出。其主要和最突出的優點是速度:無論是執行還是啟動應用程式。正是這種優勢賦予了它這個名字,它的創造者說其吸收了其他語言的所有優勢。
市場上總是缺少有才華的程式設計師,未來幾年,這仍然將是市場上的一個緊迫問題。對上述語言的瞭解和足夠的相關工作經驗可以為開發人員開啟許多大門。此外,開發者沒必要限制自己只使用一種語言。無論是理論還是實踐,都可以嘗試用另一種程式語言學習新的知識,所需要的只是激情和努力!
此外,InfoQ 希望可以完整展示出一個客觀的國內開發者生態。所以,我們發起了國內版開發者調查問卷,如果您想了解國內開發者的群體畫像,期待您的參加。我們將在樣本數足夠以後,製作一份國內版開發者調查報告,以饗讀者。
來自: