JAVA和PYTHON哪個更難?不是計算機專業的學生適合學哪個?

用戶103032655260


這個可以明確告訴你,Python是更容易的,而且也更適合非計算機專業的人來學習。Python有一個外號,叫做“非專業人員的專業語言”。

原因是什麼呢?讓我們來捋一捋。


1. 數據結構與算法方面。

Java最開始是從C++和C那塊延伸出來的,為了實現跨平臺運行的編程語言,因此,Java還是有很多底層的數據結構,比如hashmap,比如arraylist,就算你不懂原理,你至少也得會一些基本的插入,刪除,排序的操作,所以,這無形之中就增添了很多的難度。

而Python主要是用於科學計算的編程語言,它封裝的比較高級,Python的數據結構都是以容器的形式出現,比如:list,dict,都是包裝過的。你看起來它們和Java中的某些結構似曾相識,但實際上底層實現方式完全不一樣了。Python的操作涉及到的數據結構方面的知識很少。當然了,學好相關知識對於程序員是很重要的。


2. 編程範式方面。

Java是最經典的面向對象OOP編程語言,因此,你想完全學好Java,必須要學會面向對象編程,這其中就有非常多的對於新手來說晦澀難懂的東西,比如,繼承,多態等等。

Python也支持面向對象編程,但是Python也是多範式編程語言,它還支持普通的面向過程編程,以及更高級的函數式編程。在面向過程編程中,這是最經典的,“所寫即所得”,寫一句話,什麼意思,直接運算就完事了。當然,這也造成了Python可維護性和可讀性不如Java的問題,但是說到難度,必須還是Python簡單。


3. Python是動態語言

Python不用聲明變量的類型就可以賦值,可以更改,而Java是強類型的。


4. 類庫強大

有這樣一種說法,說Python就好比是瑞士軍刀。是的,Python功能很多,尤其是在科學計算方面。比如說,最近非常火的深度學習。Python平臺的框架是最多的,有TensorFlow,PyTorch,MXnet,Caffe等等,如果你想從事人工智能,機器學習方面的學習,那麼Python絕對是你的首選。


5. 結語

最後想說一句,學習什麼語言,不應該看什麼語言是簡單的,而應該看,什麼語言是最有用的,是最能夠完成你想要完成的任務了。

不選簡單的,只選對的。

不管是什麼語言,都需要理論和實際相結合,勤於動手,才能學好。祝題主越學越好:)


稼軒說機器學習


從編程語言自身的複雜度上來說,Java要比Python更復雜一些,但是Python也可以寫出非常複雜的程序。

Java語言是純粹的面向對象編程語言,有嚴格的語法要求,同時Java是典型的靜態語言,也就是說Java不允許未經定義的賦值。正因為如此,Java代碼具有較多的模式性(儀式性)的內容,包括一些複雜的定義過程等。另外,Java對抽象的要求比較高,學習Java實際上就是在學習Java如何完成抽象。

Python編程語言是腳本式語言與面嚮對象語言的結合體,Python既具備腳本式語言的簡潔性,同時又具備面嚮對象語言的靈活性,所以Python得到了廣大程序員的歡迎,比如那句流傳廣泛的“人生苦短,我用Python”就是一個比較形象的比喻。

對於非計算機專業的學生來說,由於Python語言簡單易學,同時Python的開發環境也比較容易搭建,所以學習Python是一個不錯的選擇。

Python有多個應用領域,比如在Web開發、大數據開發、大數據分析、機器學習、自然語言處理等領域都有廣泛的應用,不同的領域需要掌握不同的知識結構,所以在學習Python之前最好先定一個學習方向。

雖然不同方向需要學習的內容有所區別,比如大數據開發要學習hadoop、Spark等內容,機器學習需要掌握Numpy、Scipy、Matplotlib等內容,但是基礎部分的內容是統一的,比如列表、元組、字符串、函數、OO編程、異常處理、數據庫開發、網絡基礎開發等內容(我在頭條上寫了關於學習Python的系列文章,想學習的同學可以看一下)。

最後,學習Python需要做大量的實驗。

作者簡介:中國科學院大學計算機專業研究生導師,從事IT行業多年,研究方向包括動態軟件體系結構、大數據、人工智能相關領域,有多年的一線研發經驗。

歡迎關注作者,歡迎諮詢計算機相關問題。


IT人劉俊明


當下,Java是不可動搖的老大,而Python勢頭正猛。很多想學編程的零基礎小白在Python和Java之間糾結,不知道該學什麼?今天千鋒武漢詳細對比分析Python和Java的不同點,給你作為兩種編程語言之間抉擇的參考!

一張圖告訴你!Python和Java的不同點!

從圖表中,你可以很容易看出 Java 比 Python 羅嗦。在 Java 中讀一個文件要寫10行代碼,而在 Python 中只要兩行。這一點是 Python 的優勢,因為很多新手程序員會喜歡編寫很少的代碼,第二點則是關於靜態變量,動態變量,你需要強類型的語言和嚴謹的編譯器來檢測犯二的代碼。在 Java 中,你不會看到,在一個字符串變量中接著存整型變量。執行速度是企業級應用的命脈,你可以看到 Java 比 Python 快,但是要記住,你需要編譯才能運行 Java 程序,而 Python 程序不要編譯可以直接運行。

Python 控制檯可以直接解釋 python 命令,這對於新手來說意味著會更加簡單!所以現在 Python 和 Java 2:2,扯平了。雖然你還會看到 Java 中 hello world比 Python 需要更多行代碼,但最終你會發現,他們二者的能力是一樣的,沒有誰差。當然,學 Java 並把它當成職業生涯的編程語言,你絕不會後悔。但與此同時,你可以在任何時候學習 Python,這對於寫一些小的工具集也非常有用。

總的來說,Python作為一門腳本語言,很容易入門。編程並不是說掌握一門或幾門語言就足夠了,重在提高思維能力。而Python容易入門,工具多,短短數行代碼就可以實現一個強大的功能,增強初學者的信心,另一方面讓初學者有一個對編程思維的初步理解。

在這之後再學習Java,首先語法很容易入門,再者對編程有一定理解後,才更能體會到類、繼承、接口,甚至之後接觸各種框架,這些內容對於大型項目帶來的優勢。”

誠然,從Python和Java二者的學習難度上講,後者的難度不言而喻。如上圖所示,同樣寫一段“Hello,World”的代碼,在Python環境中可以用更為直觀的編碼方式呈現。也正因如此,Python大大降低了初學者的學習門檻。

不過,就實際情況來講,初學者學習任何一種語言都需要綜合考慮是否適合自己。

雖然Java是應用最廣泛的語言,但是Python因為在人工智能和大數據方面的出色表現、以及簡單易入門的性質,從去年開始,就已經成為了很多人的首選語言。人工智能是未來,Python也是未來。

最後,無論你選擇何種編程語言,都去好好享受編碼吧。


千鋒武漢


java的難學程度排列第三,第一、第二難學的是C和C++,所以Java是C++--,而C++又是C--,故java對C語言而言是實施了兩次減負,但java確是安全而高效的,必竟它是源於美國軍事項目在投標中敗出,才不得不轉入民用的,因而各大金融和安全類項目基本上都採用java(當然,這是針對民用市場而言的,軍事用語不會採用java,軍事項目都有自己特定的語言)。而python呢,它易學難精,適用於中小項目,且安全性也不高。由於python脫離底層太遠,如果只會python,那麼你就等於不是真正懂機算機的人,因為python是把底層的東西都封裝好了,讓你只管應用就行了。這就是python為什麼學起來非常簡單的原因。


飛蛾灘知識產權


不要從編程語言層面去選擇。任何編程語言的語法都是明確的,除了極少數比較複雜難以掌握意外,比如C++,其它的都比較容易掌握。

非專業自學者在選擇編程語言之前應該先選擇編程領域。比如:服務器後端開發、移動設備app開發、網頁應用開發、嵌入式開發、3d開發等等。選擇一個合適的領域,再去選擇學習擅長這個領域編程的編程語言。

在選擇一個領域時,除了興趣以外,還要考慮幾點:學習難度、學習週期、工作機會。從這三點來考慮的話,適合非計算機專業自學者的領域有:網頁應用開發(html+css+javascript)、移動應用開發(java/objectc、swift)和服務器後端開發(Java/php/python/ruby/go)。

最後,儘量結合自身的優勢:背景知識和工作經驗。如果是數學專業的,不妨嘗試一下數據處理(python)和人工智能(python),如果熟悉金融知識,不妨嘗試服務器後端開發(java),將來從事金融系統的開發工作。



自學編程社區


第一點收到多位同行指出的問題,在此就跟大家說不好意思了,小女子才疏學淺,等學問研究好了再來悟空問答。

2、定義與應用

Python是一種解釋型腳本語言,應用於以下領域:

  • Web 和 Internet開發
  • 科學計算和統計
  • 教育
  • 桌面界面開發
  • 軟件開發

Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程,應用於一下領域:

  • 編寫桌面應用程序

  • Web應用程序

  • 分佈式系統

  • 嵌入式系統應用程序等

綜上所述和結合現在部分程序員的操作,已經是Java工程師的一般都是通過自學Python,從而運用到工作中。

本身Python的編程語言相對java要簡單、易學一些,換句話就是Java可以自學做Python,但是Python自學做Java會難一點,Java有規範和要求Python是沒有的。


朗小妹兒


Java為什麼難些

Java的是面向對象編程,圍繞“對象”展開的,它有個最核心的話,“萬物皆為對象”。也就是說,只要你把一個世界上存在的東西寫進Java代碼裡,那它就會被當做一個對象,而Java的編程則是圍繞這個核心思想。

因此Java剛入門並不是特別好理解這個對象的妙用,但是有一定面嚮對象語言基礎的朋友選擇Java一定會上手快速。



Python為什麼輕鬆些

Python作為近年勢頭猛烈的語言,使用率正在逐漸趕超Java,最經典的一句話告訴你Python的上手難度以及開發效率:“人生苦短,我用Python”。

這句話的含義是Python的語言簡潔,作用卻非常巨大,因為它腳本語言的特性,它的編程彷彿就行敲命令行,寫腳本嘛。完成同樣一個功能,Python需要敲的代碼遠比Java簡潔。

宇文氏習慣性多嘴:人生苦短,如果可以的話,兩個語言都接觸一下絕對有益處,但是請先學通一門,不要貪多。

關注一下“極客宇文氏”,更多編程領域的那些事

極客宇文氏


不是計算機專業的,想學編程,是Java還是Python,這個不是問題。

不管你想學哪個,首先你得對計算機一般操作沒問題。

然後,你得了解一些編程概念,比如面向對象編程(OOP)、函數式編程,以及相關的編程邏輯思維,掌握方法,對問題進行分解、組合、關係和實現等模式套路。

當然,這才開始,還有相應語言的類庫要學習以便拿來就用,不要自己從頭開發,也沒必要這樣幹——不要重複發明輪子。

如果不做職業性考慮,只是想了解編程,簡單玩一玩,那Python學習相對自然點,容易上手和理解。其表達方式或編程實現,更貼近人的自然醒描述問題,所以很容易接受。

若作為職業考慮,那就體系化好好學,必須深入學才能有實際應用能力。

Java強類型語言,要求嚴格,偏向於後端服務,各種框架和企業解決方案比較成熟,目前是開發語言的主流。

Python其實各種事都能幹,尤其在大數據和人工智能(AI)上,更是了得。這也是目前比較偏向的性的編程語言——好多大公司都這方面的支持庫(應用解決方案),不過學高級應用,對個人的能力要求越高,如高端算法、機器學習等。有興趣夠你學一陣子了……


牛旦教育IT課堂


其實程序語言都是觸類旁通的,不同的程序語言的適用場景不一樣,基礎語法都是想通的,如果想要學習的話,最好先確定自己學習編程的目的,然後可以先學習一門程序語言,然後,學好學通,再去學習其他的。

從語法上講,我認為python更簡單一些,對初學者更加友好,上手更快。python裡面將一些功能函數包裝在一個個模塊裡面,一個模塊裡可能存儲著某一個方面的多個功能函數,像os模塊用於文件處理,math模塊存儲著一些數學函數,學習的時候,可以瞭解一個模塊的功能再學習裡面的函數。使用的時候也十分方便。

相比java,我覺得python稍簡單一點。不過,如果是零基礎準備入門的話,也可以先學習下C語言或者matlab呢。


AI深度學習求索


從學習難度上來講,Python比Java要簡單得多,尤其適合非計算機專業的學生適合。當然,Python更容易入門並不僅僅是首選的理由,主要的理由如下:

1. python在應用方面來講更多,由於歷史原因,Java的應用更多地體現在網絡編程方面,而近年來Python在數據分析和機器學習方面得到的應用更廣泛,對於非計算機專業的學生來說,學習python更可能是為了解決本專業的問題,而不是編寫專業的網絡程序或者安卓應用程序。因此,用Python以及相應的庫,可以解決讀寫Office文檔,數據處理與分析,簡單的機器學習等問題,對各個專業學生來說應用都更加廣泛。可以替代Matlab等專業程序。

2. python的支持更全面。單純從第三方庫的角度來看,Python相比Java可能不具有明顯優勢,但是從第三方庫的分佈來看就完全不一樣了,正如同應用的領域不一樣,python的第三方庫更多地在一些“更接地氣”的方面,而這些更接地氣的第三方庫可以讓你的開發變得簡潔而有效。不重複造輪子,是其中最明顯的優勢。

3. python也可以實現大型的程序。Python容易上手,並不代表著其不能完成大型的應用,事實上,python完全可以搭建非常複雜的大型程序。同時,由於Python存在不同的髮型版本,在應用上而言也可以根據不同的需要進行選擇,比如科學計算的話選擇Anaconda和Ipython,而需要提高效率的話則儘量使用CPython,此外還有和微軟.net結合的Ironpython或者和Java結合的Jython,這都是Java無法比擬的。

最後,在編程效率方面Python遠高於其他主流語言,當然,其多線程鎖和運行效率也是一直為人詬病的,但這些缺陷正在不停的得到解決,而且,隨著計算機硬件水平的提高,編程快顯然比運行速度快更重要。


分享到:


相關文章: