如何系統全面地自學Java語言?明確後我直接拿到了20K的薪資!

玩Java多年的老司機帶你上車全面系統學習Java,並且還能教你如何學習才能在今年拿到一份不錯的offer。

說到系統全面,就是以目前絕大部分公司招聘要求的知識內容爲基準,畢竟我們學習Java都是爲了高薪工作,《史記》中說”天下熙熙皆爲利來,天下攘攘皆爲利往“,爲了高薪工作而學習Java技術,這都是人之常情,也是大部分人奮鬥的目標。

我們先看看市場上招聘Java程序員都需要哪些技術:

大家看了上面三家的招聘要求是否發現,目前作爲初級Java工程師的要求都是差不多的,主要框架就是SpringMVC、Mybatis、SpringBoot、SpringCloud爲主。而數據庫是MySQL和Oracle,一般中小型公司是用MySQL,而稍微規模稍微大一點的公司則是Oracle爲主,以及Web相關的基礎內容和一些如git、Maven、SVN工具的使用。

所以我們必須先了解目前市場都是需要學習什麼技術,你所學的知識要有用武之地纔行,緊貼時代的前沿。所謂全面系統的學習Java,我們首先要了解自己應該學習哪些內容。

全面系統的Java內容如下:

一、JavaSE基礎篇

JavaSE就是一種標準版,是Java語言的基礎部分,Java衍生出來的各種框架(如Spring系列)各種產品都是基於JavaSE標準,JavaSE是Java向上發展的基礎,Java任何高級產品的底層基礎都是JavaSE,通俗來講這是所有孩子的”爹“。JavaSE如果學不好,理解不透徹,後面學習框架時就有如天書一般,所以JavaSE這部分的重要性是不言而喻的,希望各位初學者銘記。

主要包含內容:數據類型、基礎語法、運算符、流程控制、數組、面向對象、常用類、異常處理、集合、IO流、多線程、反射、註解、解析、網絡編程。

PS:JavaSE的內容非常龐大,任何一套JavaSE教程都不會把所有的方法講一遍,只會挑平時工作中常用的內容來講解,所以JavaSE裏面的內容很多都是課後自己在API文檔中慢慢了解的,你自己一定要學會主動學習,不能坐以待斃。

推薦學習書籍:Java核心技術

這本書是老美寫的,出版以來,一直備受廣大Java程序設計人員的青睞,暢銷不衰,是Java經典書籍。囊括了Java平臺標準版JavaSE的全部基礎知識,提供了大量完整且具有實際意義的應用實例,詳細介紹了Java語言基礎知識、面向對象程序設計、接口與內部類、事件監聽器模型、swing圖形用戶界面程序設計、打包應用程序、異常處理、登錄與調試、泛型程序設計、集合框架、多線程等內容。(這本書是每個Java程序員必看的書籍)

二、數據庫篇

數據庫是學習Java語言必學的一項內容,常見的數據庫就是MySQL和Oracle這兩種,作爲初學者一般都是學習MySQL爲主,一般情況下中小型企業都會選擇MySQL數據庫,比較大型的互聯網公司會選擇用Oracle,而學習Oracle相對於MySQL也要複雜一些,建議是主要學習MySQL數據庫,Oracle作爲了解即可。學習數據庫較爲簡單,基本的操作就是增刪改查。

三、Web開發

Web前端內容:HTML/CSS/JavaScript/(前端頁面)

注意:Java後端開發可以不用過多關注HTML頁面及CSS的處理,但是最起碼要會用簡單的HTML,JavaScript是必需要會的,因爲Javaweb後端程序員畢竟要接觸使用AJAX方式處理數據及顯示。當然如果只關注服務器端實現而不考慮任何用戶界面,則HTML、CSS、JavaScript都不用關注,但是完全脫離前端的開發現在雖然也不少,但是絕對不關心前端是不可能,尤其是JavaScript,但是前端卻可以完全不關心服務器後臺的任何實現。

推薦學習書籍:《JavaScript DOM編程藝術》(第二版)

這本書作爲被大家推薦的最多的前端入門書籍是有道理的。他能真正讓大家瞭解dom腳本編程,或是說前端編程技術背後的思路和原則。對於初學者來說,這本書沒有任何門檻,按部就班跟着書籍實例編寫代碼即可。我們會知曉如何對瀏覽器元素操作和掌控,會學會如何實現簡單的頁面效果。這種簡單易得的成就感是一個編程語言入門時最難能可貴的體驗。

JavaEE內容:Servlet/JSP

雖然現在網上在傳JSP很少用了,可能是被一些模板或JS AJAX方式代替了一些,但是我認爲還是應該接觸一下,萬一要用到不會怎麼辦,而且它是Java EE的動態網頁實現標準組件。學習JSP過程也能更好的幫助我們理解web會話的過程,掌握web會話都有哪些我們必需知道的。如果學習Javaweb、JSP都不接觸那就相當於學習使用Springboot而一點不接觸SpringFramework一樣,豈不是稀裏糊塗。包括開發Javaweb 我們必需知道的概念諸如Web應用上下文,請求對象,響應對象,HttpSession,Cookie等都是在接觸學習JSP和Servelt中體現的,還有一些比較少見的EJB JSF JMS 以及 Java Felix等。

一些初學者不清楚這些難免會有誤區,尤其是有些較成熟的工程師也這麼說,我只能說他們很無知,只是代碼機器而已,其實對於應用開發設計也就稀裏糊塗,人云亦云罷了。

永遠沒有被淘汰的技術也沒有永遠流行萬能的技術,要看在什麼環境和場合應用,符合我需求的技術和工具就是好的,就是對的。

四、高級框架

1、Springframework 核心IOC容器、
2、Spring boot 在Spring基礎上的更全面提升效率的Spring工具
3、ORM 框架當今流行使用較多的是Mybatis 和 MP(Mybatis插件),Hibernate是可選性學習的
4、模板技術,比較成熟的Freemarker
5、Spring Cloud 微服務框架,Spring Cloud提供的全套的分佈式系統解決方案。

五、工具

maven 是構建管理項目的工具,svn 和git是團隊協作開發的項目源代碼及相關文檔資料管理工具,需要學習者初步掌握其應用。

像Tomcat,jetty ,resin,JBoss,GlassFish 等都是部署運行Java web應用的服務器。

以上就是初學者大概學習的內容,我是儘量站在初學者的角度來說的,沒有寫得特別複雜,怕初學者看不懂,沒有實質性的幫助。所以我儘量用白話把話說的簡單一些,給大家羅列出主要學習的Java知識點。

上述的學習文字資料以及視頻資料,可以關注這裏:2020年最新Java基礎精講視頻教程,學習路線,學習手冊,PDF文檔書籍教程下載

知道了Java要學習的大概內容,下面就是怎麼才能用最好的方式把Java學好,從而達到就業的水平,首選我們應該瞭解一下目前想要達到找到工作的水平,應該是怎樣的。

Java學到什麼程度才能達到就業的水平:

對於大多數初學Java的同學而言,最關心的莫過於我學要學習哪些和學到什麼程度才能找到相關的Java研發工作崗位。

不同的軟件公司對研發人員的水平要求存在一定的差異,如果從大多數中小型企業來看能接受一個入職到本企業的IT技術人員通常需要具備以下能力。

1 理解掌握Java核心面向對象的設計思想和代碼構建,能以面向對象方式設計編寫業務功能;

2 熟練掌握至少兩種數據庫的開發,如Oracle,mySql,能熟練編寫基本常用及高級的SQL語句;

3 必需掌握並熟練應用Springframework IOC容器,深入瞭解IOC及AOP概念並應用,使用MVC實現對web 請求做出處理;

4 熟練掌握Java處理數據庫的ORM框架myBatis,JDBCTemplate,對Hibernate也應有所瞭解;

5 熟練應用Spring 增強工具集合Spring boot;

6 至少熟練使用Eclipse及IDEA集成開發工具構建應用程序;

7 能夠基本掌握MVN GIT Maven 在項目中的使用;

8 前端開發必需掌握JavaScript和常用的JS框架

以上這些都是中小型軟件企業的入職基本要求,如果你能夠達到這個水平,找到一份Java工作應該是不難的。

推薦的學習方式:系統視頻教程+書籍輔助+有人指導

**視頻教程:**對於Java初學者來說,看視頻學習也是最普通的方式,視頻教程會把工作中常用的知識進行講解,而且視頻一般都是分章分節,每一個小節都只講一個知識點,學習起來較爲明確。但是視頻教程儘量要完整,最好是一整套視頻學習。

**書籍輔助:**書籍便於對理論知識的補充,以便更容易理解Java面向對象核心設計理念和代碼實踐功能。

**PS:**但是大部分人都沒有耐心看不下去書,所以大部分人都是隻看視頻教程學習。如果自己能看的下去就看,看不下去就不看。

**有人指導:**大部分人都不可能全靠自己的能力把Java學的特別好,因爲你不瞭解這個行業,也不知道怎麼學,完全零基礎自學Java想要找到工作,概率極低。所以建議如果真的想要做這行,儘量找人去帶帶你,有不懂的問題可以直接請教,少走彎路,提高效率。學習的質量決定以後工作的薪資以及起點,所以還是應該重視起來。

項目的重要性

很多Java初學者看完一些視頻,學過一段時間就說自己“會了”。這裏我需要給大家糾正一個問題,希望每個學習Java的知友都能明確學習編程的中心是什麼。 其實在我看來,學習編程從來都不存在會不會這樣的說法。學習編程不同於初中學的數學、物理、化學,記住一些公式,做同樣一種類型的習題,就證明類似的題型你會做了。 編程只講技術能力是什麼水平、什麼級別的,最能證明技術水平處在什麼階段的,就是在做項目的過程中,研發好的互聯網產品,寫代碼的質量怎麼樣,排錯能力怎麼樣,找BUG的能力怎麼樣,構思功能模塊整體佈局的能力怎麼樣等等。 做作爲初學者想要達到入門的水平,就是自己具備了一些簡單項目的編碼能力,初學者最重要的一點就是培養自己的編程思維,每一個程序都是不一樣的,你不可能都背下來,學編程也不是靠死記硬背的,你只有能去獨立編碼寫一些東西的時候,纔有就業的就會。

所以做項目的能力才能去衡量一個學習的水平處在什麼階段,而往往那些嘴上說“會了”的人,往往沒寫過多少代碼,也一個項目做不了出來,這就是紙上談兵,完全曲解了學習編程到底在學什麼,也不知道應該往哪裏去。

所以一個Java初學者在學習的整體過程中,必須要有兩個能拿得出手,能寫在簡歷上的項目作爲找工作的資本,並且要對於這兩個項目的前前後後相當瞭解,纔可能最後面試成功,一個初學者在學習完Java所有內容後,如若還達不到可以做簡單項目的水平,那麼他整個學習過程還是白費,沒有達到最終的學習目的,就是學習質量不過關。所以項目的重要性希望大家都明確,因爲有太多Java初學者不知道最後學習的目的是什麼,最後白白的浪費時間。

學習心態:

學習編程一定不是一個簡單的事情,換句話說它還是挺困難的,畢竟能出去找到工作,就是少則五六千,多則上萬的工種。這些知識都不是隨隨便便就是任何一個人都能學會的。關於這個學習心態,希望提示大家要把重心放到“學習”這件事上,因爲我發現有很多Java初學者都是像“完成任務”一樣去學習,所謂完成任務就是“我把這些視頻看完就能找到工作嗎”“我把這些都學完就能找到工作嗎”學完並不等於“學會”,這是兩種不同的概念。

你到底理沒理解?

你到底能不能應用起來?

你到底用沒用心?

你自己應該是最清楚的,我發現那些把學習當做完成任務一樣去對待的,這樣的人沒有一個是有耐心的,自己在心裏欺騙自己“把這些視頻看完我就能找到工作”,到了最後自己就逐漸明白,完全是自欺欺人,最後放棄說自己不適合學這個。其實揭開這些人的面具真相就一個:他們沒有耐心學習,也不喜歡學習,這是以前經歷造成的,是多年的習慣導致的。

所以正確的學習心態一定是把關注點放到學習這件事本身,你要學會這些知識,這些內容,這些技術,這是需要一天一天逐漸積累起來的,並不是短時間就可以達到什麼結果。

PS:如果你對於學習沒什麼耐心,沒什麼興趣,我勸你不要來學習編程,學習編程絕對是一個耐心的活,也是需要不斷學習和充電的行業。或者說已經到了信息時代,不愛學習的人,很難有耐心去學習知識的人,在信息時代是混不下去的,任何行業都是如此,不學習不進步不緊貼時代的人就一定會被淘汰。

最終自學Java能就業的人基本具備以下幾點:

1、有超強的學習耐心及進取心

2、手不懶,代碼寫的足夠多,熟能生巧

3、有一定的學習能力,善於自學善於自己解決問題

4、可以獨立寫一些簡單的項目

以上內容均由本人手寫而成,完全站在Java初學者的角度來說,就是希望能用通俗易懂的語言讓大家清晰的明白學習Java全面系統的學習內容,以及應該達到什麼程度才能拿到一份Java工作的offer,希望可以給大家帶來幫助。

如初學者們對於學習Java還有相關的一切疑惑與難題,皆可隨時私信我諮詢,本人接觸Java語言將近20年時間,敢說自己對於Java的瞭解是精通的水平,如能儘自己的綿薄之力爲大家提供一些微薄的幫助,不勝榮幸。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章