后端工程师学习路线
后端工程师的技能树庞大而分散。这篇文章不是列出”你要学的 100 个技术栈”,而是按职业阶段梳理每个阶段最该聚焦的三件事,以及对应的知识图谱导航。
一、第一阶段:能干活(0-2 年)
目标:独立完成业务需求,能用主流框架搭出能上线的服务。
| 优先级 | 技能 | 对应文章 |
|---|---|---|
| 1 | Java 语言基础 + 集合框架 | Java 核心, HashMap |
| 2 | Spring Boot + MyBatis | Spring 源码, MyBatis |
| 3 | MySQL + Redis 基础 | MySQL, Redis |
这个阶段的标志:接到一个 CRUD 需求,能从 Controller 写到 DAO,知道什么时候加索引,会用 Redis 做简单缓存。不要求深入理解底层原理——先能干活,再求甚解。
常见误区:过早追求”源码级理解”而忽略了项目经验。框架源码应该在第二阶段有了足够的调试经验后再深入。
二、第二阶段:懂原理(2-4 年)
目标:能独立设计模块,定位线上故障,对性能有基本感觉。
| 优先级 | 技能 | 对应文章 |
|---|---|---|
| 1 | JVM 内存模型 + GC 调优 | JVM, GC |
| 2 | 并发编程(JMM、AQS、线程池) | Java 并发, AQS |
| 3 | 分布式基础(CAP、一致性、RPC) | 分布式理论, gRPC |
| 4 | MySQL 深度(索引、事务、锁) | MySQL 深度 |
这个阶段的标志:能说清楚为什么这段代码在高并发下有问题,能从 GC 日志定位内存泄漏,能给出分库分表的初步方案。
三、第三阶段:会设计(4-6 年)
目标:能设计中等复杂度的系统,主导跨团队技术方案。
| 优先级 | 技能 | 对应文章 |
|---|---|---|
| 1 | 系统设计方法论 + 经典案例 | 系统设计 + 12篇案例 |
| 2 | 消息队列 + 缓存架构 | MQ, 缓存策略 |
| 3 | 微服务(服务发现、网关、熔断) | 微服务 |
| 4 | 领域驱动设计(DDD) | DDD |
这个阶段的标志:拿到一个模糊的需求能拆成可执行的方案,能画出清晰的架构图并说清楚 Trade-off。
四、第四阶段:看全局(6+ 年)
目标:能设计大规模分布式系统,对技术选型有独立判断。
| 优先级 | 技能 | 对应文章 |
|---|---|---|
| 1 | 大厂架构案例研究 | Netflix, Spanner, WhatsApp |
| 2 | 可观测性 + 性能优化 | 可观测性, 性能优化 |
| 3 | 基础设施(K8s、CI/CD) | Kubernetes, CI/CD |
| 4 | 跨领域(AI/算法/安全) | 搜索, 安全 |
这个阶段的标志:能独立做出技术选型并承担后果,能从前人架构案例中抽象出通用模式,能把模糊的技术方向转化为团队的执行策略。
五、CS 基础——贯穿全阶段的底层能力
无论哪个阶段,计算机基础都是决定你”天花板”的变量:
| 基础 | 最低要求 | 进阶 |
|---|---|---|
| 数据结构 | B+Tree、跳表、HashMap 原理 | LSM-Tree、FST、一致性哈希 |
| 算法 | 滑动窗口、TopK、二分查找变体 | Dijkstra、拓扑排序、外归并 |
| 网络 | TCP 三次握手、HTTP 协议 | epoll、QUIC、HTTP/3 |
| 操作系统 | 进程/线程、内存管理 | CPU 缓存、IO 模型、文件系统 |
| 设计模式 | 单例、工厂、代理、策略、观察者 | CQRS、事件溯源 |
CS 基础知识图谱 覆盖了全部内容。
六、面试准备
后端面试 FAQ 收录了 50+ 高频面试题,覆盖 Java 基础、集合、并发、JVM、Spring、MySQL、Redis、分布式等 8 大主题。
七、每个阶段的警示
| 阶段 | 最常犯的错误 |
|---|---|
| 0-2 年 | 过早深入框架源码而忽略业务能力,或者反过来只做业务不学原理 |
| 2-4 年 | 迷信某个中间件而对其他方案缺乏了解,或者过度优化不存在的性能瓶颈 |
| 4-6 年 | 为了用新技术而用新技术,引入不必要的复杂度 |
| 6+ 年 | 脱离一线编码,对具体实现细节失去判断力 |
系统设计不只是”知道用什么数据库”,而是理解在什么业务场景下做出什么取舍。记住一句话:没有最好的技术,只有最适合当前阶段的方案。