自學Java難度大嗎?

你大爺


1)如果您已經具有一些編程的背景知識,尤其是有關面向對象開發的理解,那麼您自己學習Java肯定是可以的。

比如通過學習甲骨文公司官方的java開發說明(https://docs.oracle.com/javase/tutorial/)。

2)但是,如果您完全不瞭解編程,並且以前從未聽說過面向對象編程,那麼自學Java無疑將是一個更大的挑戰。

在這種情況下,我建議您去學習許多在線課程,並首先對學習一些關於通用編程和算法的知識。

很多優秀的課程時候免費的,比如 Codeacademy Codecademy-免費交互學習編程或MITOPENCOURSEWARE 入門編程課。

這個過程可能要稍微困難一些,但是在資料和視頻的輔導下,是非常有可能成功的。

3) 總之,在任何情況下,無論您目前的技能水平如何,都可以自學Java編程。


查理博士關天下


自學Java看這一篇就夠啦!Java學習路線圖分享給你,跟著學習吧!

一、Java基礎

JavaSE基礎是Java中級程序員的起點,是幫助你從小白到懂得編程的必經之路。

在Java基礎板塊中有6個子模塊的學習:

  • 基礎語法,可幫助你建立基本的編程邏輯思維;

  • 面向對象,以對象方式去編寫優美的Java程序;

  • 集合,後期開發中存儲數據必備技術;

  • IO,對磁盤文件進行讀取和寫入基礎操作;

  • 多線程與併發,提高程序效率;

  • 異常,編寫代碼邏輯更加健全;

  • 網絡編程,應用服務器學習基礎,完成數據的遠程傳輸。

  • 學習該階段,可以完成一些簡單的管理系統、坦克大戰遊戲、QQ通信等。

  • 二、數據庫

    數據庫不僅僅是Java開發工程師的必學課程,也是其他語言都需要掌握的技能。用於對交互過程中客戶的數據進行存儲。

    該板塊包括關係型數據庫和非關係型數據庫。

    例如:MySQL、oracle、redis、MongoDB等。數據庫學習完畢後,可以將數據存儲到數據庫中,也可以通過SQL語句從數據庫中查詢數據,結合Java項目可以實現動態站點的數據的保存。

    技術樹

    三、前端技術

    Javaweb階段包括前端、數據庫和動態網頁。Javaweb是互聯網項目的入門課程,是學習後面高進階課程的基礎。

    首先,我們先看一下前端板塊。該板塊主要包括如下幾個模塊:

  • HTML5,網頁製作標記語言;

  • CSS,對HTML製作網頁進行美化;

  • JavaScript,嵌入在頁面中的腳本語言,具備邏輯性;

  • Vue,前端框架,簡化了與服務器端交互的操作,用戶良好的交互體驗是必不可少的。

  • 學習前端技術後,可以完成類似京東、淘寶的前端工程的編寫。

    技術樹

    四、動態網頁技術

    動態網頁是中級程序員服務器端編程的基礎,是高級框架學習的必備課程,後期學習的框架、服務底層都是基於動態網頁技術之上的。

    該板塊包括Javaweb核心技術、包括Servlet、Request、Response、Cookie和Session等,通過這些技術的學習可以完成動態站點開發,可更好的完成服務器端與客戶的交互,讓頁面的數據“動”起來,做出小型的應用系統。

    技術樹

    五、編程強化

    編程強化是對解決實際問題方面做一個深入的瞭解和應用,是對JavaSE基礎的加強,對後期自動以框架和對一些服務框架的底層理解做支撐。

    編程強化板塊主要包括如下幾個模塊:多線程高級、涉及線程內存、線程通信等;JVM優化,對JVM底層進行調優來提高項目執行效率;NIO,同步非阻塞IO來提高效率。

    學習該階段,可以對原有項目進行優化從而使程序更快更穩定。

    技術樹

    六、軟件項目管理

    JavaSE基礎是Java中級程序員的起點,是幫助你從小白到懂得編程的必經之路。

    在Java基礎板塊中有6個子模塊的學習:基礎語法,可幫助你建立基本的編程邏輯思維;面向對象,以對象方式去編寫優美的Java程序;集合,後期開發中存儲數據必備技術;IO,對磁盤文件進行讀取和寫入基礎操作;多線程與併發,提高程序效率;異常,編寫代碼邏輯更加健全;網絡編程,應用服務器學習基礎,完成數據的遠程傳輸。

    學習該階段,可以完成一些簡單的管理系統、坦克大戰遊戲、QQ通信等。

    技術樹

    七、熱門技術框架

    使用Javaweb進行企業級開發是完全可以的,但是開發效率比較低,所以對常用的邏輯操作進行封裝就形成了框架,因此框架是企業開發的入門技能。

    熱門框架板塊主流框架有如下幾個:Spring框架,佔據統治地位,其生態系統涉及各個方面解決方案;MyBatis框架,使用ORM思想對數據庫進行操作。

    該板塊學習後,就可以進行真實企業級項目開發了,做出的項目也會更加符合企業要求。

    技術樹

    八、分佈式架構方案

    隨著互聯網的發展,業務的複雜性和用戶的體驗性都需要提高,所以分佈式架構出現了。該板塊主要講解的是分佈式架構的相關解決方案。

    主要包括如下模塊:Dubbo,高性能的 RPC 服務發佈和調用框架;SpringBoot,簡化Spring應用的初始搭建以及開發過程;Spring Cloud,一系列框架的有序集合,如服務發現註冊、配置中心、負載均衡、斷路器、數據監控等。

    該板塊的學習,可以具備大型互聯網項目開發的必備技術和實際經驗,為進入BATJ打下基礎

    技術樹

    九、服務器中間件

    中間件板塊是大型互聯網項目中必備的。服務中間件可以幫助各子模塊間實現互相訪問,消息共享或統一訪問等功能。其包括遠程服務框架中間件,例如阿里(Apache)的RPC框架Dubbo等;消息隊列中間件,例如:阿里巴巴開源分佈式中間件RocketMQ、高吞吐量消息發佈和流處理服務Kafka等。

    學習服務中間件是中級JavaEE工程師必要技術,也是JavaEE架構師必須精通的技術。

    技術樹

    十、服務器技術

    不管是使用原生Javaweb進行開發,還是使用框架進行開發,項目最終需要對外發布才能供全世界的人訪問到,而服務器板塊就可以解決這個問題,所以服務器是項目發佈的必要技術。該板塊包括虛擬化和web應用服務器的學習,主要包括如下幾個模塊:Vmware,虛擬機軟件;Linux,專門用於服務器的系統;Nginx,集群部署時反向代理服務器;Tomcat,項目發佈時主要使用的服務器。

    該板塊學習後,我們就可以把開發好的項目發佈到服務器中,然後供你的小夥伴遠程訪問了,超酷!

    技術樹

    十一、容器技術

    容器化技術是近兩年超級火的一個專題,通過容器化技術可以對環境進行打包,方便移植,大大提高了開發效率。該板塊包括容器化技術Docker和其平臺管理引擎Kubernetes,其中,Docker 是一個開源的應用容器引擎,可以打包應用以及依賴包到一個可移植的鏡像中,然後發佈到任何流行的Linux或Windows 機器上,也可以實現虛擬化。而Kubernetes是一個開源的,用於管理雲平臺中多個主機上的容器化的應用,Kubernetes的目標是讓部署容器化的應用簡單並且高效。通過該板塊的學習,你可以通過上述技術快速搭建環境,節省開發時間,提高開發效率。

    技術樹

    十二、業務解決方案

    雖然我們已經具備了基礎技術和高階技術,但是要想與企業開發相接軌,還需要對實際項目的業務解決方案進行探究。而此版塊就是在實際業務場景中的真實解決方案集合,常用的業務解決方案有如下:搜索業務場景解決方案、日誌收集與分析場景解決方案、工作流引擎場景解決方案、任務調度場景解決方案、地圖開發平臺場景解決方案、支付開放平臺場景解決方案、圖表可視化場景解決方案。通過分析實際業務來學習這個解決方案技術集,完全可以達到中級甚至高級工程師水平。

    技術樹


糖的甜


有天賦的人再加上毅力,短期內對基礎掌握不是問題。但是javaEE涉及知識點非常之多,不說別的,我就舉幾個技術你就得必須掌握 : java基礎,至少要達到獨立隨便寫代碼。MySql數據庫,至少要會寫簡單的查詢語句。JPA或者MYBATIS,這兩種持久層的東西至少要會一種。接著就是後端框架了,spring,strus,hb,這三個至少要會一個,這才是重點。再接著前端,div+css應該很快入門,但是要達到精通那得下很大的努力。再接著就是javascript了,這才是重點,沒有這個知識你的前端就是白做。最後就是前端框架了,angular,react,vue,這三種至少要會一種,而且原生的js必須過硬,還要會使用它的封裝jq。以上我說的這些知識點必須要會,而還得精通,不然去其他公司最多也就是多呆幾個月而已,根本沒法做出東西來。當然後端的技術遠遠不止這些,要學習的東西實在是太多太多。經常看到有人在貼吧裡面說javaee如何如何簡單,一下子就自己搞出個博客來,其實這些人無非都是去看著人家的視頻來做,或者說直接拿著別人寫好的代碼來裝逼,真正直接叫他獨立開發些東西來我估計他搞個三五年都未必做出來。真正的高手也不會滿天裝逼說自己有多厲害,還是那句話,當你覺得自己有多厲害的時候,你再看看你一個月的收入是1W以內,還是超過1W了?還是達到2W了?還是3W了?你覺得自己厲害,為什麼人家做開發的一個月拿3W,他還說自己的水平一般?所以在學習這些知識的時候正確的看清自己很重要。


茫然四顧a


單從問題本身來看,這個問題是比較難回答的。因為每個人對於編程語言的理解和基礎都是不同的,由於過於空洞的回答不能起到幫助各位有相同疑問的朋友,下面我就將針對於JAVA這一門語言進行一個系統的闡述。

一、什麼是JAVA?

JAVA是由詹姆斯·高斯林發明的一種可以撰寫跨平臺應用軟件的面向對象的程序設計語言,是由Sun Microsystems(現已被甲骨文公司收購)公司於1995年5月推出的Java程序設計語言和Java平臺(即JavaEE, JavaME, JavaSE)的總稱。

二、JAVA發展的優勢是什麼?

Java自面世後就非常流行,發展迅速,對C++語言形成了有力衝擊。Java技術具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應用於個人PC、數據中心、遊戲控制檯、科學超級計算機、移動電話和互聯網,同時擁有全球最大的開發者專業社群。在全球雲計算和移動互聯網的產業環境下,Java更具備了顯著優勢和廣闊前景。

三、JAVA語言是一種什麼樣的編程語言?

Java編程語言是個簡單、面向對象、分佈式、解釋性、健壯、安全與系統無關、可移植、高性能、多線程和靜態的語言。

四、學習JAVA語言難度大嗎?

1、對於JAVA語言學習的這個問題,我想主要從兩個方面進行闡述。首先,在學習任何一門編程語言之前要對自己有一個系統的認知。因為無論是哪種編程語言都需要一定的理解分析能力和理論思維能力。通俗的來講,只要明白了運用JAVA語言進行編程的整體邏輯和框架的使用,在後期實際工作中也就能夠運用自如。這也是在學習JAVA這門語言的時候應該重點去掌握和理解的地方。其次,JAVA語言學習的過程中,對每一個板塊的理解要到位,對於JAVA編程實現的基本原理要清晰,當然有些人會認為這裡的基本原理就要去探索計算機最原始的用0和1來表示的狀態,實則不然。瞭解最基本的原理應該從面相對象開始,因為JAVA的基本編程原理就是面向對象。掌握了JAVA語言的基本原理和框架結構及實現邏輯後,學習這門語言也就顯得很容易並且也能通過自己寫的代碼運行實現某一功能而帶來快樂。

2、上面講了JAVA語言學習的基本要求和大體的一個學習邏輯,雖然是粗略的帶過,但也足夠作為基礎入門對JAVA有一定的認識。那麼作為一個沒有編程語言基礎的人來講,是不是學習起來就會很難呢?事實上並不是這樣的,由於現在的大學把計算機都納入必修可能,就算是對編程語言的瞭解不是很深,至少來講也明白了是什麼。這類人只要有較強的邏輯思維能力、理解能力和分析能力,學習起來還是相對容易的。有些人或許對自己沒有信任,在決定之前也可以去一些專業做IT類培訓的機構進行了解,當然也需要注意這類機構為了招生的不擇手段,謹防上當受騙。當然對於已經入門的人來講,去進行深造學習而選擇JAVA語言的話,也並沒有什麼可擔心的,畢竟有實際的工作經驗,也有編程基礎。

3、對於從未接觸過編程語言的人來講,可能學習起來就比較困難,甚至於很多社會人士已經工作很久了,也有這樣的想法去學習一門編程語言。但JAVA對於零基礎的人來講,總體上學習都是偏困難的,也不排除極少數有天賦的人也能夠學習得很好,但畢竟是極少數。對於零基礎的人來講,我覺得可以先從網上找一些最基礎的JAVA理論基礎視頻觀看一下,感受一下。再結合自身的理解和判斷以及自身的一個綜合情況進行決定,避免走錯方向。

五、總結

基於學習JAVA編程語言難度是否大這一問題,上面做了基本的介紹和不同情況的一個分析。簡而言之大致分為三類人:有語言基礎的人群(大學畢業生可視為有語言基礎類)、有實際工作經驗想要深造的人群、零基礎人群。對於上述三類人群,客觀的講,前兩者學習起來相對較容易和輕鬆,最後一類零基礎人群難度較大。不管是屬於哪一類人群,在選擇編程語言及培訓機構進行學習的時候都應該慎重考慮和選擇,決定前可搜索基礎內容講解視頻,看自己是否能夠理解,多根據自身能力來綜合判別適合哪一類的編程語言,畢竟編程語言也不是隻有JAVA語言。以上是我基於問題的所有回答內容,希望我的回答能夠給你帶來一定的幫助,謝謝。








分享到:


相關文章: