色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

Java和數據挖掘這么火

方一強2年前14瀏覽0評論

Java和數據挖掘這么火?

提這個問題,我猜測題主是在校大學生、或者是剛開始學習軟件研發技術的人士。我的回復基于這個猜測,若有不符請留言進一步討論。

從學習的角度

大學軟件研發相關專業(計算機科學與技術、軟件工程等)的課程設置一般都是以一門高級語言開始,最常見的就是C/C++語言程序設計,也有少量大學選擇的是Java語言程序設計。

其實筆者一直在反思這個問題:從一門高級語言來入門是否合適。最終個人形成的結論是:應該增加一門“計算機組成概論”課程。這門課程應該先于高級語言程序設計、或者是在第一個學期同時開設必修。原因在于,“計算機組成概論”會給出一個軟件研發專業知識體系的全景圖,告訴初學者這個體系都有哪些知識點、哪些板塊,以及這些知識點和或板塊的關系。基于這個全景圖,初學者也會明白高級語言在這個體系中的作用:它是用來完成軟件構建的同時又便于人類理解的“媒介”,所以稱之為“語言”。

學習高級語言,其實要學習三方面的內容:

軟件的基礎算法結構,即順序、循環、分支;特定于這種語言的語法;這種語言所體現的編程思想。編程思想要解決的問題是如何組織代碼及模塊,使得更易于實現復雜的業務邏輯、更容易讓團隊分工協作、代碼更易理解易維護。常見的編程思想是:面向對象、面向過程、面向接口、函數式編程等。

對于第1)點,無論學習哪一種編程語言都是一樣的;對于第2)點,不同語言的差別其實很小。對于掌握一種高級語言的人去學習另外一種語言障礙最小的反而是在這一點上。對于第3)點,目前高校主流教授的C、C++、Java的情況如下:

因此,從學習的角度,C++、Java都是合適的。但為什么高校往往會選擇C++而非Java呢?原因在于Java是一種基于“虛擬機”的語言,會更多地屏蔽內存分配方面的細節,同時對于初學者再去理解虛擬機等機制會帶來一些額外的干擾,不利于上述三個學習目的。當然,客觀講上述兩個原因不是非常“致命”的問題,或多或少還有習慣使然的原因吧。

從工作的角度

在行業內,當前C/C++、Java以及其他一些語言各有應用場景。C/C++在單板開發、嵌入式系統開發中是絕對的主流;而Java在各種類型的服務器后臺軟件開發中,也是絕對的主流。原因主要是兩點:

C/C++開發的軟件具備占用計算/內存資源少的顯著特點,這是契合單板、嵌入式系統資源受限的特點的;Java的庫、支撐框架完善,語言層面具備諸如支持反射、運行時異常處理完善等特點,適合代碼量巨大的大規模軟件系統研發,開發效率高。因此廣泛用于服務器后臺軟件研發。

所以,實際上到底會使用哪種高級語言,取決于工作中要研發的軟件系統的類型。

總結

回到題主的問題。深入學習C++,會讓你掌握軟件的基本算法結構、目前主流的編程思想。這兩部分會成為你在后續工作中,當需要學習一門新的高級語言(如Java)時堅實的基礎。你會發現門檻是非常低的。因此,在學習階段,假設學校開設了C++這門課程,那么毋容置疑應該深入地學習它(反之若開設的是Java也是一樣)。

說些題外話吧。對于現代的一個程序員,至少要掌握兩門高級語言:一門靜態語言,如Java、C++;一門動態語言,如Python。前面也說過,在深入掌握一門語言后,再學習一門新的語言 is a piece of cake!

歡迎關注、歡迎討論!

java如何深入,Java和數據挖掘這么火