0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

2018年最適合學(xué)習(xí)的十大最佳編程語(yǔ)言

zhKF_jqr_AI ? 來(lái)源:未知 ? 作者:李倩 ? 2018-04-11 16:39 ? 次閱讀

在近期的一次訪談中,庫(kù)克反復(fù)強(qiáng)調(diào)了學(xué)習(xí)編程的重要性。學(xué)會(huì)編程不僅是為了適應(yīng)現(xiàn)在的就業(yè)市場(chǎng),從長(zhǎng)遠(yuǎn)來(lái)看,隨著我們的世界日益數(shù)字化,它也是每一個(gè)人學(xué)習(xí)、理解新技術(shù)的基石。Alexander Petkov是一個(gè)優(yōu)質(zhì)IT求職社區(qū)的創(chuàng)始人,不久前,他以行業(yè)人的眼光預(yù)測(cè)了2018年的十大流行編程語(yǔ)言,為新手上路提供了有力參考。

注:本文排名受用戶基數(shù)影響較大,因此未出現(xiàn)C#和Go,這并不是說(shuō)它們不好,事實(shí)上現(xiàn)在C#算得上是就業(yè)市場(chǎng)上最廣泛流行的語(yǔ)言。另外發(fā)展勢(shì)頭驚人的Kotlin也沒(méi)有出現(xiàn)在列表中??偟膩?lái)說(shuō),文章內(nèi)容較為嚴(yán)謹(jǐn),但讀者還是要根據(jù)自己的職業(yè)規(guī)劃參考著自主選擇。

首先,我要聲明一點(diǎn),本文不是那些所謂的圍繞搜索關(guān)鍵詞、引用量、流行語(yǔ)的“Top 10編程語(yǔ)言排名”,這是一份基于2018年初IT行業(yè)狀況、趨勢(shì)和近期保守預(yù)測(cè)的客觀實(shí)用評(píng)估。它基于各種來(lái)源可靠的統(tǒng)計(jì)數(shù)據(jù),并且是為期兩周深入研究的結(jié)果。毫不夸張地說(shuō),這是每一位想在2018年選擇正確編程語(yǔ)言、開(kāi)啟自己工程師職業(yè)生涯的讀者必讀的權(quán)威指南!

本文的出發(fā)點(diǎn)在于幫助讀者更好地契合就業(yè)市場(chǎng),包括推薦值得花精力和時(shí)間的利基市場(chǎng)、為有志于成為軟件開(kāi)發(fā)者的人選擇最具優(yōu)勢(shì)的語(yǔ)言,以及推薦平均薪資水平最高的編程語(yǔ)言。眾所周知,當(dāng)一個(gè)人開(kāi)始決定選取哪種語(yǔ)言作為自己的第一語(yǔ)言時(shí),他會(huì)著重考慮這幾個(gè)因素:

高薪;

人氣——是否有大量的就業(yè)機(jī)會(huì)且工作內(nèi)容多元;

前景廣大;

易于上手,工作舒心。

因此,對(duì)于下文中列出的每一種語(yǔ)言,我們都會(huì)考評(píng)它們的這些維度:

一個(gè)簡(jiǎn)短的介紹,讓你了解這門(mén)語(yǔ)言,并知道它的就業(yè)選擇和技術(shù)優(yōu)勢(shì);

根據(jù)TIOBE和GitHub Octoverse得到的語(yǔ)言流行度圖;

根據(jù)Indeed.com和StackOverflow的2017年調(diào)查數(shù)據(jù)進(jìn)行薪酬對(duì)比;

根據(jù)Google趨勢(shì)得出的過(guò)去五年中該語(yǔ)言的市場(chǎng)需求變化趨勢(shì);

一段簡(jiǎn)短的代碼示例,讓你建立對(duì)它的初步理解。

排名中的后4種語(yǔ)言知名度不高,但在過(guò)去幾年中它們的普及速度非??捎^,因此我們可以預(yù)見(jiàn)到它們?cè)?018年的發(fā)展和需求提升。

1. JavaScript

根據(jù)StackOverflow的年度調(diào)查,JavaScript是現(xiàn)在最流行的語(yǔ)言,62.5%的受訪者稱自己正在使用它。因此它毫無(wú)疑問(wèn)是網(wǎng)絡(luò)的主流語(yǔ)言,在過(guò)去的十年中,JavaScript發(fā)展迅猛。如果你對(duì)此持有異議,請(qǐng)環(huán)顧四周,看看周?chē)С諮avaScript的網(wǎng)絡(luò)設(shè)備有多少。拿Stack Overflow的聯(lián)合創(chuàng)始人Jeff Atwood的話說(shuō),就是:

任何可以用JavaScript編寫(xiě)的應(yīng)用程序最終都將用JavaScript編寫(xiě)。

考慮到這個(gè)因素,我們可以肯定一點(diǎn),就是在2018年及之后的幾年內(nèi),就業(yè)市場(chǎng)不會(huì)缺少JavaScript工作機(jī)會(huì)。

一些開(kāi)發(fā)者基于JavaScript開(kāi)發(fā)了許多前端框架,如Angular、React、Ember、Backbone等。另一個(gè)與區(qū)塊鏈開(kāi)發(fā)關(guān)系緊密的運(yùn)行環(huán)境Node.js,和JavaScript也有千絲萬(wàn)縷的關(guān)系,有了它,我們就能高效地在后端運(yùn)行js代碼。去年StackOverflow曾給出了一份關(guān)于2017年四大最流行框架的排名,而基于JavaScript的框架在其中占了三席。

如果你喜歡那種可以馬上看到工作成果的語(yǔ)言,例如制作交互式Web組件,那么JavaScript絕對(duì)算得上是一個(gè)首選。不過(guò)需要注意的一點(diǎn)是,JavaScript的一個(gè)重要學(xué)習(xí)前提是你必須有相當(dāng)?shù)腍TML和CSS基礎(chǔ),畢竟它們都和網(wǎng)頁(yè)設(shè)計(jì)相關(guān)。

一些工具,如Apache Cordova、React Native允許開(kāi)發(fā)者在移動(dòng)應(yīng)用程序中使用JavaScript。有時(shí)我們甚至也能通過(guò)Electron等項(xiàng)目把它用于游戲開(kāi)發(fā)。

讓我們來(lái)看看把JavaScript排名第一的數(shù)據(jù)支撐:

TIOBE RATING:第6名

TIOBE RATING是一項(xiàng)關(guān)于編程語(yǔ)言流行度的排名,它的計(jì)算主要基于這幾個(gè)數(shù)據(jù):全球掌握這門(mén)語(yǔ)言的工程師人數(shù)、語(yǔ)言開(kāi)課數(shù)、第三方使用機(jī)構(gòu)和搜索引擎結(jié)果。

GitHub Octoverse:第1名

GitHub是全球最大的開(kāi)源軟件開(kāi)發(fā)與管理社區(qū),它每年都會(huì)推出“Octoverse”報(bào)告以列出一些趨勢(shì)。如上圖所示JavaScript是社區(qū)2017年評(píng)選出的最流行的編程語(yǔ)言。

US Salary in Indeed:平均水平

Indeed是一個(gè)全球性的與就業(yè)相關(guān)的搜索引擎,它也是美國(guó)流量最高的就業(yè)網(wǎng)站。上圖顯示了各編程語(yǔ)言在美國(guó)的平均薪資水平。

Salary in StackOverflow:平均水平

StackOverfllow可以說(shuō)是最大的開(kāi)發(fā)者社區(qū),每月流量超過(guò)5000萬(wàn)。上圖是StackOverfllow 2017年對(duì)超過(guò)六萬(wàn)四千名開(kāi)發(fā)者進(jìn)行調(diào)查后得出的薪資水平結(jié)果。

綜合以上數(shù)據(jù),JavaScript無(wú)疑是2018年及以后最受歡迎的語(yǔ)言之一。由于涉及大量初級(jí)職位,和另一些高級(jí)職位較多的冷門(mén)語(yǔ)言相比,它很難在薪水排名上高居榜首。

JavaScript五年來(lái)的流行度趨勢(shì):穩(wěn)步增長(zhǎng)

JavaScript示例代碼片段:

document.addEventListener("DOMContentLoaded", function(event) {

var e = document.getElementById("myForm");

var msg = "";

// Wait for user to click the button

e.addEventListener("change", function () {

var myColor = this.color.value;

if (myColor == "Blue") {

msg = "Just like the sky!";

} elseif (myColor == "Red") {

msg = "Quite daring!";

} elseif (myColor == "Green") {

msg = "Like... grass?";

}

// Output message

document.getElementById("msg").innerHTML = msg;

}, false);

});

2. Swift

Swift是2014年由Apple發(fā)布的一種相對(duì)較新的編程語(yǔ)言,主要用于開(kāi)發(fā)iOS或MacOS應(yīng)用程序。與Objective-C相比,很多人認(rèn)為Swift在可用性和性能上都有明顯改進(jìn)——曾經(jīng)Apple iOS和OS X上的APP都是用Objective-C寫(xiě)的。

事實(shí)上,青睞Swift的開(kāi)發(fā)者為數(shù)眾多,繼2015年在Stack Overflow的調(diào)查報(bào)告中問(wèn)鼎“最受喜愛(ài)的編程語(yǔ)言”第一后,它在2017年的榜單中仍高居第四。所以如果你選擇Swift作為自己的入門(mén)語(yǔ)言,你很可能也會(huì)在學(xué)習(xí)過(guò)程中慢慢愛(ài)上它。

當(dāng)然,如果你有志于進(jìn)入移動(dòng)開(kāi)發(fā)領(lǐng)域,懂一點(diǎn)Swift會(huì)使你在高薪崗位競(jìng)爭(zhēng)中更具優(yōu)勢(shì)。市場(chǎng)已經(jīng)證明,iOS的APP通常比Android的吸金能力更強(qiáng)一些。

TIOBE Rating:第12名(2018年1月)

GitHub Octoverse:第13名

US Salary in Indeed.com:高

Salary in StackOverflow:高于平均水平

對(duì)于iOS和MacOS應(yīng)用程序,Swift是一種新的、看起來(lái)更好的語(yǔ)言,它比它的前身Objective-C更出色。在短短幾年內(nèi),Swift就獲得了很高的聲譽(yù),并在大多數(shù)排名中擊敗了Objective-C。這種語(yǔ)言被開(kāi)發(fā)人員所喜愛(ài),但也意味著要付出高昂的代價(jià)——除了iOS,你還能找到哪些用武之地?

Swift五年來(lái)的流行度趨勢(shì):急劇增長(zhǎng)

Swift示例代碼片段:

importUIKit

classViewController: UIViewController {

override func viewDidLoad() {

super.viewDidLoad()

self.navigationController!.navigationBar.barTintColor = UIColor.yellow

self.navigationController!.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.black]

let navBgImage:UIImage = UIImage(named: "bg_blog_navbar_reduced.jpg")!

self.navigationController!.navigationBar.setBackgroundImage(navBgImage, for: .default)

}

override func didReceiveMemoryWarning() {

super.didReceiveMemoryWarning()

}

}

3. Python

Python是一種通用語(yǔ)言,現(xiàn)在你幾乎可以在任何地方找到它的身影:網(wǎng)絡(luò)應(yīng)用程序、桌面應(yīng)用程序、網(wǎng)絡(luò)服務(wù)器、機(jī)器學(xué)習(xí)、媒體工具……NASA和谷歌是Python的實(shí)力擁躉,Guido van Rossum為什么能在谷歌待8年?主要原因就是……他是Python的作者。

這是一種代碼整潔、可讀性高、結(jié)構(gòu)良好的編程語(yǔ)言,對(duì)于Python,適當(dāng)?shù)目s進(jìn)不僅是為了美觀,它還決定了代碼的執(zhí)行情況。一些基于Python的Web開(kāi)發(fā)框架,如Django和Flask,現(xiàn)在已經(jīng)越來(lái)越受歡迎。而在機(jī)器學(xué)習(xí)領(lǐng)域,它還配備了各種高質(zhì)量的庫(kù),如Scikit-learn和Pandas等,幾乎稱得上是一家獨(dú)大。

總體而言,Python在就業(yè)崗位上有很多拓展空間,上手難度低,因此它對(duì)初學(xué)者而言是個(gè)不錯(cuò)的選擇。

TIOBE Rating:第4名(2018年1月)

GitHub Octoverse:第2名

US Salary in Indeed:高

Salary in StackOverflow:高

綜上數(shù)據(jù),選擇成為一名Python專(zhuān)家無(wú)疑是當(dāng)今和未來(lái)最好的選擇之一。這門(mén)語(yǔ)言幾乎在每個(gè)領(lǐng)域都名列前茅。

Python五年來(lái)的流行度趨勢(shì):增長(zhǎng)明顯

Python示例代碼片段:

import itertools

def iter_primes():

# an iterator of all numbers between 2 and +infinity

numbers = itertools.count(2)

# generate primes forever

whileTrue:

# get the first number from the iterator (always a prime)

prime = numbers.next()

yield prime

# this code iteratively builds up a chain of

# filters...slightly tricky, but ponder it a bit

numbers = itertools.ifilter(prime.__rmod__, numbers)

for p in iter_primes():

if p > 1000:

break

print p

4. Java

Java可以說(shuō)是普及率最高的編程語(yǔ)言,因?yàn)?0%的世界500強(qiáng)公司都在用它。它的口號(hào)是:“一次編譯,隨處運(yùn)行。”(Writeonce, run anywhere.)這句話抓住了Java的精髓——強(qiáng)大的JVM(Java虛擬機(jī))使它具有其他語(yǔ)言難以企及的跨平臺(tái)兼容性。

在工作中,需要常常用到Java的人有后端開(kāi)發(fā)人員、大數(shù)據(jù)開(kāi)發(fā)人員、嵌入式系統(tǒng)工程師和Android開(kāi)發(fā)人員等。雖然它并不是目前最“流行”的語(yǔ)言,但它的使用頻率非常高,以至于我們幾乎可以確信在未來(lái)十年甚至更長(zhǎng)時(shí)間內(nèi),Java仍會(huì)在IT行業(yè)占據(jù)重要的一席之地。

正因?yàn)槿绱耍覀円餐耆梢韵逻@么一個(gè)結(jié)論:每個(gè)IT產(chǎn)業(yè)發(fā)達(dá)的城市都會(huì)有大量的Java工作崗位。對(duì)于列表中的一些冷門(mén)語(yǔ)言,我們不敢這么下定論;但對(duì)于Java,它有這個(gè)底氣。如果你對(duì)Java感興趣,那找到合適的工作只是時(shí)間問(wèn)題。

TIOBE Rating:第1名(2018年1月)

GitHub Octoverse:第2名

US Salary in Indeed:平均水平

Salary in StackOverflow:高于平均水平

Java的工作范圍覆蓋很廣,且多年來(lái)已經(jīng)積累了大量高價(jià)值經(jīng)驗(yàn),因此它在薪資排名中也能名列前茅。

Java五年來(lái)的流行度趨勢(shì):下降

Java示例代碼片段:

publicclassStandardDeviation {

publicstaticvoid main(String[] args) {

double[] numArray = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

double SD = calculateSD(numArray);

System.out.format("Standard Deviation = %.6f", SD);

}

publicstaticdouble calculateSD(double numArray[]) {

double sum = 0.0, standardDeviation = 0.0;

for(double num : numArray) {

sum += num;

}

double mean = sum / 10;

for(double num: numArray) {

standardDeviation += Math.pow(num - mean, 2);

}

returnMath.sqrt(standardDeviation / 10);

}

}

5. C++

C++是一種高效且靈活的語(yǔ)言,它“出生”于1985年。雖然已經(jīng)完全稱不上是新語(yǔ)言了,但因其高性能和高可靠性,且能被用于各種環(huán)境,它的市場(chǎng)缺口還是很大。關(guān)于這一點(diǎn),我們可以看看到現(xiàn)在還在用C++創(chuàng)建和維護(hù)系統(tǒng)的大型公司:Microsoft、Oracle、PayPal和Adobe。它們都是C++的忠實(shí)粉絲。

談及C++的使用場(chǎng)景,常見(jiàn)的有開(kāi)發(fā)桌面應(yīng)用程序,尤其是性能密集型任務(wù)。雖然很復(fù)雜,但熟練掌握C++能幫你建立對(duì)編程語(yǔ)言的系統(tǒng)認(rèn)識(shí),讓你知道它是怎么工作的,例如讓你直接管理內(nèi)存。

TIOBE Rating:第3名(2018年1月)

GitHub Octoverse:第6名

US Salary in Indeed:高

Salary in StackOverflow:高

總的來(lái)說(shuō),C++的流行度還是很高的,如果你選擇它,你的就業(yè)前景會(huì)非常廣大,而且可能得到更高的發(fā)展機(jī)遇。它的薪資水平也處于高位。

C++五年來(lái)的流行度趨勢(shì):起伏不定

C++示例代碼片段:

#include

#include

usingnamespace std;

float calculateSD(float data[]);

int main() {

int i;

float data[10];

cout << "Enter 10 elements: ";

for(i = 0; i < 10; ++i)

cin >> data[i];

cout << endl << "Standard Deviation = " << calculateSD(data);

return0;

}

float calculateSD(float data[]) {

float sum = 0.0, mean, standardDeviation = 0.0;

int i;

for(i = 0; i < 10; ++i) {

sum += data[i];

}

mean = sum / 10;

for(i = 0; i < 10; ++i)

standardDeviation += pow(data[i] - mean, 2);

return sqrt(standardDeviation / 10);

}

6. Ruby

Ruby是最受開(kāi)發(fā)者喜愛(ài)的編程語(yǔ)言之一。它的口號(hào)是“程序員最好的朋友”,所以它的使用體驗(yàn)非常舒適友好,且能為開(kāi)發(fā)者帶來(lái)心情“加成”。

這是一種高級(jí)語(yǔ)言,它的目標(biāo)是write less , do more,也就是通過(guò)幾行干凈可讀的代碼就能實(shí)現(xiàn)很多功能。因此在編寫(xiě)過(guò)程中,你可能需要耗費(fèi)大量精力——“和其他流行編程語(yǔ)言相比,Ruby在寫(xiě)作效率上相對(duì)過(guò)慢——但它絕對(duì)能提高你的工作效率”。

寫(xiě)得非常優(yōu)美的Ruby代碼看起來(lái)幾乎就是純英文句子,所以它很適合母語(yǔ)是英語(yǔ)的開(kāi)發(fā)者。而把Ruby作為自己的入門(mén)語(yǔ)言也有一些優(yōu)勢(shì),之前提到了,它能給開(kāi)發(fā)者帶來(lái)更多快感,并且就業(yè)內(nèi)整體薪資水平而言,Ruby的工資處于較高位置。

當(dāng)然,選擇Ruby也有一些缺點(diǎn),其中最主要的一點(diǎn)是和上述語(yǔ)言相比,它還是太冷門(mén)了,所以即便是在某些IT行業(yè)較發(fā)達(dá)的城市,Ruby的崗位也不好找。

TIOBE Rating:第11名(2018年1月)

GitHub Octoverse:第4名

US Salary in Indeed:高

Salary in StackOverflow:高

Ruby是一個(gè)很好的職業(yè)選擇,因?yàn)樗膱?bào)酬很高,而且語(yǔ)言本身很有趣。它的缺點(diǎn)是不如其他競(jìng)爭(zhēng)對(duì)手那么受歡迎,而且職位數(shù)量大大受限。但是,請(qǐng)注意一點(diǎn),就是許多允許遠(yuǎn)程辦公的美國(guó)初創(chuàng)企業(yè)會(huì)很喜歡招用Ruby(和Ruby on Rails)的人。

Ruby五年來(lái)的流行度趨勢(shì):下降

Ruby示例代碼片段:

Node = Struct.new("Node", :parent, :coin, :total, :starting_coin)

def make_change(amount, coinage = [25, 10, 5, 1])

root = Node.new(nil, nil, 0, 0)

found_totals = { 0 => root }

queue = [root]

catch(:found) do

until queue.empty?

node = queue.shift

node.starting_coin.upto(coinage.size - 1) do |index|

coin = coinage[index]

new_total = node.total + coin

nextif new_total > amount || found_totals[new_total]

new_node = Node.new(node, coin, new_total, index)

found_totals[new_total] = new_node

throw :found if new_total == amount

queue << new_node

end

end

end

returnnilif found_totals[amount].nil?

result = []

cursor = found_totals[amount]

until cursor.coin.nil?

result << cursor.coin

cursor = cursor.parent

end

result.reverse!

end

7. Rust

Rust是編程語(yǔ)言界的一張新面孔,它首次出現(xiàn)于2010年,并在當(dāng)年就廣受歡迎,因此我們對(duì)它的未來(lái)一致看好。在StackOverflow的調(diào)查中,它已經(jīng)連續(xù)兩年被開(kāi)發(fā)者選為“最受喜愛(ài)的編程語(yǔ)言”(2016,2017)。

Rust由Mozilla主導(dǎo)開(kāi)發(fā),因?yàn)槭且环N編譯型編程語(yǔ)言,所以開(kāi)發(fā)者們往往喜歡拿它和C做比較。兩者的主要區(qū)別在于Rust的內(nèi)存安全性更高。在C代碼中,我們經(jīng)常會(huì)遇到懸掛指針、緩沖區(qū)溢出以及其他類(lèi)型的內(nèi)存錯(cuò)誤,但Rust不會(huì)。確切地說(shuō),它就是為了避免這些錯(cuò)誤而出現(xiàn)的——在編譯期間(調(diào)試前)它就會(huì)向你指出:你在這里寫(xiě)的代碼是錯(cuò)的。

對(duì)于一個(gè)初學(xué)者,Rust為了安全可以放棄一切的“死板”做法可能會(huì)打擊人的靈活性,但有經(jīng)驗(yàn)的開(kāi)發(fā)者還是對(duì)它青睞有加。正因?yàn)槿绱耍琑ust在未來(lái)幾年內(nèi)的市場(chǎng)需求可能還會(huì)不斷攀升。2017年StackOverflow的一份調(diào)查報(bào)告顯示。Rust的總體薪資水平非常高,在全球范圍內(nèi)排名第二。

另外,選擇Rust的另一個(gè)理由是——為Mozilla的情懷打滿分。

Rust五年來(lái)的流行度趨勢(shì):增長(zhǎng)

Rust示例代碼片段:

macro_rules! calculate {

(eval $e:expr) => {{

{

let val: usize = $e;

println!("{} = {}", stringify!{$e}, val);

}

}};

(eval $e:expr, $(eval $es:expr),+) => {{

calculate! { eval $e }

calculate! { $(eval $es),+ }

}};

}

fn main() {

calculate! {

eval1 + 2,

eval3 + 4,

eval (2 * 3) + 1

}

}

8. Elixir

Elixir是一種首次出現(xiàn)于2011年的新語(yǔ)言,和Rust一樣,它一經(jīng)推出也收獲了廣泛好評(píng)。

這種語(yǔ)言的靈感來(lái)自Erlang——這是愛(ài)立信于二十世紀(jì)八十年代開(kāi)發(fā)的一種語(yǔ)言,可以說(shuō)是用于高并發(fā)需求的最佳工具之一。Elixir的作者JoséValim自己說(shuō)他非常喜歡Erlang,但也看到了改進(jìn)的余地。對(duì)于開(kāi)發(fā)者來(lái)說(shuō),Erlang最大的缺點(diǎn)在于怪異的語(yǔ)法和可用性,它缺乏直接的包管理。

為此,Elixir誕生了——作為Ruby和Erlang的結(jié)合體。

Elixir現(xiàn)在還是被主要用于網(wǎng)絡(luò)開(kāi)發(fā),雖然收入可觀,但上限不高。StackOverflow的調(diào)查數(shù)據(jù)顯示,它的薪資水平在全球排名第三。值得強(qiáng)調(diào)的一點(diǎn)是,Elixir的流行度正一年比一年上升。

Elixir五年來(lái)的流行度趨勢(shì):增長(zhǎng)

Elixir示例代碼片段:

defmodule Chaindo

def counter(next_pid) do

receive do

n ->

send next_pid, n + 1

end

end

def create_processes(n) do

last = Enum.reduce 1..n, self,

fn (_, send_to) ->

spawn(Chain, :counter, [send_to])

end

send last, 0

receive do

final_answer when is_integer(final_answer) ->

"Result is #{inspect(final_answer)}"

end

end

def run(n) do

IO.puts inspect :timer.tc(Chain, :create_processes , [n])

end

end

9. Scala

Scala的設(shè)計(jì)初衷是實(shí)現(xiàn)可伸縮的語(yǔ)言,它是“重寫(xiě)Java”并改進(jìn)其缺點(diǎn)的眾多嘗試之一,可以在JVM上編譯。鑒于LinkedIn、Twitter和The Guardian等大公司都在其代碼庫(kù)中使用Scala,Scala在市場(chǎng)上取得的成功毋庸置疑。

對(duì)于初學(xué)者來(lái)說(shuō),直接上手Scala可能有些太復(fù)雜了,但如果能精通,它會(huì)為你提高職業(yè)發(fā)展天花板。因?yàn)槲磥?lái)就業(yè)市場(chǎng)對(duì)Scala開(kāi)發(fā)者的需求肯定會(huì)越來(lái)越多。根據(jù)2017年StackOverflow的報(bào)告,Scala在薪金調(diào)查中名列前茅,位居全球前十名,且在美國(guó)居第一位。

Scala五年來(lái)的流行度趨勢(shì):增長(zhǎng)

Scala示例代碼片段:

package examples.actors

import scala.actors._

import scala.actors.Actor._

objectMessage {

def main(args: Array[String]) {

val n = try {

Integer.parseInt(args(0))

}

catch {

case _ =>

println("Usage: examples.actors.Message ")

Predef.exit

}

val nActors = 500

val finalSum = n * nActors

Scheduler.impl = newSingleThreadedScheduler

def beh(next: Actor, sum: Int) {

react {

case value: Int =>

val j = value + 1; val nsum = sum + j

if (next == null && nsum >= finalSum) {

println(nsum)

System.exit(0)

}

else {

if (next != null) next ! j

beh(next, nsum)

}

}

}

def actorChain(i: Int, a: Actor): Actor =

if (i > 0) actorChain(i-1, actor(beh(a, 0))) else a

val firstActor = actorChain(nActors, null)

var i = n; while (i > 0) { firstActor ! 0; i -= 1 }

}

}

10. R

R是用于統(tǒng)計(jì)、圖形表示和數(shù)據(jù)分析的編程語(yǔ)言和環(huán)境。這是數(shù)據(jù)科學(xué)家的首選編程語(yǔ)言之一。如果你覺(jué)得自己對(duì)這個(gè)領(lǐng)域感興趣,那么選擇R將是一個(gè)穩(wěn)定而明確的舉措。

R五年來(lái)的流行度趨勢(shì):增長(zhǎng)

R示例代碼片段:

readinteger <- function() {

n <- readline(prompt="Enter an integer: ")

if (!grepl("^[0-9]+$",n)) {

return(readinteger())

}

return(as.integer(n))

}

num <- round(runif(1) * 100, digits = 0)

guess <- -1

cat("Guess a number between 0 and 100. ")

while(guess != num) {

guess <- readinteger()

if (guess == num) {

cat("Congratulations,", num, "is right. ")

} elseif (guess < num) {

cat("It's bigger! ")

} elseif(guess > num) {

cat("It's smaller! ")

}

}

小結(jié)

以上就是我總結(jié)的“2018年最適合學(xué)習(xí)的十大最佳編程語(yǔ)言”。選擇一門(mén)正確的語(yǔ)言意味著一個(gè)好的開(kāi)始,但有一個(gè)好的開(kāi)始絕不等同于你已經(jīng)足夠優(yōu)秀并能勝任各種高薪職位。

最后,我想給每個(gè)初學(xué)者一個(gè)建議:你可以通過(guò)買(mǎi)書(shū)自學(xué)、上網(wǎng)絡(luò)公開(kāi)課甚至參加專(zhuān)門(mén)的培訓(xùn)機(jī)構(gòu)等各種途徑來(lái)學(xué)習(xí)編程語(yǔ)言,但在你的時(shí)間、精力和金錢(qián)投入進(jìn)去后,請(qǐng)不要就這樣照本宣科,學(xué)習(xí)語(yǔ)言最好的方法絕對(duì)是自己做點(diǎn)東西,然后用它來(lái)吸引用戶,甚至吸引一幫粉絲。等你積累足夠多獨(dú)立開(kāi)發(fā)經(jīng)驗(yàn)后,面對(duì)面試官,你才有更多的自信向他解釋自己是怎么做的、自己為什么要這么做——這通常比你的其他回答更令人印象深刻。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2952

    瀏覽量

    104495
  • 編程語(yǔ)言
    +關(guān)注

    關(guān)注

    10

    文章

    1931

    瀏覽量

    34553
  • 區(qū)塊鏈
    +關(guān)注

    關(guān)注

    110

    文章

    15559

    瀏覽量

    105625

原文標(biāo)題:2018年最適合學(xué)習(xí)的十大最佳編程語(yǔ)言

文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    NVIDIA榮登《財(cái)富》“100家最適合工作的公司”榜單第三位

    NVIDIA 在《財(cái)富》雜志和卓越職場(chǎng)(Great Place to Work)最新評(píng)選出的“100 家最適合工作的公司”榜單上躍居第三位。
    的頭像 發(fā)表于 10-10 09:27 ?311次閱讀

    TensorFlow與PyTorch深度學(xué)習(xí)框架的比較與選擇

    學(xué)習(xí)框架,它們各自擁有獨(dú)特的特點(diǎn)和優(yōu)勢(shì)。本文將從背景介紹、核心特性、操作步驟、性能對(duì)比以及選擇指南等方面對(duì)TensorFlow和PyTorch進(jìn)行詳細(xì)比較,以幫助讀者了解這兩個(gè)框架的優(yōu)缺點(diǎn),并選擇最適合自己需求的框架。
    的頭像 發(fā)表于 07-02 14:04 ?857次閱讀

     UVLED固化箱選購(gòu)指南:如何找到最適合你需求的固化設(shè)備?

    在尋找適合你需求的UVLED固化設(shè)備時(shí),你可能會(huì)面臨眾多選擇和考慮因素。為了幫助你做出明智的決策,本指南將引導(dǎo)你逐步確定最適合你需求的UVLED固化箱。 一、明確需求 首先,你需要明確自己的固化需求
    的頭像 發(fā)表于 05-27 14:46 ?293次閱讀

    度亙核芯榮獲“2023度中國(guó)十大光學(xué)產(chǎn)業(yè)技術(shù)”獎(jiǎng)

    5月18日,由光電匯主辦的“2023中國(guó)十大光學(xué)產(chǎn)業(yè)技術(shù)”年度評(píng)選頒獎(jiǎng)典禮于武漢光谷科技會(huì)展中心隆重召開(kāi)。經(jīng)專(zhuān)家評(píng)審、網(wǎng)絡(luò)投票等嚴(yán)格評(píng)選,度亙核芯“用于車(chē)載激光雷達(dá)的940nm芯片與光纖模塊”在一
    的頭像 發(fā)表于 05-23 08:28 ?540次閱讀
    度亙核芯榮獲“2023<b class='flag-5'>年</b>度中國(guó)<b class='flag-5'>十大</b>光學(xué)產(chǎn)業(yè)技術(shù)”獎(jiǎng)

    如何選擇最適合你的UV LED固化機(jī)?

    在現(xiàn)代化的工業(yè)生產(chǎn)中,UV LED固化機(jī)以其高效、環(huán)保、節(jié)能等諸多優(yōu)點(diǎn),逐漸成為了固化工藝的首選設(shè)備。然而,市場(chǎng)上的UV LED固化機(jī)種類(lèi)繁多,性能各異,如何選擇最適合自己需求的固化機(jī)呢?本文將為您
    的頭像 發(fā)表于 05-18 14:19 ?333次閱讀
    如何選擇<b class='flag-5'>最適合</b>你的UV LED固化機(jī)?

    高清視頻編碼器選購(gòu)指南:如何選擇最適合你的編碼器

    高清視頻編碼器作為視頻處理與傳輸?shù)暮诵脑O(shè)備,對(duì)于保證視頻質(zhì)量和提升用戶體驗(yàn)至關(guān)重要。然而,市面上的高清視頻編碼器種類(lèi)繁多,功能各異,如何選擇最適合自己的編碼器成為了一個(gè)關(guān)鍵問(wèn)題。本文將為你提供一份
    的頭像 發(fā)表于 02-20 15:19 ?980次閱讀

    如何選擇最適合你的編解碼一體機(jī)?

    選擇最適合自己的編解碼一體機(jī)需要考慮以下幾個(gè)方面: 應(yīng)用場(chǎng)景:首先需要明確編解碼一體機(jī)的應(yīng)用場(chǎng)景,如視頻會(huì)議、安防監(jiān)控、教育錄播等。不同的應(yīng)用場(chǎng)景對(duì)編解碼一體機(jī)的性能要求不同,需要根據(jù)具體需求
    的頭像 發(fā)表于 01-31 14:49 ?650次閱讀
    如何選擇<b class='flag-5'>最適合</b>你的編解碼一體機(jī)?

    睿創(chuàng)微納8微米榮獲“2023度山東十大科技創(chuàng)新成果”

    近日,在煙臺(tái)召開(kāi)的兩院院士評(píng)選“2023中國(guó)/世界十大科技進(jìn)展新聞”發(fā)布會(huì)上,公布了“2023度山東省十大科技創(chuàng)新成果”榜單。其中,睿創(chuàng)微納憑借其研發(fā)的8微米非制冷紅外熱成像模組,
    的頭像 發(fā)表于 01-25 16:27 ?620次閱讀

    睿創(chuàng)微納8微米榮獲“2023度山東十大科技創(chuàng)新成果”

    1月11日,兩院院士評(píng)選“2023中國(guó)/世界十大科技進(jìn)展新聞”發(fā)布會(huì)在煙臺(tái)召開(kāi),會(huì)上公布“2023度山東省十大科技創(chuàng)新成果”榜單。
    的頭像 發(fā)表于 01-16 09:48 ?496次閱讀
    睿創(chuàng)微納8微米榮獲“2023<b class='flag-5'>年</b>度山東<b class='flag-5'>十大</b>科技創(chuàng)新成果”

    福布斯公布關(guān)于2024人工智能發(fā)展的十大預(yù)見(jiàn)

    近日,福布斯公布了他們對(duì)2024人工智能發(fā)展的十大預(yù)見(jiàn),這些預(yù)測(cè)簡(jiǎn)潔而又充滿洞察力。
    的頭像 發(fā)表于 01-12 10:18 ?972次閱讀

    2023十大科技名詞

    12月26日,“2023十大科技名詞”在京發(fā)布?!按?b class='flag-5'>語(yǔ)言模型、生成式人工智能、量子計(jì)算、腦機(jī)接口、數(shù)據(jù)要素、智慧城市、碳足跡、柔性制造、再生稻、可控核聚變”入選。個(gè)最具影響力和代
    的頭像 發(fā)表于 01-03 08:27 ?565次閱讀
    2023<b class='flag-5'>年</b>度<b class='flag-5'>十大</b>科技名詞

    2023國(guó)際十大科技新聞揭曉

    來(lái)源:科技日?qǐng)?bào),謝謝 編輯:感知芯視界 Link 25日,由科技日?qǐng)?bào)社主辦、部分兩院院士和媒體人士共同評(píng)選出的2023國(guó)際十大科技新聞揭曉。 入選的2023國(guó)際十大科技新聞分別是:
    的頭像 發(fā)表于 12-27 18:27 ?786次閱讀

    Python編程語(yǔ)言屬于什么語(yǔ)言

    Python編程語(yǔ)言屬于高級(jí)編程語(yǔ)言中的一種。它是一種通用、面向?qū)ο?、解釋?b class='flag-5'>編程語(yǔ)言。Pytho
    的頭像 發(fā)表于 11-22 14:31 ?1342次閱讀

    51單片機(jī)C語(yǔ)言編程入門(mén)學(xué)習(xí)資料

    電子發(fā)燒友網(wǎng)站提供《51單片機(jī)C語(yǔ)言編程入門(mén)學(xué)習(xí)資料.pdf》資料免費(fèi)下載
    發(fā)表于 11-18 11:04 ?14次下載
    51單片機(jī)C<b class='flag-5'>語(yǔ)言</b><b class='flag-5'>編程</b>入門(mén)<b class='flag-5'>學(xué)習(xí)</b>資料

    使用ADA4899-1做單位增益和放大電路,最適合的電路是怎么設(shè)置的?

    請(qǐng)問(wèn)使用ADA4899-1做單位增益和放大電路(10倍)時(shí)候,最適合的電路是怎么設(shè)置的,能分別提供一下電路嗎?
    發(fā)表于 11-15 06:58