準備學習編程前,你必定會打開電腦搜索一下「先學Python仍是先學Java?」撲面而來的是海量回答。前端
若是你問一名Java程序員,確定會建議你先學Java,由於他們認爲Python像個乳臭未乾的黃毛小子。但若是你問Python程序員,可能會獲得一個徹底相反的答案,他們認爲Java是刻板囉嗦的老大爺,而人生苦短,我用Python。
java
但別擔憂,今天咱們將會從node
等多個方面爲你解答「選擇Python仍是Java的人生難題」
python
語言歷史mysql
Python是一門擁有簡潔語法的高級編程語言。一個名爲Guido van Rossum的荷蘭大佬在1991年設計了它。Rossum設計這門語言的初衷,就是爲了讓代碼讀起來更輕鬆,而且讓程序員們比起用其餘語言,能夠寫更少的代碼,事半功倍。jquery
而Jame Gosling在1995年設計了Java。 Java是一門以Class爲單位,高度面向對象的高級編程語言。Java的設計初衷是「寫一次代碼,在哪裏均可以用。」 Java能夠完成任何規模的任務,因此它也是不少公司在作商業級項目的時候的廣泛選擇。程序員
語言自己web
從語言自己來講,Python是出了名的簡潔,容易上手。一個Python的粉絲曾經寫過一首名爲 The Zen of Python (Python之禪)的詩來讚頌這門語言的優雅。如下這首詩的節選翻譯。spring
優美勝於醜陋(Python 以編寫優美的代碼爲目標)sql
明瞭勝於晦澀(優美的代碼應當是明瞭的,命名規範,風格類似)
簡潔勝於複雜(優美的代碼應當是簡潔的,不要有複雜的內部實現)
複雜勝於凌亂(若是複雜不可避免,那代碼間也不能有難懂的關係,要保持接口簡潔)
扁平勝於嵌套(優美的代碼應當是扁平的,不能有太多的嵌套)
間隔勝於緊湊(優美的代碼有適當的間隔,不要奢望一行代碼解決問題)
可讀性很重要(優美的代碼是可讀的)
即使假借特例的實用性之名,也不可違背這些規則(這些規則至高無上)
國外著名科普暴漫xckd也有這樣一張形容Python之酸爽的著名漫畫。
漫畫中提到了學習一門編程語言,如燒香拜佛般必作的一件事:讓屏幕輸出Hello World! 這句話。 在Python中,作這件事只須要寫一行代碼:print "Hello World!"。 可是相比之下,Java實現這句話就要繁瑣得多,須要至少4行代碼(不當心就diss了一下Java)。總之,用Python編程,比起其餘語言,更像是直接在和電腦對話。
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}
如此對比,Python的簡潔明瞭和上手的容易程度就一目瞭然了。固然,這還只是一個例子,不少時候Python一兩行代碼就能搞定的事情,Java卻須要多達10行,甚至20行。Python省去了像Java同樣死記硬背語法和結構的時間。只須要基本的學習,你就能夠讀懂不少代碼了。正是由於如此簡單平緩的學習曲線,經過Python的學習,你能夠很清晰地瞭解程序員的思惟,更專一地學習編程通用的基本概念。在領悟透徹了這些知識之後,學習任何語言都是小菜一碟。許多國外知名大學,如MIT和哈佛,也漸漸地將計算機導論課程語言的選擇,從Java轉變成Python。Python甚至還所以進入了小學計算機教材中。
實際運用
最近一段時間流行度愈來愈高的Python,在行業與生活中的運用也十分普遍。經過豐富的Web開發框架,如Django和TurboGears,Python能夠用來快速完成一個網站的開發和Web服務。典型如國內的豆瓣、果殼網等;國外的Google、Dropbox等。在系統網絡的運行維護中,有大量重複性工做的地方,並須要作管理系統、監控系統、發佈系統等,將工做自動化起來,提升工做效率,這樣的場景Python是一門很是合適的語言。由於Python的易於維護性,就連谷歌前段時間也將網站後臺的不少代碼用Python重寫代替。業餘時間,也能夠用Python寫寫簡單的網絡爬蟲,看看誰拉黑了你的微信,甚至作一個刷票機器人。
固然,說到Python,就不得不提它目前最火熱的運用:人工智能和數據分析。Python擁有十分完善的數據分析生態系統。Numpy & Scipy、Pandas、matplotlib 是 Python 最基本數據分析的三駕馬車,而 Jupyter notebook 則是分析的最基本交互式環境。只要涉及機器學習,深度學習,神經網絡這些高大上的領域,是絕對避不開Python的。甚至看到不少研究者的討論帖子都建議早點把研究工具遷移到 Python 生態系統。最典型的例子就是人工智能界最牛的老師之一:Andrew Ng教授。再前幾年的關於機器學習的在線課程裏,Andrew Ng無論課上講解仍是課下做業,通通一概用MatLab。可是在今年新出的深度學習課程裏,他堅決果斷地選擇了Python做爲課程講解和做業的語言,而且強烈推薦廣大學習者熟練掌握Python。在人工智能大行其道的今天,Python的運用前景和發展空間絕對是無限的。
雖說了這麼多Python在難易程度上的優勢,相對於Java,它也不是徹底沒有缺點。即便使用Python開發的速度和效率比較高,但從運行的速度和效率來講,Java仍是略勝一籌。當運算量很大時,Java的獨特平臺設計的好處就顯現了出來。Java使用的虛擬機架構和獨樹一幟的JIT編譯模式能大大提升它的運行速度。這也是爲何Java至今仍然是世界上最受歡迎的語言之一。
若是你想知道Java在實際生活中能夠幹什麼,其實遠在天邊,近在眼前。若是你有一部安卓手機,幾乎全部App都是用Java寫成的。大型網站的後端,好比電子商務交易平臺阿里巴巴,淘寶,京東也都主要使用Java開發。大型的企業級應用好比大型企業管理系統,CRM系統,ERP系統也能夠用Java開發。有關通訊及網絡的大型企業,好比移動、聯通、電信、網通,有關金融行的大型企業,全部的銀行、證券公司、互聯網金融和大型管理系統,好比供應鏈,客戶管理系統,物流系統主要的信息化都和Java息息相關。如今愈來愈火的大數據,最主流的框架Hadoop的主要開發語言也是Java。因此不難看出,Java仍是行業應用不可撼動的老大哥。
薪資
Python
1.美團
薪資:20k~40k
崗位職責: 1. 負責雲數據庫/雲主機控制平面研發工做 2. 增強平臺管理和控制功能,提高資源交付和管理效率
崗位要求:
1. 熟練使用Python,能寫出漂亮的Pythonic的代碼;
2. 極強的學習能力和動力,對未知技術和領域能快速掌握並實踐;
3. 熟練掌握操做系統原理,Internet網絡原理;
4. 有云平臺開發、自動運維平臺開發等大型Python項目經驗者優先;
5. 在開源社羣活躍並有積極貢獻者優先。
2.攜程
薪資:15k-25k
Python開發工程師:1. 負責運維平臺設計及開發,實現運維自動化和運維效率的提升 2. 幫助開發團隊改進開發流程和效率 3. 與運維團隊合做,收集需求,改善運維流程,實現各類運維工具,提升運行維護做業水平 4. 負責網站監控系統、數據收集和數據分析等系統的開發 5. 結合虛擬化技術,打造和完善攜程雲平臺
如下是加分項:
6. 熟悉大型網站運維工做,有運維開發經驗者優先;
7. 有CMDB/monitoring system/agent/automation系統設計與開發經驗者優先
8. 熟悉Puppet/Zabbix/Celery/RabbitMQ優先
9. 熟悉Python/Django/Tornaod優先
10. 熟悉前端開發(XHTML/JQuery/CSS)優先
11. 對OpenStack熟悉者優先
同時,數據顯示,2017年在僱主發佈的職位說明中,Python技能需求增速達到174%,居於首位,Spark、Hadoop等大數據技能需求增幅也十分靠前。
Java方面:
一、京東
薪資:15k-30k
須要具有如下技能:
一、熟練掌握Java基礎,熟練掌握多線程開發技術,熟悉軟件開發流程;
二、熟悉主流Java開源框架如struts、hibernate、spring;
三、熟練掌握HTML/CSS/Javascript/jquery/Ajax;
四、熟悉Oracle/ SQL Server/MySQL其中的一種,並能熟練編寫SQL和存儲過程;
五、熟悉Linux系統,掌握Linux命令。
二、網易
薪資:15k-30k
必須技能:
一、精通java,熟練運用SpringBoot、SpringMVC、Hibernate、Mybatis、struts、struts2等技術,能練使用JQuery或相關的JS框架,精通面向對象設計;
二、熟悉mysql/sqlserver數據庫,瞭解相關的數據庫維護和性能優化,熟悉Tomcat、weblogic等服務器的配置與發佈;
三、全面紮實的軟件知識結構(操做系統、軟件工程、設計模式、數據結構、數據庫系統、網絡安全等);
四、熟練SQL語句的編寫;思惟活躍,具有必定的軟件設計能力及良好的軟件工程思想;
總結:
從語言自己,Python語法簡潔,容易上手,而Java以獨特的架構和較快的速度著稱。
Python做爲最近愈來愈火的語言,是大數據和人工智能的主力軍,同時也在網頁開發中普遍運用。而Java則壟斷了企業級應用的開發。二者工程師的薪資也都十分可觀。
文章到這裏,你還不會選的話,我也幫不了大家了233...
祝編程學習愉快。
最後,推薦一下優達學城的Python課程,零基礎入門,銷量繞地球三週(逃~~
和 Java課程(打起來打起來
Java入門納米基石學位做者:優達學員
來源:知乎
著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。