每个程序员都该学习的5种开发语言,不可错过!
每個公司都喜愛精通多種編程語言并且多才多藝的程序員。一個既能很麻利地寫腳本,也能編寫復(fù)雜的Java程序的程序員,確實相當(dāng)有價值。所以實際上,對于高級開發(fā)者來說,學(xué)習(xí)不止一種編程語言,幾乎就是必然的要求。
目前而言,面試官越來越看重那些擁有多種編程語言經(jīng)驗的工程師。比如,同時有C++ 和Java的經(jīng)驗就很不錯,Python和Java也是。我個人喜歡那些在C++ 或者Java方面有著豐富經(jīng)驗,而且能用Groovy、Perl或Python寫腳本的軟件工程師。
很多時候,寫一個小腳本就足以快速搞定一些專有任務(wù)。我不想我的程序員們花上一整天用Java去寫一個讀取CSV文件的程序,或者在TCP/UDP端口抓取信息的程序,這是很浪費時間的一件事情。
為什么我在文章中選擇這5種語言呢?我的理由簡單且實際。我是基于這些語言的用途、編程范式和流行度及代表性來選擇的。
例如,如果你想找一份應(yīng)用開發(fā)的工作,就不能忽視Java。同樣,做與web相關(guān)的事情,就得知道無處不在的JavaScript。
在開發(fā)者職業(yè)生涯的早期,我強烈建議學(xué)習(xí)C語言。它能幫助開發(fā)者貼近系統(tǒng)底層,知曉那些編程的關(guān)鍵概念,這是隱藏在JVM或CLR底下的東西。
對于腳本語言,我的選擇是Python,盡管你也可用Perl或Groovy代替。但在擴展支持方面來看,Python的表現(xiàn)無疑是最棒的。有很多Python模塊可供選擇,幫你能分分種搞定各種任務(wù)。
學(xué)習(xí)一種面向?qū)ο蟮恼Z言的同時,也學(xué)習(xí)一種像Haskell或Scala這樣的函數(shù)式編程語言,這能拓展你的思維和編程認(rèn)知。你可以在本文找到學(xué)習(xí)這5種語言的更多理由。
言歸正傳,下面就是我列出的5種每個程序員或軟件開發(fā)者都該嘗試學(xué)習(xí)的編程語言。
它包含了語言的大雜燴,比如[面向?qū)ο蟮腯語言(http://javarevisited.blogspot.sg/2013/06/5-must-read-books-to-learn?-object.html),函數(shù)式的語言,腳本語言,提供了對底層的控制,也涵蓋了廣泛用于服務(wù)端開發(fā)的語言。
1. Java
Java是近二十年來最流行的語言之一。它統(tǒng)治著全球的服務(wù)端應(yīng)用開發(fā),同時在基于Anroid開發(fā)的移動應(yīng)用和游戲市場,以及企業(yè)web開發(fā)領(lǐng)域,也占有相當(dāng)一部分比重。
Java最初的構(gòu)想是一次編寫各種平臺均能運行(write once run anywhere)。隨著時間的推移,它確實做到了運行在各個平臺的各個角落。
你應(yīng)該學(xué)習(xí)使用Java構(gòu)建健壯的、可擴展的服務(wù)端應(yīng)用。你可以用Java構(gòu)建多種復(fù)雜度的工程。與之相伴的,有很棒的工具、技術(shù)和社區(qū)支持。
為什么你應(yīng)該學(xué)Java呢?你會學(xué)到如果專注于應(yīng)用層面和代碼結(jié)構(gòu)的設(shè)計,而不用關(guān)心特定系統(tǒng)的細(xì)節(jié)和內(nèi)存管理。JVM幫你搞定了后面這些。
如果你已經(jīng)決定開始學(xué)習(xí)Java了,那么Udemy上的 The Complete Java Master Class 教程就很棒,用它作為入門教程很好,它包含了Java的所有核心概念,很詳細(xì)。
順便一提,如果你想要更多選擇,而且不介意使用免費的課程學(xué)習(xí),那可以看看這上面給新手提供的課程。
Java被許多世界上的大型組織所使用。而且能夠向眾多用戶展示你用Java開發(fā)的Android應(yīng)用。如果你仍然還在動搖,我建議你去這看看10個學(xué)習(xí)Java的理由。
2. Python
在全球范圍的學(xué)校和院系,Python是教授最多的語言之一。在美國,許多學(xué)術(shù)課程中,Python已經(jīng)取代了Java成為接觸編程的首選語言。你將從學(xué)習(xí)Python中得到什么呢?——那將非常多。
Python既能用于寫腳本,也能作為一種面向?qū)ο蟮恼Z言編寫大型工程。
許多流行的網(wǎng)站,比如Reddit,就使用基于Python的框架來構(gòu)建,比如Django。近段時間,許多大型組織也轉(zhuǎn)向使用基于Python的框架了。
Python也越來越多地用于像機器學(xué)習(xí)、人工智能、數(shù)據(jù)科學(xué)這樣的新一代技術(shù)中。這也難怪,因為有基于Python的非常棒的機器學(xué)習(xí)庫,比如TensorFlow、Scikit-Learn以及其他。
我個人倒是在用Python寫腳本。這能很快地完成一些有用的事情,比如,你可以用Python花5分鐘寫一個UDP消息的監(jiān)聽器,相比較,用Java可能就要花20分鐘。忘掉“編譯、打包,然后才能使用”這些步驟。你可以直接為特定任務(wù)編寫Python腳本。如果你有興趣學(xué)習(xí)Python,那么The Complete Python BootCamp就是個很好的開始。
如果你需要更多選擇,而且不介意使用免費的課程學(xué)習(xí),那也可看看這上面給新手的課程。
并且,如果你困惑于不知道該從Java還是Python開始,看看這個,它比較了兩者。
另外,如果你仍然沒有被我說服,那就可以看看我的關(guān)于10個學(xué)習(xí)Python理由的文章。
3. JavaScript
你可以用Java替代C++,用Python替代Ruby,但是,坦率地講,當(dāng)前沒有JavaScript的替代品。在最近5年,JavaScript完全統(tǒng)治了世界。
它不再僅僅是客戶端腳本語言。有了Node.js這樣的庫,和Angular、React這樣的框架,你可以在服務(wù)端做用戶界面的開發(fā)。
JavaScript的巨大成功,有一部分要歸功于jQuery。它真正改變了人們在客戶端使用JavaScript的方式。
作為一個在工作中使用JSP和開發(fā)基于Servlet的應(yīng)用的程序員,我有許多機會同時使用jQuery和JavaScript。
有了此語言的知識,可以幫助我們決定哪些功能應(yīng)該在服務(wù)端實現(xiàn),哪些該在客戶端實現(xiàn)。比如,許多服務(wù)端的校驗邏輯,就被我們遷移到了客戶端。
如果你想從頭開始深入學(xué)習(xí)JavaScript,那Udemy上的The Complete JavaScriot就是你可加入的最佳在線課程。
?
如果你想要更多選擇,且不介意跟著免費的課程學(xué)習(xí),那么可以看看這里為web開發(fā)者提供的課程。
4. C 和/或 C++
如果不知道C或C++,你就不能成為真正的程序員。這聽起來有點苛刻,但是我的經(jīng)驗之談。
了解C的工程師或者開發(fā)者,就是比不了解C的程序員要優(yōu)秀。這可不是簡單的巧合。
這是你必須要了解的編程語言之一。我在求學(xué)期間學(xué)習(xí)的C語言,并在那時學(xué)到了關(guān)于編程的許多關(guān)鍵概念,比如結(jié)構(gòu)體、數(shù)組、指針、內(nèi)存管理等等。
C仍然是操作系統(tǒng)編程方面最受歡迎的語言,并且在這兩年,給排名榜首的Java帶來了強勁地沖擊。如果你想學(xué)習(xí)這門美妙的語言,那C Programming for Beginners就是個很好的開始。
它同樣是最古老的主流語言之一,已經(jīng)存在了四十多年。
C++ 和C很像,都允許你為系統(tǒng)和驅(qū)動編寫底層代碼。如果你想學(xué)習(xí)C++ 而不是C,可看看我為新手列出的免費C++課程。
5. Scala
Scala是基于過去20年來的最佳實踐而創(chuàng)造的語言。它是一種函數(shù)式編程語言,提供了一種跟面向?qū)ο笳Z言不同的編程范式。這能改進你的思維和代碼認(rèn)知。
雖然有許多函數(shù)式編程可供選擇,比如Haskell。我選擇Scala,因為作為一名Java開發(fā)者,我發(fā)現(xiàn)學(xué)習(xí)Scala比Haskell更容易。
有人也可以把學(xué)習(xí)Haskell當(dāng)作一個挑戰(zhàn)。但是從實際的角度講,我認(rèn)為學(xué)習(xí)Scala對于Java開發(fā)者來說更有意義。
對于C++程序員,學(xué)習(xí)Haskell可能更合理。坦率講,你可以選擇任何一門函數(shù)式編程語言,但請選擇一門有商業(yè)需求的比較好。
作為一名職業(yè)開發(fā)者,我傾向于把時間投資在那些對我的職業(yè)有幫助的事情上。如果你想學(xué)習(xí)Scala,那么Beginning Scala Programming是個很好的入門課程。
?
無論你學(xué)習(xí)了多少種編程語言,你需要遵從Bob Martin在《代碼整潔之道》給出的編碼和設(shè)計原則,才能成為一名專業(yè)的程序員。它是在你的編程職業(yè)生涯能給與你最大幫助的技能。
以上所有清單的內(nèi)容,列出了每個軟件工程師都該學(xué)習(xí)的5種編程語言。你們中有些人可能已經(jīng)發(fā)現(xiàn)了,這是Java開發(fā)者應(yīng)該學(xué)習(xí)的5個編程語言。也正是如此。如果大家對Python感興趣的話,可以加一下我們的學(xué)習(xí)交流摳摳群哦:649,825,285,免費領(lǐng)取一套學(xué)習(xí)資料和視頻課程喲~
學(xué)習(xí)能提供不同編程范式的語言,是提升編碼技能的最佳途徑。它能幫你有效地解決日常任務(wù)。
理想情況下,一個程序員的工具集里,應(yīng)該包含一個接近底層系統(tǒng)的語言,比C或C++;一個面向?qū)ο蟮恼Z言,比如Java,Python或C++;一個函數(shù)式編程語言,比如Scala或Haskell;一個強大的腳本語言,像Perl、Python、Ruby和JavaScript。
總結(jié)
以上是生活随笔為你收集整理的每个程序员都该学习的5种开发语言,不可错过!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 云炬Android开发笔记 4单Acti
- 下一篇: FeHelper的安装与使用