阶段一:后端开发基础
1.Java基础
学习Java基础语法,理解封装、继承、多态等概念。学习常见的集合,I0流,反射机制,泛型,异常,网络编程。
进阶:多线程,Lambda表达式和Stream流,JVM内存结构。
推荐教程:B站-老杜Java教程
2.MySQL
学习基本的CRUD语句,JDBC API,子查询,索引的使用。
进阶:数据库三范式,索引的原理(B+树),事务的特性和隔离级别,InnoDB的MVCC实现机制。
推荐教程:尚硅谷/黑马程序员MySQL
3.计算机网络基础
了解TCP/IP的三次握手。学习HTTP协议,了解其报文结构与不同请求方式(GET, POST等)的区别,及不同响应码代表的意思。弄明白「一次请求到响应」的全过程。学习HTTPS协议的「对称与与非对称加密」,「数字签名与与数字证书」,Hash算法。
推荐教程:韩立刚-计算机网络
4.操作系统基础
开发需要对「进程与线程」的概念有一定了解。理解线程的生命周期,并发的概念,以及多线程并发时会遇到哪些问题。
推荐教程:王道考验-操作系统
5.Java Web
学习 Tomcat,JSON,Servlet, Filter,
Session,Cookie,Ajax异步请求,RESTful接口规范,JSP。
JSP是很老的技术了,了解一下即可,其他部分务必好好学习,Java Web是后面一切的根基。此部分不需要敲太多代码,了解原理即可。
推荐教程:动力节点-Java Web
- Git & Maven
学习 Git的基本命令,版本控制和分支管理,这是所有程序员必备技能。学习Maven项目的构建,打包,父子项目依赖关系以及依赖的版本管理。
推荐教程:狂神说-Git&动力节点- Maven实战入门
阶段二:后端框架
1.Spring & Spring MVC & Mybatis框架
了解MVC架构的理念,学习Spring框架的依赖注入(DI)和面向切片编程(AOP)的思想, Spring MVC的架构模式以及Mybatis持久层框架的如何完成数据库查询和实体类映射。这部分主要是了解框架思想,代码部分跟着 case敲一遍即可,不需要写一个完整的项目,因为很少企业在用SSM了。
进阶:有时间可以了解下Spring Data JPA,有的公司会用它替代Mybatis。
推荐教程:狂神说-SSM系列
- Spring Boot框架
了解完整的企业级Spring Boot项目开发的流程。学习Spring Boot的配置管理和注解使用,前后端分离思想,日志管理,监控管理,多环境开发以及项目打包部署等,最好跟着 B站做一个完整的项目。
进阶:学习Bean的创建方式,依赖管理,自动配置原理以及底层注解。
推荐教程:黑马程序员Spring Boot教程对新手比较友好;尚硅谷雷神版适合有基础的人,他开头就会讲很多底层原理。
阶段三:前端基础
1 .HTML & CSS & JavaScript
后端开发无论是工作还是学习,偶尔写前端都会是不可避免的一件事,需要了解HTML三件套的基本使用,实操使用前端给后端发送Ajax请求。
推荐教程:菜鸟教程-HTML指南
2.Vue3
学会使用Vue脚手架,引用elementUI组件, axios请求后端,路由管理,Vuex等。不需要太深入,可以写出样式与后端交互即可。
推荐教程:菜鸟教程-Vue指南
3.Nginx
其实Nginx属于中间件,但是在Vue中会用到。学习反向代理的概念以及Nginx配置文件的一些参数。
推荐教程:菜鸟教程-Nginx指南
阶段四:中间件
1.Redis
非关系型数据库,无论是系统性能优化还是鉴权都离不开它。主要了解CAP概念,学习 Redis的数据结构和基本命令,发布订阅模式,Redis事务,Redis持久化操作(RDB&AOF),主从复制,哨兵模式,Redis集群搭建。
进阶:了解缓存雪崩,缓存穿透,缓存击穿及对应解决方案。使用Redis限流(令牌桶算法等)
推荐教程:尚硅谷周阳-Redis7教程
2.RabbitMQ/ Kafka
消息中间件,两者选一学习即可。RabbitMQ易上手,而KafKa性能更好,用于大型分布式系统。这一阶段要学习消息队列的「点对点模式」与「发布订阅模式」,分布式事务2PC与3PC,这两种消息队列在Spring Boot的API调用。
推荐教程:尚硅谷-PabbitMQ & Kafka
阶段五:分布式与运维
1 .Linux操作系统
学习Linux目录结构,常用的命令以及vim编辑器。理解Linux中的用户权限和组的概念。能够熟练地在Linux中安装软件及部署jar包。 Linux服务器在阿里云,腾讯云等平台可以购买,新用户只要几十块一年。
推荐教程:菜鸟教程-Linux指南
2 .Docker容器化技术
学会在Linux拉取docker镜像和创建容器,了解 docker network和volume等知识,并能够编写dockerfile去构建镜像。学习docker- compose文件的写法及命令,然后做容器编排。
推荐教程:尚硅谷周阳-docker
因为我们每次构建完项目要手动构建和部署,这太麻烦了,所以我们需要持续集成工具来做这些繁琐的步骤。CI/CD工具有Jekins和Gitlab-runner等。学会在Linux中搭建持续集成环境,结合dockerfile,docker- compose.yml完成持续集成。
推荐教程:CSDN搜索持续集成案例
4.Spring Cloud框架
Spring全家桶中用于构建微服务的框架。学习微服务概念,拆分微服务的原则,
Nacos注册中心配置管理,Feign远程调用, Gateway服务网关的使用,过滤器的使用, Sentinel流控组件以及Seate分布式事务。
推荐教程:尚硅谷周阳-Spring Cloud教程
阶段六:安全与鉴权
1.JWT
JWT有三段组成:header,payload和signature。header指定签名算法和token类型。payload中可放一些不敏感的数据,如 userid,过期时间等。第三部分由「第一部分使用base64URL加密+第一部分使用
base64URL加密+密钥」进行签名。需要学会Spring Boot中JWT API的使用。
推荐教程:编程不良人-JWT认证原理
2.Spring Security
用于认证和授权的框架。认证:查看用户是否有访问系统的权限;授权:控制谁可以访问哪些资源。学习Spring Security中一些封装的类和方法,如Authentication类, UserDetails类,authenticate()方法,
loadUserByUsername()方法等。使用 Spring Security +Redis+JWT做出能够认证和授权的系统。
推荐教程:三更早堂-Spring Security教程