1. 程式人生 > >一個六年程式設計師的歲月沉浮,成長之路!

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

開篇:

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

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

但其實在生存壓力面前 這都不算什麼, 有哪一行是輕鬆的呢?起碼程式設計師技術到位了,工資還是比較可觀的。

以下是1-6年Java程式設計師該掌握的知識,希望對於各位有幫助。

一:分散式架構

高併發,高可用,海量資料,沒有分散式的架構知識肯定是玩不轉的所以分散式的知識需要掌握:

分散式架構思維

大型網際網路架構演進過程

架構師應具備的分散式知識

主流分散式架構設計詳解

架構開發基礎

多執行緒開發

高效能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改進

相容性問題

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及案例實戰

構建Swagger外掛實現API

管理及介面測試體系

Spring Cloud

Zuul路由閘道器詳解原始碼探析

Ribbon客戶端負載均衡原理

Feign宣告式服務呼叫方式

Hustnx服務熔斷及服務降級

Eureka註冊中心構件

Config配置服務中心

Svn、git快速整合

Sleuth呼叫鏈路跟蹤

BUS訊息匯流排技術

Docker虛擬化技術

介紹、安裝與使用

Compose部署指令碼

Service服務編排

Redis分散式叢集部署

Docker file構建

通過maven外掛打包映象

部署及執行應用程式

Kubernetes編配

構建Mysql叢集實戰

高可用SpringCloud微服務與docker整合實現動態擴容實戰

Dubbo應用及原始碼解讀

Dubbo簡介及初入門

Dubbo管理中心及監控系統安裝部署

領域驅動之如何正確劃分Dubbo分散式服務

通訊協議TCP、UDP、HTTP分析

Dubbo負載均衡機制探析

如何完成Dubbo服務只訂閱及只註冊模式

架構師必備技術之如何設計Dubbo服務介面

Dubbo設計原理及原始碼分析

Dubbo容器機制及高擴充套件性分析

Dubbo服務於Docker虛擬化技術整合實戰

七:併發程式設計

從架構設計,到應用層調優,再深入瞭解底層原理,紮實的Java基本功才能讓自己變為掃地神僧:

記憶體模型

併發模式

執行緒模型

鎖細節

最後附送學習資料及路線圖:

架構交流qq群:  698581634  即可免費領取 Spring,MyBatis,Netty原始碼分析,高併發、高效能、分散式、微服務架構的原理,JVM效能優化等....Java架構學習資料,以及架構思維導圖。