假如有那麼殘酷的一天,我不小心喝錯了一瓶藥,一下子抹掉了我這十多年的程式設計經驗,把我變成了一隻小白。我想自學 Java,並且想要找到一份工作,我預計需要 6 個月的時間,前提條件是每天都處於高效率的學習狀態當中,並且每天的學習時間至少在 12 個小時以上。
即便是這樣,我敢肯定,找到的工作肯定不會太好,勉強能夠維持生活吧,畢竟是零基礎入門啊。
如果想更進一步,真正成為一名不可或缺的高階 Java 工程師,時間需要更久,兩年、三年、五年,直到禿的那天。
想著想著,我就覺得有必要為那一天做點準備,以備不時之需。
Java 是一門計算機程式語言,學它的話,連臺電腦都沒有,學個屁。我有個親戚家的孩子想學程式設計,就只看書,家裡連臺電腦都不配,說什麼「先打好理論基礎,再實操」,我真的是有點醉。
有了電腦,還得聯網,自學的過程中肯定會遇到很多問題,遇到問題的時候先問搜尋引擎,推薦谷歌和必應;實在沒有答案的話,也可以來找我,申請加入技術交流群,問問群裡面的大佬們。
既然要學 Java,JDK 是必須要先安裝的,否則 Java 程式就沒法編譯和執行。
Maven 也是需要提前安裝和設定的,因為後面進階的話,需要一些練手專案,它們通常都需要 Maven 來載入第三方類庫。
使用整合式開發環境 IntelliJ IDEA 來敲 Java 程式碼吧,比 Eclipse 更流行。千萬不要使用記事本編寫原始碼了,對於小白來說,時間是寶貴的,記事本只適合大牛們用來裝逼,不適合小白用來程式設計(入門),純浪費時間。
有了 IDEA,後面學習原始碼的話,就會方便很多,包括反編譯位元組碼。
如果英語功底不太好的話,建議安裝這兩款 IDEA 外掛:chinese 和 translation。
如果注重編碼規範的話,建議安裝這兩款 IDEA 外掛:Alibaba 和 SonarLint。
為什麼還需要 GitHub 倉庫或者碼雲倉庫呢?它們可以用來線上雲同步原始碼,防止版本丟失。學到最後,還可以形成一套自己的工具庫,輪子就有了,上班的時候工作效率就會高很多,能直接用的程式碼再也不用重新寫了。
1)基本資料型別
2)操作符
3)流程控制語句
4)包
5)main 方法詳解
String[] args
)6)陣列
7)註釋
8)字串
1)物件導向
2)常用工具類
3)集合框架
4)反射機制
5)例外處理
6)註解
7)IO 流
8)序列化
9)泛型
10)單元測試
11)編碼方式
12)並行程式設計
13)Java 8 新特性
14)原始碼閱讀
1)JVM
2)效能優化
3)設計模式
4)資料結構和演演算法
5)作業系統
6)網路安全
7)資料庫
8)巨量資料
9)伺服器
10)框架
11)訊息佇列
12)容器
需要 Java 書單的話,我在 GitHub 上發現了一個寶藏專案,光看了一下目錄,就有點吸引我。
需要的小夥伴可以按需自取,地址如下所示:
技術是沒有終點的,也是學不完的,最重要的是活著、不禿。
零基礎入門的時候看書還是看視訊,我覺得成年人,何必做選擇題呢,兩個都要。喜歡看書就看書,喜歡看視訊就看視訊。
最重要的是在自學的過程中,一定不要眼高手低,要實戰,把學到的技術投入到專案當中,解決問題,之後進一步錘鍊自己的技術。
開源的專案我推薦 GitHub 上的 mall 和 vhr,前者是電商系統,後者是微人事,都用的最前言的技術,並且檔案很全面,不怕暈頭轉向。
自學最怕的就是缺乏自驅力,一定要自律,杜絕「三天打魚兩天曬網」,到最後白忙活一場。
高度自律的同時,要保持耐心,不拋棄不放棄,切勿自怨自艾,每天給自己一點點鼓勵,學習的勁頭就會很足,不容易犯困。
技術學到手後,找工作的時候一定要好好準備一份簡歷,不要無頭蒼蠅一樣去海投簡歷,容易「竹籃打水一場空」。可以參考下面的連結,好好的準備一下簡歷,畢竟是找工作的敲門磚。
拿到面試邀請後,在面試的過程中一定要大大方方,盡力把自己學到的知識舒適地表達出來,不要因為是自學就不夠自信,給面試官一個好的印象,面試成功的機率就會大很多,加油吧,騷年!