程序員應該每年學(xué)習一門(mén)新的編程語(yǔ)言。但如果做不到,你至少學(xué)習以下5種開(kāi)發(fā)語(yǔ)言,以便你在職業(yè)生涯有很好的表現。
每個(gè)公司都喜愛(ài)精通多種編程語(yǔ)言并且多才多藝的程序員。一個(gè)既能很麻利地寫(xiě)腳本,也能編寫(xiě)復雜的Java程序的程序員,確實(shí)相當有價(jià)值。所以實(shí)際上,對于高級開(kāi)發(fā)者來(lái)說(shuō),學(xué)習不止一種編程語(yǔ)言,幾乎就是必然的要求。
目前而言,面試官越來(lái)越看重那些擁有多種編程語(yǔ)言經(jīng)驗的工程師。比如,同時(shí)有C++ 和Java的經(jīng)驗就很不錯,Python和Java也是。那些在C++ 或者Java方面有著(zhù)豐富經(jīng)驗,而且能用Groovy、Perl或Python寫(xiě)腳本的軟件工程師總是更招人喜歡。
很多時(shí)候,寫(xiě)一個(gè)小腳本就足以快速搞定一些專(zhuān)有任務(wù)。程序員們最好不要花上一整天用Java去寫(xiě)一個(gè)讀取CSV文件的程序,或者在TCP/UDP端口抓取信息的程序,這是很浪費時(shí)間的一件事情。
為什么本文選擇這5種語(yǔ)言呢?理由簡(jiǎn)單且實(shí)際,基于這些語(yǔ)言的用途、編程范式和流行度及代表性來(lái)選擇的。
例如,如果你想找一份應用開(kāi)發(fā)的工作,就不能忽視Java。同樣,做與web相關(guān)的事情,就得知道無(wú)處不在的JavaScript。
在開(kāi)發(fā)者職業(yè)生涯的早期,強烈建議學(xué)習C語(yǔ)言。它能幫助開(kāi)發(fā)者貼近系統底層,知曉那些編程的關(guān)鍵概念,這是隱藏在JVM或CLR底下的東西。
對于腳本語(yǔ)言,更推薦Python,盡管你也可用Perl或Groovy代替。但在擴展支持方面來(lái)看,Python的表現無(wú)疑是最棒的。有很多Python模塊可供選擇,幫你能分分種搞定各種任務(wù)。
學(xué)習一種面向對象的語(yǔ)言的同時(shí),也學(xué)習一種像Haskell或Scala這樣的函數式編程語(yǔ)言,這能拓展你的思維和編程認知。你可以在本文找到學(xué)習這5種語(yǔ)言的更多理由。
言歸正傳,下面就是我們所講的5種每個(gè)程序員或軟件開(kāi)發(fā)者都該嘗試學(xué)習的編程語(yǔ)言。它包含了語(yǔ)言的大雜燴,比如[面向對象的]語(yǔ)言,函數式的語(yǔ)言,腳本語(yǔ)言,提供了對底層的控制,也涵蓋了廣泛用于服務(wù)端開(kāi)發(fā)的語(yǔ)言。

Java是近二十年來(lái)最流行的語(yǔ)言之一。它統治著(zhù)全球的服務(wù)端應用開(kāi)發(fā),同時(shí)在基于A(yíng)nroid開(kāi)發(fā)的移動(dòng)應用和游戲市場(chǎng),以及企業(yè)web開(kāi)發(fā)領(lǐng)域,也占有相當一部分比重。
Java最初的構想是一次編寫(xiě)各種平臺均能運行(write once run anywhere)。隨著(zhù)時(shí)間的推移,它確實(shí)做到了運行在各個(gè)平臺的各個(gè)角落。
你應該學(xué)習使用Java構建健壯的、可擴展的服務(wù)端應用。你可以用Java構建多種復雜度的工程。與之相伴的,有很棒的工具、技術(shù)和社區支持。
為什么你應該學(xué)Java呢?你會(huì )學(xué)到如果專(zhuān)注于應用層面和代碼結構的設計,而不用關(guān)心特定系統的細節和內存管理。
JVM幫你搞定了后面這些。如果你已經(jīng)決定開(kāi)始學(xué)習Java了,那么Udemy上的 The Complete Java Master Class 教程就很棒,用它作為入門(mén)教程很好,它包含了Java的所有核心概念,很詳細。

在全球范圍的學(xué)校和院系,Python是教授最多的語(yǔ)言之一。在美國,許多學(xué)術(shù)課程中,Python已經(jīng)取代了Java成為接觸編程的首選語(yǔ)言。你將從學(xué)習Python中得到什么呢?——那將非常多。
Python既能用于寫(xiě)腳本,也能作為一種面向對象的語(yǔ)言編寫(xiě)大型工程。
許多流行的網(wǎng)站,比如Reddit,就使用基于Python的框架來(lái)構建,比如Django。近段時(shí)間,許多大型組織也轉向使用基于Python的框架了。
Python也越來(lái)越多地用于像機器學(xué)習、人工智能、數據科學(xué)這樣的新一代技術(shù)中。這也難怪,因為有基于Python的非常棒的機器學(xué)習庫,比如TensorFlow、Scikit-Learn以及其他。
用Python寫(xiě)腳本,能很快地完成一些有用的事情,比如,你可以用Python花5分鐘寫(xiě)一個(gè)UDP消息的監聽(tīng)器,相比較,用Java可能就要花20分鐘。忘掉“編譯、打包,然后才能使用”這些步驟。你可以直接為特定任務(wù)編寫(xiě)Python腳本。如果你有興趣學(xué)習Python,那么The Complete Python BootCamp就是個(gè)很好的開(kāi)始。

你可以用Java替代C++,用Pythont替代Ruby,但是,坦率地講,當前沒(méi)有JavaScript的替代品。在最近5年,JavaScript完全統治了世界。
它不再僅僅是客戶(hù)端腳本語(yǔ)言。有了Node.js這樣的庫,和Angular、React這樣的框架,你可以在服務(wù)端做用戶(hù)界面的開(kāi)發(fā)。
JavaScript的巨大成功,有一部分要歸功于jQuery。它真正改變了人們在客戶(hù)端使用JavaScript的方式。
作為一個(gè)在工作中使用JSP和開(kāi)發(fā)基于Servlet的應用的程序員,我有許多機會(huì )同時(shí)使用jQuery和JavaScript。
有了此語(yǔ)言的知識,可以幫助我們決定哪些功能應該在服務(wù)端實(shí)現,哪些該在客戶(hù)端實(shí)現。比如,許多服務(wù)端的校驗邏輯,就被遷移到了客戶(hù)端。
如果你想從頭開(kāi)始深入學(xué)習JavaScript,那Udemy上的The Complete JavaScriot就是你可加入的最佳在線(xiàn)課程。

如果不知道C或C++,你就不能成為真正的程序員。這聽(tīng)起來(lái)有點(diǎn)苛刻,但這就是事實(shí)。
了解C的工程師或者開(kāi)發(fā)者,就是比不了解C的程序員要優(yōu)秀。這可不是簡(jiǎn)單的巧合。這是你必須要了解的編程語(yǔ)言之一。在學(xué)習C語(yǔ)言的時(shí)候,將學(xué)到關(guān)于編程的許多關(guān)鍵概念,比如結構體、數組、指針、內存管理等等。
C仍然是操作系統編程方面最受歡迎的語(yǔ)言,并且在這兩年,給排名榜首的Java帶來(lái)了強勁地沖擊。如果你想學(xué)習這門(mén)美妙的語(yǔ)言,那C Programming for Beginners就是個(gè)很好的開(kāi)始。

Scala是基于過(guò)去20年來(lái)的最佳實(shí)踐而創(chuàng )造的語(yǔ)言。它是一種函數式編程語(yǔ)言,提供了一種跟面向對象語(yǔ)言不同的編程范式。這能改進(jìn)你的思維和代碼認知。
雖然有許多函數式編程可供選擇,比如Haskell。如果你是Java開(kāi)發(fā)者,這里還是推薦選擇Scala,因為相比而言,學(xué)習Scala比Haskell更容易。
有人也可以把學(xué)習Haskell當作一個(gè)挑戰。但是從實(shí)際的角度講,學(xué)習Scala對于Java開(kāi)發(fā)者來(lái)說(shuō)更有意義。
對于C++程序員,學(xué)習Haskell可能更合理。坦率講,你可以選擇任何一門(mén)函數式編程語(yǔ)言,但請選擇一門(mén)有商業(yè)需求的比較好。
作為一名職業(yè)開(kāi)發(fā)者,應該把時(shí)間投資在那些對職業(yè)有幫助的事情上。如果你想學(xué)習Scala,那么Beginning Scala Programming是個(gè)很好的入門(mén)課程。

以上所有清單的內容,列出了每個(gè)軟件工程師都該學(xué)習的5種編程語(yǔ)言。有些人可能已經(jīng)發(fā)現了,這是Java開(kāi)發(fā)者應該學(xué)習的5個(gè)編程語(yǔ)言。也正是如此。
學(xué)習能提供不同編程范式的語(yǔ)言,是提升編碼技能的最佳途徑。它能幫你有效地解決日常任務(wù)。
理想情況下,一個(gè)程序員的工具集里,應該包含一個(gè)接近底層系統的語(yǔ)言,比C或C++;一個(gè)面向對象的語(yǔ)言,比如Java,Pythong或C++;一個(gè)函數式編程語(yǔ)言,比如Scala或Haskell;一個(gè)強大的腳本語(yǔ)言,像Perl、Python、Ruby和JavaScript。
來(lái)源:葡萄城官網(wǎng)
聯(lián)系客服