個人大學:第一年泡在圖書館看雜七雜八的書,跟學習毫無關係。第二年瘋狂打LOL,從白銀打到黃銅(黃銅守門員)。第三年上半年,被某人點醒,學習了整套C#知識體系,某馬。下半年又決定轉行,又開始了爲期半年的自學java路程。因此個人經歷可能適用一些正在學校的學生或者準備轉行作java的。css
- java基礎,不得不提,重中之重!你須要把每一個知識點都記錄下來,經過實戰去強化,能夠藉助外來的視頻資料,可是記住視頻爲輔(通常都不是很深刻),看完對應的都必需要看一本書:"java編程思想或者java核心技術",建議都看,十分經典,能夠在你的筆記基礎之上再次提高文章質量。
- 對於有了java基礎的小夥伴來講,那麼不得不提的就是算法與數據結構以及設計模式這兩大塊內容,重中之重!依然先入門,你須要瞭解經常使用的數據結構,知道他們的使用場景以及性能分析,須要具有必定的算法能力,經常使用的排序算法等等之類,能夠去leetcode網站去找一些算法題目去練練,java語言也能夠在這個階段再一次提升,你要注意你寫的代碼的邏輯性和美觀性以及性能。設計模式不得不提,隨處可見,23種設計模式都必須瞭解並知道之間的區別以及經常使用的場景,好比抽象工廠與建造者模式的區別,經常使用的單例模式,門面模式,適配器模式等等,spring源碼能看到不少運用。headfirst設計模式(適合入門)和算法4(須要你耐着性子去看)。
- 接下來看你什麼方向了,若是是web端,那你能夠嘗試去學web開發相關的一些內容了,主要包括了Html/css/js,J2EE ,mysql相關的一些知識,對於若是之後專門要作java後端的小夥伴,前端相關知識能夠稍微的花一些時間,由於不須要好久,能夠入門。J2EE相關的你都必須掌握,servlet的運行原理等等很關鍵,mysql一樣是你必需要很是深刻的去學的內容,你必需要能熟練的寫出SQL語句。你不只僅要會寫SQL,更要配合業務寫出可重用,性能高的sql語句,建議深刻的看一下高性能mysql,你不能僅僅停留在簡單的增刪改查,若是連數據庫的設計都不會,性能優化都不瞭解,那麼真的須要再逼一下本身,讓本身懂的更多。
- 以後你必須靠着本身作出一個簡單的網站而且搜尋一些項目資料,跟着練手,至少要有兩個練習經驗,鞏固所學的知識點,在這個過程當中你能學到不少,會碰到各類各樣的bug,請記錄下來,對你有用。
- 作完了這些項目,你能夠繼續去學習一些經常使用的web框架,好比spring,springboot ,springmvc,mybatis,什麼hibernate還有structs2就不要再碰了,你必須熟練掌握這些框架的基本用法,要能明白經常使用的一些配置,有興趣的能夠進入裏面看看源碼,記着:研究源碼是你作這份工做不能停下來的事。spring重中之重,不斷的探索,不斷的去研究源碼。順便再學一下maven如何管理項目,還有git的一些pull,push ,merge,rebase等簡單用法,公司很經常使用,不要僅僅停留在svn,不少公司都是用git的。
- 海投簡歷,不要很差意思,刷足面試題,最好本身要有個比較懂的技術點。
- 若是碰到讓你培訓再工做,培訓期間再打生活費這種,儘可能別去,我有幾個朋友吃過大虧,後來都放棄了這份工做。
- 面試要自信些,展示本身的特長。其實公司不少,沒了這家還有下家。
- 應該嘗試了很多crud的滋味了吧,也接觸到了複雜業務的情景了吧,加班成了日常事了吧,是否是開始又以爲漫無目的了。可能在開發中你會接觸到新的知識,好比,springboot ,springcloud ,dubbo,zookeeper,linux,rabbitmq,redis,mongdb,kafka,elasticsearch等等,你須要學會去用好這些工具。
- 對於已經工做了的小夥伴,可能你再也不須要寫簡單的crud了,可是你可否本身搭建框架,可否寫出可複用的模塊代碼,是否能寫出優雅的代碼,若是不能,還得繼續學,必須從新拾起設計模式,要能對業務封裝,對工具類封裝,要能重構代碼,要把設計模式運用到項目中去,你須要去看《重構 改善既有代碼的設計》、《effective java》,長此以往,你能夠寫出比較出色又優雅的代碼。但這還不夠,你必需要對java虛擬機有深刻的理解,要能解決項目中遇到的內存溢出異常等等,這部份內容比較枯燥,可是你必需要啃下去,還要會模擬場景去製造異常,由於不少異常你真的不知道從何下手,只能從日誌裏去看堆棧的打印信息,去看虛擬機的日誌信息,去分析,你才能解決問題。因此必須學好,必須死磕這方面的內容。與此同時你還須要研究jdk的源碼,就跟着你一開始學java基礎的來,從集合開始,去深刻的看源碼,這時候你會發現java基礎和數據結構和設計模式有多重要。還須要去學習併發相關的知識,要對Java併發包java.concurrent有深入的認識,這些內容須要你摒棄浮躁的心,慢慢看,不能急,急你也看不出什麼效果。若是已經接觸過不少分佈式相關的技術了,分佈式緩存,分佈式消息隊列,分佈式計算,負載均衡,大數據等等,你可能都已經用過了,因此如今的你既有了基礎知識的架構支撐,也還沒到退休年齡(哈哈),建議你深刻的去研究一門技術,是很深刻,不要既搞分佈式計算,又搞分佈式緩存,又研究大數據等等,說本身懂的那麼多,花裏胡哨的,真正懂得基本都能拿下你。因此你必須開始肯定本身的研究方向,專門的去研究某個內容,讓這一塊成爲你的優點和強項,這也是爲了不大齡被淘汰的法門。你應該朝着某個領域的專家去努力。有了本身深刻研究的方向,你應該去幫助更多的人,去發表更多的優質文章,也能夠去打造屬於本身的開源項目,作出對別人,對本身有價值的東西。因此這個階段的你應該提升本身的影響力,幫助更多的人,更多想學習的人
最後但願大家能入了門,成爲本身想成爲的人,若是有須要資料或者還不清楚的,加微信號:codecarver ,或者關注下方微信公衆號
:前端
若是以爲幫到你了,點個贊謝謝。java