想要做到年薪100萬,首先你自己必須是高水平的程式設計師!
能年薪100萬的程式設計師至少自身有以下特徵:
工作年限長,經驗豐富
- 他們的共同特點是:N 年以上的工作經驗,在大公司當過螺絲釘,也在創業公司做過技術 leader,有過一兩段不算成功的創業經歷。
- 這樣的程式設計師無論是去 BAT 還是去創業公司,都能拿到 100 萬年薪以上的 offer。
- 雖然前面說技術水平不是決定薪水的唯一因素,但如果技術牛到一定程度,高薪 offer 也是
- 另外,光你自己厲害,技術牛也不行
程式設計師,在中國又被戲稱為“程式猿”、“碼農”,是一群有鮮明標籤特色的人物。很多文章在描述程式設計師的時候,常常會給其畫一幅肖像:一副黑框眼鏡,身上格子襯衫,背後一個黑色雙肩包,耳邊戴著一副耳機。這就是典型的IT男,或者程式設計師在大眾心目中的形象。對Java的技術,為何同樣是程式設計師有些猿的工資那麼高,他們的技術棧是什麼樣的呢、或者說他們又擁有什麼樣幾技術能力?
一、Spring、MyBits原始碼
- IOC容器設計原理及高階特性
- AOP設計原理
- FactoryBean與BeanFactory
- Spring事務處理機制
- 基於SpringJDBC手寫ORM框架
- SpringMVC九大元件
- 手寫實現SpringMVC框架
- SpringMVC與Struts2對比分析
- Spring5新特性
- MyBatis關聯查詢、巢狀查詢
- 快取使用場景及選擇策略
- Spring整合下的SqlSession與Mapper
- MyBatis的事務
- 分析MyBatis的動態代理的真正實現
- 手寫實現Mini版的MyBatis
二、分散式
1、分散式架構原理
- 如何把應用從單機擴充套件到分散式
- CDN加速靜態檔案訪問
- 系統監控、容災、儲存動態擴容
- 架構設計及業務驅動劃分
- CAP、Base理論以及其應用
2、分散式架構策略
- 分散式架構網路通訊原理剖析
- 通訊協議中的序列化和反序列化
- 基於框架的RPC技術Webservice/RMI/Hessian
- 深入分析Zookeeper在disconf配置中心的應用
- 基於Zookeeper實現分散式伺服器動態上下線感知
- 深入分析Zookeeper Zab協議及選舉機制原始碼解讀
- Dubbo管理中心及監控平臺安裝部署
- 基於Dubbo的分散式系統架構實戰
- Dubbo容錯機制及高擴充套件性分析
2、分散式中介軟體
- 分散式訊息通訊ActiveMQ/Kafka/RabbitMQ
- Redis主從複製原理及無磁碟複製分析
- Redis中AOF和RDB持久化策略的原理
- MongoDB企業級叢集解決方案
- MongoDB資料分片、轉存及恢復策略
- 基於OpenResty部署應用層Nginx以及Nginx+lua實踐
- Nginx反向代理伺服器及負載均衡服務配置實戰
- 基於Netty實現高效能IM聊天
- 基於Netty實現Dubbo多協議通訊支援
- Netty無鎖化序列設計及高併發處理機制
3、分散式架構整合經驗
- 分散式全域性ID生成方案
- Session跨域共享及企業級單點登入解決方案實戰
- 分散式事務解決方案實戰
- 高併發下的服務降級、限流實戰
- 基於分散式架構下分散式鎖的解決方案實戰
- 分散式架構下實現分散式定時排程
三、微服務架構
1、Spring Cloud
*Eureka註冊中心
- Ribbon整合REST實現負載均衡
- Fegion宣告式服務呼叫
- Hystrix服務熔斷降級方式
- Zuul實現微服務閘道器
- Config分散式統一配置中心
- Sleuth呼叫鏈路跟蹤
- BUS訊息匯流排
- 基於Hystrix實現介面降級實戰
- 整合Spring Cloud實現統一整合方案
2、Spring Boot
- Spring Boot熱部署實戰
- Spring Boot核心元件Starter、Actuator、AutoConfiguration、Cli
- Spring Boot整合Mybatis實現多資料來源路由實戰
- Spring Boot整合Dubbo 實戰
- Spring Boot整合Redis快取實戰
- Spring Boot整合Swagger2構建API管理及測試體系
- Spring Boot實現多環境配置動態解析
3、Docker虛擬化
- Docker的映象、倉庫、容器
- Docker File構建LNMP環境部署個人部落格Wordpress
- Docker Compose構建LNMP環境部署個人部落格Wordpress
- Docker網路組成、路由互聯、Openvswitch
- 基於Swarn構建Docker叢集實戰
- Kubernetes
四、效能優化
1、JVM調優
- 各垃圾回收器使用場景(ThroughputCMS)
- JVM記憶體模型 JMM
- JVM執行時資料區
- 各垃圾回收器使用場景(ThroughputCMS)
- 理解GC日誌,從日誌看端倪
- MAT分析dump檔案
2、TomCat調優
- Tomcat的執行機制及框架
- Tomcat執行緒模型
- Tomcat系統引數認識及調優
- Tomcat基準測試
3、MySql調優
- MySQL底層B+ Tree機制
- SQL執行計劃
- MySQL索引優化
- SQL語句優化
五、提升團隊協作效率的開發工具
1、Maven
- 生成可執行jar、理解Scope生成最精確的jar
- 類衝突、包依賴 NoClassDefFoundError問題定位及解決
- Maven生成Archetype
- Maven流行外掛實戰、手寫自己的外掛
2、Jenkins
- 搭建Jenkins自動部署環境
- Jenkins整合maven、git實現自動部署
- testpreproduction 多環境釋出
- Jenkins多環境配置、許可權管理及外掛使用
3、Sonar
- 使用Sonar進行程式碼質量管理
- 關於工具FindBugs/PMD的運用
- SonarQube程式碼質量管理平臺安裝及使用
- 使用Jenkins與Sonar整合對程式碼進行持續檢測
- Idea與Sonar集合的使用
4、Git
- Git以及Git的工作原理
- Git常用命令Best practise
- Git衝突怎麼引起的,如何解決
- Git flow規範團隊git使用規程
案例分享
想要獲得年薪100W的薪資大概的知識體系已經列出來了,其實這麼多的知識不僅僅是掌握那麼簡單,還要熟悉這些知識的底層實現原理,更加要知其然,知其所以然。
硬實力
這裡說的硬實力,也就是技術上的真實積累。
怎麼來體現你的技術實力?我總的分為:技術深度和技術廣度這兩方面。技術廣度通俗的講,就是你熟悉該技術點的使用以及基本原理。一般面試官在面試首輪會問很多技術點,來考核你是否能正確使用。
準備不充分的面試,完全是浪費時間,更是對自己的不負責(如果title很高,當我沒說)。
今天給大家分享下在跳槽時需要準備的Java面試大綱,其中大部分都是面試過程中的面試題,可以對照這查漏補缺,當然了,這裡所列的肯定不可能覆蓋全部方式。
軟實力
軟實力在面試過程中也尤為重要(有時候真的要更重要),主要是指和麵試官的溝通,對一個問題的闡述方式和表達方式,邏輯思維能力等。
面試過程全程微笑,專案描述需要嚴謹的表述,個人的優缺點基本要做到隨口而出..等這些其實就是軟實力的體現。