我的大學四年到畢業工作5年的學習路線資源匯總(分享學習心得希望新人有所幫助)

在這裡插入圖片描述

小傅哥 | //bugstack.cn
沉澱、分享、成長,專註於原創專題案例,以最易學習編程的方式分享知識,讓自己和他人都能有所收穫。目前已完成的專題有;Netty4.x實戰專題案例、用Java實現JVM、基於JavaAgent的全鏈路監控、手寫RPC框架、架構設計專題案例、源碼分析、演算法學習等。

前言

一直有夥伴問小傅哥,有沒有一個Java的學習路線,最好再有一些相關的資料、書籍、影片。因為現在自己學習也不知道哪不會,看到這個學這個,看到那個學那個,也摸不到頭,還比較混亂。特別希望有一個大學到畢業的學習路線整理。

好!安排給你。

以下是我對大學四年和工作5年左右的一個學習路線整理,並將所有資料按照大一、大二…到工作五年,分別匯總到網盤裡,以便不至於將資料弄到一堆,根本沒法看。因為分享鏈接總是失效,可以通過關注公眾號:bugstack蟲洞棧,回復:學習資源下載+百度帳號,獲取加入鏈接,下載有序分類的300G資料。

大一

對於剛上大學的小夥伴來說,完全的投入學習還是有些難的。畢竟大學的生活還是多姿多彩的,很適合釋放長期以來壓迫急需釋放的心靈和懵懂的愛情。但每一步的決定都是因果,付出多少就會有多少回報。在大一可以打好一個良好的學習根基,併合理的安排自己的作息時間。娛樂、學習、健身、活動,都不會缺失。怕的就是沉迷於一項內容!

對於軟體或者電腦專業來說,學習內容還是蠻有趣的,也很容易建立成就感。而且學習到的內容還可以幫助其他系的妹子,何樂而不為呢?大一,是一個打開各項窗口和大門的過程,在技術領域也是這樣,如下圖;

1. 軟體

序號 軟體 描述
1 word 文本編輯工具,無論是你以後做畢業論文還是平時整理材料,以及將來工作中都會用到
2 excel 電子表格軟體,基本統計個表、匯總個成績,以及很多內容上都會用到
3 ppt 這個就是神器了,建功立業,全靠他了。
4 photoshop 如果你想以後可以自己做一些網站,那麼一定會需要到ps,很多地方的切圖,轉換都會用到

2. 技術

前端技術

序號 語言 描述
1 html 超文本標記語言,簡單說就是你需要寫一個網頁時候使用
2 Div+CSS 學到這個技術就可以把網頁做的更加漂亮,布局出各種結構
3 JavaScript 是一種具有函數優先的輕量級,解釋型或即時編譯型的程式語言。學成大神以後做個遊戲,搞個破壞輕而易舉。也是你後續學習更多前端技術的根基

後端技術

序號 語言 描述
1 C 語言 這可能是你第一個寫出 helloworld 的程式了,雖然有些難,但是這讓你進入了語言的世界
2 C++ C++是C語言的繼承,進一步擴充和完善了 C 語言。

把妹技術

序號 工具 描述
1 老毛桃裝系統 Windows使用老毛桃還是很方便安裝系統的,放心只要你學會這個,至少認識一堆妹子和學妹。
2 軟體卸載和安裝 很多常用的軟體妹子是裝不上的,比如開發工具、資料庫、ACCESS等等,把它們保存好,放到自己的U盤裡
3 清理灰塵 買把套裝螺絲刀和清灰貼膜工具

3. 網站

技術部落格

序號 網址 描述
1 CSDN CSDN是全球知名中文IT技術交流平台,創建於1999年,包含原創部落格、精品問答、職業培訓、技術論壇、資源下載等產品服務。
2 掘金 掘金是一個幫助開發者成長的社區, 掘金的技術文章由稀土上聚集的技術大牛編寫。
3 開源中國 OSCHINA.NET 是目前領先的中文開源技術社區。我們傳播開源的理念,推廣開源項目,為 IT 開發者提供了一個發現、使用、並交流開源技術的平台
4 部落格園 部落格園是一個面向開發者的知識分享社區。自創建以來,部落格園一直致力並專註於為開發者打造一個純凈的技術交流社區
5 思否 SegmentFault 思否是中國領先的新一代開發者社區和專業的技術媒體。我們為中文開發者提供純粹、高質的技術交流平台以及最前沿的技術行業動態。
6 菜鳥教程 提供了編程的基礎技術教程, 介紹了HTML、CSS、Javascript、Python,Java,Ruby,C,PHP , MySQL等各種程式語言的基礎知識。
7 W3CSchool w3cschool啟用中文品牌名–編程獅,是一個專業的W3C前端開發及編程入門學習平台,提供包括HTML,CSS,Javascript,jQuery,C,PHP,Java,Python,Sql,Mysql等程式語言。

影片資源

序號 網址 描述
1 慕課網 慕課網(imooc)是it技能學習平台。慕課網(imooc)提供了豐富的移動端開發、php開發、web前端、android開發以及html5等影片教程資源公開課。
2 嗶哩嗶哩{技術類影片} B站的技術影片內容很豐富,也免費。但除了技術影片以為還有很多其他影片!

演算法網站

序號 網址 描述
1 力扣 力扣提供海量技術面試資源,幫助你高效提升編程技能,輕鬆拿下世界 IT 名企 Dream Offer。
2 牛客網 專註於程式設計師的學習和成長的專業平台,集筆面試系統、課程教育、社群交流、招聘內推於一體。

4. 書籍

序號 名稱
1 C Primer plus 第五版
2 c語言深度剖析
3 譚浩強經典C++教程
4 The_C_Programming_Language(C程式設計語言)
5 C專家編程
6 數據結構與演算法分析
7 零基礎學HTML+CSS [張熠編著][第三版]
8 Javascript從入門到精通

5. 影片

序號 名稱
1 C語言教學影片
2 C語言影片教程-譚浩強版-小甲魚主講
3 html+CSS教程
4 機器學習基礎班數學、演算法、微積分、概率論、統計機器學習概率與演算法、深度學習班數學模型

6. 項目

序號 名稱 技能
1 開發一款Html+Js的計算器 html、div+css、js
2 模仿靜態的影片網站 html、div+css、js
3 模仿仿照搜狐、京東等首頁 html、div+css、js
4 開發一款本地音樂播放器 使用C語言或者C++
5 影片播放軟體 使用C語言或者C++

大二

剛上大學是打開一扇新的大門,左走、右走不停的摸索,有人沉澱知識,有人混跡網吧。滿級的大號是否能幹過人家一年下來的學習資本。不要讓每一次時間都流逝的無影無蹤,留下點痕迹。

大二開始你可能不會在去參加更多的社團,更多的活動,而是安心下來去鑽研更多的知識。有時候學校教給你的很多都是領進門,剩下的修行還是靠自己。並且到了大二學習的內容也會更多,技術難度也會相應的增加。不過當你一個個的突破這些難度後,後面的問題也就隨之煎蛋了。同時上一年打開了很多技術網站,技術部落格。從裡面不斷的搜索答案,尋找結果。那麼從這一年開始,也要自己總結寫下一些東西。

1. 軟體

序號 軟體 描述
1 Git 可能剛接觸有點暈,甚至不知道這是幹啥的。這是一款可以用於協同開發的軟體,用於下載和上傳程式碼到公有倉庫。程式碼倉庫;//github.com/
2 XMind 思維導圖軟體,可以畫出樹形結構的思路,本文的截圖就是使用 xmind 繪製
3 Visio 繪製各種流程圖,包括常用的網路圖、組織結構圖、工程設計等。
4 Axure Axure RP是一款專業的快速原型設計工具,可以畫出一個網頁並生成成 HTML
5 IntelliJ IDEA、Eclipse、MyEclipse 這三款都可以進行程式碼開發,推薦使用IDEA

2. 技術

前端技術

序號 語言 描述
1 jquery jQuery是一個快速、簡潔的JavaScript框架,是繼Prototype之後又一個優秀的JavaScript程式碼庫(或JavaScript框架)。
2 vue.js 是一套用於構建用戶介面的漸進式JavaScript框架。與其它大型框架不同的是,Vue 被設計為可以自底向上逐層應用。

後端技術

序號 語言 描述
1 Java Java是一門面向對象程式語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。
2 Spring Spring框架是由於軟體開發的複雜性而創建的。Spring使用的是基本的JavaBean來完成以前只可能由EJB完成的事情。
3 SpringMvc Spring MVC屬於SpringFrameWork的後續產品,已經融合在Spring Web Flow裡面。Spring 框架提供了構建 Web 應用程式的全功能 MVC 模組。
4 Ibatis/Mybatis MyBatis 是支援訂製化 SQL、存儲過程以及高級映射的優秀的持久層框架。MyBatis 避免了幾乎所有的 JDBC 程式碼和手動設置參數以及獲取結果集
5 Redis Redis 教程 REmote DIctionary Server(Redis) 是一個由Salvatore Sanfilippo寫的key-value存儲系統。
6 Maven Maven項目對象模型(POM),可以通過一小段描述資訊來管理項目的構建,報告和文檔的項目管理工具軟體。

資料庫

序號 語言 描述
1 Mysql MySQL 是最流行的關係型資料庫管理系統,在 WEB 應用方面 MySQL 是最好的 RDBMS(Relational Database Management System:關係資料庫管理系統)應用軟體之一。mysql 入門教程
2 Oracle Oracle Database,又名Oracle RDBMS,或簡稱Oracle。是甲骨文公司的一款關係資料庫管理系統。

Linux系統

序號 系統 描述
1 Ubuntu Ubuntu是一個以桌面應用為主的Linux作業系統。自己的機器也可以嘗試安裝學習。
2 CentOS CentOS(Community Enterprise Operating System,中文意思是社區企業作業系統)是Linux發行版之一。

伺服器

序號 系統 描述
1 apache tomcat Apache是普通伺服器,本身只支援html即普通網頁。不過可以通過插件支援php,還可以與Tomcat連通(單向Apache連接Tomcat,就是說通過Apache可以訪問Tomcat資源。反之不然)。

3. 網站

序號 網址 描述
1 Github GitHub是一個面向開源及私有軟體項目的託管平台,因為只支援git 作為唯一的版本庫格式進行託管,故名GitHub。
2 Gitee 碼雲(gitee.com)是 OSCHINA.NET 推出的程式碼託管平台,支援 Git 和 SVN,提供免費的私有倉庫託管。
3 問答社區 Stack Overflow是一個與程式相關的IT技術問答網站。
4 udemy Udemy 是一家開放式在線教育網站 (MOOC)
5 禪道 禪道 項目管理軟體 是國產的開源項目管理軟體,專註研發項目管理,內置需求管理、任務管理、bug管理、缺陷管理、用例管理等
6 Youtube(影片學習) 影片學習網站,國外的
7 國外知乎 在Quora能看一些在知乎不能聊的話題,Quora上的外國人對我們的評論還是比較理性的。
8 InfoQ infoq是一個實踐驅動的社區資訊站點,致力於促進軟體開發領域知識與創新的傳播。
9 工具 OSCHINA.NET在線工具,ostools為開發設計人員提供在線工具,提供jsbin在線 CSS、JS 調試,在線 Java API文檔等。

4. 書籍

序號 名稱
1 入門java黃金資料
2 編程之美.完整版
3 Thinking in Java(第四版 )
4 MySQL必知必會(文字版)
5 REDIS 入門指南
6 Java EE互聯網輕量級框架整合開發 SSM框架
7 HTTP權威指南
8 git使用說明以及規範V1.0
9 Redis 深度歷險
10 編程之美

5. 影片

序號 名稱
1 HTML5遊戲-坦克大戰-內含電子書
2 Java多執行緒詳解
3 Java語言基礎教程-Java NIO流篇
4 mysql
5 Spring、Struts、MVC、Hibernate、mybatis
6 畢向東JAVA基礎教程全套
7 達內SSM影片教程
8 馬士兵_JavaSE影片
9 尚矽谷jQuery
10 玩轉Git影片教程
11 資訊技術提高班springmvc25講
12 最新Java基礎入門與進階全套影片
13 最新版Intellij IDEA高清影片教程

6. 項目

序號 名稱 技能
1 開發一款部落格系統 Spring、SpringMVC、Mybaits、Maven、Mysql、Git
2 開發一款圖書館裡系統 Spring、SpringMVC、Mybaits、Maven、Mysql、Git
3 在線商城系統 Spring、SpringMVC、Mybaits、Maven、Mysql、Git
4 在線影片資源系統 Spring、SpringMVC、Mybaits、Maven、Mysql、Git
5 開發一款聊天軟體 Java Socket、Swing、JavaFx
6 考試系統 Java Socket、Swing、JavaFx

大三

如果說大一、大二是打基礎,那麼大三是需要將一些技能棧的廣度和已有知識的深度增強的一個過程,同時這一年的學習也基本會影響到將來找工作難易。付出多少終歸是有回報的,只要你能在上學階段就已經可以鍛煉成一個正式工作1年左右的能力,那麼找工作就像刷offer一樣容易,面霸!

通過以往的學習和你自己對知識棧的積累,以及在這條路上認識到的同好,基本你也是一個小大牛了,可以獨立解決一些問題和對一些知識有了自己的學習方法論。接下來這一年可以繼續拓展自己的技能!

1. 軟體

序號 軟體 描述
1 虛擬機(VirtualBox、Virtual Machine) 虛擬機的安裝和使用,非常有利於你後續的對於一些軟體的學習。
2 Postman 是一款介面測試工具,簡單易用。也是你後續工作中會用到的軟體。
3 JMeter JMeter是Apache組織開發的基於Java的壓力測試工具。有了他你就可以知道自己的網站、部落格性能了。

2. 技術

後端技術

序號 語言 描述
1 深入Java 多執行緒、JVMAPI、部分源碼原理、HashMap、Tree鏈表、數組、網路通訊、動態代理和反射、鎖、IO等等
2 了解RPC框架 Dubbo、gRPC
3 了解消息中間件 ActiveMQ、RocketMQ、kafka
4 了解分散式思想 分散式系統(distributed system)是建立在網路之上的軟體系統。正是因為軟體的特性,所以分散式系統具有高度的內聚性和透明性。
5 框架方面 學會使用Maven搭建SSM類項目、了解領域驅動設計
6 了解雲伺服器 百度雲、阿里、騰訊對學生用戶都可以廉價購買學習使用
7 SpringBoot Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。
8 SpringCloud Spring Cloud集成相關優質項目推薦 這些項目是Spring Cloud官方項目或是對Spring Cloud進行了有益的補充以及基於Spring Cloud最佳實踐。

3. 網站

序號 網址 描述
1 HackerRank 演算法題刷題網站
2 矢量圖 素材圖片下載,用於網站開發中使用
3 公式可視化 一般看一些公式比較時間複雜度
4 資料庫內核月報 阿里的資料庫內核月報,很高品質
5 蟲洞技術棧 個人的技術高階學習技術部落格

4. 書籍

序號 名稱
1 Effective Java中文版(第2版)
2 Java GC Tuning
3 Java核心技術 卷1
4 Java核心技術 卷II
5 Java特種兵(上冊)
6 Java虛擬機規範
7 Maven3實戰
8 Servlet3.1規範中文版
9 Spring技術內幕:深入解析Spring架構與設計原理(第2版)
10 《Java核心技術 卷II 高級特性 (原書第9版)》
11 《碼出高效:Java開發手冊》
12 【JavaScript高級程式設計(第3版)】中文 高清 完整 詳細書籤版
13 鳥哥的Linux私房菜 基礎學習篇(第三版)
14 深入分析Java Web技術內幕
15 深入理解Java虛擬機:JVM高級特性與最佳實踐(最新第二版)

5. 影片

序號 名稱
1 JAVA應用JVM原理及參數調優深入講解-11節
2 SpringCloud
3 傳智PodcastRabbitMQ影片教程
4 第一套:JVM內核—原理、診斷與優化
5 第二套:深入理解Java虛擬機(jvm性能調優+記憶體模型+虛擬機原理)
6 第三套:深入Java虛擬機-類載入器專題
7 煉數成金Kafka影片教程
8 尚學堂RocketMQ影片教程
9 圖靈學院-高並發下分散式鎖實踐
10 dubbo入門基礎與集群搭建

6. 項目

序號 名稱 技能
1 結合所有技術搭建一個自己個部落格 域名、備案、虛擬機、https、github等等
2 完成一個中型項目,用於以後畢業設計和找工作 SpringBoot、SpringCloud、Mysql、Git、Maven、Xmind、Visio等

大四

到了這一年基本會分為;找實習工作、考研、考公務員,對於找實習工作的按照你的知識積累並不會很難,可以在實習僧以及校招等方面投遞簡歷,對於簡歷的編寫一定要參考下,不要胡亂的寫,每一次投遞都是你的機會。

整理好的知識技能棧,梳理下自己的能力範圍,準備好面試的儲備。在這個過程你可能會很忙,不在是能安心的坐下來學習,可能還得處理一下感情問題。但終歸前程路漫漫,這不是終點!

1. 互聯網

序號 公司
1 騰訊
2 阿里
3 華為
4 頭條
5 百度
6 京東
7 美團
8 小米
9 網易
10 新浪

北上廣深也都分布著的大廠互聯網也不少,按需選擇,這裡就不一一列舉了!

2. 工作

簡歷投遞網站

序號 網站
1 Boss直聘
2 拉鉤網
3 領英
4 脈脈
5 簡歷模版
  1. 快速融入團隊
  2. 完成分配任務
  3. 學習涉及的技術棧和框架

3. 畢業設計

  1. 認真完成選題
  2. 整理項目設計的技術棧和相關資料
  3. 搭建Demo工程,逐步解決各項問題點
  4. 輸出整體工程與文檔

4. 書籍

序號 名稱
1 Effective Java中文版(第2版)
2 1000道 互聯網Java工程師面試題
3 [程式碼大全2中文版(完整清晰版)]
4 [深入理解Java.7.核心技術與最佳實踐].成富.掃描版
5 Head First Java 中文高清版
6 HotSpot實戰
7 Java_NIO_細節也精彩
8 Java.Concurrency.in.Practice
9 JAVA解惑
10 Java虛擬機規範(Java SE 7)
11 try和finally里的return
12 白帽子講Web安全
13 從Paxos到Zookeeper 分散式一致性原理與實踐
14 深入理解Java虛擬機++JVM高級特性與最佳實踐
15 寫給大忙人看的Java SE 8

5. 影片

序號 名稱
1 分散式支付系統
2 國家電力項目實戰(共九天)_Java_SSH

工作1-3年

正式工作往往跟在校學習並不一定,在學校很多時候都是在寫 DEMO,並沒有一個整體全局的考慮。但是隨著工作後你會跟著業務、運行、產品功能的不斷的迭代,開發完成各種各樣的需求。但是這 1-3年也基本是一個個人技能爆發增強的過程。這樣讓你把之前學到的知識和現有項目中的鍛煉,不斷的完善個人的技術棧。

但也不忘記在這個階段除了工作內容需要,也得繼續擴展自己的知識技能。否則會陷入一種工具人的僵局,慢慢變成螺絲釘。要想不斷的突破自我,一定是不斷的學習和接受新的理念和新的挑戰。

1. 技術

序號 語言 描述
1 Dubbo 一款RPC框架,很多互聯網都在用,也有的公司是自己的RPC框架。但是原理基本一樣。
2 MQ 消息型中間件,用於系統解耦、消峰等
3 Zookeeper 分散式的,開放源碼的分散式應用程式協調服務
4 ElasticSearch 基於Lucene的搜索伺服器
5 Eureka Eureka是Netflix開發的服務發現框架,本身是一個基於REST的服務,主要用於定位運行在AWS域中的中間層服務
6 nginx Nginx (engine x) 是一個高性能的HTTP和反向代理web伺服器,同時也提供了IMAP/POP3/SMTP服務。
7 熔斷、降級、限流 分散式微服務中在高並發下保護的一些策略
8 分散式任務 把定時任務通過集群的方式進行管理調度,並採用分散式部署,保證系統的高可用,提高了容錯。
9 Jenkins 工程搭建和部署上線
10 MyCat 分庫分表工具和原理

2. 工作

  1. 責任擔當,在框架內合理完成需求開發
  2. 不止於此,對每一個需求不只是開發完成,還需要對上下文清楚的了解
  3. 沉澱成長,要學會對知識的積累形成自己的技術棧的一條完整鏈路

3. 書籍

序號 名稱
1 阿里巴巴開發手冊
2 程式碼整潔之道
3 程式設計師修鍊之道
4 Java編程思想
5 深入理解Java虛擬機
6 Java並發編程實戰
7 設計模式
8 Head First 設計模式(中文版)
9 200個聰明人的邏輯思維遊戲.最具挑戰和智慧的邏輯思維謎題

4. 影片

序號 名稱
1 老男孩Docker生產實踐
2 慕課網Docker+k8s微服務容器化開發實踐
3 Zookeeper分散式系統開發實戰
4 nginx影片教程(3套)

工作3-5年

3到5年的程式猿與三年前不太相同,以往大多數時候只是實現需求,完成任務。所能關注的資訊基本也是一個點一個點,但是技術棧鍛煉的還不錯。那麼可能會出現一種情況就是為什麼技術不錯卻又不能全局的駕馭系統。那麼這個階段就是提升整體系統把控的能力,可以寫出更加容易擴展和更好的健壯性的程式碼。

每一個階段的成長都不太容易,需要一些項目給予也需要給自己一些加壓。不只是對技術棧的更深層的理解,也要從中吸取更多的營養。學會更加良好的抽象化和完整的建設系統的能力。

1. 源碼能力

序號 名稱
1 Spring源碼
2 Mybaits源碼
3 Schedule 源碼
4 Dubbo源碼
5 執行緒池源碼
6 JVM虛擬機原理,用Java實現JVM
7 JDK 部分核心常用組件源碼,JUC、HashMap

2. 擴展技術

序號 名稱
1 Netty
2 javaagent
3 asm
4 javassist
5 分散式跟蹤
6 Docker
7 熔斷、降級、限流

3. 演算法能力

序號 名稱
1 動態規劃
2 數據結構
3 演算法思維
4 做一些演算法題提升

4. 場景總結

序號 名稱
1 各種場景的下的技術方案
2 個人技術棧的完整程度

5. 書籍

序號 名稱
1 架構整潔之道
2 docker開發指南
3 實現領域驅動設計實踐
4 分散式系統原理與范型
5 Redis設計與實現
6 google軟體測試之道
7 Netty5.0架構剖析和源碼解讀
8 重構改善既有程式碼的設計
9 多執行緒並發編程在Netty中的應用分析-批註版

6. 影片

序號 名稱
1 架構師體系影片
2 馬哥docker+k8s影片教程
3 netty精講(含電子書)

總結

  1. 以上的內容總結基本也和我大學到現在的學習路線差不多,因為有些是新技術也同樣補充了下。可能在這些內容里有一些是細節點是缺少的,但是也沒關係。因為隨著你的學習,會在你學習到的旅途中看到更多的風景,收穫更多的果實。
  2. 程式設計師這個行業就是一個不斷學習,不斷成長的方向。如果你擔心35歲以後怎麼樣,那麼一定你是恐慌之前沒有投入太多的經歷去沉澱自己。所有的恐慌也不過是一點點懶惰的積累,最終的一個點爆發了而已。
  3. 願努力拚搏的你,都能在前進的道路上有所收穫!