溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

每個(gè)程序員都該學(xué)習(xí)的5種開(kāi)發(fā)語(yǔ)言

發(fā)布時(shí)間:2020-07-04 08:49:46 來(lái)源:網(wǎng)絡(luò) 閱讀:277 作者:powertoolsteam 欄目:開(kāi)發(fā)技術(shù)

轉(zhuǎn)載請(qǐng)注明出處:葡萄城官網(wǎng),葡萄城為開(kāi)發(fā)者提供專(zhuān)業(yè)的開(kāi)發(fā)工具、解決方案和服務(wù),賦能開(kāi)發(fā)者。
原文出處:https://dzone.com/articles/5-programming-languages-every-master-developer-sho

?

我曾在某處讀到過(guò)(可能在《代碼大全》,但我不敢確定),程序員應(yīng)該每年學(xué)習(xí)一門(mén)新的編程語(yǔ)言。但如果做不到,我建議,你至少學(xué)習(xí)以下5種開(kāi)發(fā)語(yǔ)言,以便你在職業(yè)生涯有很好的表現(xiàn)。

每個(gè)公司都喜愛(ài)精通多種編程語(yǔ)言并且多才多藝的程序員。一個(gè)既能很麻利地寫(xiě)腳本,也能編寫(xiě)復(fù)雜的Java程序的程序員,確實(shí)相當(dāng)有價(jià)值。所以實(shí)際上,對(duì)于高級(jí)開(kāi)發(fā)者來(lái)說(shuō),學(xué)習(xí)不止一種編程語(yǔ)言,幾乎就是必然的要求。

目前而言,面試官越來(lái)越看重那些擁有多種編程語(yǔ)言經(jīng)驗(yàn)的工程師。比如,同時(shí)有C++ 和Java的經(jīng)驗(yàn)就很不錯(cuò),Python和Java也是。我個(gè)人喜歡那些在C++ 或者Java方面有著豐富經(jīng)驗(yàn),而且能用Groovy、Perl或Python寫(xiě)腳本的軟件工程師。

很多時(shí)候,寫(xiě)一個(gè)小腳本就足以快速搞定一些專(zhuān)有任務(wù)。我不想我的程序員們花上一整天用Java去寫(xiě)一個(gè)讀取CSV文件的程序,或者在TCP/UDP端口抓取信息的程序,這是很浪費(fèi)時(shí)間的一件事情。

為什么我在文章中選擇這5種語(yǔ)言呢?我的理由簡(jiǎn)單且實(shí)際。我是基于這些語(yǔ)言的用途、編程范式和流行度及代表性來(lái)選擇的。

例如,如果你想找一份應(yīng)用開(kāi)發(fā)的工作,就不能忽視Java。同樣,做與web相關(guān)的事情,就得知道無(wú)處不在的JavaScript。

在開(kāi)發(fā)者職業(yè)生涯的早期,我強(qiáng)烈建議學(xué)習(xí)C語(yǔ)言。它能幫助開(kāi)發(fā)者貼近系統(tǒng)底層,知曉那些編程的關(guān)鍵概念,這是隱藏在JVM或CLR底下的東西。

對(duì)于腳本語(yǔ)言,我的選擇是Python,盡管你也可用Perl或Groovy代替。但在擴(kuò)展支持方面來(lái)看,Python的表現(xiàn)無(wú)疑是最棒的。有很多Python模塊可供選擇,幫你能分分種搞定各種任務(wù)。

學(xué)習(xí)一種面向?qū)ο蟮恼Z(yǔ)言的同時(shí),也學(xué)習(xí)一種像Haskell或Scala這樣的函數(shù)式編程語(yǔ)言,這能拓展你的思維和編程認(rèn)知。你可以在本文找到學(xué)習(xí)這5種語(yǔ)言的更多理由。

言歸正傳,下面就是我列出的5種每個(gè)程序員或軟件開(kāi)發(fā)者都該嘗試學(xué)習(xí)的編程語(yǔ)言。

它包含了語(yǔ)言的大雜燴,比如[面向?qū)ο蟮腯語(yǔ)言(http://javarevisited.blogspot.sg/2013/06/5-must-read-books-to-learn?-object.html),函數(shù)式的語(yǔ)言,腳本語(yǔ)言,提供了對(duì)底層的控制,也涵蓋了廣泛用于服務(wù)端開(kāi)發(fā)的語(yǔ)言。

1. Java

Java是近二十年來(lái)最流行的語(yǔ)言之一。它統(tǒng)治著全球的服務(wù)端應(yīng)用開(kāi)發(fā),同時(shí)在基于Anroid開(kāi)發(fā)的移動(dòng)應(yīng)用和游戲市場(chǎng),以及企業(yè)web開(kāi)發(fā)領(lǐng)域,也占有相當(dāng)一部分比重。

Java最初的構(gòu)想是一次編寫(xiě)各種平臺(tái)均能運(yùn)行(write once run anywhere)。隨著時(shí)間的推移,它確實(shí)做到了運(yùn)行在各個(gè)平臺(tái)的各個(gè)角落。

你應(yīng)該學(xué)習(xí)使用Java構(gòu)建健壯的、可擴(kuò)展的服務(wù)端應(yīng)用。你可以用Java構(gòu)建多種復(fù)雜度的工程。與之相伴的,有很棒的工具、技術(shù)和社區(qū)支持。

為什么你應(yīng)該學(xué)Java呢?你會(huì)學(xué)到如果專(zhuān)注于應(yīng)用層面和代碼結(jié)構(gòu)的設(shè)計(jì),而不用關(guān)心特定系統(tǒng)的細(xì)節(jié)和內(nèi)存管理。JVM幫你搞定了后面這些。

如果你已經(jīng)決定開(kāi)始學(xué)習(xí)Java了,那么Udemy上的 The Complete Java Master Class 教程就很棒,用它作為入門(mén)教程很好,它包含了Java的所有核心概念,很詳細(xì)。

每個(gè)程序員都該學(xué)習(xí)的5種開(kāi)發(fā)語(yǔ)言

順便一提,如果你想要更多選擇,而且不介意使用免費(fèi)的課程學(xué)習(xí),那可以看看這上面給新手提供的課程。

Java被許多世界上的大型組織所使用。而且能夠向眾多用戶(hù)展示你用Java開(kāi)發(fā)的Android應(yīng)用。如果你仍然還在動(dòng)搖,我建議你去這看看10個(gè)學(xué)習(xí)Java的理由。

2. Python

在全球范圍的學(xué)校和院系,Python是教授最多的語(yǔ)言之一。在美國(guó),許多學(xué)術(shù)課程中,Python已經(jīng)取代了Java成為接觸編程的首選語(yǔ)言。你將從學(xué)習(xí)Python中得到什么呢?——那將非常多。

Python既能用于寫(xiě)腳本,也能作為一種面向?qū)ο蟮恼Z(yǔ)言編寫(xiě)大型工程。

許多流行的網(wǎng)站,比如Reddit,就使用基于Python的框架來(lái)構(gòu)建,比如Django。近段時(shí)間,許多大型組織也轉(zhuǎn)向使用基于Python的框架了。

Python也越來(lái)越多地用于像機(jī)器學(xué)習(xí)、人工智能、數(shù)據(jù)科學(xué)這樣的新一代技術(shù)中。這也難怪,因?yàn)橛谢赑ython的非常棒的機(jī)器學(xué)習(xí)庫(kù),比如TensorFlow、Scikit-Learn以及其他。

我個(gè)人倒是在用Python寫(xiě)腳本。這能很快地完成一些有用的事情,比如,你可以用Python花5分鐘寫(xiě)一個(gè)UDP消息的監(jiān)聽(tīng)器,相比較,用Java可能就要花20分鐘。忘掉“編譯、打包,然后才能使用”這些步驟。你可以直接為特定任務(wù)編寫(xiě)Python腳本。如果你有興趣學(xué)習(xí)Python,那么The Complete Python BootCamp就是個(gè)很好的開(kāi)始。

每個(gè)程序員都該學(xué)習(xí)的5種開(kāi)發(fā)語(yǔ)言

如果你需要更多選擇,而且不介意使用免費(fèi)的課程學(xué)習(xí),那也可看看這上面給新手的課程。

并且,如果你困惑于不知道該從Java還是Python開(kāi)始,看看這個(gè),它比較了兩者。

另外,如果你仍然沒(méi)有被我說(shuō)服,那就可以看看我的關(guān)于10個(gè)學(xué)習(xí)Python理由的文章。

3. JavaScript

你可以用Java替代C++,用Pythont替代Ruby,但是,坦率地講,當(dāng)前沒(méi)有JavaScript的替代品。在最近5年,JavaScript完全統(tǒng)治了世界。

它不再僅僅是客戶(hù)端腳本語(yǔ)言。有了Node.js這樣的庫(kù),和Angular、React這樣的框架,你可以在服務(wù)端做用戶(hù)界面的開(kāi)發(fā)。

JavaScript的巨大成功,有一部分要?dú)w功于jQuery。它真正改變了人們?cè)诳蛻?hù)端使用JavaScript的方式。

作為一個(gè)在工作中使用JSP和開(kāi)發(fā)基于Servlet的應(yīng)用的程序員,我有許多機(jī)會(huì)同時(shí)使用jQuery和JavaScript。

有了此語(yǔ)言的知識(shí),可以幫助我們決定哪些功能應(yīng)該在服務(wù)端實(shí)現(xiàn),哪些該在客戶(hù)端實(shí)現(xiàn)。比如,許多服務(wù)端的校驗(yàn)邏輯,就被我們遷移到了客戶(hù)端。

如果你想從頭開(kāi)始深入學(xué)習(xí)JavaScript,那Udemy上的The Complete JavaScriot就是你可加入的最佳在線(xiàn)課程。

每個(gè)程序員都該學(xué)習(xí)的5種開(kāi)發(fā)語(yǔ)言

?

如果你想要更多選擇,且不介意跟著免費(fèi)的課程學(xué)習(xí),那么可以看看這里為web開(kāi)發(fā)者提供的課程。

4. C 和/或 C++

如果不知道C或C++,你就不能成為真正的程序員。這聽(tīng)起來(lái)有點(diǎn)苛刻,但是我的經(jīng)驗(yàn)之談。

了解C的工程師或者開(kāi)發(fā)者,就是比不了解C的程序員要優(yōu)秀。這可不是簡(jiǎn)單的巧合。

這是你必須要了解的編程語(yǔ)言之一。我在求學(xué)期間學(xué)習(xí)的C語(yǔ)言,并在那時(shí)學(xué)到了關(guān)于編程的許多關(guān)鍵概念,比如結(jié)構(gòu)體、數(shù)組、指針、內(nèi)存管理等等。

C仍然是操作系統(tǒng)編程方面最受歡迎的語(yǔ)言,并且在這兩年,給排名榜首的Java帶來(lái)了強(qiáng)勁地沖擊。如果你想學(xué)習(xí)這門(mén)美妙的語(yǔ)言,那C Programming for Beginners就是個(gè)很好的開(kāi)始。

每個(gè)程序員都該學(xué)習(xí)的5種開(kāi)發(fā)語(yǔ)言

它同樣是最古老的主流語(yǔ)言之一,已經(jīng)存在了四十多年。

C++ 和C很像,都允許你為系統(tǒng)和驅(qū)動(dòng)編寫(xiě)底層代碼。如果你想學(xué)習(xí)C++ 而不是C,可看看我為新手列出的免費(fèi)C++課程。

5. Scala

Scala是基于過(guò)去20年來(lái)的最佳實(shí)踐而創(chuàng)造的語(yǔ)言。它是一種函數(shù)式編程語(yǔ)言,提供了一種跟面向?qū)ο笳Z(yǔ)言不同的編程范式。這能改進(jìn)你的思維和代碼認(rèn)知。

雖然有許多函數(shù)式編程可供選擇,比如Haskell。我選擇Scala,因?yàn)樽鳛橐幻鸍ava開(kāi)發(fā)者,我發(fā)現(xiàn)學(xué)習(xí)Scala比Haskell更容易。

有人也可以把學(xué)習(xí)Haskell當(dāng)作一個(gè)挑戰(zhàn)。但是從實(shí)際的角度講,我認(rèn)為學(xué)習(xí)Scala對(duì)于Java開(kāi)發(fā)者來(lái)說(shuō)更有意義。

對(duì)于C++程序員,學(xué)習(xí)Haskell可能更合理。坦率講,你可以選擇任何一門(mén)函數(shù)式編程語(yǔ)言,但請(qǐng)選擇一門(mén)有商業(yè)需求的比較好。

作為一名職業(yè)開(kāi)發(fā)者,我傾向于把時(shí)間投資在那些對(duì)我的職業(yè)有幫助的事情上。如果你想學(xué)習(xí)Scala,那么Beginning Scala Programming是個(gè)很好的入門(mén)課程。

每個(gè)程序員都該學(xué)習(xí)的5種開(kāi)發(fā)語(yǔ)言

?

無(wú)論你學(xué)習(xí)了多少種編程語(yǔ)言,你需要遵從Bob Martin在《代碼整潔之道》給出的編碼和設(shè)計(jì)原則,才能成為一名專(zhuān)業(yè)的程序員。它是在你的編程職業(yè)生涯能給與你最大幫助的技能。

以上所有清單的內(nèi)容,列出了每個(gè)軟件工程師都該學(xué)習(xí)的5種編程語(yǔ)言。你們中有些人可能已經(jīng)發(fā)現(xiàn)了,這是Java開(kāi)發(fā)者應(yīng)該學(xué)習(xí)的5個(gè)編程語(yǔ)言。也正是如此。

學(xué)習(xí)能提供不同編程范式的語(yǔ)言,是提升編碼技能的最佳途徑。它能幫你有效地解決日常任務(wù)。

理想情況下,一個(gè)程序員的工具集里,應(yīng)該包含一個(gè)接近底層系統(tǒng)的語(yǔ)言,比C或C++;一個(gè)面向?qū)ο蟮恼Z(yǔ)言,比如Java,Pythong或C++;一個(gè)函數(shù)式編程語(yǔ)言,比如Scala或Haskell;一個(gè)強(qiáng)大的腳本語(yǔ)言,像Perl、Python、Ruby和JavaScript。

結(jié)語(yǔ)

最后,感謝各位閱讀這篇文章。如果你喜歡這些編程語(yǔ)言,請(qǐng)與你的朋友和同行分享。

如果你有任何問(wèn)題或反饋,或其他任何你認(rèn)為什么編程語(yǔ)言也應(yīng)該值得每個(gè)程序員都應(yīng)該學(xué)習(xí),也歡迎發(fā)在評(píng)論區(qū)和我們分享。

?

?



本文是由葡萄城技術(shù)開(kāi)發(fā)團(tuán)隊(duì)發(fā)布,轉(zhuǎn)載請(qǐng)注明出處:葡萄城官網(wǎng)

了解開(kāi)放易用的 Web 生成平臺(tái),請(qǐng)前往活字格Web應(yīng)用生成平臺(tái)

了解可嵌入您系統(tǒng)的在線(xiàn) Excel,請(qǐng)前往SpreadJS純前端表格控件


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI