Java程式設計師想拿百萬年薪?你只需要這樣做!

java架構大牛發表於2019-04-11

想要做到年薪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面試大綱,其中大部分都是面試過程中的面試題,可以對照這查漏補缺,當然了,這裡所列的肯定不可能覆蓋全部方式。

軟實力

軟實力在面試過程中也尤為重要(有時候真的要更重要),主要是指和麵試官的溝通,對一個問題的闡述方式和表達方式,邏輯思維能力等。

面試過程全程微笑,專案描述需要嚴謹的表述,個人的優缺點基本要做到隨口而出..等這些其實就是軟實力的體現。


相關文章