從零基礎入門 Java,到最后秋招上岸,筆者也是花費了不少的經歷,也走了很多彎路。這一篇文章會記錄下真正有用的學習路線。
為什么要強調真正有用?網上的很多所謂從入門到求職,推薦的路線都超級長,零基礎的同學,想要學完然后去找工作,幾乎不可能。看了就直接勸退了。比如有些所謂的老師,讓一個連代碼都沒敲幾行的同學,去學 Spring 源碼,這不是瞎扯嘛?
廢話不多說,直接進入正題。我說的路線是面向 Java 開發的,根據路線學完之后,可以選擇開發、測試、運維這幾個方向。
Java語言入門與進階
第一個階段,是 Java 語言的學習,包括入門和進階。推薦 B 站的韓順平老師,每個視頻看完之后,跟著敲一遍,里面會有作業,也可以做一下,熟悉 Java 的語法。里面的小項目,時間充足的可以做一下,趕時間的直接跳過。
總結這個階段需要重點掌握的:Java 基本語法、異常、Integer類、String類、StringBuffer、StringBuilder、重點的集合類型,包括:List 、ArrayList、Vector、HashMap、ArrayList、Hashtable,以及多線程、常見的設計模式。
HashMap、ArrayList、Hashtable 這三個集合的get、put操作,需要跟著視頻閱讀一下源碼。
第一遍看,如果覺得自己對這些東西都很陌生,那么遇到源碼解析的部分,可以跳過,先學會怎么用,把代碼跑起來,讓自己和代碼之間,有一種親切的感覺,而不是看到大堆的英文,然后一直浮躁。
時間充裕的,推薦看這本書:《On Java》
MySQL
第二個階段,學習一種關系型數據庫。推薦學習 MySQL,因為他是免費開源的,適合自學,其他數據庫都類似。推薦小林的《圖解mysql》來簡單入門,對于文章類型的資料,第一次看有很多不懂的地方,沒關系,反復看多幾次,有時間可以看一些大佬寫的書,就會有頓悟的感覺了。
時間充裕的,推薦看這本書:《MySQL 必知必會》
Redis
接著來學習緩存數據庫,Redis 是最常用的,也是免費開源。資料的話,B站隨便找個視頻,先學用法,可以部署在本地或者服務器,跑起來之后,試著運行一些命令,為了后面做項目,遇到 Redis 部分不至于太陌生。
SpringBoot + Mybatis
到這里,就進入框架層面的學習了。這兩個東西,在 B 站都有一堆的視頻,注意不要全看完,不然會很花時間,而且很多看了也會忘,還是先學會怎么用,遇到源碼解析部分先跳過,不然看了也是懵逼狀態。
SpringBoot 主要掌握一些注解的使用,基本的配置,依賴怎么搞的,同時會涉及到 Maven 的知識,簡單了解即可。
Mybatis 主要是用來在框架當中操作數據庫的。
實戰項目
到這里,可以自己找一個感興趣的項目,來實戰一下了。B站、github、碼云這幾個平臺都可以找,最好找一些有完整教程和完整代碼的,可以先部署好,把項目跑起來,然后再從一個個接口入手,學習為什么要這樣寫。
注意,在實戰項目這個過程中,肯定會遇到很多的報錯,不要灰心,即使跟視頻里一模一樣的代碼,也可以會報錯,因為運行的環境不一樣,可能使用的配置版本也不一樣,報錯很正常。時間充足的可以折騰一下;如果趕時間的話,還是建議找一個有完整代碼的項目,不至于一個 bug 自己搞兩三天還解決不了,這樣的消耗不能說沒意義,但是求職路上,時間就是金錢!
同時也會遇到一些中間件,比如 MQ、ElasticSearch 等等,也是推薦先學會使用,然后再學底層原理。做的時候可以自己嘗試一下使用git 來管理代碼,而不是直接存在某個文件夾,習慣提交代碼、回滾之類的基本操作,因為工作之后肯定要用到的。代碼管理平臺推薦國內的碼云(gitee)。
找工作
學完以上這些東西,就可以直接背八股文,然后找工作了,如果目標是小廠,那么上面這些就足夠了。
目標是中大廠的同學,還要補一下 JVM 、計算機網絡、操作系統。主要都是一些八股文,我自己是買了一個八股文小程序,每次面試之前,都突擊一下。不想花錢的同學,可以看小林 coding 的網站,但感覺還是我的小程序比較給力,至少命中率都挺高的。
對于八股文小程序的說明,可以看這里。
以上要學的東西,都是一定有用,而不是可能有用,時間緊迫,在有限的時間,我們要做優先級最高的事情!
最后,文中所提及的書籍,都可以在微信公眾號“徒手敲代碼”當中免費獲取,這也是我自己的公眾號,希望通過分享自己的面試求職心得,以及對常見面試題的理解,幫助更多的小伙伴找到心儀的工作。