一個六年程式設計師的歲月沉浮,成長之路

我搞JAVA也有6年了, 因為我比較貪玩,上進心不那麼強, 總是逼不得已為了高薪跳槽才去學習, 所以也沒混成什麼大牛, 但好在現在也已經成家立業, 小日子過的還算滋潤, 起碼頂得住一月近萬元的吃喝拉撒玩各種貸款信用卡 不為金錢過於發愁了。 我特別感謝當初掘金遇見的那位大神, 雖然每個月也就聊那麼幾句, 但是他總能在我不知道該學啥, 該怎麼走的時候, 給我方向, 毫不誇張的說,我現在的衣食無憂, 技術馬馬虎虎, 都是拜他所賜。 所以 我也想分享一些自己的成長過程 以及技術路線 希望一些迷茫的新人,或者想轉行但是躊躇不前的老哥老弟們 能夠得到一些建議吧

其實這行的工資待遇和前景,比起一些風吹日晒的苦逼行業 還是要好不少的, 很多人說程式員累, 加班 , 掉頭髮

但其實在生存壓力面前 這都不算什麼, 有哪一行是輕鬆的呢?起碼程式設計師技術到位了,工資還是比較可觀的。
以下是1-5年Java程式設計師該掌握的知識,希望對於各位有幫助。
一:分散式架構
高併發,高可用,海量資料,沒有分散式的架構知識肯定是玩不轉的所以分散式的知識需要掌握:
分散式架構思維
大型網際網路架構演進過程
架構師應具備的分散式知識
主流分散式架構設計詳解
架構開發基礎
多執行緒開發
高效能IO/">NIO框架
架構核心服務層技術
服務的前世今生
深入理解通訊協議
基於分散式RPC解決方案
Dubbo全解析
架構關鍵基礎設施
分散式環境指揮官Zookeeper
分散式訊息通訊非同步與MQ
分散式快取
資料儲存SQL&NoSQL
高冰分流技術Nginx
分散式架構實戰
分散式解決方案
Session跨域共享實戰
分散式事務解決方案實戰
分散式鎖解決方案實戰
分散式單點登入實戰SSO
分散式排程任務系統
分散式配置中心

分散式架構
二:設計模式
學習Java技術體系,常見的設計模式是編碼必備,掌握了它你會變得更強。

設計模式
三:應用框架原始碼解讀
深入學習,Java體系,原始碼解讀必不可少的。
SpringIOC
SpringFramework體系結構
原始碼分析
BeanFactory原始碼分析
BeanDefinition原始碼分析
Bean生命週期
依賴實現
Spring Aop
AOP原始碼分析
Transaction事務分析
Spring cache框架原始碼分析
Spring MVC
MVC簡介與設計思想
SpringMVC組成
原始碼解讀DispatchServlet

Spring5,做應用必不可少的最新框架
容器增強
函數語言程式設計
WebFlux模式介紹
Kotkin介紹
Testing改進
相容性問題

Spring5
MyBatis,玩資料庫必不可少的元件
MyBatis組成
核心原始碼分析
手寫MyBatis框架

MyBatis
四:效能優化
任何脫離細節的ppt架構師都是耍流氓,向上能運籌帷幄,向下能解決一線效能問題,Java技術體系,需要了解:
效能指標體系
效能基準
什麼是效能優化
衡量標準
JVM調優
Jvm虛擬機器記憶體剖析
垃圾收集器
實戰調優案例與解決方法
Jvm執行時區
Java程式效能優化
優雅的建立物件
注意物件的通用方法
類的設計陷阱
泛型需要注意的問題
Java方法的那些坑
程式設計的通用規則
Tomcat
執行緒模型分析
生產環境配置及調優
執行機制及框架
MYSQL
探析BTree機制
執行計劃深入分析
Mysql索引優化詳解
慢查詢分析與SQL優化

五:團隊協作開發
工欲善其事必先利其器,不管是小白,還是資深開發,玩Java技術體系,選擇好的工具,提升開發效率和團隊協作效率,是必不可少的:
Maven,專案管理
Maven重要指令
私服-nexus
Mavenue流行外掛實戰
手寫自己的外掛
架構師如何理解scope、Lifecyle、Phase、Goal
Jenkins
Jenkins伺服器部署
Jenkins 持續整合
Sonar,程式碼質量管理
靜態程式碼查詢,程式碼更健壯
程式碼走查
Git,版本管理
Git基本工作原理
Git常用操作及問題處理

團隊協作開發
六:微服務架構
企業有大小,平臺有限制,甚至對開放的方式方案都出現了獨立的方式,Facebook每個模組的功能從設計到開發再到維護,由後端到前端再到客戶端都是通過一程式設計師來進行的,這些就是所謂的全棧工程師,那麼java開發中,我們伺服器也有其自身的獨到性;那麼如何將龐大的後臺系統分部成為多個功能獨立,部署獨立,維護獨立,鬆耦合的獨立服務呢?從而減少企業的溝通成本和維護成本呢?毫無疑問,這就是微服務。微服務架構是架構升級的必由之路,Java技術體系,和微服務相關的技術有哪些呢?
SpringBoot
與微服務的區別與聯絡
快速構建SpringBoot工程
SpringBoot核心元件剖析
快速整合MyBatis實戰
快速整合Dubbo及案例實戰
快速整合Redis及案例實戰
管理及介面測試體系
Spring Cloud
Zuul路由閘道器詳解原始碼探析
Ribbon客戶端負載均衡原理
Feign宣告式服務呼叫方式
Hustnx服務熔斷及服務降級
Eureka註冊中心構件
Config配置服務中心
Svn、git快速整合
Sleuth呼叫鏈路跟蹤
BUS訊息匯流排技術
Docker虛擬化技術
介紹、安裝與使用
Compose部署指令碼
Service服務編排
Redis分散式叢集部署
Docker file構建
通過maven外掛打包映象
部署及執行應用程式
構建Mysql叢集實戰
高可用SpringCloud微服務與docker整合實現動態擴容實戰
Dubbo應用及原始碼解讀
Dubbo簡介及初入門
Dubbo管理中心及監控系統安裝部署
領域驅動之如何正確劃分Dubbo分散式服務
Dubbo負載均衡機制探析
如何完成Dubbo服務只訂閱及只註冊模式
架構師必備技術之如何設計Dubbo服務介面
Dubbo設計原理及原始碼分析
Dubbo容器機制及高擴充套件性分析
Dubbo服務於Docker虛擬化技術整合實戰

微服務架構
七:併發程式設計
從架構設計,到應用層調優,再深入瞭解底層原理,紮實的Java基本功才能讓自己變為掃地神僧:
記憶體模型
併發模式
執行緒模型
鎖細節

併發程式設計