4-6年經驗左右、優秀的 Java 程式設計師應該具備的技能

sfbrzkh發表於2020-09-03

4-6年經驗左右、優秀的 Java 程式設計師應該具備的技能有哪些,按“專業技能”和“專案”兩塊,包括但不限於以下內容

專業節能方面

  • 基礎:JDK 常用類的原理、原始碼、使用場景。
  • 設計模式:常用幾種的原理、使用場景,單例、動態代理、模板、責任鏈等。
  • 資料結構:陣列、連結串列、棧、佇列、樹。
  • 網路:TCP、HTTP、HTTPS、負載均衡演算法。
  • 框架:Spring IoC 原理、Spring AOP 原理和使用、Spring 常用的擴充套件點、MyBatis 的核心流程。
  • 中介軟體:常用中介軟體的核心原理與最佳實踐,並對其中的 1 到 2 個有深入的學習,Redis、Kafka(RocketMQ、RabbitMQ)、Dubbo、Zookeeper。
  • 資料庫(MySQL):索引原理、隔離級別、鎖機制、分庫分表、慢 SQL 定位及優化、線上問題解決。
  • Netty:NIO 原理、核心元件、I/O 多路複用(epoll)、零拷貝。
  • JVM:執行時資料區、垃圾回收演算法、垃圾回收器(CMS、G1)、常用配置引數、線上問題定位及解決。
  • 穩定性保障:隔離、限流、熔斷、降級等。
  • Linux:基本命令的使用、快速定位和排查問題。
  • 分散式理論:CAP、BASE、2PC、3PC、TCC。

專案方面

  • 能獨立完成一個複雜模組的需求分析、方案設計和最終落地實現。
  • 能不斷思考,尋找更優的設計和解決方案,積極優化慢 SQL、慢服務。
  • 具備排查問題的能力,遇到線上問題能及時定位和修復上線,例如:資料庫死鎖、伺服器當機、伺服器 Full GC 頻繁等。
  • 具備難題攻關的能力,能不斷解決專案遇到的挑戰,能給予初級工程師技術上的指導。
  • 初步具備帶領團隊(1-3人左右)的能力,能合理分配需求,做好進度把控、風險評估、Code Review。

相關文章