search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

衝擊年薪百萬,11大編程語言薪資排行榜,再不看就晚了!

編程語言有很多,但並非每一種的需求或工資都相同。人工智慧和機器學習走熱,讓 Python 從眾多編程語言中脫穎而出。

本文將綜合各種信源,比較不同編程語言在美國市場的相關薪資水平、人氣和前景,為你提供一些參考,大量統計數據襲來,你準備好了嗎?

有這樣一個問題,使用空格和使用 Tab 的程序員誰掙得更多?你別說,還真有人做了統計:

圖1:根據 2017 年 Developer Survey 調查 12,426 名全職開發人員

由上圖可知,使用空格(紅線)的人薪資比使用 Tab 的更多,使用空格的開發人員,工資中位數為 59,140 美元,而使用 Tab 的開發人員的工資中位數為 43,750 美元。

使用空格的程序員比使用 Tab 的掙更多!

上面這個調查 Developer Survey [1]是面向全球進行的,而且不同的國家之間開發人員對空格和 Tab 的偏好差距並沒那麼大——實際上,根據這份調查,不同國家和地區的程序員使用兩者的情況差不太多。

圖2:不同國家和地區開發人員對空格、Tab 的偏好差距並不太大

2017 年 Developer Survey 調查了 12,426 名全職開發人員,來自美國、印度、英國、德國、加拿大和其他地區。紅條、綠條和藍條分別表示更愛用空格、Tab 和兩者差不多。

那麼,收入之間的差距可能來自於這些開發人員所使用的編程語言,比如說,移動端開發人員更喜歡使用 Tab,而 DevOps 開發人員更常使用空格。

於是,Developer Survey 調查又統計了開發人員的工作種類(比如是前端開發還是圖形設計)和他們使用的語言,薪資情況如下:

圖3:使用 Tab 的開發人員的薪資中位水平

這是個有趣的結果,但並不是決定性的。但是,有一個不可否認的事實——編程語言的種類有很多,並非每一種的需求或工資都相同。

在本文中,你將看到幾種主要編程語言的:

工作機會。

Github 流程程度及變化。

編程語言介紹(為想要學習編程的讀者準備)。

薪資排行 & 工作機會

在美國,軟體工作崗位在線招聘數量從 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 不是最理想的選擇……

平均薪資水平可能會受諸如需求(有多少招聘職位)、供應(有多少開發人員了解語言)和經驗(資深開發人員自然掙得比初級開發人員多)等許多因素的影響,我們有必要深入了解這些因素,然後才下定論。

工作需求

根據你熟悉的編程語言找到工作的可能性有多大?以下是來自 Indeed.com 的工作趨勢:

可以看到,C,SQL,Java 和 JavaScript 在招聘啟事中經常被提到,而 C#,C++ 和 Python 也是表現不錯的語言。

另一方面,如果你的目標是在創業公司工作,那麼可能 Indeed.com 的工作趨勢不是你應該參考的最佳指標。我們找到了 AngelList 網站,這裡有更多美國初創公司發布的職位,來看看基於 AngelList 的軟體開發人員需要的編程技巧:

再一次地,JavaScript 高居榜首。但是,美國創業公司似乎更喜歡 Python 和 Java,對這兩者的需求超過了 Ruby(兩年前 Ruby 最受歡迎),PHP,C 或 C#。

供應情況

我們再來看開發人員這邊,根據網站 Codementor 的數據(Codementor 是一個比較大的程序員交流網站,用戶在註冊時會填寫自己使用的語言,因此數據在一定程度上可以反映開發人員掌握的編程語言):

當然,這個結果並不能準確反映實際市場的情況,但可以作為參考。例如,雖然移動應用業務已經蓬勃發展了一段時間,但 Objective-C 專家仍然很少。由於 Objective-C 開發人員供應不足,他們的薪資自然相對更高。

另一方面,PHP 在勞動力中的供應量很大,因此僱主有更多的選擇,在薪資方面議價能力更強。同時,市場對 PHP 開發人員的需求也不如 Java,SQL 或 JavaScript 那麼多。 因此,PHP 開發人員普遍收入較少。這個情況也體現在了我們文章一開始的那張圖裡面(參見圖2)。

JavaScript 是個很特殊的例子。儘管供應量最大,但 JavaScript 開發人員並不處於薪水層的底線。

薪資範圍

現在,了解每種語言的需求和供應情況,我們再來看看根據招聘廣告的薪資信息,你能得到的潛在工資。下面的數據來自 gooroo.io,根據每條招聘啟事給出的薪酬範圍取了平均數:

懂 Ruby,C++ 或 Java 的開發人員看上去起始工資更高。Python 和 Ruby 開發人員的薪資潛力最大,這可能意味著好的 Ruby/Python 開發人員市場缺口相對較大。

更多人轉而使用 Python

看各大語言前景,以及 Github 過去 16 年編程語言遷徙:更多人轉而使用 Python。

接下來,我們可以看看各種編程語言的前景。

一種編程語言將來的發展前景如何?首先,這在很大程度上取決於其社區的發展,因為新鮮血液/採用率是使語言受歡迎的保障。因此,讓我們來看看人們最感興趣的語言是什麼:

圖4:根據谷歌搜索,2016 年使用 Python 的興趣大增

其次,Github 的項目數量能夠從一定程度上體現出語言的流行程度。

其中,星級超過 1000 的項目排行如下:

同時,我們還需要注意——開發人員或許有過這樣的體驗,在掙扎完成第 N 個艱難晦澀的項目后,心想:「我可以用這種語言做這件事,但為什麼不換種語言更加愉快地工作呢?」

分析了 4500 萬 GitHub 用戶、393 種不同的語言以及 10 TB 的源代碼后,Waren Long 在博客 source{d} 發表博文,用詳盡的數據和科學的方法展現了過去 16 年 Github 用戶編程語言的大變遷(也就是從一種語言換到另一種語言的情況)。

使用 5 種最流行的語言(Java,C,C ++,PHP,Ruby)其中一種的開發人員,最有可能用切換到 Python,平均有 24% 的機率。

再來看一個更直觀的圖:

過去 16 年,Python 和 Java 逐漸取代了 C 語言。

篇幅有限,我們這裡就直接看結果了。要知道更詳細的信息,可以訪問參考資料 3。

編程語言介紹

Python 在 2014 年成為美國高校入門課程最受歡迎語言,最後,為了想要學習編程語言的讀者,我們簡要介紹一下各種編程語言。

動態語言(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):

下面是部分美國頂級高校計算機相關課程使用編程語言列表:

圖5:美國頂級高校入門級課程使用編程語言的情況

在這裡僅列出了部分高校,更完整的表單參見參考資料 4 的網頁。

PHP

PHP 是一種伺服器端腳本語言,通常被認為是對初學者友好的。理解 PHP 代碼要做什麼比較容易,因此 PHP 很容易學。

大多數網站都是用 PHP 構建的,因為這種語言是專門針對網路的。Facebook,維基百科,Yahoo!, Tumblr,Wordpress 等都是用 PHP 構建的。

靜態語言

使用靜態類型的語言構建的應用程序有更高的可擴展性、穩定性和可維護性。靜態語言在通過類型檢查查找錯誤時一般更嚴格,並且需要更多的代碼來構建一個原型。遊戲引擎、移動應用和企業級後端通常使用靜態類型的語言構建。

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 構建原生手機應用。

其他

SQL

SQL(「Sequel」)或結構化查詢語言,是用於與資料庫通信的查詢語言。雖然 SQL 不能用於構建應用程序,但它用於管理使用關係資料庫管理系統(RDMS)的應用程序中的數據。



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦