JAVA學習路線


對於 Java 方向,我只會把我知道的,我看過的推薦出來,希望對於 Java 方向迷茫的同學有所幫助。

Java 方向的思考


目前最常見的三大後臺開發語言,分別是 C++、Java、Go,C++ 現在學習的人比較少,偏底層而且入門較難;Go 才興起,百度、滴滴、頭條有部分架構轉型 Go;而其中 Java 方向,是現階段招聘需求最多,學的人也特別多,其應用場景特別的廣,如果作為後臺的學習方向,是沒有問題的。

對於 Java 系的公司,阿里、京東、美團都是純 Java 技術棧,百度、滴滴、頭條、網易也有 Java 崗;我認識的很多同學,本科、研究生都有,其中選擇走 Java 後臺方向的,很多都去了大廠,從普遍情況看:只能說在這個方向上,概率還是大一點;對於其他方向,前端、測試、運維、安卓等,有興趣也可以走。


很多人由 java 後臺入門,在轉型大數據、架構師方向,這個的根據自己的情況定就好了,對於自己感興趣的公司,可以到招聘官網上,看看詳細要求的技術棧有哪些,按照著準備、學習就好了。

Java 學習路線



JAVA學習路線




國內 Java 視頻,黑馬算是比較經典的了,按照路線圖學習就好。

1、

Java 基礎:基本的數據類型、流程控制語句(if、for、while 等)、面向對象的理解(對象、封裝、繼承、多態)、一些關鍵字的理解(super、this 等)、接口、抽象類、ArrayList、String、Random、Math 等等;先把 Java 語言入門,Java 相關的基礎打牢,熟練使用 Java,可以先完成一些小的 demo 作為實戰。

對於初學 Java 的讀者,可以先配置 java、javac 環境(熟悉熟悉 cmd 命令),建議先拿 .txt 文件寫代碼,一個一個字母敲,培養一下編程的感覺;剛開始接觸編程,關鍵是找到一定的感覺和興趣,在 Java 基礎階段,把每一個細節都要弄明白,對於 .txt 敲 Java 代碼,可以保持三個月左右的時間,充分的讓自己熟悉起來。

2、

Java 進階:Date、StringBuilder、List、Set、Map、HashMap、異常、自定義異常、泛型、線程、線程同步、線程池、函數式思想、文件、字節流、網絡編程相關等等;在這個階段,不僅僅是會調用 Java 的一些 API,還需要把 List、Set、Map、HashMap 等底層源碼看看,自己能掌握理解,核心代碼能手寫。

對於學習 Java,在校期間大部分都是用:eclipse 或 myeclipse,我當時初學 Java 用的就是 eclipse 寫的代碼,工欲善其事必先利其器,先把 eclipse 或 myeclipse 的使用技巧好好學學;對於工作了的,基本上都用 IntelliJ IDEA 寫的 Java 項目,IDEA 是 Java 編程語言開發的集成環境,被公認是最好的 Java 開發工具之一,我也裝的這個軟件。

3、

JavaWeb:mysql、tomcat、nginx 的安裝、配置、部署、jsoup 使用、xml 基礎、html + css + js(前端基礎、前端框架 jQuery 有時間可以學學)、maven 的常用命令,依賴管理等等;在這個階段,就需要做一些簡單的項目,項目中需要的技術點就是上面列出來的;前 3 個階段,一步一步走,基本上走到這裡,就可以做一些有意思的項目了,比如:掃雷、坦克大戰、各種管理系統都是可以一個人完成的。

其實,對於學習 Java 後臺開發的,多少的懂點前端知識,畢竟的做前後端的交互、接口協議的制定,會前端的,整個項目可以自己獨立完成,對項目的認知會非常的深;學前端的,現在多少的懂點後臺知識,才有更大的機會進入大廠,現在都是在往全棧方向發展。

4、

Java 後臺三大框架:struts2,快速掌握之後,可以搭建出一個 MVC 模型出來,hibernate,開發大型應用可以節省時間,spring,這個框架我是覺得最重要的,工作工程中使用較多(springmvc、spring-boot 這些)。

對於後臺三大框架,不能只停留在調用 API 的階段,對於底層源碼的實現機制、系統調用模塊之間的關係得梳理清楚(看時間安排,至少的熟悉一個框架的源碼)。

5、

Java 中一些核心技術點(GC、JVM、redis 等):GC(垃圾收集器),對於執行機制、內存洩漏問題、回收原理等掌握;JVM 是虛擬機,實現了跨平臺運行,是 Java 的核心,是 Java 一次編譯到處運行的本質所在,對其組成、運行原理、內存管理、垃圾回收等各種算法都得掌握。

redis 是開源,使用 C 語言編寫的 k-v 數據庫。

(1)、對 redis 的持久化怎麼理解?為什麼讀寫速率快、性能好?

(2)、什麼場景下使用 redis?以及 redis 的優點有哪些?

(3)、redis 單線程、多線程相關

(4)、redis 集群

6、

大數據:Java 後臺開發的能力具有了,大數據基礎的掌握是亮點、是加分項。

畢竟我不是學 Java 出身的,對於 Java 的理解如上,大致的學習路線梳理,核心知識點都有寫到,當然了,肯定缺失很多,需要你自己在學習的時候,查漏補缺,把相關的知識點都學到位。

Java 相關的技術書籍。我看的很少,所以就不推薦書籍了,我有一個原則:我推薦的前提是,自己真的看過、對我很有幫助,就推薦給大家,自己沒有看過的,只是聽別人說的,就不推薦了。

對於 Java 經典的書籍,太多太多了,去 Google、牛客網、知乎上面搜一下,一大堆推薦的書籍;對於 Java 相關 API 的官方文檔是個好東西,還有阿里巴巴 Java 的開發準則,對於變量的命名、開發的規範都有限制,這些最好都看看。



JAVA學習路線




牛客網搜 “java面經” 學習路線都有的,包括 Java 面經、書籍推薦、學習路線這些,要啥有啥,要學會自己搜索(主要是很多人不會用牛客網,這次教一下大家,需要什麼搜什麼,拿 java 面經舉個例子)。

不管你是選擇什麼方向,Linux C/C++、Java、Python、Go、算法、前端、測試、運維等,基礎都是核心,沒有哪個方向絕對工資高、沒有哪個方向絕對好,關鍵不在於方向,在於你自己的技術能力。

說到底,不管走啥方向,都按照三步走戰略、五大能力的提升走,這是我在大學時代實踐過的,幫助很大,是最正確的打法(尤其對於學校不好的、非科班的學生),一定要有自己的打法。

學習編程,一開始在於多接觸不同的方向、領域,多去嘗試;當你找準方向之後,再圍繞一個點,先深紮下去,在某個技術點上,形成自己的技術優勢,這就是最大的亮點,舉個例子:我面試就敢說自己熟練掌握 C 語言中指針的方方面面,熟練掌握各種數據結構、常用算法等,這些其實就是我的技術優勢。

優勢是什麼,就是你跟別人最大不同的地方,就是為啥這麼多面試者,要給你發 offer 的原因;數據結構很多人學的都是一知半解,C 語言中的指針都是不清不楚,而我真正的掌握了,我就敢說出來,一定是十分有把握的優勢在說出來,不然問住了很尷尬,有時候得具有一點冒險精神,這些都是看情況而定的。


JAVA學習路線


分享到:


相關文章: