原则:没有时间表的学习计划只是愿望清单。 3-6 个月突破技术深度 → 6-12 个月培养架构能力 → 1 年+ 建立技术影响力。


一、短期突破(3-6 个月):夯实高级工程师基础

月份 1-2:Java 深度 + JVM

周 1-2:HashMap 源码
  □ 手写简化版 HashMap(put/get/resize)
  □ ConcurrentHashMap JDK7 vs JDK8 写对比文档
  □ 理解 hash 扰动函数 (h ^ h>>>16) 的设计意图

周 3-4:JVM 内存模型 + GC
  □ 画出 JVM 运行时数据区图
  □ 写 GC 日志分析脚本(统计 YGC/FGC/STW)
  □ 搭建本地环境观察 GC 过程(jstat 实时监控)

周 5-6:多线程并发
  □ 手写 AQS 简化版(CLH 队列 + state + CAS)
  □ 线程池源码阅读(execute/addWorker/getTask)
  □ 写 JUC 工具使用 Demo(CountDownLatch/CyclicBarrier/Semaphore)

周 7-8:综合实战
  □ 写 1 篇 JVM 调优总结博客(配 GC 日志截图)
  □ 用 Arthas 排查 1 个模拟的线上问题(CPU 飙升/OOM/死锁)

月份 3-4:Spring 全家桶

周 1-2:Spring IoC
  □ 阅读 refresh() 方法 12 个步骤源码
  □ 画出 Bean 生命周期时序图
  □ 循环依赖三级缓存方案写技术笔记

周 3-4:Spring Boot + MyBatis
  □ 阅读自动配置源码(AutoConfigurationImportSelector)
  □ 手写一个 Starter(包含自动配置 + properties)
  □ MyBatis Mapper 代理生成原理写笔记

周 5-6:Spring Cloud Alibaba
  □ 搭建 Nacos + Gateway + Feign + Sentinel 完整项目
  □ 实现一个完整的微服务调用链路(用户服务 → 订单服务 → 商品服务)
  □ Sentinel 限流 + 熔断降级规则配置

周 7-8:项目实战
  □ 将苍穹外卖或其他项目升级为微服务架构
  □ 至少 3 个微服务 + 网关 + 注册中心 + 配置中心

月份 5-6:Redis + MySQL + MQ

周 1-2:MySQL 深度
  □ 学会 EXPLAIN 每个字段的含义和优化方向
  □ 搭建慢查询监控(long_query_time=0.1s)
  □ 写索引优化案例(至少优化过 3 条慢 SQL)

周 3-4:Redis 深度
  □ 5 种数据结构各写一个使用 Demo
  □ 实现分布式锁(SETNX → Lua → Redisson 三级演进)
  □ 缓存穿透/击穿/雪崩各写解决方案

周 5-6:消息队列
  □ RabbitMQ 保证消息不丢失(confirm + persist + manual ack)
  □ Kafka 生产者消费者 Demo(理解分区 + offset)
  □ 消息幂等性实现(唯一 ID + Redis SET)

周 7-8:综合面试准备
  □ 整理 100 道 Java 后端面试题(用自己的话写答案)
  □ 用 AI 模拟面试 3 次(参考 AI 学习方法论文档)
  □ 更新简历 + 发布 1 篇深度技术博客

二、中期进阶(6-12 个月):架构能力培养

月份 7-9:系统设计

实战项目:设计秒杀系统完整方案

第 1 步:需求分析
  □ 明确 QPS 目标(10000+)、库存量、用户量
  □ 列出核心挑战:热点库存、高并发写、超卖风险

第 2 步:方案设计
  □ 画出 4 层架构图(前端→网关→应用→数据库)
  □ 库存扣减方案选型(Redis Lua + DB 最终扣减)
  □ 限流策略(令牌桶:前端 + 网关 + 应用三层限流)

第 3 步:编码实现
  □ Redis Lua 脚本原子扣减库存
  □ 消息队列异步下单
  □ Jmeter 压测验证(QPS > 5000 无超卖)

第 4 步:写方案文档
  □ 完整的系统设计文档(架构图 + 流程图 + 时序图)
  □ 面试可直接用这个案例讲

月份 10-12:分布式事务 + 开源贡献

周 1-4:分布式事务实战
  □ Seata AT 模式 Demo(订单 + 库存两个服务)
  □ 对比 AT / TCC / MQ 事务消息三种方案的实现区别
  □ 写一篇分布式事务方案选型的博客

周 5-8:中间件源码
  □ 选 1 个中间件阅读核心源码(Dubbo SPI/Netty Pipeline/RocketMQ 存储)
  □ 写源码分析笔记
  □ 在项目中应用中间件的高级特性

周 9-12:开源贡献
  □ 给 Spring/MyBatis Plus 提 1 个 Issue(Bug Report 或 Feature Request)
  □ 修 1 个 good first issue
  □ 提 1 个 PR 并被合并

三、长期规划(1 年+):技术影响力

技术博客

目标:每月 2 篇深度文章

选题来源:
1. 工作中遇到的技术问题及解决方案
2. 源码阅读笔记(Spring/MyBatis/Netty)
3. 线上事故复盘(脱敏后)
4. 新技术调研(2026 年:Spring AI / LangChain / MCP)

发布平台:
- 掘金(流量最大)
- 博客园(SEO 好,容易被搜索到)
- GitHub Pages(自己域名,长期积累)
- 知乎专栏(技术话题讨论度高)

开源项目

路径:
1. 0-3 个月:维护一个工具类库(10-50 Star)
   例:代码生成器、API 文档工具、数据脱敏组件

2. 3-6 个月:参与知名项目贡献(提 PR)
   例:MyBatis Plus、Arthas、Nacos

3. 6-12 个月:自研项目积累(100-500 Star)
   例:基于 AI 的代码审查工具、智能 API Mock 平台

开源项目的简历价值:
  - Star 500+ 的项目 = 相当于大厂 1 年工作经历
  - 成为知名项目的 Committer = 面试免笔试

技术分享

内部分享(每季度 1 次):
- 选题:团队最近踩过的坑 / 新技术的落地实践
- 时长:30-45 分钟
- 目标:让非本领域的同事也能听懂 70%

外部分享(每年 1-2 次):
- 本地技术社区 Meetup(合肥有 Java/云原生社区)
- 线上技术直播(InfoQ/掘金直播)
- 目标:建立个人技术品牌

四、每日/每周执行清单

每日(工作日)

早晨 30 分钟:学习 1 个知识点
  周一三五:Java 基础 / 源码
  周二四:框架 / 中间件
  → 产出:1 条笔记

白天:工作中刻意练习
  - 每写一行代码前想 2 秒:有没有更好的写法?
  - 每遇到一个 Bug 记录:根因 + 解决方案
  - 每次 Code Review 后反思:别人发现的问题我为什么没看到?

晚上 1-2 小时:
  - 算法 3 道(30 分钟)
  - 当天学习内容复习(15 分钟)
  - 写笔记 / 写博客(可选)

每周(周末)

周六上午:集中编码 3-4 小时
  - 个人项目或本周学习内容的 Demo 实现
  - Git commit + push(保持 GitHub 绿点)

周六下午:技术博客 2 小时
  - 本周最有收获的 1 个点扩展为博客

周日上午:源码阅读 2-3 小时
  - Spring / MyBatis / Netty 核心模块

周日下午:自由探索
  - GitHub Trending / 技术视频 / 社区动态

每月

第 1 周:制定本月 3 个学习目标(具体到可检验的结果)
第 4 周:自评能力体检表(参考分级能力图谱与薪资参考)
         生成月度学习报告(让 AI 辅助)
         规划下月目标(基于本月薄弱点)

五、里程碑检验

第 3 个月末

检验标准:
□ 能手写 HashMap 简化版(put/get/resize,30 分钟内)
□ 能画出 JVM 内存模型 + GC 分代流程
□ 能解释 Spring IoC 容器的 refresh() 核心流程
□ 能用 Spring Cloud 搭建完整微服务项目

未达标 → 分析薄弱点,用 AI 深度学习(参考 AI 方法论文档)

第 6 个月末

检验标准:
□ 能设计秒杀系统完整方案(画图 + 讲解,面试级别)
□ Redis 分布式锁从 SETNX 到 Redisson 演进能讲清楚
□ 至少发布 3 篇深度技术博客
□ GitHub 连续 6 个月绿点不断

未达标 → 调整学习节奏(是计划太重还是执行太松?)

第 12 个月末

检验标准:
□ 能力体检表 80%+ 项达到 4 分以上
□ 给知名开源项目提过至少 1 个 PR(被合并)
□ 技术博客累计 10+ 篇,阅读量 5 万+
□ 完成 1 次内部技术分享
□ 能独立完成技术方案评审(输出标准方案文档)

达标 → 正式跨入高级工程师行列,考虑晋升或跳槽

六、常见踩坑与应对

常见踩坑应对策略
"学了一堆理论但写不出代码"每个知识点必须有个对应的 Demo 项目
"计划太满执行一周就放弃"从每天 30 分钟开始,先坚持 21 天再增量
"收藏了 100 篇文章但从没看过"收藏时立刻用 AI 做摘要,3 天内不看就删
"刷了 300 道题但变种还是不会"见 算法题高效刷题,用 AI 教练模式
"简历投出去没面试机会"简历缺量化数据,参考 软技能与职业素养 —— 职场晋升关键
"面试聊得不错但没通过"问题在深度不够,AI 模拟面试可以训练(AI 方法论文档)

延伸阅读