毕业两年程序员Java学习路线
前言
作為從20年因疫情而畢業(yè),經(jīng)歷過校招(小公司)和社招,工作已經(jīng)兩年左右的過來人,將結合自己的經(jīng)驗和體會,分享一些Java學習相關的基本路線和解答Java入門到進階的常見困惑,希望可以幫助到即將入行或者初入行的Java小包擁有一個良好的職業(yè)規(guī)劃。
學習之路
自學或者培訓
一般情況下,自學或者培訓都是看同學的自制能力和經(jīng)濟能力。
有些同學因為經(jīng)濟能力的限制,可能會選擇在線的技術網(wǎng)站課程,從中看視頻或者看書自學,有些同學因為自制力并且經(jīng)濟能力比較好,可能會選擇線下的培訓機構來進行學習。如何選擇更適合自己的,也要根據(jù)自己的情況來定。
一般情況下科班的同學選擇自學或者在線技術網(wǎng)站為主,因為科班出身的同學在學校中已經(jīng)或多或少的了解過Java知識,甚至有些同學已經(jīng)具備獨立寫代碼的能力,所有科班選擇機會也比較多。相對比科班來講,轉行的同學可能會傾向于培訓,因為轉行的同學可能經(jīng)濟條件上比可辦的好很多,比較向往互聯(lián)網(wǎng)行業(yè)的高薪資待遇,但是一般公司不太喜歡培訓出來的同學,因為培訓出來的同學往往是6個月學習完科班同學的3年甚至是4年的課程,無論是知識的深度還是知識的廣度都相對比科班同學都比較欠缺,同時培訓的同學希望能夠盡快找到工作,可能以面試突擊為主,甚至有些培訓機構會過度包裝。
如果是科班同學在校期間,盡量接觸一些有項目的老師或者跟學校合作的項目,可以獲得已經(jīng)項目實踐的機會,從而增加自己校招進入大公司的機會。
對比自己的學習之路
回顧自己的學習Java之路,我主要分為三個階段校園階段、校招階段、工作階段
校園階段
校園階段其實就是入門階段,主要通過學習學校的課程,了解基本的知識,然后通過課下時間圖書館的學習或者在線網(wǎng)站的培訓視頻進行復習和鞏固,從而到達到掌握。
大一階段,我僅僅接觸過C和C++,對于C和C++的掌握程度僅限于完成課后作業(yè)。當時對于C和C++的了解就知道名次,到現(xiàn)在為止,我已經(jīng)忘記了其中的知識點。
大二階段,學習了Java和JavaWeb,接觸到了HTML、CSS、JS等這些前端知識,從大二開始我才開始真正的基礎Java相關的知識,那時候,一般情況會從圖書館中借閱《Java核心技術卷》和《Java編程思想》這兩本書,這兩本到現(xiàn)在我還會不時的翻閱,還會有新的收獲,建議購買當前時間最新版本,避免老版本的技術遺留問題。
大三和大四階段,就逐步接觸Spring、SpringMVC和Mybaits這些Java框架知識以及MySQL和Oracle數(shù)據(jù)等,這一階段,主要是以培訓技術視頻為止,因為讀書太困惑,跟視頻進行進行學習,可以更容易上手,了解思路,最好是課后自己在敲一遍相關代碼。同時也會學一些其他知識,比如如何使用IDEA、如何調試bug。然后就是自己找一些培訓項目demo進行知識鞏固。
校招階段
校招階段,我跟平常的同學一樣,不知道面試階段重點是什么,也不知道重點看哪些書,一般都會從網(wǎng)上找面經(jīng)這些資料,非常的零散,剛開始我準備也是不是很充分,也錯過了很多公司的機會,面試之前刷一下leetCode中《劍指offer》基本上可以應付大部分的算法題,同時刷一些Java八股文,就可以輕松的應對基礎知識,對于中小型公司,這些基本上完全夠用,如果對自己的算法和Java基礎比較自信可以面試一下大廠,體驗一下。當然,面試完之后總結和反思面試中的問題,哪些回答的不夠好,哪些回答不出來,這可能就是知識薄弱部分,可以針對性的補充學習一下。然后經(jīng)過多次面試后,可以面一些自己中意的公司,從而更容易的拿到offer。
工作階段
剛開始工作階段,那段時間也很迷茫,遇到問題問同事問多了,怕同事覺得自己能力不行,問少了可能很多項目上的東西都不了解或者無法解決bug,不知道該如何進階。經(jīng)過多方面的溝通和詢問,大概分為兩個方面,一方面是要把Java基礎部分牢固,同時學習一些項目中進階的知識,比如SpringCloud、Rabbit、Redis、Nginx等繼續(xù)學習。另一方面就是不斷的在項目積累經(jīng)驗,完成功能需求。比如更加高級的調試技巧、如何排查問題、遇到新需求如何分解等功能。這一部分主要是從項目中成長,從校園走向社會的第一步。
其實,剛進公司,就是公司開始的安排啥做啥,產(chǎn)品怎么設計,我們就怎么做,然后到開始提出一些建議,學習產(chǎn)品思維,學會“以終為始”,根據(jù)目的來反推設計。從完成任務為主,到考慮如何提高性能,考慮如何提高代碼的可讀性和可測試性。開始知識非常零散,通過一方面鞏固專業(yè)基礎,一方面不斷“歸納和演繹”,現(xiàn)在知識更加系統(tǒng)化。開始從純開發(fā)的視角聊問題,開始轉變?yōu)橛卯a(chǎn)品能聽得懂的話和產(chǎn)品溝通,用測試能聽得懂的話和測試溝通。學知識從記憶為主,會用為主,變?yōu)樗伎技夹g是為了解決什么問題,該技術的優(yōu)缺點,作者為什么要這么設計,如果沒有這個技術該怎么辦等。學會采用“先猜想,后驗證”的思維方式來學習,發(fā)現(xiàn)效果好很多。從純輸入為主,開始輸出自己的學習方法論,通過博客輸出自己的經(jīng)驗,通過技術群和一些優(yōu)秀的朋友相互交流學習。現(xiàn)在一直在不斷進階前行的路上。
由于本人個人能力有限,下面的學習路線以及方法推薦一定還有很多欠缺的地方。本文比較適合剛入門或者想打好 Java 基礎的朋友,比較基礎。
Java入門·到精通戳我https://jq.qq.com/?_wv=1027&k=YkUaK90n
學習路線
Java入門階段
Java入門最重要的就是掌握Java基礎,比如Java各種基礎語法、各種集合的基本使用、IO流的操作、多線程等多方面的知識進行學習。
一般情況下學習 《Java 核心技術卷 1/2》 和 《Head First Java》 這兩本書就可以,這兩本書作為Java入門書籍還是很好的,特別是 《Java 核心技術卷 1/2》 知識點更全民安,但是也更加繁瑣,看起來很枯燥。《Head First Java》 翻譯成中文就是 《Java 編程思想》 ,這本書比較難理解,屬于Java進階內(nèi)容,是值得重復觀看的一本書。
對比于書籍,剛畢業(yè)或者待入門的大學生可能更加適合邊看視頻邊看書學習,不管是尚硅谷、黑馬等培訓機構的時候,都挺適合基礎入門,講解的知識點都通俗易懂。對于 Java8 新特性的東西,我建議你基礎學好之后可以看一下,暫時看不太明白也沒關系,后面抽時間再回過頭來看。
JavaWeb階段
經(jīng)過Java入門階段之后,就可以進入JavaWeb階段,JavaWeb階段有很多知識點,比如HTMl基本使用、CSS基本使用、Git版本控制、Web服務器的基本使用以及Linux命令等,通常情況下每個知識點都有很多閱讀的書籍。 至于Git和Linux都可以在對應的官網(wǎng)上找到相關教程。
數(shù)據(jù)庫階段
數(shù)據(jù)階段主要以MySQL為主,通常講解了MySQL的歷史淵源、基本概念、基本使用、部分高級應用等。主要推薦的書籍有 《SQL 基礎教程(第 2 版)》 (入門級)、 《高性能 MySQL : 第 3 版》 (進階)、 《MySQL 必知必會》。
SSM項目常用框架階段
常用框架一般是 Spring、SpringMVC、Mybatis、等框架的使用,特別是 Spring 原理 基本是面試必問,雖然源碼基本小公司不問,但是大廠面試必備,可以有必要學習一下。
Spring 真的很重要! 一定要搞懂 AOP 和 IOC 這兩個概念。Spring 中 bean 的作用域與生命周期、SpringMVC 工作原理詳解等等知識點都是非常重要的,一定要搞懂。
掌握了最基本的框架技術,那么應付一般公司的使用是沒有問題的。
除了SSM之外還需要掌握SpringBoot技術,目前主流使用SpringBoot,但是SpringBoot還是以SPring為基礎,可以通過JavaGuide開源的Spring boot(SpringBoot 核心知識點總結。 基于 Spring Boot 2.19+)。
其他應用框架
- 緩存框架(Redis)
- 消息隊列(Kafka、Rabbit)
- 負載均衡(Nginx)
- 服務保障(Zookeeper、Nacos)
- 注冊中心(Nacos、GateWay)
- 搜索引擎(ElasticSearch)
- 分庫分表(MyCat)
這些技術都比較常用,同時也可以幫我們更加完善我們的學習系統(tǒng)。
其他進階知識
- UML
- 設計模式
- 操作系統(tǒng)
- 數(shù)據(jù)結構
- 計算機網(wǎng)絡
- 算法
- JVM
- 架構
- 表達和溝通
這些進階知識在工作之余進行學習,可以有效的幫助和擴展知識面。
總結
以上就是Java入門到進階的基本學習路線。
如果是剛入門不久或者剛工作不久,下面一些建議大家可以參考下:
- 學習的時候電腦上備著一份API手冊**,隨時查閱。
- 充分利用搜索引擎:谷歌、百度、必應等。
- 嚴格遵守代碼規(guī)范,養(yǎng)成良好的編程習慣。可參考《阿里巴巴Java編程規(guī)范》
- 學習技術看英文原版的官方文檔和官方GitHub源碼和示例。
- 多實踐出真知,如果看學習視頻一定至少自己敲一遍。
- 關注一些非常好的技術類公眾號(如:慕課網(wǎng)、阿里技術、架構師之路等)了解最新進展,了解別人的經(jīng)歷和經(jīng)驗。
- 可以加入一些靠譜的Java學習群和一些比自己更優(yōu)秀的人交流。
- 維護一個技術博客,把自己技術上遇到的難題和解決方案,自己遇到的一些坑分享上去,一方面加深自己的印象,一方面幫助其他人。
- 最經(jīng)典的圖書一定要看。如《Java核心技術》、《深入理解Java虛擬機:JVM高級特性與最佳實踐》、《Java并發(fā)編程的藝術》、《Java多線程編程核心技術》、《EffectiveJava》、《深入剖析Tomcat》等。
- 遇到的問題一定要記錄下來,可以記錄到印象筆記、有道云筆記、為知筆記等,以后再遇到類似問題很容易找到之前的解決方案。也可以通過CSDN等平臺采用博客的形式記錄。
- 編程的時候感覺哪個類或者哪個方法感興趣,可以直接去查看源碼一探究竟。要有精益求精的精神。如果可以優(yōu)化盡量去優(yōu)化代碼。
- 制定學習計劃和目標,多久掌握某某框架,一年之后、兩年之后要達到什么程度等等。
- 多去一些知名互聯(lián)網(wǎng)公司校招網(wǎng)站查查自己崗位所需的技能,有針對性的復習;
- 可以去“牛客網(wǎng)”去查看一些面經(jīng),針對題目有目的的學習或者復習。心態(tài)上非常重要,不要被“覺得挺難”嚇倒。
- 學習初期很多困惑沒關系,不要以為有困惑就代表自己學的不好,先學會用,然后到后面會自然而然的懂了,不懂的話再去思考。
- 學習新技術直接去github上搜入門demo或者官方example,很快就可以上手。
- 學習總結排查錯誤的能力,比如看錯誤堆棧信息,比如打日志,比如本地或者遠程調試,比如分析源碼等。強烈建議新手遇到問題一定要先思考,再分析調試,再網(wǎng)上搜答案,否則很難快速成長。
。
?
總結
以上是生活随笔為你收集整理的毕业两年程序员Java学习路线的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最新emoji表情代码大全_2019七夕
- 下一篇: java美元兑换,(Java实现) 美元