11 大編程語言薪資排行榜,再不學Python就晚了!
20萬,這是新智元今天達到的用戶總數。在飛向智能宇宙的旅程中,感謝每一位和新智元同行的朋友。您的關注和支持是「新智元號」星艦永不枯竭的燃料。
20 萬,每一位乘客對我們來說都彌足珍貴。我們希望加深對每一位乘客的了解,懇請您對這份問題不多、且不涉及任何隱私的調查問卷給出寶貴的反饋。
新智元正在舉行評論贈書活動,點擊閱讀原文投票,並留下你對新智元公眾號的建議,贏取《深度學習》免費贈書。
新智元報道
來源: codementor.io,stackoverflow.blog 等
編譯:聞菲
【新智元導讀】編程語言有很多,但並非每一種的需求或工資都相同。人工智慧和機器學習走熱,讓 Python 從眾多編程語言中脫穎而出。本文將綜合各種信源,比較與不同編程語言在美國市場的相關薪資水平、人氣和前景,為你提供一些參考。大量統計數據襲來,你準備好了嗎?
GIF/38K
有這樣一個問題,使用空格和使用 Tab 的程序員誰掙得更多?
你別說,還真有人做了統計:
圖1:根據 2017 年 Developer Survey 調查 12,426 名全職開發人員的結果,使用空格(紅線)的人薪資比使用 Tab 的更多。來源:stackoverflow.blog
由上圖可知,使用空格的開發人員,工資中位數為 59,140 美元,而使用Tab的開發人員的工資中位數為 43,750 美元。
使用空格的程序員比使用 Tab 的掙更多!
上面這個調查 Developer Survey [1]是面向全球進行的,而且不同的國家之間開發人員對空格和 Tab 的偏好差距並沒那麼大——實際上,根據這份調查,不同國家和地區的程序員使用兩者的情況差不太多。
圖2:不同國家和地區開發人員對空格、Tab 的偏好差距並不太大。2017 年 Developer Survey 調查了 12,426 名全職開發人員,來自美國、印度、英國、德國、加拿大和其他地區。紅條、綠條和藍條分別表示更愛用空格、Tab 和兩者差不多。來源:stackoverflow.blog
那麼,收入之間的差距可能來自於這些開發人員所使用的編程語言,比如說,移動端開發人員更喜歡使用 Tab,而 DevOps 開發人員更常使用空格。
於是,Developer Survey 調查又統計了開發人員的工作種類(比如是前端開發還是圖形設計)和他們使用的語言,薪資情況如下:
圖3:使用 Tab 的開發人員的薪資中位水平。來源:stackoverflow.blog
這是個有趣的結果,但並不是決定性的。但是,有一個不可否認的事實——編程語言的種類有很多,並非每一種的需求或工資都相同。本文將綜合各種信源,比較與不同編程語言在美國市場的相關薪資水平、人氣和前景,為你提供一些參考。
在本文中,你將看到幾種主要編程語言的:
工作機會
Github 流程程度及變化
編程語言介紹(為想要學習編程的讀者準備)
薪資排行 & 工作機會:Python 既有實力亦有潛力
在美國,軟體工作崗位在線招聘數量從 2007 年到 2012 年增長了 31%,比總體工作崗位增速快了 3 倍。美國勞工統計局估計,軟體開發人員的工作從 2012 年到 2022 年將以 22% 的增幅繼續增長。這裡有個數字,2016 年 5 月,軟體應用程序開發員薪資的中位數為 100,080 美元。
使用國外招聘網站 Indeed.com 上招聘廣告的數據,我們可以將編程語言的薪資水平劃分為 9 檔:
基於這個結果,Ruby/Ruby on Rails 看起來會讓你掙得最多,而 Python,C++,iOS 和 JavaScript 也是體面的選擇。如果薪資是你的主要關注點,那麼也許 C,PHP 和 SQL 不是最理想的選擇……
平均薪資水平可能會受諸如需求(有多少招聘職位)、供應(有多少開發人員了解語言)和經驗(資深開發人員自然掙得比初級開發人員多)等許多因素的影響,我們有必要深入了解這些因素,然後才下定論。
1. 工作需求
根據你熟悉的編程語言找到工作的可能性有多大?以下是來自 Indeed.com 的工作趨勢:
可以看到,C,SQL,Java 和 JavaScript 在招聘啟事中經常被提到,而 C#,C++ 和 Python 也是表現不錯的語言。
另一方面,如果你的目標是在創業公司工作,那麼可能 Indeed.com 的工作趨勢不是你應該參考最佳的指標。我們找到了 AngelList 網站,這裡有更多美國初創公司發布的職位,來看看基於 AngelList 的軟體開發人員需要的編程技巧:
再一次地,JavaScript 高居榜首。但是,美國創業公司似乎更喜歡 Python 和 Java,對這兩者的需求超過了 Ruby(兩年前 Ruby 最受歡迎),PHP,C 或 C#。
2. 供應情況
我們再來看開發人員這邊,根據網站 Codementor 的數據(Codementor 是一個比較大的程序員交流網站,用戶在註冊時會填寫自己使用的語言,因此數據在一定程度上可以反映開發人員掌握的編程語言):
當然,這個結果並不能準確反映實際市場的情況,但可以作為參考。例如,雖然移動應用業務已經蓬勃發展了一段時間,但 Objective-C 專家仍然很少。由於 Objective-C 開發人員供應不足,他們的薪資自然相對更高。
另一方面,PHP 在勞動力中的供應量很大,因此僱主有更多的選擇,在薪資方面議價能力更強。同時,市場對 PHP 開發人員的需求也不如 Java,SQL 或 JavaScript 那麼多。 因此,PHP 開發人員普遍收入較少。這個情況也體現在了我們文章一開始的那張圖裡面(參見圖2)。
JavaScript 是個很特殊的例子。儘管供應量最大,但 JavaScript 開發人員並不處於薪水層的底線。
3. 薪資範圍
現在,了解每種語言的需求和供應情況,我們再來看看根據招聘廣告的薪資信息,你能得到的潛在工資。下面的數據來自 gooroo.io,根據每條招聘啟事給出的薪酬範圍取了平均數:
懂 Ruby,C++ 或 Java 的開發人員看上去起始工資更高。Python 和 Ruby開發人員的薪資潛力最大,這可能意味著好的 Ruby/Python 開發人員市場缺口相對較大。
看各大語言前景,以及 Github 過去 16 年編程語言遷徙:更多人轉而使用 Python
接下來我們可以看看各種編程語言的前景。
一種編程語言將來的發展前景如何?首先,這在很大程度上取決於其社區的發展,因為新鮮血液/採用率是使語言受歡迎的保障。因此,讓我們來看看人們最感興趣的語言是什麼:
圖4:根據谷歌搜索,2016 年使用 Python 的興趣大增。
其次,Github 的項目數量能夠從一定程度上體現出語言的流行程度。
其中,星級超過 1000 的項目排行如下:
同時,我們還需要注意——開發人員或許有過這樣的體驗,在掙扎完成第 N 個艱難晦澀的項目後,心想:「我可以用這種語言做這件事,但為什麼不換種語言更加愉快地工作呢?」
分析了 4500 萬 GitHub 用戶、393 種不同的語言以及 10 TB 的源代碼後,Waren Long 在博客 source 發表博文,用詳盡的數據和科學的方法展現了過去 16 年 Github 用戶編程語言的大變遷(也就是從一種語言換到另一種語言的情況)。
使用 5 種最流行的語言(Java,C,C ++,PHP,Ruby)其中一種的開發人員,最有可能用切換到 Python,平均 24% 的機率。
再來看一個更直觀的圖:
過去 16 年,Python 和 Java 逐漸取代了 C 語言。
篇幅有限,我們這裡就直接看結果了。要知道更詳細的信息,可以訪問參考資料 3。
編程語言介紹:Python 在 2014 年成為美國高校入門課程最受歡迎語言
最後,為了想要學習編程語言的讀者,我們簡要介紹一下各種編程語言。
I. 動態語言(Dynamic Languages)
動態語言通常更容易讓初學者學習,因為它們靈活而有趣。你可以從頭開始快速構建一個應用程序,需要的代碼數量較少,並且沒有硬性規則。由於動態語言通常是非常高級(high level)的語言,所以你會花更少的時間糾結細節,更多的時間學習編程概念,這也是動態類型的語言受初學者歡迎的一個原因,初學者一般都會因能夠構建事物和快速看到結果得到反饋而鼓舞。
JavaScript
不要與 Java 混淆了,JavaScript 是主要用於前端開發的客戶端腳本語言。JavaScript 在所有瀏覽器中都兼容,用於創建互動式 Web 應用程序,通常是通過諸如 jQuery 和前端框架(比如 AngularJS,Ember.js,React 等)的庫來創建。JavaScript 也可以通過 Node.js 平台用作伺服器端語言。過去兩年來,Node.js 開發社區已經有了很大的發展,現在你可以在這裡找到很多資源。你還可以通過使用諸如 phonegap 這樣的框架,用 JavaScript 構建混合移動應用程序。Facebook 的 React Native 能讓你使用 JavaScript 構建本地移動應用程序。不過,JavaScript 的難度很高,因為它是無類型的語言,因此很難調試。也有靜態類型的版本,比如 Microsoft的 TypeScript 或 JSX,在 React 上使用。
Ruby
有了 Ruby,開發人員可以很開心地工作。Ruby 的流行得益於 Ruby on Rails 框架,Ruby 與英語很類似,而 Rails 框架(是全棧 Web 框架)有「開箱即用」的工具,讓開發工作變得簡單。因此,很多人會建議你首先學習 Ruby。Ruby 主要用於後端開發,一些常用大網站,比如 Airbnb,Shopify,Bloomberg,Hulu,Slideshare 都是使用 Ruby on Rails 構建的。
Python
Python 是另一種強烈推薦初學者學習語言,Python 也是美國頂尖大學最受歡迎的入門級介紹語言。開發人員使用 Python 構建桌面應用程序和網路應用程序,Python 也是數據挖掘的好工具。此外,Python 在科學計算,數據分析和生物信息學的學術界尤其受歡迎。Google,Dropbox,Pinterest,Instagram,Reddit,BitTorrent,Civilization IV 等都是用 Python 構建的。
不僅如此,Python 從 2014 年起就成為美國頂級高校入門級課程教學語言(Introductory Teaching Language):
下面是部分美國頂級高校計算機相關課程使用編程語言列表:
圖4:美國頂級高校入門級課程使用編程語言的情況。在這裡僅列出了部分高校,更完整的表單參見參考資料 4 的網頁。
PHP
PHP 是一種伺服器端腳本語言,通常被認為是初學者友好的。要理解 PHP 代碼要做什麼比較容易,因此 PHP 很容易學。大多數網站都是用 PHP 構建的,因為這種語言是專門針對網路的。Facebook,維基百科,Yahoo!, Tumblr,Wordpress 等都是用 PHP 構建的。
II. 靜態語言
使用靜態類型的語言構建的應用程序有更高的可擴展性、穩定性和可維護性。靜態語言在通過類型檢查查找錯誤時一般更嚴格,並且需要更多的代碼來構建一個原型。遊戲引擎、移動應用和企業級後端通常使用靜態類型的語言構建。
Java
作為通用語言,Java 用於構建 Android 應用程序、桌面應用程序和遊戲。Java也常用作企業級後端開發的伺服器端語言——90% 的財富 500 強公司使用 Java。此外,用於存儲和處理大數據的 Hadoop 是基於 Java 的流行框架,Yahoo,Facebook 和 Amazon Web Services 等企業都在用 Hadoop。
C
C 常用於編程系統軟體,是操作系統的通用語言(lingua franca)。C 幾乎影響了本文中提到的所有編程語言,尤其是 Objective-C 和 C++。所以,如果你知道 C 語言的話,你可能更容易學習其他流行的語言。由於 C 語言需要用更複雜的代碼來執行簡單的任務,所以初學者如果把 C 語言作為第一語言往往很難保持動力。但是,從長遠看,C 語言的知識肯定對你程序員的工作有所幫助。
Objective-C
Objective-C 是建立在 C 語言之上的一層,因此是靜態的。話雖這麼說,Objective-C 也可以用於動態打字。Apple 的 Swift 是一種靜態語言,與 Objective-C 兼容,但它的靜態類型使其更有彈性。Swift 受 Python 啟發而來,旨在為新手輕鬆編寫新手,旨在修復 Objective-C 的一些問題。
C++
C++ 是基於 C 語言的一種強大的語言,專為編程系統軟體而設計,但也被用於構建遊戲/遊戲引擎,桌面應用程序,移動應用程序和網路應用程序。C++ 功能強大且速度很快,Facebook 用 C++ 已經開發出了好幾個高性能、高可靠性的組件。許多軟體都用 C++ 構建,包括 Adobe Systems,Amazon,Paypal,Chrome 等。與 C 語言類似,C++ 通常被認為不太好讓初學者自己學習。所以,如果你決定學習 C++ 作為你的第一個編程語言,建議與人討論或找一個導師。
C#
C# 用於微軟的 .NET 框架,主要在Microsoft Windows 上運行。C# 用於 Web 開發、遊戲開發和一般 Microsoft 開發。此外,Xamarin 一直在開發一個名為 Mono 的開源項目,該項目旨在將 C# 移植到其他平台,為 Linux 開發人員帶來更好的開發工具。最近,你還可以使用 C# 通過 Xamarin 為 iOS 和 Android構 建原生手機應用。
III. 其他
SQL
SQL(「Sequel」)或結構化查詢語言,是用於與資料庫通信的查詢語言。雖然 SQL 不能用於構建應用程序,但它用於管理使用關係資料庫管理系統(RDMS)的應用程序中的數據。
參考資料
https://stackoverflow.blog/2017/06/15/developers-use-spaces-make-money-use-tabs/
https://www.codementor.io/codementorteam/beginner-programming-language-job-salary-community-7s26wmbm6
https://blog.sourced.tech/post/language_migrations/
https://cacm.acm.org/blogs/blog-cacm/176450-python-is-now-the-most-popular-introductory-teaching-language-at-top-u-s-universities/fulltext
【號外】新智元正在進行新一輪招聘,飛往智能宇宙的最美飛船,還有N個座位
點擊閱讀原文可查看職位詳情,期待你的加入~
※ACL最佳論文:NLP數據成熱點,哈佛教授獲終身成就獎
※Kaggle實戰分享:谷歌YouTube8M視頻理解技術剖析
※「ACL 2017最佳論文解讀」NLP數據成熱點,哈佛教授獲終身成就獎
TAG:新智元 |
※TIOBE 4 月編程語言排行榜:Python 持續升溫,Perl 苦苦掙扎
※學PHP比Python有前途?程序員漲薪最快的語言!
※TIOBE 8 月編程語言排行榜:Python 奮力追趕 C,Swift 下跌
※IEEE Spectrum 2018 年度編程語言排行榜,Python 衛冕
※Github機器學習年度熱門排行:最熱編程語言Python第一
※TIOBE 9 月編程語言榜:Python 居然超越了 C+!
※9 月編程語言排行榜:Python 反超 C++,萬年不變的前三終於變了
※在眾多編程語言中,我為什麼要學Python?
※轉行學Python難嗎?Python編程語言該如何有序學習?
※TIOBE 2 月編程語言排行榜:Python 逼近 C,Groovy 重回 TOP20
※RedMonk發布編程語言排行榜:Swift成為全球增長最快的編程語言
※TIOBE 12 月編程語言排行榜:Python 奪回前三,Go 跌出前十
※TIOBE 4月編程語言排行榜:Python讓位,老將C++奪回前三!
※Python編程語言學習得怎麼樣,看你是否正真入行Python領域
※Python的興起:必學的編程語言
※最新編程語言排行榜出爐:Swift和Kotlin好像開始涼了
※大家都在學的編程語言 Python,可以用來幹什麼?
※TIOBE 4 月編程語言排行榜:Python 讓位,老將 C+奪回前三,PHP 慘遭拋棄!
※TIOBE 8月編程語言榜:Python超越C+指日可待!
※Python作為人工智慧首選編程語言,你會Python嗎?