后端工程师初、中、高阶各级别学习成长路线,以及所需要掌握了解的技术核心要点分享给大家,并提供相关的阅读学习书籍参考。
对于学习的过程,除了要坚持以外,还要注重实践和交流,交流就包括要去思考和总结,并且将其输出出来。
1.技术基础
网络:DNS、TCP&IP、浏览器、HTTP
2.操作系统
3.基本前端知识
HTML、CSS、JavaScript
4.编程语言
Java, Go, Kotlin、Bash、C/C++
5.算法与数据结构
性能分析、基本数据结构(列表、树等)、排序、查找、图
6.数据库
索引、事务、分库分表
7.编程工具
版本管理:
Git、版本控制系统、代码托管服务
8.构建工具
Maven、Gradle
9.编辑器
VSCode、Emacs、VIM
IDE:
Intellij IDEA
10.相关学习资源
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(第二版)》
1、编程框架:
应用框架:spring、play网络框架:netty、持久化:MyBatis、HibernateRPC:gRPC、Dubbo
2.JVM执行系统:
类结构与字节码、类加载机制内存管理:内存区域与溢出、垃圾收集器与内存分配策略、性能监控与故障处理工具)并发:内存模型与线程、线程安全与锁优化
3.消息队列:
kafka、rocketmq
4.存储:
redis 、mysql
5.工程测试:
单元测试、集成测试、功能测试安全:OAuth、HTTPS、CORS、内容安全策略持续集成
6.相关学习资源
1、 Brian Goetz等,《Java并发编程实战》
2、张卫滨译,《Spring实战》
3、何品译,《Netty实战》
4、周志明,《深入理解Java虚拟机》
5、 Neha Narkhede等,《Kafka: The Definitive Guide》
6、黄健宏,《Redis设计与实现》
7、《计算机程序的构造和解释》
1.编程范式
函数式编程、面向对象编程、泛型编程、类型系统、装饰器模式、代理模式
2.设计原则
DRY、KISS、S.O.L.I.D.
3.分布式系统
4.相关学习资源
1、赵军平等译,《数据密集型应用系统设计》
2、Marko Luksa,《Kubernetes in Action》
3、Distributed systems theory for the distributed systems engineer
4、孙宇聪译,《SRE:Google运维解密》
5、崔力强等译,《微服务设计》