我 10 年前在一家外企做 Java 實習生的時候,就差不多這個水準((月薪 3k-5k),10 多年過去了,可以稍微把目标放得大一點,比如說 8k-10k,我覺得也不是不可能!
在一線城市找一份靠譜的實習工作我覺得還是不難的,怕就怕有些學弟學妹盲目樂觀,以為能找一份不錯的實習工作,結果碰一鼻子灰,最後心灰意冷,可能就轉行了。或者盲目悲觀,大四了呀,學曆不咋滴呀,整天恍恍惚惚的,無心學習,最後也轉行了。
注意注意,隻要現在立刻馬上開始按照我說的學習路線開始,就一點不晚。
第一,Intellij IDEA、Git 這兩樣工具一定要會用!
第二,Java 基礎一定要紮實!我這有一份 GitHub 上星标 115k+ 的 Java 教程,裡面涵蓋了 Java 基礎的所有知識點,包括 Java 文法、Java 集合架構、Java IO、Java 并發程式設計和 Java 虛拟機,基本上從 Java 這門程式設計語言的層面來說,知識點都涵蓋了,關鍵是内容不多,隻講重點。
太贊了,GitHub 上标星 115k+ 的 Java 教程!
如果時間安排得比較得當的話,讀完這份教程大概也就 2 周的時間。就能檢測出自己到底處于一個啥水準了。如果連這上面的知識點都沒掌握的話,找一份 3k-5k 的 Java 實習工作我覺得難。如果掌握了,那麼恭喜你,有很大的希望上岸!
第三,Spring 的系列架構一定要會用,尤其是 Spring Boot 是重點!
第四,基本的 SQL 要會寫,尤其是 MySQL,基本的增删改查是一定要會的。
接下來,我來詳細地說一下,該怎麼學習這些知識點。
一、工具篇
如果你既想寫出品質杠杠的 Java 代碼,又想追求開發效率,用 Intellij IDEA 準沒錯!可以去 B 站上看一下這個 Intellij IDEA 的教學視訊。
https://www.bilibili.com/video/BV1PW411X75p像 CheckStyle、Alibaba Java 代碼規範、SonarLint 這三個插件是一定要裝的,可以極大程度上保證代碼品質。Intellij IDEA 的插件越來越豐富了,除了我上面提到的這些,還有呢:
Grep Console:控制台輸出處理
Rainbow Brackets:彩虹 括号
Save Actions:優化儲存操作
SequenceDiagram:一鍵生成時序圖
Maven Helper:分析Maven項目的相關依賴
EasyCode:一鍵幫你生成所需代碼
Lombok:幫你簡化代碼
CodeGlance:代碼微型地圖
Java Stream Debugger:Java8 Stream調試器
Git Commit Template:使用模闆建立commit資訊
大家都知道,版本控制系統非常重要!!!!!!即便你隻是一個人在編碼,它也可以幫助你建立項目的快照、記錄每個改動、建立不同的分支等等。如果你參與的是多人協作,它更是一個無價之寶,你不僅可以看到别人對代碼的修改,還可以同時解決由于并行開發帶來的沖突。版本控制系統有很多,其中最突出的代表就是 Git。想要把 GitHub 學好的話,可以到 GitHub 倉庫下載下傳這份 Pro Git 中文版。
二、Java 基礎
我把 Java 基礎部分真正要學的内容列一下。
01、Java 簡介
Java hello world
Java JVM JRE JDK
Java 變量和字面值
Java 資料類型
Java 操作符
Java 輸入輸出
Java 表達式 & 語句 & 代碼塊
Java 注釋
02、Java 流程控制
Java if else
Java switch 語句
Java for 循環
Java while 循環
Java break 語句
Java continue 語句
03、Java 數組
Java 數組
多元數組
Java 數組複制
04、Java 面向對象(1)
Java 類和對象
Java 方法
Java 方法重載
Java 構造方法
Java 字元串
Java 通路權限
Java this 關鍵字
Java final 關鍵字
Java 遞歸
Java instanceof 操作符
05、Java 面向對象(2)
Java 繼承
Java 方法重寫
Java super 關鍵字
抽象類 & 抽象方法
Java 接口
Java 多态
Java 封裝
06、Java 面向對象(3)
嵌套&内部類
Java static 關鍵字
Java 匿名内部類
Java 單例
Java 枚舉類
Java 枚舉構造方法
Java 枚舉字元串
Java 反射
07、Java 異常處理
Java 異常簡介
Java 異常處理
Java try catch
Java throw 和 throws
Java 捕獲多個異常
Java try-with-resources
Java 注解
Java 注解類型
Java 日志
Java 斷言
08、Java 集合
Java 集合架構
Java 集合接口
Java List 接口
Java ArrayList
Java Vector
Java Stack
09、Java 隊列
Java 隊列接口
Java 優先級隊列
Java 雙端隊列接口
Java LinkedList
Java 數組隊列
Java 阻塞隊列接口
Java ArrayBlockingQueue
Java LinkedBlockingQueue
10、Java Map
Java Map 接口
Java HashMap
Java LinkedHashMap
Java WeakHashMap
Java EnumMap
Java SortedMap 接口
Java NavigableMap 接口
Java TreeMap
Java ConcurrentMap 接口
Java ConcurrentHashMap
11、Java Set
Java Set 接口
Java HashSet
Java EnumSet
Java LinkedHashSet
Java SortedSet 接口
Java NavigableSet 接口
Java TreeSet
Java 集合算法
Java 疊代器接口
Java ListIterator 接口
12、Java 位元組流
Java IO 流簡介
Java InputStream
Java OutputStream
Java FileInputStream
Java FileOutputStream
Java ByteArrayInputStream
Java ByteArrayOutputStream
Java ObjectInputStream
Java ObjectOutputStream
Java BufferedInputStream
Java BufferedOutputStream
Java PrintStream
13、Java 字元流
Java Reader
Java Writer
Java InputStreamReader
Java OutputStreamWriter
Java FileReader
Java FileWriter
Java BufferedReader
Java BufferedWriter
Java StringWriter
Java PrintWriter
14、Java 并發程式設計
程序與線
多線程的入門類和接口
線程組和線程優先級
線程的狀态及主要轉化方法
線程間的通信
重排序和 happens-before
volatile
synchronized 與鎖
CAS 與原子操作
AQS
計劃任務
Stream 并行計算原理
Frok/Join
通信工具類
CopyOnWrite
并發集合容器
鎖接口和類
阻塞隊列
線程池原理
15、Java 虛拟機
Java 記憶體結構
堆
棧
垃圾回收
JVM 記憶體區域
Java 虛拟機棧
class 檔案
位元組碼指令
JVM 參數調優
Java 對象模型
HotSpot
類加載機制
編譯和反編譯
反編譯工具(javap)
JIT
虛拟機性能監控和故障處理工具(jps、jstack、jmap、jstat、jconsole、javap)
怎麼系統化的學習呢?推薦一套視訊,兩本書,兩本小冊。
視訊推薦浙江大學翁恺教授的《Java 程式設計》,可以在 B 站上看。
https://www.bilibili.com/video/BV1DJ411B7cG書的話,推薦《Java 核心技術卷 1》和《深入了解 Java 虛拟機》。
小冊的話,推薦我前面提到的 GitHub 上星标 115k+ 的 Java 教程和幾位阿裡朋友重寫的《Java 并發程式設計》。
三、架構篇
要找一份 Java 實習工作的話,Spring 的系列架構是必須得掌握的,尤其是 Spring Boot。因為如果你會這玩意的話,基本上是做不了項目的。主要涉及的内容有:
Spring
Spring MVC
MyBatis
Spring Boot
關于 SSM(Spring+Spring MVC+MyBatis)的學習,可以看下面這個視訊。
https://www.bilibili.com/video/BV1NX4y1G7wx關于 Spring Boot 的學習,可以看純潔的微笑的部落格,通路量在千萬級别以上,影響了無數的初學者,我個人強烈推薦。
學了 SSM + Spring Boot,就可以上手實戰項目了,像 GitHub 上的 vhr 和 mall,都是不錯的練手項目,強烈推薦。
四、資料庫
對了,Java 實習工作,不外乎增删改查嘛,不要抱太多幻想,基本上任何一個人的實習經曆,都是從 CRUD 開始的,我也不例外的。
剛去外企那會,上司布置的任務就是,寫 SQL,直接寫哦,把上司想要查詢的資料給查詢出來,我印象很深刻,統計一天内、一個星期内、一個月内、半年内使用者的消費資料。
要學習 SQL 和 MySQL 的話,推薦《SQL 必知必會》和《MySQL 必知必會》,兩本很薄的書,很快就能刷完。
視訊的話,也給推薦兩個。
SQL:一個老外的視訊課(中字版啦),内容制作得非常棒,是以完全不用擔心聽不懂。
https://www.bilibili.com/video/BV1UE41147KCMySQL:一個女老師講的,彈幕很精彩。
https://www.bilibili.com/video/BV12b411K7Zu這一套組合拳打下來,找一份實習工作我認為是完全沒問題了。這也是一個 Java 後端程式員必須掌握的技能點,缺一不可!
哦,差點忘了!
找工作之前一定記得刷一刷面試題,背一背八股文,要乖哦,千萬不要抗拒!千萬不要裸面,真的!其實私下裡,很多學弟學妹們都向我哭訴過,說大廠的面試題太難了,有的題出的真的是萬萬沒想到啊(狗頭)。甚至有些中小廠的面試題都很難對答如流(他們的面試官可能看過我這份面試題庫,哈哈哈),有了這份面試題庫後,大家再也不用慌了!