软件行业的发展,各种新技术的出现,将以前全部需要程序员关注的问题分层剥离,同时促进生产力的极大变革。 比如 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、崔力强等译,《微服务设计》

????橙子说

后台回复“我要图谱”,获取后端工程师学习路线图

✿  拓展阅读

作者|淘系技术

编辑|橙子君

出品|阿里巴巴新零售淘系技术

后端工程师必看学习路线图(含初、中、高阶)相关推荐

  1. 软件测试工程师必看:如何使用JMeter中的正则表达式?

    如果你在JMeter脚本中看到这样一些符号:(.*?)(\d+),你是否会以为程序出现了乱码?拆开来看每个符号似乎都有固定的含义,组合在一起竟成了令人费解的天书.这些神秘符号究竟蕴含了哪些强大的功能, ...

  2. 2021 年 Web 前端学习路线图 (含后端)

    古之立大事者,不惟有超世之才,亦必有坚韧不拔之志 --苏轼 写在前面 今天在 GitHub 看到了一个仓库,developer-roadmap 该仓库包含一组图表,这些图表介绍了成为一个 Web 开发 ...

  3. 25个Web前端开发工程师必看的国外大牛和酷站

    逛了一周国外大牛们的博客与酷站,真是满满的钦佩.震撼.羡慕.惊喜---- Web设计是一个不断变化的领域,因此掌握最新的发展趋势及技术动向对设计师来说非常重要.无论是学习新技术,还是寻找免费资源与工具 ...

  4. 手机射频术语完全解析(手机射频工程师、测试工程师必看)

    1. 什么是RF? 答:RF 即Radio frequency 射频,主要包括无线收发信机. 2. 从事手机RF工作没多久的新手,应怎样提高? 答:首先应该对RF系统(如功能性)有个系统的认识,然后可 ...

  5. 思科ccna认证工程师必看路由协议IGRP和EIGRP详解

    思科ccna认证工程师必看路由协议IGRP和EIGRP详解单单从他们的名字当中,我们就能猜到他们之间有很多的关联. IGRP: 一种内部网关路由协议,它由Cisco公司八十年代中期设计.使用组合用户配 ...

  6. 户外设备选择远距离蓝牙需要了解的知识-----工程师必看

    户外设备选择远距离蓝牙需要了解的知识-----工程师必看 社会的进步和科技的发展,有一些户外设备方案商在选型和测试蓝牙数传模块时发现距离达不到自己预期值,心里很是着急,要知道传输距离是比较核心的参数, ...

  7. 思科SP CCNP组播侦听者协议MLD详解想要成为高级网络工程师必看-ielab

    思科SP CCNP组播侦听者协议MLD详解想要成为高级网络工程师必看-ielab,网桥(Bridge)是早期的两端口二层网络设备,用来连接不同网段.网桥的两个端口分别有一条独立的交换信道,不是共享一条 ...

  8. 思科ccie网络工程师必看网络安全技术详解-ielab实验室

    思科ccie网络工程师必看网络安全技术详解-ielab实验室,网络安全威胁是指网络系统所面临的,由已经发生的或潜在的安全事件对某一资源的保密性.完整性.可用性或合法使用所造成的威胁.能够在不同程度.不 ...

  9. 阿里云联手优酷推出工程师必看电影片单,高分烧脑假期必备!

    阿里云联手优酷推出工程师必看电影片单,高分烧脑假期必备! 点这里直接进入观看页面:) 话不多说,上豆瓣简介及评分~ 看不见的客人 "调度上有种将阿加莎小说当代化的直感 谷仓之冰和密室的三重解 ...

最新文章

  1. 得到的旋转向量和平移向量转换成旋转矩阵 (SE(3))
  2. 第四次产业革命将由四个领域引领:大数据、新材料、新能源和生物科技。
  3. 赛迪研究院发布《2019量子计算发展白皮书》
  4. Debug类和Trace类的区别
  5. 大数据容器化-基于Kubernetes(k8s)构建spark运行环境
  6. 数据库命名规范(转)
  7. 程序员面试金典 - 面试题 03.01. 三合一(数组栈)
  8. roadhog不是内部或外部命令_git:git 不是内部或外部命令,也不是可运行的程序
  9. IT从业者几大职位薪酬对比
  10. 解决SQL查询总是 超时已过期
  11. OpenShift 4.3 - 获得ImageStream中使用的应用镜像离线包
  12. grep 多模式匹配
  13. c语言 char转int_第三章、C语言中的数据类型
  14. Linux基础命令大全
  15. 如何使用google进行搜索
  16. 结构梁配筋最牛插件_牛肉食用指南(五):日式烧肉的由来,各部位怎么烤最好吃?...
  17. 电子相册如何用c语言制作,电子相册怎样制作?
  18. JDK自带的命令行工具
  19. ftp文件服务器与nas性能,nas和ftp服务器的区别
  20. 虚拟化概述与虚拟化应用场景

热门文章

  1. vue中,应用mapbox地图——地图组件mapbox-gl和语言包@mapbox/mapbox-gl-language地图英文转中文 accesstokens-访问令牌移动端地图-leaflet
  2. 华为发布首款鸿蒙系统终端,首款鸿蒙系统终端新闻 华为正式发布鸿蒙系统
  3. JSP与Servlet 基础知识
  4. JavaWeb-03
  5. 计算机系统应用的书,基于个性化图书推荐的协同过滤算法
  6. 注册流程(分离HLR/HSS)
  7. 4.2.7-packet-tracer---configure-router-on-a-stick-inter-vlan-routing
  8. 学生成绩计算的c语言,学生成绩标准管理系统C语言.doc
  9. pytorch神经网络对Excel数据集进行处理2.0(读取,转为tensor格式,归一化),并且以鸢尾花(iris)数据集为例,实现BP神经网络
  10. 南邮/南邮计算机考研经验贴2022