選擇Python還是Java的人生難題,本文為你解答

Python和Java二選一該學啥?這個問題是很多初學者都在糾結的。如果你問一名Java程序員,千鋒武漢小編肯定會建議你先學Java,因為他們認為Python像個乳臭未干的黃毛小子。但如果你問Python程序員,可能會得到一個完全相反的答案,他們認為Java是刻板啰嗦的老大爺,而人生苦短,我用Python。

但別擔心,小編將會從語言特色、學習本身、實際應用、就業(yè)薪資等多個方面為你解答“選擇python還是Java的人生難題”。

一、語言歷史

Python:生而為簡

Python是一門擁有簡潔語法的高級編程語言。一個名為Guido van Rossum的荷蘭大佬在1991年設計了它。Rossum設計這門語言的初衷,就是為了讓代碼讀起來更輕松,并且讓程序員們比起用其他語言,可以寫更少的代碼,事半功倍。

Java:出生就想當老大

而Jame Gosling在1995年設計了Java。Java是一門以Class為單位,高度面向?qū)ο蟮母呒壘幊陶Z言。Java的設計初衷是“寫一次代碼,在哪里都可以用。” Java可以完成任何規(guī)模的任務,所以它也是很多公司在做商業(yè)級項目的時候的普遍選擇。

二、語言本身

Python: 語法簡潔,容易上手

Java:語法稍微復雜

從語言本身來說,Python是出了名的簡潔,容易上手。一個Python的粉絲曾經(jīng)寫過一首名為 The Zen of Python (Python之禪)的詩來贊頌這門語言的優(yōu)雅。

以下這首詩的節(jié)選翻譯。

優(yōu)美勝于丑陋(Python 以編寫優(yōu)美的代碼為目標)

明了勝于晦澀(優(yōu)美的代碼應當是明了的,命名規(guī)范,風格相似)

簡潔勝于復雜(優(yōu)美的代碼應當是簡潔的,不要有復雜的內(nèi)部實現(xiàn))

復雜勝于凌亂(如果復雜不可避免,那代碼間也不能有難懂的關系,要保持接口簡潔)

扁平勝于嵌套(優(yōu)美的代碼應當是扁平的,不能有太多的嵌套)

間隔勝于緊湊(優(yōu)美的代碼有適當?shù)拈g隔,不要奢望一行代碼解決問題)

可讀性很重要(優(yōu)美的代碼是可讀的)

即便假借特例的實用性之名,也不可違背這些規(guī)則(這些規(guī)則至高無上)

國外著名科普暴漫xckd也有這樣一張形容Python之酸爽的著名漫畫。

漫畫中提到了學習一門編程語言,如燒香拜佛般必做的一件事:讓屏幕輸出Hello World! 這句話。

在Python中,做這件事只需要寫一行代碼:print "Hello World!"。但是相比之下,Java實現(xiàn)這句話就要繁瑣得多,需要至少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轉(zhuǎn)變成Python。Python甚至還因此進入了小學計算機教材中。

三、實際運用

Python

通過豐富的Web開發(fā)框架,如Django和TurboGears,Python可以用來快速完成一個網(wǎng)站的開發(fā)和Web服務。典型如國內(nèi)的豆瓣、果殼網(wǎng)等

自動化系統(tǒng)網(wǎng)絡的運行維護中,大量重復性工作的地方,并需要做管理系統(tǒng)、監(jiān)控系統(tǒng)、發(fā)布系統(tǒng)等。

人工智能和數(shù)據(jù)分析

Java

安卓app開發(fā)

大型網(wǎng)站的后端

大型的企業(yè)級應用

大數(shù)據(jù)

最近一段時間流行度越來越高的Python,在行業(yè)與生活中的運用也十分廣泛。通過豐富的Web開發(fā)框架,如Django和TurboGears,Python可以用來快速完成一個網(wǎng)站的開發(fā)和Web服務。

典型如國內(nèi)的豆瓣、果殼網(wǎng)等;國外的Google、Dropbox等。在系統(tǒng)網(wǎng)絡的運行維護中,有大量重復性工作的地方,并需要做管理系統(tǒng)、監(jiān)控系統(tǒng)、發(fā)布系統(tǒng)等,將工作自動化起來,提高工作效率,這樣的場景Python是一門非常合適的語言。

因為Python的易于維護性,就連谷歌前段時間也將網(wǎng)站后臺的很多代碼用Python重寫代替。業(yè)余時間,也可以用Python寫寫簡單的網(wǎng)絡爬蟲,看看誰拉黑了你的微信,甚至做一個刷票機器人。

當然,說到Python,就不得不提它目前最火熱的運用:人工智能和數(shù)據(jù)分析。Python擁有十分完善的數(shù)據(jù)分析生態(tài)系統(tǒng)。Numpy & Scipy、Pandas、matplotlib 是 Python 最基本數(shù)據(jù)分析的三駕馬車,而 Jupyter notebook 則是分析的最基本交互式環(huán)境。

只要涉及機器學習,深度學習,神經(jīng)網(wǎng)絡這些高大上的領域,是絕對避不開Python的。在人工智能大行其道的今天,Python的運用前景和發(fā)展空間絕對是無限的。

雖然說了這么多Python在難易程度上的優(yōu)點,相對于Java,它也不是完全沒有缺點。即使使用Python開發(fā)的速度和效率比較高,但從運行的速度和效率來說,Java還是略勝一籌。當運算量很大時,Java的獨特平臺設計的好處就顯現(xiàn)了出來。Java使用的虛擬機架構和獨樹一幟的JIT編譯模式能大大提高它的運行速度。這也是為什么Java至今仍然是世界上最受歡迎的語言之一。

如果你想知道Java在實際生活中可以干什么,其實遠在天邊,近在眼前。如果你有一部安卓手機,幾乎所有App都是用Java寫成的。大型網(wǎng)站的后端,比如電子商務交易平臺阿里巴巴,淘寶,京東也都主要使用Java開發(fā)。大型的企業(yè)級應用比如大型企業(yè)管理系統(tǒng),CRM系統(tǒng),ERP系統(tǒng)也可以用Java開發(fā)。

有關通信及網(wǎng)絡的大型企業(yè),比如移動、聯(lián)通、電信、網(wǎng)通,有關金融行的大型企業(yè),所有的銀行、證券公司、互聯(lián)網(wǎng)金融和大型管理系統(tǒng),比如供應鏈,客戶管理系統(tǒng),物流系統(tǒng)主要的信息化都和Java息息相關。現(xiàn)在越來越火的大數(shù)據(jù),最主流的框架Hadoop的主要開發(fā)語言也是Java。所以不難看出,Java還是行業(yè)應用不可撼動的老大哥。

四、就業(yè)薪資

Python

1.美團

薪資:20k~40k

崗位職責:

1. 負責云數(shù)據(jù)庫/云主機控制平面研發(fā)工作 2. 加強平臺管理和控制功能,提升資源交付和管理效率

崗位要求:

1. 熟練使用Python,能寫出漂亮的Pythonic的代碼;

2. 極強的學習能力和動力,對未知技術和領域能快速掌握并實踐;

3. 熟練掌握操作系統(tǒng)原理,Internet網(wǎng)絡原理;

4. 有云平臺開發(fā)、自動運維平臺開發(fā)等大型Python項目經(jīng)驗者優(yōu)先;

5. 在開源社群活躍并有積極貢獻者優(yōu)先。

2.攜程

薪資:15k-25k

Python開發(fā)工程師:

1. 負責運維平臺設計及開發(fā),實現(xiàn)運維自動化和運維效率的提高

2. 幫助開發(fā)團隊改進開發(fā)流程和效率

3. 與運維團隊合作,收集需求,改善運維流程,實現(xiàn)各種運維工具,提高運行維護作業(yè)水平

4. 負責網(wǎng)站監(jiān)控系統(tǒng)、數(shù)據(jù)收集和數(shù)據(jù)分析等系統(tǒng)的開發(fā)

5. 結合虛擬化技術,打造和完善攜程云平臺

以下是加分項:

6. 熟悉大型網(wǎng)站運維工作,有運維開發(fā)經(jīng)驗者優(yōu)先;

7. 有CMDB/monitoring system/agent/automation系統(tǒng)設計與開發(fā)經(jīng)驗者優(yōu)先

8. 熟悉Puppet/Zabbix/Celery/RabbitMQ優(yōu)先

9. 熟悉Python/Django/Tornaod優(yōu)先

10. 熟悉前端開發(fā)(XHTML/JQuery/CSS)優(yōu)先

11. 對OpenStack熟悉者優(yōu)先

Java方面:

1、京東

薪資:15k-30k

需要具備以下技能:

1、熟練掌握Java基礎,熟練掌握多線程開發(fā)技術,熟悉軟件開發(fā)流程;

2、熟悉主流Java開源框架如struts、hibernate、spring;

3、熟練掌握HTML/CSS/Javascript/jquery/Ajax;

4、熟悉Oracle/ SQL Server/MySQL其中的一種,并能熟練編寫SQL和存儲過程;

5、熟悉Linux系統(tǒng),掌握Linux命令。

2、網(wǎng)易

薪資:15k-30k

必須技能:

1、精通java,熟練運用SpringBoot、SpringMVC、Hibernate、Mybatis、struts、struts2等技術,能練使用JQuery或相關的JS框架,精通面向?qū)ο笤O計;

2、熟悉mysql/sqlserver數(shù)據(jù)庫,了解相關的數(shù)據(jù)庫維護和性能優(yōu)化,熟悉Tomcat、weblogic等服務器的配置與發(fā)布;

3、全面扎實的軟件知識結構(操作系統(tǒng)、軟件工程、設計模式、數(shù)據(jù)結構、數(shù)據(jù)庫系統(tǒng)、網(wǎng)絡安全等);

4、熟練SQL語句的編寫;思維活躍,具備一定的軟件設計能力及良好的軟件工程思想;


如果你在學習Python的過程當中有遇見任何問題,可以加入python交流學企鵝群:【611+530+101】,多多交流問題,互幫互助,群里有不錯的學習教程和開發(fā)工具。學習python有任何問題(學習方法,學習效率,如何就業(yè)),可以隨時來咨詢我


五、總結

從語言本身,Python語法簡潔,容易上手,而Java以獨特的架構和較快的速度著稱。

Python作為最近越來越火的語言,是大數(shù)據(jù)和人工智能的主力軍,同時也在網(wǎng)頁開發(fā)中廣泛運用。而Java則壟斷了企業(yè)級應用的開發(fā)。兩者工程師的薪資也都十分可觀。

文章到這里,你還不會選的話,可以來參加千鋒的免費試聽課程,通過試聽課程和專業(yè)老師的詳細介紹,找到適合你學習的編程語言。千鋒武漢IT培訓課程采用100%全程面授教學,拒絕視頻同步授課,拒絕雙元視頻班教學,拒絕直播授課,教師一對一指導學員做項目,全新打造“主流技術+前沿技術+企業(yè)級聯(lián)動”教學課程,采用最新版本技術開展教學,致力于為學員打造最牛的、最新的技術,助力學員拿下BAT級企業(yè)Offer。

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容