最多金的程式語言Top10:Python第3,R第10,你猜第1是誰?
導讀:如果你還在糾結選哪門程式語言來開啟你的碼農生涯,這將是你的最佳指南。
本文絕非標題黨,而是基於大量資料和為期兩週的深入探究,在18年初,對IT行業的現狀、趨勢以及預測進行客觀觀察,讓大家對程式語言有一個更清晰的認識,以選擇最值得花費時間和精力的職業方向,為大家走向碼農事業巔峰助攻。
在考慮最佳職業發展方向時,工程師們在選擇程式語言上通常會考慮四點:
高薪,錢途第一啊畢竟
大量、多樣的職位需求
越來越受歡迎的趨勢
容易上手,工作友好
我們這次的名單也會考慮以上幾個點,部分抓取了世界上最大的求職網站Indeed.com上的資料進行綜合排名(Indeed.com覆蓋60多個國家,28種語言。2010年10月,Indeed.com超越Monster.com躍居美國流量第一的求職網站),但並非每一種程式語言都是往好的方向發展,話不多說,快讓我們來看一下Top10是哪些吧!
01 JavaScript
Stack Overflow的聯合創始人Jeff Atwood曾說過一句著名的話:“所有應用程式都可以,且最終都將用JavaScript來寫。”
據 StackOverflow 的年度調查顯示,受到 62.5%被調查者親睞的 JavaScript 被評選為最受歡迎的程式語言。在過去十年裡,JavaScript 發展顯著,並在 Web 開發領域佔有絕對優勢。
可以說在 2018 年甚至以後,JavaScript 市場充滿機會。JavaScript 已經深入像 Angular, React, Ember, Backbone 這種前段框架,以及 Node.js(一種支援 JavaScript 在服務端高效執行的平臺)等平臺,2017 年,StackOverflow 評選出的四種最受歡迎的框架中有三種都是基於 JavaScript。
▲JavaScript近5年的流行趨勢:穩步增長
如果你熱衷於即時可見的工作成果,比如製作互動式的 Web 元件,JavaScript 將會是你的不二選擇。但值得注意的是,選擇 JavaScript 意味著需要同時掌握網頁構成的基礎語言——HTML 和 CSS。
此外,JavaScript 還可以在 Apache Cordova 或者 React Native 這類工具上開發移動應用,甚至可以在 Electron 上進行遊戲或者桌面應用開發。
▲世界上最大的求職網站 Indeed.com上的薪酬排行(平均年薪)
JavaScript 無疑是 2018 年以及往後最受歡迎的程式語言之一。值得一提的是,對於受歡迎程度較低的程式語言,其高階職位佔很大比例,而大多數是初級職位的 JavaScript 可以達到如此高的薪資水平實屬不易。
▲JavaScript 程式碼示例
02 Swift
Swift 是一門相對新的開發語言,由蘋果與 2014 年釋出,用於搭建基於 Mac OS 和 iOS 平臺的應用程式。雖然同為蘋果的 iOS 和 OS X 作業系統服務,與 Objective-C 相比,Swift 在使用性和效能上都有所提升。
Swift 普遍受到開發者的親睞,在 2017 年“最喜歡的程式語言”中排名第四,此前在 2015 年曾排名第一。如果你選擇 Swift 開啟職業生涯,說不定你也會愛不釋手。
▲世界上最大的求職網站 Indeed.com上的薪酬排行(平均年薪)
作為後起之秀,Swift 在 iOS 和 Mac OS 應用開發上似乎更勝於他的前輩 Objective-C. 短短几年時間 Swift 就快速流行起來,並且在多數排行榜中力壓 Objective-C。一門既受開發者喜歡,薪資又高的語言,你還要求什麼呢?
▲Swift近5年的流行趨勢:急劇上升
▲Swift 程式碼示例
03 Python
如今幾乎隨處可見的 Python 已成為了一門通用語言。網站應用,桌面應用,網路服務,機器學習,媒體工具…統統都可以見到 python 的身影。
Python 同時也受到 NASA, Google 這樣的大佬們的親睞,python 的發明者 Guido van Rossum 在受僱於 Google 的 8 年裡花了大半的時間來維護 python 的開發。
▲Python近5年的流行趨勢
Python 的程式碼優雅整潔,結構清晰,可讀性強。對於 python 而言,正確的縮排不僅只是為了美觀,更是決定了程式碼的執行。
像 Django 和 Flask 這種基於 python 的 Web 應用框架越來越受歡迎。此外,python 還配備高質量的機器學習和資料分析的包,像 Scikit-learn 和 Pandas.
總之,python 提供了多種多樣的職業方向,並且 python 作為一種高階解釋程式語言,易寫易理解,非常適合剛起步的開發者。
▲世界上最大的求職網站 Indeed.com上的薪酬排行(平均年薪)
幾乎在所有領域,Python 都已成為佼佼者。成為 Python 領域的專家,無疑是現今最佳的職業選擇
▲Python 程式碼示例
04 Java
大約 90%的財富 500 強企業都在使用 Java,可以說她是最普及的程式語言了。Java 最有名的口號“一次編寫,到處執行”充分描述了最具吸引力的特徵之一——強大的 Java 虛擬機器,可以實現 Java 跨平臺執行
Java 通常的職業發展方向包括後端開發人員,大資料開發人員,嵌入式工程師或者安卓開發工程師。雖然 Java 現階段不是最流行的語言,但它使用率之高也確保了她未來很長的時間的存在。
正是由於這個原因,你可以很輕鬆的在各個地方找到合適的 Java 職位,這是其他相對不那麼流行的程式語言難以達到的。所以如果 Java 是你的菜,那你找到合適的工作機會只是時間問題。
▲世界上最大的求職網站 Indeed.com上的薪酬排行(平均年薪)
Java 作為普及率最高的開發語言,可以提供的職位涉及廣泛,這也使得 Java 在薪資榜上名列前茅,從整體上來看,Java 的工資水平是中等偏上的。
05 C++
C++設計開發於 1985 年,是一種高效而靈活的程式語言。C++具有效能優,可靠性強,多種可選的執行環境的特點,一直受到開發人員的喜愛。C++可以用來編寫和維護一些複雜的系統,包括像 Microsoft, Oracle, PayPal 以及 Adobe 都是採用的 C++。
使用 C++語言的開發人員大多從事桌面應用開發,特別是一些效能要求非常嚴格的任務。C++的底層操作能力十分強大,雖然學習起來比較複雜,但你一旦掌握這門語言,將會有助於瞭解你所使用的程式語言究竟是如何實現的。
▲世界上最大的求職網站 Indeed.com上的薪酬排行(平均年薪)
C++同樣一種十分受歡迎的程式語言。如果你願意花時間去掌握她,大量工作機會將向你敞開大門,而且C++的薪資也相對偏高。
▲C++近5年的流行趨勢
▲C++ 程式碼示例
06 Ruby
Ruby 語法簡單,使用者友好,是最受開發人員喜愛的語言之一,也被稱為 “程式設計師最好的朋友”。
Ruby 作為一種高層次的程式語言,旨在用最簡潔易讀的程式碼實現更多的功能。但是也正因為 Ruby 的解釋性質,使得她在效率和效能上略遜與其他語言。
編寫良好的 Ruby 程式碼幾乎看起來就像用普通英語寫的句子,對於初學者來說很好上手,而且體驗也很好,很適合作為入門程式語言來學習。
Ruby 最主要使用於 web 應用框架 Ruby on Rails——一種強大的基於 Ruby 的 Web 開發工具。Rails 是包裝功能,更有效率,很多想快速起步的初創企業的都將 Rails 作為首選。
選擇 Ruby on Rails 作為職業方向是很棒的選擇,畢竟以“優化程式設計師的幸福”為原則的 Rails,同樣有著不錯的薪資待遇。唯一的缺點就是 Ruby 不如上面提到的幾種語言普及度高,所以能提供的職位也相對有限。
▲世界上最大的求職網站 Indeed.com上的薪酬排行(平均年薪)
Ruby 薪資待遇高,學習和編寫簡單,同樣是不錯的職業選擇。唯一的缺點是不如其他語言普及度高,某些地區的職位需求相對有限。值得一提的是,創業公司經常會需要遠端工作,而Ruby (以及Ruby on Rails)則是他們的首選。
▲Ruby近5年的流行趨勢:緩慢下降
▲Ruby 程式碼示例
07 Rust
Rust 由 Mozilla 贊助開發,連續兩年在 StackOverflow 調查中被評為最受開發人員喜歡的語言。Rust 於 2010 年面世,雖然是一門非常新的語言,但已經獲得廣受關注,且有望在未來進一步發展。
▲Rust近5年的流行趨勢:逐年上升
同樣是編譯語言,Rust 經常會被拿來和 C 語言在用例和效能上進行比較。兩者最大的區別在於 Rust 是一種安全語言,C 語言的程式碼中會經常會出現懸空指標,快取溢位等各種記憶體問題,而 Rust 就是為了避免這類問題出現而設計,因為 Rust 在編譯階段就解決了記憶體問題。
為了實現記憶體安全,Rust 的編寫設有非常多的規則,對於初學者來說,掌握起來會相對困難。當然,對於經驗豐富的程式設計師來說,Rust 還是非常受歡迎,很有可能在接下來的幾年 Rust 的需求將會很高。
薪資方面,Rust 也屬於高薪隊伍,在 2017 年 StackOverflow 全球調查中排行第二。
▲Rust 程式碼示例
08 Elixir
另一個後起之秀Elixir,2011年一面世,就立馬流行起來。
Elixir 以 Erlang 為基礎,Erlang是瑞典電信裝置製造商愛立信於80年代應對大規模併發活動的程式語言,Elixir語言的設計者José Valim坦言,自己喜歡Erlang的所有的同時看到了她的提升空間。Erlang最大的缺點在於他太獨特的語法和執行模式以及不夠直觀的模組化管理。
由此,結合了Erlang和開發友好的Ruby的Elixir應運而生。Elixir主要應用於網站開發,雖然工作機會有限但薪資可觀,並且在近幾年越來越受歡迎。如果你所在的城市有眾多IT企業,Elixir開發人員將會是追捧物件。
薪資方面,Elixir在2017年StackOverflow全球調查中排行第三。
▲Elixir近5年的流行趨勢:逐年上升
▲Elixir 程式碼示例
09 Scala
Scala是一種實現可伸縮的語言,是眾多對Java進行改進的語言之一,Scala可以與Java互操作,在編譯後可在Java虛擬器上執行。可以說Scala在業界已經取得了很大的成功,像領英,推特以及衛報這樣的大公司的程式碼庫中都有Scala的身影。
對於初級程式設計師來說,Scala是出了名的複雜難學。但將來克服了學習曲線,真正成為一名Scala開發人員一定會越來越多。Scala開發者的薪資非常高,在2017年StackOverflow的調查中,全球前十,美國第一。
▲Scala近5年的流行趨勢:穩步上升
▲Scala 程式碼示例
10 R
R是用於統計分析、繪圖以及資料分析的語言和操作環境,同時也是資料科學家們的第一選擇。如果你對這個領域感興趣的話,R語言是一個穩定,價值高的職業方向。
▲R近5年的流行趨勢:平穩向上
▲R 程式碼示例
以上就是 2018 年最值得考慮的前 10 種程式語言,並不是要挑起什麼“語言之戰”,也並不評判那些分享了自己對技術的好惡看法的程式設計師們。這僅僅是基於大資料得出的建議,希望對你有幫助。
作者:Alexander Petkov
譯者:maistern
來源:優達學城Udacity(ID:youdaxue)
推薦閱讀
Q: 10種語言中,你正在使用哪個?
歡迎留言與大家分享
覺得不錯,請把這篇文章分享給你的朋友
轉載 / 投稿請聯絡:baiyu@hzbook.com
更多精彩,請在後臺點選“歷史文章”檢視
相關文章
- R語言程式設計藝術 第2章 向量(上)R語言程式設計
- 矽谷最佳僱主,谷歌排23,第1是誰?谷歌
- 《快學 Go 語言》第 1 課 —— Hello WorldGo
- 【秒懂Java】【第1章_初識Java】01_程式語言Java
- 溫度轉換——MOOC《Python語言程式設計》第1周練習題2Python程式設計
- 《父與子的程式設計之旅(第3版)》第1章習題答案程式設計
- 《Python程式設計(第3版)》[美] 約翰·策勒(John Zelle) 第 3 章 答案Python程式設計
- Leetcode第1~10題LeetCode
- Java、Python到底誰是最好的程式語言?JavaPython
- 學會JavaScript函數語言程式設計(第3部分)JavaScript函數程式設計
- 牛津大學xDeepMind自然語言處理 第13講 語言模型(3)自然語言處理模型
- 《快學 Go 語言》第 3 課 —— 分支與迴圈Go
- 從零開始學C語言 第3版pdfC語言
- 哈嘍C!蘇小紅-C語言程式設計(第3版)程式碼C語言程式設計
- 《Java語言程式設計(基礎篇)(原書第10版)》第2~4章部分程式設計練習題程式碼Java程式設計
- 《快學 Go 語言》第 8 課 —— 程式大廈是如何構建起來的Go
- Python語言程式設計 (第11期) 測驗8: 程式設計方法學Python程式設計
- C程式設計語言(第2版·新版)練習題1-4C程式程式設計
- C程式設計語言(第2版·新版)練習題1-5C程式程式設計
- C程式設計語言(第2版·新版)練習題1-6C程式程式設計
- C程式設計語言(第2版·新版)練習題1-7C程式程式設計
- C程式設計語言(第2版·新版)練習題1-8C程式程式設計
- 高階語言程式設計第2次作業程式設計
- 高階程式設計語言第2次作業程式設計
- 高階程式語言設計第5次作業
- 《父與子的程式設計之旅(第3版)》第3章習題答案程式設計
- golang 學習筆記:第 1 節:GO 語言介紹Golang筆記
- Java斐波那契數列的第n項(從0開始,第0項為0,第1項是1)。Java
- 《快學 Go 語言》第 7 課 —— 字串Go字串
- 《快學 Go 語言》第 6 課 —— 字典Go
- 《快學 Go 語言》第 14 課 —— 反射Go反射
- 《快學 Go 語言》第 12 課 —— 通道Go
- 《快學 Go 語言》第 9 課 —— 介面Go
- 《快學 Go 語言》第 15 課 —— 反射Go反射
- Python程式設計:從入門到實踐(第2版)第1章習題答案Python程式設計
- 《快學 Go 語言》第 2 課 —— 變數什麼的最討厭了Go變數
- 《快學 Go 語言》第 5 課 —— 神奇的切片Go
- PTA第1~3次作業blog