如同超人與蝙蝠俠,星球大戰(zhàn)與星際迷航,可口可樂與百事可樂。 Java與Python之間的選擇,實(shí)際上并非是黑白的競爭,兩種語言有不同的使用用例和粉絲群。從事實(shí)上來講,它們也是完全不同的,以至于他們已經(jīng)成為書呆子的隱喻,浪漫的不兼容性: 自今年 5 月 Python 以 22.8% 的指數(shù)在 PYPL 榜單上首次超越 Java 拿下榜首后,隨后幾個月 Python 繼續(xù)保持上漲趨勢,在最新公布的 PYPL 12 月指數(shù)榜中,Python 以 25.36% 的份額甩開 Java(21.56 %),并逐漸與 Java 拉開差距。 不同于 TIOBE 榜單基于谷歌、必應(yīng)、雅虎、維基百科、亞馬遜、YouTube 和百度的綜合計(jì)算形式,PYPL 指數(shù)的計(jì)算形式更為直接 —— 只基于 Google trends 數(shù)據(jù)。它根據(jù)編程語言在 Google 上的搜索頻率(次數(shù))來評估語言的流行度。 Python、Java 和 JavaScript 的指數(shù)走勢: 在2016年,Python取代Java成為高校中最受歡迎的語言,從那時起它受歡迎的程度就沒有減退過。 隨著新時代的到來,Python正在不斷發(fā)展壯大。如果你閱讀編程和技術(shù)新聞或博客文章,那么你可能已經(jīng)發(fā)現(xiàn)了Python的興起,因?yàn)樵S多流行的開發(fā)人員社區(qū),包括StackOverFlow和CodeAcademy都提到了Python作為主要編程語言的興起。 但是,最大的問題是為什么程序員應(yīng)該學(xué)習(xí)Python? 作為一名Java開發(fā)人員,我很喜歡它,并且始終會去學(xué)習(xí)它。但是,這并不能阻止我們學(xué)習(xí)潛在的新工具和編程語言,這將使我們成為一個更好的程序員。 對于初學(xué)者來說很簡單,從Python開始是最好的選擇。因?yàn)樗子趯W(xué)習(xí),功能強(qiáng)大,足以構(gòu)建Web應(yīng)用程序并自動化無聊的東西。實(shí)際上,幾年前,腳本編寫是學(xué)習(xí)Python的主要原因,這也是我被Python吸引并首選Perl的原因,而Perl是當(dāng)時另一種流行的腳本語言。 對于有經(jīng)驗(yàn)的程序員或已經(jīng)了解Ruby,Java或JavaScript的人來說,學(xué)習(xí)Python意味著在你的工具庫中獲得一個新的強(qiáng)大工具,我還沒有想出一個對工具說“不”的程序員,這是你學(xué)習(xí)一門新的編程語言時的正確查找方式。 正如經(jīng)典的Automate the Boring Stuff with Python一書中所提到的,Python讓你能夠自動化瑣碎的東西,讓你專注于更多令人興奮和有用的東西。
如果你是Java開發(fā)人員,那么也可以使用Groovy來實(shí)現(xiàn)這一點(diǎn),但Groovy并未提供Python在API、庫、框架和數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)以及Web開發(fā)等領(lǐng)域的廣泛應(yīng)用。 為什么程序員應(yīng)該學(xué)習(xí)Python? 如果你正在考慮學(xué)習(xí)Python但不確定為什么要學(xué),那么這里有10個理由強(qiáng)調(diào)了2018年學(xué)習(xí)Python的好處。雖然,問題的答案取決于問問題的對象,對于初學(xué)者,學(xué)習(xí)Python是有道理的,因?yàn)閷W(xué)習(xí)Python主要原因是簡便性。同樣,對于想要進(jìn)入數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)的有經(jīng)驗(yàn)的程序員來說,學(xué)習(xí)Python是有意義的,因?yàn)樗芸斐蔀樽畛S玫木幊陶Z言,并且有強(qiáng)大的API和可用于AI、數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)的庫。 以下是在2018年學(xué)習(xí)Python的10個理由: 1.數(shù)據(jù)科學(xué) 這是許多程序員學(xué)習(xí)Python的一個最大的原因。我知道很多對投資銀行的Java編程工作感到厭倦的朋友,由于令人興奮的工作和高回報(bào),他們正在Udemy學(xué)習(xí)Python來從事數(shù)據(jù)科學(xué)工作。 但是,是什么讓Python成為數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)的首選語言?不久之前R語言不是最好的嗎?我認(rèn)為Python提供關(guān)于AI、DataScience、機(jī)器學(xué)習(xí)PyBrain,NumPy和PyMySQL的庫和框架就是其中一個原因。 另一個原因是多樣性,Python體驗(yàn)允許你比R做更多的事情,例如你可以創(chuàng)建腳本來自動化內(nèi)容,進(jìn)入Web開發(fā)等等。 2.機(jī)器學(xué)習(xí) 這也是為什么程序員在2018年學(xué)習(xí)Python的另一個原因。機(jī)器學(xué)習(xí)的發(fā)展在過去的幾年中是驚人的,它正在迅速改變我們周圍的一切。 算法日漸復(fù)雜,最好的例子是谷歌的搜索算法,它現(xiàn)在可以通過聊天機(jī)器人來回答你所期望的答案,其中 Uber完全由算法驅(qū)動。 如果你對機(jī)器學(xué)習(xí)感興趣,想要做一個寵物項(xiàng)目或只是想玩一玩,Python是唯一能讓它變得簡單的主要編程語言。 盡管Java中提供了機(jī)器學(xué)習(xí)庫,但你會在Python中發(fā)現(xiàn)更多內(nèi)容,因?yàn)殚_發(fā)人員社區(qū)更喜歡Python而不是其他任何關(guān)于數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)的內(nèi)容。 3.網(wǎng)站開發(fā) 優(yōu)質(zhì)的開發(fā)是學(xué)習(xí)Python的另一個原因。它提供了許多好的庫和框架,例如Django和Flask使Web開發(fā)變得非常簡單。 PHP中需要花費(fèi)數(shù)小時的任務(wù)可以在幾分鐘內(nèi)完成。Python也被用于網(wǎng)絡(luò)爬蟲。像Reddit這樣互聯(lián)網(wǎng)上的一些流行網(wǎng)站是使用Python構(gòu)建的。 如果你對使用Python進(jìn)行Web開發(fā)感興趣,我建議你加入JoshPortilla的Python和Django Full Stack Web Developer Bootcamp課程。 4.簡便 這是初學(xué)者學(xué)習(xí)Python的最大原因。當(dāng)你第一次開始編程時,你肯定不希望從具有嚴(yán)格語法和奇怪規(guī)則的編程語言開始。 Python既可讀又簡單,它也更容易設(shè)置,而不需要處理任何類路徑問題,如Java或C++等編譯器問題。 只需安裝Python就可以了。安裝它時還會要求你在PATH中添加Python,這意味著你可以從計(jì)算機(jī)上的任何位置運(yùn)行Python。 5.強(qiáng)大的社區(qū) 你需要一個社區(qū)來學(xué)習(xí)新技術(shù),而在學(xué)習(xí)編程語言方面,朋友是你最大的資產(chǎn),當(dāng)你遇到問題時,就需要朋友的援助之手。 由于Google,你可以在幾分鐘內(nèi)找到任何問題的解決方案,像StackOverflow這樣的社區(qū)也將許多Python專家聚集在一起,來幫助新手。 6.庫和框架 Python和Java之間的一個相似之處是可以執(zhí)行任何操作的開源庫,框架和模塊的數(shù)量,它使應(yīng)用程序開發(fā)變得非常容易。 想象一下,不用Java的Spring或Django和Flask創(chuàng)建一個Web應(yīng)用程序,工作變得簡單,因?yàn)橹恍枰P(guān)注業(yè)務(wù)邏輯。 Python有滿足不同需求的庫。Django和Flask是Web開發(fā)中最受歡迎的兩個,而NumPy和SciPy是用于數(shù)據(jù)科學(xué)的。 實(shí)際上,Python擁有最好的機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)庫集合,如TensorFlow,Scikit-Learn,Keras,Pandas等等。 如果你想了解有關(guān)Python機(jī)器學(xué)習(xí)庫的更多信息,我建議你加入Python for Data Science和Machine Learning Bootcamp課程,這是我最喜歡的課程之一。 7.自動化 由于某一次的腳本需求,我第一次了解了Python。我在使用通過UDP接收消息的應(yīng)用程序時出現(xiàn)了問題,但我沒有在日志中看到消息。 我想檢查是否在該盒子和端口上接收了任何UDP流量,但我找不到一個方便的UNIX命令來做到這一點(diǎn)。 我的一位坐在我旁邊的朋友正在學(xué)習(xí)Python,他在短短5分鐘內(nèi)編寫了一個實(shí)用工具,使用了其中一個Python模塊攔截UDP消息。 顯然,我對他編寫這樣一個工具所花費(fèi)的時間印象深刻,但這只是在編寫腳本、工具和自動化時顯示出了Python的強(qiáng)大功能。 如果你真的想知道Python對自動化有多大幫助,那么我最喜歡的就是使用Automate boring stuff with Python這本書,簡直太棒了。 8.多用途 我喜歡Python的一個原因是它的瑞士軍刀性質(zhì)。它關(guān)系著方方面面,例如R在數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)方面表現(xiàn)得很好,而且在Web開發(fā)方面也無處不在。學(xué)習(xí)Python意味著你可以做很多事情。 你可以使用Django和Flask創(chuàng)建Web應(yīng)用程序,可以使用NumPy,Scipy,Scikit-Learn和NLTK進(jìn)行數(shù)據(jù)分析。 至少,你可以使用Python編寫腳本來自動完成許多日常任務(wù)。 9.工作與成長 Python的發(fā)展速度非??欤掷m(xù)時間很長,如果你剛剛開始編程生涯,那么學(xué)習(xí)一門不斷發(fā)展的編程語言會很有意義。 它不僅可以幫助你快速找到工作,而且還可以加速你的職業(yè)發(fā)展。恕我直言,對于初學(xué)者來說,除了它的簡便性,這應(yīng)該是學(xué)習(xí)Python的最重要原因。 10.薪水 Python開發(fā)人員是收入最高的開發(fā)人員之一,特別是在數(shù)據(jù)科學(xué),機(jī)器學(xué)習(xí)和Web開發(fā)方面。 平均而言,它們的報(bào)酬非常高,從70,000美元到150,000美元不等,具體取決于他們的經(jīng)驗(yàn),定位。 如果你有興趣了解有關(guān)高薪技術(shù)工作的更多信息,我建議你查看一下2018年發(fā)布的關(guān)于軟件工程師的10個最高薪技術(shù)工作的帖子。 學(xué)習(xí)Python的有用資源 作者:方向 |
|