https://www.pdai.tech/
0. 前言
0.1 维度与层次
Java技术雷达图从能力角度分为以下三个维度:
针对这三个维度中众多的技术点,有偏重地推荐为两个层次:
- 关键知识技能:表格中标蓝加粗字体为关键的知识技能与技术点;
- 扩展知识技能:未标蓝加粗的内容为推荐的扩展内容,在掌握了关键知识技能的基础上,根据业务的不同可以有选择性地挑选学习。
0.2 雷达图的应用建议
专家团针对每个知识技能给出了掌握程度的评分标准:
- 知道(1分):能说清楚是什么,解决什么问题,了解技术对应的社区的使用情况和学习路径。
- 会用(2分):实现过对应技术的"QuickStart",知道技术的适用场景,能照猫画虎实现需求。
- 熟练(3分):能够在业务场景中用最佳实践解决问题,形成自己的方法论和套路。
- 精通(4分):熟悉技术背后原理,研究过源码,能够解决疑难问题(故障、性能优化以及扩展)。
- 贯通(5分):对该技术的不足比较深入的洞见,能够提出创新性的解决方案,拓展该技术。
使用雷达图的个人或团队可以在初期对自身能力做一次评估,并选择合适的技术方向学习。之后在合适的时间点再次评估,审视是否有进步。
辅助评分的参考工具:excel工具
+
知识技能雷达excel工具示意图:
1. 架构设计与重构
2. 编码相关
知识技能 | 技术点 | 学习参考 |
---|---|---|
# Java 语言 | - 集合框架与操: List Set Map Collections | Oracle Java官方文档 |
- Java 常用特性: Lambdas Streams API Interface default & static methods Java Time API Functional Interfaces Collections Framework Enhancements Concurrency API Improvements | Java Lambda 《JAVA并发编程实践》 | |
- JVM相关: Java虚拟机(Hotspot实现) 类加载机制 内存模型 GC 调优 jstack jmap jconsole | 《深入理解Java虚拟机:JVM高级特性与最佳实践》 The Java Virtual Machine Specification Java SE 8 Edition | |
- 通用及编码规范 | 《华为Java语言通用编程规范》 | |
# 算法与数据结构 | - 基本数据结构: 数组、链表、栈、队列、二叉树、图 | 慕课网课程 |
- 基本算法: 查找、排序、分治递归、动态规划、贪婪、一致性哈希 | 慕课网课程 | |
# Java 框架/工具 | - Spring: IOC/AOP Spring annotation Spring security XML/YML configuration Spring boot Spring data Spring cloud Spring integration | 《spring揭秘》 《spring in action》(第4,5版) |
- 常用工具类: Guava Apache common lang Bean Utils Collections/IO jackson gson | guava commons-lang jackson | |
- ORM: JPA Mybatis Hibernate | spring-data-jpa | |
- Apache Netty | netty官网 | |
# 数据持久/缓存 | - GaussDB 100 | 《数据库事务处理的艺术:事务管理与并发控制》 |
- 数据库锁机制: 表锁、行锁、MVCC | 《MySQL技术内幕:InnoDB存储引擎》 | |
- NoSQL | ||
- Redis | 《Redis设计与实现》 | |
- 分库分表/Sharding | 《PostgreSQL技术内幕:查询优化深度探索》 《高性能MySQL》 | |
# 开发者测试 | - 测试分层: Unit testing Integration testing System testing Operational acceptance testing | |
- 开发者测试框架: JUint + PowerMock + JAssert + jsonassert | junit5 junit4 | |
# Debuging | - 单步调试: debuger breakpoints threading condition breakpoint watch | |
- 远程调试 | ||
# IDE/TOOLS | - IDE: IDEA Pycharm | jetbrains官网 |
- Maven | ||
- Gradle | ||
脚本语言(Python/lua/shell) | python | python官网 |
lua | lua官网 |
3. IT基础
知识技能 | 技术点 | 学习参考 |
---|---|---|
# Linux工具链 | - Shell编程 | 《unix power tools》 |
- perf 工具 | ||
- IO、网络工具 | ||
- 基础命令、SSH、SNMP、SFTP等 | ||
# 版本管理(VCS) | - Git、Gitlab、Github | Git官网 Git实践练习 |
- svn | ||
# 安全基础 | - SSL/TLS/HTTPS | Transport_Layer_Security websecurity-what-is-ssl-tls-https |
- 加密算法、哈希、证书、秘钥、数字签名 | ||
# 数据库 | - SQL:索引、主键索引、组合索引、存储过程、Execution plan | |
- ACID | ||
- NoSQL、KV | ||
- 数据库性能调优 | ||
网络知识 | - ip/tcp/udp/http | 《TCP/IP详解》 |
- 网络工具 | 《wireshark网络分析就这么简单》 《wireshark网络分析的艺术》 tcpdump | |
操作系统(API) | - Euler | 《Linux系统编程》(Robert Love) |
- Centos/Redhat | ||
- Windows | 《Windows核心编程》(Jeffrey Richter) | |
CI/构建 | Jenkins | jenkins官网 |
Maven | maven官网 | |
Gradle | gradle官网 | |
CloudDragon | ||
配置管理 | ansible | ansible官网 |
puppet | puppet官网 | |
chef | ||
容器化 | Docker | docker官网 |
Kubernetes | kubernetes官网 |