將 Java 作為入門程式語言有錯嗎?

2021-12-24 CSDN

還記得你學習的第一門程式語言是什麼嗎?

就從 11 級軟體工程出身的筆者而言,《Java 程序設計》是大學課程中必學科目,且學分相比其他課程都要高出不少。

不過,近幾年隨著人工智慧的崛起,各大初高中、甚至是幼兒園都在將 AI 教學列入基本教學範疇。這不前幾日,由中國科學院自動化所、Google 及其他相關高校的 AI 專家專為幼兒園學生設計的 AI 教材也被曝光。

隨之而來的是,作為 AI 領域的首選程式語言 Python 也水漲船高,甚至不少高校將其取代了 Java 的基本教學任務。對於這種現狀,本文作者不禁提出疑問,如今倘若仍將 Java 作為學習編程的入門課程教給學生究竟對還是不對?如果不對,在學習編程時又該學什麼呢?Python 嗎?

Java 依然是最流行的程式語言,但很少有人認為它是最酷的程式語言。一些人甚至認為,Java 已進入垂暮之年,因此許多從事教育的人都不願意教 Java。

於是問題來了:學校和大學是否依然應該教學生 Java 編程?如果不應該,那麼教什麼語言最好?

新貴 Python 或將攔截 Java 的教學推廣後路?

在我上大學的時代——其實就是十年前,Java 還是計算機科學的入門課程中的必學語言。如果你想學其他語言,比如 C、Python、PHP,你就得專門選那個語言的課程,或者選相關的應用。

但是現在,Java 不再受大學的青睞。根據國際計算機協會(ACM)的研究發現,截至 2014 年,Python 已經取代 Java 成了主流大學計算機入門課程必學的語言。

但這個研究並不全面,因為它只覆蓋了最主要的美國大學,而且它代表的只是幾年前的一個時間點而已。但是,我依然強烈地感覺到,如果現在對計算機科學的入門課程使用的計算機語言做一次全面調查,那麼很可能會發現 Java 並不是最受歡迎的語言。

我敢肯定許多學院依然在教 Java,但我也懷疑大多數已經把入門課程改成了其他語言(很可能是 Python)。甚至高中的計算機教學也有同樣的現象。

為什麼 Java 不再適合作為學習編程的入門語言?

Java 的衰退是好事還是壞事?當然,答案取決於你問的人是誰。但是一般而言,有幾點很好的理由支持我們應當在計算機學習的過程中儘早改變教授程式語言的方式。

Java 太冗長。Java 程式設計師自己都承認,Java 是個極其冗長的語言,比大多數語言都要冗長,完成非常簡單的任務都要寫大量代碼。也許對於能快速寫代碼的專業程式設計師來說無所謂吧。

但是,對於學習編程的學生來說,他會願意寫三四行代碼只為了在控制臺輸出一行字符串嗎?其他語言(比如 Python)只需要一行代碼:

echo 'my string';

可學習性的因素。你也許認為,Java 是使用最廣泛的語言,所以每個人都應該學習它。畢竟,許多專業的程式設計師每天都在使用 Java。許多重要的應用程式也是用 Java 寫的,而且,就算現在所有人都不再寫 Java,未來幾十年中我們依然需要維護舊的 Java 代碼。

但是,僅憑最流行的企業語言以及依然會廣泛流行幾十年這點,並不能說明我們應當總是讓學生首先學習 Java。如果你是新入學的計算機科學的學生,希望用簡單的辦法探索應用程式設計和開發的精髓,那麼 Java 並不是好的起點。

Java 是編譯語言。如果你是 DevOps 工程師,在 Jenkins 流水線中構建 Java 應用程式,那這是件好事。但如果你只想學習編程,那嘗試之前需要先編譯就不太理想了。最好還是使用一門腳本語言。

如果職業需要,你可以稍後再學習構建過程和發布的流水線。而且你有可能根本不需要。並不是每個選了計算機入門課程的人都會成為專業的開發者並且編譯代碼。

有許多 Java 的替代品。你經常聽到的學習 Java 的理由之一就是「它是面向對象的!」沒錯,Java 是面向對象編程(OOP)的標誌性語言。但許多其他語言也可以使用 OOP。

而且,教 OOP 的原理並不需要特定的語言。OOP 只是一種概念,是一種結構性的策略,而不是語言的特性。除此之外,微服務的趨勢已經讓 OOP 變得不再那麼重要了。就像微服務部署削弱了單一架構一樣,也許以後根本就不再需要 OOP 了。

Java Development Kit(JDK)沒有統一的標準。Oracle JDK、OpenJDK 和許多其他廠商的 JDK 平臺都不一樣,這可能會造成許多困惑。不同 JDK 之間的口味不同,意味著你在一個平臺上的代碼可能無法在另一個平臺上正確工作,這會讓初次學習編程的學生感到沮喪。

當然,你可以通過要求所有學生使用同一個 JDK 來避免這個問題。但為什麼不乾脆避免這個問題本身呢?許多其他語言都只有一個實現標準,而且通常是開源的。

學習 Java 依然有益

但這並不是說 Java 不適合教學——它依然有賣點。Java 是跨平臺的。它有健康的生態系統和開發工具,包括 Eclipse,能讓許多新手程式設計師的生活變得更加容易。Java 還有易於使用的文檔和社區支持,因為太多人都在使用 Java。所以,教 Java 究竟有沒有錯?這個問題很難回答。但是現在,Java 並不是向學生教授第一門程式語言的最佳選擇。在我看來,Python 和 C++ 是更好的選擇。

對此,你怎麼看,歡迎下方留言分享你的看法。

原文:https://www.theserverside.com/opinion/Is-it-a-mistake-to-teach-Java-as-a-first-programming-language

作者:Chris Tozzi

譯者:彎月,責編:屠敏

--End--

微信改版了,

想快速看到CSDN的熱乎文章,

趕快把CSDN公眾號設為星標吧,

打開公眾號,點擊「設為星標」就可以啦!

CSDN 公眾號秉持著「與千萬技術人共成長」理念,不僅以「極客頭條」、「暢言」欄目在第一時間以技術人的獨特視角描述技術人關心的行業焦點事件,更有「技術頭條」專欄,深度解讀行業內的熱門技術與場景應用,讓所有的開發者緊跟技術潮流,保持警醒的技術嗅覺,對行業趨勢、技術有更為全面的認知。

如果你有優質的文章,或是行業熱點事件、技術趨勢的真知灼見,或是深度的應用實踐、場景方案等的新見解,歡迎聯繫 CSDN 投稿,聯繫方式:微信(guorui_1118,請備註投稿+姓名+公司職位),郵箱(guorui@csdn.net)。

推薦閱讀:

相關焦點

  • Java | 函數式編程入門(文中有Java福利!)
    黑馬程式設計師QQ號:1967401436傳智播客旗下網際網路資訊,學習資源免費分享平臺什麼是函數式編程?簡單的回答:一切都是數學函數。今天跟著播妞一起學習Java學科中的函數式編程入門。文末附有Java資源哦。
  • Java 會是首選的最佳程式語言嗎?
    Java程式語言值得我們開始學習嗎?如果把Java作為首個要學習的程式語言,它的好處有多大?對於初學者來說,哪種程式語言是最好的,我應該是從Java,還是從Python開始學習呢?.對所有上面這些問題的回答都是——是的,Java。以下為譯文:我經常會被問到這些問題:哪一門程式語言是首先應該學習的程式語言?
  • java編程從入門到放棄?關於Java自學,我的3點思考
    首先,Java作為一門適用性很強的語言,入門是不難的。但要系統全面地自學Java,那可就很難了!如果每個人都能通過自學,系統全面的掌握Java。那真的不能自學JAVA了嗎?當然不是!在你知道了自學會面臨這些困難,依然堅定不移地要踏上自學之路時,說明你已經具備了自學的核心要素之一:強大的信念!2、如何自學java?
  • 日常疑惑:編程學Java還是學C語言?
    這兩門程式語言都是IT行業的寵兒,Java與和C語言各自的技術特點、應用方向上有所不同,沒有伯仲之分,所以這也讓初學者們覺得很難選:應該選擇哪個做為入門語言呢?從學習的難易度上來說,java語言比C語言要簡單。
  • 程式設計師入門選擇哪一門程式語言?一定要從C語言開始嗎?
    學編程先從哪裡開始入手呢,選擇什麼程式語言會好點呢?一直以來,有那麼一部分新手程式設計師會經歷這方面的困惑,選擇一門程式語言確實是一個非常大的課題。程式設計師選擇哪一門程式語言入門?但是畢竟你要面對的現實是,學C語言離做出成品還很遙遠呢~即使C語言是一門非常好的程式語言,但是它對於沒有接觸過編程的新手、或者急於就業的程式設計師來說,未必適合拿來入門。而只有當你編程實踐到了一定的水平,再過頭學習C語言,會讓你對編程的理解更進一步。
  • 編程入門先學什麼?零經驗的人學編程難嗎
    「編程入門先學什麼」這是所有想了解編程行業都擔心的一個問題,「零經驗的人學編程難嗎」這是所有想進入編程行業都需要關注的一個問題。一聽編程兩個字很多人都在退縮了,有很多的同學是非常的想知道,編程入門先學什麼,零經驗的人學編程難不難,小編整理了相關信息,希望會對大家有所幫助!
  • java入門必備書籍
    共覆蓋了java.awt、java.lang、java.io和java.nio、java.sql、java.text、java.util、javax.swing包下絕大部分類和接口。只要你真正想學習Java,你翻開書看上十多分鐘,你絕對會被這本書吸引,介紹操作的部分,非常具體。
  • 編程應該選什麼語言作為入門?Java?Python?C/C++?還是PHP……
    經常有人問我,想學習編程,要學什麼語言好呢?什麼語言最有前景?什麼語言工資高?什麼語言最好?通常遇到這樣的問題我都會反問一句你為什麼要學編程?其實語言沒有最好,只有最適合,你的興趣點在哪,你學習的目標是什麼?
  • Java程式語言 入門第一課
    「在 Java 程式語言中,每個命令都單獨佔用一行。分號必須放在命令的末尾。」「假設我們想在屏幕上三次顯示『人類和機器人永遠是朋友』。應該這樣編寫:「「第二個原則。」「一個程序不能只包含命令。」「在 Java 程式語言中,命令不能單獨存在。它是函數的一部分(在 Java 語言中,『函數』也稱為『方法』)。方法是類的一部分。換句話說,類被劃分為多個方法,而方法被劃分為多個命令。」Java 語言的基礎知識! 程序由類組成,類由方法組成,方法由命令組成!
  • 為什麼入門大數據選擇Python而不是Java?
    今天我們就來談談學習大數據入門語言的選擇。當然並不只是我個人之見,此外我搜集了各路大神的見解綜合起來跟大家做個討論。java和python的區別到底在哪裡?java和python比c++受歡迎的原因在於不需要指針。不少想學習大數據的零基礎學員都知道,學大數據部分課程之前要先學習一種計算機程式語言。大數據開發需要程式語言的基礎,因為大數據的開發基於一些常用的高級語言,比如Java和python。不論是大數據生態架構,還是數據挖掘,都需要有高級程式語言的基礎。因此,如果想學習大數據開發,還是需要著手學習一門高級語言。
  • Java、Python、C語言?5大熱門程式語言,我該怎麼選?
    其實是由多種程式語言結合之後的總稱,其可以對多條指令進行整合,將其變為單條指令完成輸送,整個程序更為簡便,具有較強的操作性。而我們現在所常用的,基本上都是高級語言。如:C語言、C++、Pascal、Basic等等。
  • java如何快速入門?
    即使對於專家來說,解決複雜問題或制定解決Java程序的算法的最佳方法是將問題分解為子部分,然後為每個子部分設計解決方案。當你開始得到正確的解決方案,你會有信心去做更多的工作。不要忘記分配內存對於從C,C ++轉學Java的程式設計師來講,這個技巧特別有用。
  • 如何入門中學生編程
    相信很多同學對編程很感興趣,但是卻不知道如何入門以及入門難度如何,廢話少說,直接進入主題。首先,學習編程不難,難的是自己的想法(如果有同學學習過就知道了)。其次,如何入門。對安卓開發有興趣的同學,入門學習 java ,這是因為安卓開發用到的程式語言就是 java。(聽說谷歌出了 kotlin...)
  • 為什麼都說java比較容易入門?
    說java比較容易入門的人,應該都是正常的人,因為相比之下,java有著不可比擬的優勢,對於編程新手來說這個優勢,可以讓他們更快的用
  • Python和Java語言,新手應該先學哪個
    ,在初入門徑的時候,經常會有一個困惑,拿不定主意,是學習java呢,還是學習python?今天我就給大家說道說道,關於這兩個語言的選擇問題。我先表明下自己的觀點,java和python這兩門語言,都要學習,但是,要有先後順序。強烈推薦先學習java。java是個嚴謹、高效的程式語言,出道20餘年,在編程兵器排行榜上,常年佔據前三。
  • 自學編程第1節:程式語言有哪些,什麼關係?彙編C/C++,JAVA簡介
    首先,謝謝大家點擊閱讀獵奇哥的編程系列教程,後期慢慢補充,詳細介紹C語言,C++語言編程的方方面面,儘量幫助大家能夠儘量簡單的學會C++編程核心入門知識。總章節數待定,視內容的更新情況。說起編程,最早的是彙編語言,這種語言大家通常叫做低級語言,做一個程序,需要非常多的指令和代碼,完成的卻是一個非常簡單的功能,程式設計師的工作量非常大,當然,那個時期,電腦的功能也沒有現在的這麼強大,彙編對於當時來說,也是夠用。
  • 程式語言學哪個比較好?2019年最實用的程式語言
    第三類語言則是Objective-C和R。1、java-大眾化的程式語言Java是歷史最悠久的程式語言之一。Java可謂是Web應用程式、桌面程序、作業系統及更多系統的立足之本。這種面向對象、基於類的程式語言廣泛使用;此外,它也是最受歡迎的語言之一。
  • 軟帝學院:Java程式設計師入門必看的 4 本 Java 書籍!
    01《Head First Java》作為一本入門書,它是絕對出色的。一個星期就能讓你明白怎麼用Java寫程序了。尤其是你有其它語言基礎的情況下,這本書能迅速讓你明白Java的特質。 缺點是,它真的只是入門書。02《Java 核心技術:卷1 基礎知識》
  • 2020Java程式語言發展現狀報告
    Java程式語言已經歷經25年的發展,為何始終都是企業優選的程式語言呢?今天我們一起來了解一下2020年Java程式語言的發展現狀報告。深入了解一下Java程式語言的分布、從業者數量、軟體等等各方面的內容。市場研究和分析團隊根據開發人員估算模型得出的最佳估計顯示,當今世界上有大約 520 萬專業 Java 開發人員,他們將 Java 作為主要語言。
  • 2021 年 1 月程式語言排行榜:Java 穩居第一
    對於已經在IT行業工作的程式設計師而言,想要長足發展不被淘汰,就一定要與時俱進,而對於編程界的初學者來說,想要入行,選對一門 「正確」的技術語言很重要,它能讓你在職場上平步青雲。從圖中可見,Java市場佔有率任然是巋然不動,穩居第一!可見其市場老大地位穩如泰山。市場佔有率的高地位,Java的工資水平自然也不低,工資的排名是python, c/c++, java。