软件行业的发展,各种新技术的出现,将以前全部需要程序员关注的问题分层剥离,同时促进生产力的极大变革。 比如 Go 语言引入的并发模型 Communicating Sequential Processes(CSP),使得并发编程变得如此的简单。 容器技术(如Docker、K8S)的出现,革命性的改变了整个运维体系。刚刚发布1.0版本的Dapr更是要建立一个标准的 分布式应用运行时,统一的解决在分布式环境运行而导致的对应用程序的侵入性,解决因此导致的应用程序复杂性的膨胀。
仔细去看这些新技术的本质,是从新的视角去解决一直依赖的问题,并且也还是在通用的基础性技术的基础上构建出来的。 这些(问题和基础性技术)才是我们行业中不变的东西,这是一个结合个人工作学习经历的 roadmap。不求对所有技术分支、内容的全面覆盖, 但求能给新入行的同学们练级的一个方向性的参考。学习资料的推荐上主要结合自己的阅读内容和一些业界经典,主要是一些书籍, 其实优秀的技术文档、论坛、博客也都是非常好的学习资源。
对于学习的过程,除了要坚持以外,还要注重实践和交流,交流就包括要去思考和总结,并且将其输出出来。囿于个人水平有限, 也还在不断学习的途中,内容的偏颇之处还望指正交流。
初阶
对应岗位
开发工程师、高级开发工程师、技术专家
技术基础
网络:DNS、TCP&IP、浏览器、HTTP
操作系统
Unix/Linux命令行:grep, awk, sed, lsof, curl, wget, tail, head, less, find, ssh, kill;正则表达式
操作系统如何运行
进程管理
线程与并发
基本前端知识:HTML、CSS、JavaScript
编程语言:Java, Go, Kotlin、Bash、C/C++
算法与数据结构:性能分析、基本数据结构(列表、树等)、排序、查找、图
数据库:索引、事务、分库分表
编程工具
版本管理:Git、版本控制系统、代码托管服务
构建工具:Maven、Gradle
编辑器:VSCode、Emacs、VIM
IDE:Intellij IDEA
相关学习资源
1、陈鸣译,《计算机网络:自顶向下方法(原书第6版)》,
2、龚奕利,贺莲译,《深入理解计算机系统(原书第3版)》
3、谢路云译,《算法(第4版)》
4、陈昊鹏译,《Java编程思想》
5、李道兵等译,《Go程序设计语言》
6、《ProgrammmingKotlin》
7、刘晓霞等译,《MySQL必知必会》
8、《Pro Git》
9、许晓斌,《Maven实战》
10、李松峰等译,《JavaScript高级程序设计(第3版)》
11、Cameron Newham等,《学习bash(第二版)》
中阶
对应岗位
高级开发工程师、技术专家
编程框架
应用框架:spring、play
网络框架:netty、
持久化:MyBatis、Hibernate
RPC:gRPC、Dubbo
JVM
执行系统:类结构与字节码、类加载机制
内存管理:内存区域与溢出、垃圾收集器与内存分配策略、性能监控与故障处理工具)
并发:内存模型与线程、线程安全与锁优化
消息队列
kafka、rocketmq
存储
redis 、mysql
工程
测试:单元测试、集成测试、功能测试
安全:OAuth、HTTPS、CORS、内容安全策略
持续集成
相关学习资源
1、 Brian Goetz等,《Java并发编程实战》
2、张卫滨译,《Spring实战》
3、何品译,《Netty实战》
4、周志明,《深入理解Java虚拟机》
5、 Neha Narkhede等,《Kafka: The Definitive Guide》
6、黄健宏,《Redis设计与实现》
7、《计算机程序的构造和解释》
高阶
对应岗位
技术专家
编程范式
函数式编程、面向对象编程、泛型编程、类型系统、装饰器模式、代理模式
设计原则
DRY、KISS、S.O.L.I.D.
分布式系统
基础理论:节点与网络、时间与顺序、ACID、CAP/FLP/DLS、一致性理论
设计模式:网关模式,Gateway、边车模式,Sidecar、服务网格,Service Mesh、防腐层,Anti-corruption Layer、分布式锁、配置中心、异步通讯、幂等性
弹性(容错)设计:服务降级、服务限流、熔断设计、补偿事务、隔离设计、异步通讯、幂等性设计、重试设计、bulkhead
工程:监控追踪、服务/资源调度、流量控制、数据调度、开发与运维自动化、负载均衡+健康检查、服务发现+动态路由+健康检查、自动化运维
相关学习资源
1、赵军平等译,《数据密集型应用系统设计》
2、Marko Luksa,《Kubernetes in Action》
3、Distributed systems theory for the distributed systems engineer
4、孙宇聪译,《SRE:Google运维解密》
5、崔力强等译,《微服务设计》
????橙子说
后台回复“我要图谱”,获取后端工程师学习路线图
✿ 拓展阅读
作者|淘系技术
编辑|橙子君
出品|阿里巴巴新零售淘系技术