Python和Java二選一該學(xué)啥?這個問題嘛。如果你問一名Java程序員,肯定會建議你先學(xué)Java,因為他們認(rèn)為Python像個乳臭未干的黃毛小子。但如果你問Python程序員,可能會得到一個完全相反的答案,他們認(rèn)為Java是刻板啰嗦的老大爺,而人生苦短,我用Python。
但別擔(dān)心,我將會從等多個方面為你解答“選擇python還是Java的人生難題”。
01
語言歷史
Python:生而為簡
Python是一門擁有簡潔語法的高級編程語言。一個名為Guido van Rossum的荷蘭大佬在1991年設(shè)計了它。Rossum設(shè)計這門語言的初衷,就是為了讓代碼讀起來更輕松,并且讓程序員們比起用其他語言,可以寫更少的代碼,事半功倍。
Java:出生就想當(dāng)老大
而Jame Gosling在1995年設(shè)計了Java。Java是一門以Class為單位,高度面向?qū)ο蟮母呒壘幊陶Z言。Java的設(shè)計初衷是“寫一次代碼,在哪里都可以用。” Java可以完成任何規(guī)模的任務(wù),所以它也是很多公司在做商業(yè)級項目的時候的普遍選擇。
02
語言本身
Python: 語法簡潔,容易上手
Java:語法稍微復(fù)雜
從語言本身來說,Python是出了名的簡潔,容易上手。一個Python的粉絲曾經(jīng)寫過一首名為 The Zen of Python (Python之禪)的詩來贊頌這門語言的優(yōu)雅。
以下這首詩的節(jié)選翻譯。
優(yōu)美勝于丑陋(Python 以編寫優(yōu)美的代碼為目標(biāo))
明了勝于晦澀(優(yōu)美的代碼應(yīng)當(dāng)是明了的,命名規(guī)范,風(fēng)格相似)
簡潔勝于復(fù)雜(優(yōu)美的代碼應(yīng)當(dāng)是簡潔的,不要有復(fù)雜的內(nèi)部實現(xiàn))
復(fù)雜勝于凌亂(如果復(fù)雜不可避免,那代碼間也不能有難懂的關(guān)系,要保持接口簡潔)
扁平勝于嵌套(優(yōu)美的代碼應(yīng)當(dāng)是扁平的,不能有太多的嵌套)
間隔勝于緊湊(優(yōu)美的代碼有適當(dāng)?shù)拈g隔,不要奢望一行代碼解決問題)
可讀性很重要(優(yōu)美的代碼是可讀的)
即便假借特例的實用性之名,也不可違背這些規(guī)則(這些規(guī)則至高無上)
03
就業(yè)薪資
Python
一.美團(tuán)
薪資:20k~40k
崗位職責(zé):
1. 負(fù)責(zé)云數(shù)據(jù)庫/云主機(jī)控制平面研發(fā)工作 2. 加強(qiáng)平臺管理和控制功能,提升資源交付和管理效率
崗位要求:
1. 熟練使用Python,能寫出漂亮的Pythonic的代碼;
2. 極強(qiáng)的學(xué)習(xí)能力和動力,對未知技術(shù)和領(lǐng)域能快速掌握并實踐;
3. 熟練掌握操作系統(tǒng)原理,Internet網(wǎng)絡(luò)原理;
4. 有云平臺開發(fā)、自動運(yùn)維平臺開發(fā)等大型Python項目經(jīng)驗者優(yōu)先;
5. 在開源社群活躍并有積極貢獻(xiàn)者優(yōu)先。
二.攜程
薪資:15k-25k
Python開發(fā)工程師:
1. 負(fù)責(zé)運(yùn)維平臺設(shè)計及開發(fā),實現(xiàn)運(yùn)維自動化和運(yùn)維效率的提高
2. 幫助開發(fā)團(tuán)隊改進(jìn)開發(fā)流程和效率
3. 與運(yùn)維團(tuán)隊合作,收集需求,改善運(yùn)維流程,實現(xiàn)各種運(yùn)維工具,提高運(yùn)行維護(hù)作業(yè)水平
4. 負(fù)責(zé)網(wǎng)站監(jiān)控系統(tǒng)、數(shù)據(jù)收集和數(shù)據(jù)分析等系統(tǒng)的開發(fā)
5. 結(jié)合虛擬化技術(shù),打造和完善攜程云平臺
以下是加分項:
6. 熟悉大型網(wǎng)站運(yùn)維工作,有運(yùn)維開發(fā)經(jīng)驗者優(yōu)先;
7. 有CMDB/monitoring system/agent/automation系統(tǒng)設(shè)計與開發(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方面:
一、京東
薪資:15k-30k
需要具備以下技能:
1、熟練掌握J(rèn)ava基礎(chǔ),熟練掌握多線程開發(fā)技術(shù),熟悉軟件開發(fā)流程;
2、熟悉主流Java開源框架如struts、hibernate、spring;
3、熟練掌握HTML/CSS/Javascript/jquery/Ajax;
4、熟悉Oracle/ SQL Server/MySQL其中的一種,并能熟練編寫SQL和存儲過程;
5、熟悉Linux系統(tǒng),掌握Linux命令。
二、網(wǎng)易
薪資:15k-30k
必須技能:
1、精通java,熟練運(yùn)用SpringBoot、SpringMVC、Hibernate、Mybatis、struts、struts2等技術(shù),能練使用JQuery或相關(guān)的JS框架,精通面向?qū)ο笤O(shè)計;
2、熟悉mysql/sqlserver數(shù)據(jù)庫,了解相關(guān)的數(shù)據(jù)庫維護(hù)和性能優(yōu)化,熟悉Tomcat、weblogic等服務(wù)器的配置與發(fā)布;
3、全面扎實的軟件知識結(jié)構(gòu)(操作系統(tǒng)、軟件工程、設(shè)計模式、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫系統(tǒng)、網(wǎng)絡(luò)安全等);
4、熟練SQL語句的編寫;思維活躍,具備一定的軟件設(shè)計能力及良好的軟件工程思想;
04
總結(jié)
從語言本身,Python語法簡潔,容易上手,而Java以獨(dú)特的架構(gòu)和較快的速度著稱。
Python作為最近越來越火的語言,是大數(shù)據(jù)和人工智能的主力軍,同時也在網(wǎng)頁開發(fā)中廣泛運(yùn)用。而Java則壟斷了企業(yè)級應(yīng)用的開發(fā)。兩者工程師的薪資也都十分可觀。
![]() |