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

同樣是編程,百萬年薪和十萬年薪的區別在這裡

導讀:編程語言有很多,但並非每一種的需求或工資都相同。人工智慧和機器學習走熱,讓 Python 從眾多編程語言中脫穎而出。本文將綜合各種信源,比較與不同編程語言在美國市場的相關薪資水平、人氣和前景,為你提供一些參考。大量統計數據襲來,你準備好了嗎?

有這樣一個問題,使用空格和使用 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{d} 發表博文,用詳盡的數據和科學的方法展現了過去 16 年 Github 用戶編程語言的大變遷(也就是從一種語言換到另一種語言的情況)。

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

再來看一個更直觀的圖:

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

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

編程語言介紹:Python 在 2014 年成為美國高校入門課程最受歡迎語言

最後,為了想要學習編程語言的讀者,我們簡要介紹一下各種編程語言。

1. 動態語言(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 構建的。

2. 靜態語言

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

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

3. 其他

  • SQL

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

文章來源:新智元

文章編輯:柯一

【燈塔大數據】微信公眾號介紹:電信北京研究院通過整合電信自有數據、互聯網數據和線下數據,創建了業內領先的「燈塔」大數據行業應用平台,致力於與行業合作夥伴共同打造大數據行業應用生態圈。

】關鍵字信息:

【人工智慧】獲取人工智慧時代的發展思考 ppt

【半月刊】下載大數據瞭望半月刊

【網路安全】獲取國民網路安全報告全文

【23個理由】下載《大數據讓你興奮的23個理由》電子書

【 燈塔 】 查看更多關鍵字回復

閱讀原文

查看往期優秀欄目



熱門推薦

本文由 yidianzixun 提供 原文連結

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