Alibaba 最新发布:2021 最符合 Java 程序员的“学习路线”
关于技术人如何成长的问题,一直以来都备受关注,因为程序员职业发展很快,即使是相同起点的人,经过几年的工作或学习,会迅速拉开极大的差距,所以技术人保持学习,提升自己,才能够扛得住不断上赶的后浪,也不至于被“拍死”在沙滩上。
近日,经过一朋友的透露,Alibaba 也首发了一份限量的“Java 成长笔记”,里面记载的知识点非常齐全,看完之后才知道,差距真的不止一点点!
Java 成长笔记主要是将 Java 程序员按照年限来进行分层,清晰的标注着 Java 程序员应该按照怎样的路线来提升自己,需要去学习哪些技术点。
Java 成长笔记大致内容如下:
由于本篇内容过多,下面只展示一下大纲,完整版可看原文链接:为什么阿里巴巴的程序员成长速度这么快,看完他们的内部资料我明白了
0-1 年入门:
Java 基础复盘(面向对象+Java 的超类+Java 的反射机制+异常处理+集合+泛型+基础 IO 操作+多线程+网络编程+JDK 新特性)
Web 编程初探(Servlet+MySQL 数据库+商品管理系统实战)
SSM 从入门到精通(Spring+SpringMVC+Mybatis+商品管理系统实战-SSM 版)
SpringBoot 快速上手(SpringBoot+基于 SpringBoot 的商品管理系统实战)
零距离互联网项目实战(Linux+Redis+双十一秒杀实战系统)
1-3 年高工:
并发编程进阶(并发工具类实战+CAS+显示锁解析+线程池内部机制+性能优化)
JVM 深度剖析(理解运行时数据区+堆外内存解读+JDK+内存泄漏问题排查+Arthas+GC 算法和垃圾回收器+类加载机制等)
MySQL 深度进阶
深入 Tomcat 底层(线程模型+性能调优)
3-5 年资深:
数据库(调优+事务+锁+集群+主从+缓存等)
Linux(命令+生产环境+日志等)
中间件 &分布式(dubbo+MQ/kafka、ElasticSearch、SpringCloud 等组件)
5-7 年架构:
开源框架(Spring5 源码+SpringMVC 源码+Mybatis 源码)
分布式架构(Zk 实战+RabbitMQ+RocketMQ+Kafka)
高效存储(Redis+mongoDB+MySQL 高可用+Mycat+Sharing-Sphere)
微服务架构(RPC+SpringBoot+SpringCloud Netflix+SpringCloud Alibaba+docker+k8s)
10 年以上送外卖:开个小玩笑
下面是个人总结的学习路线
Java 学习路线
Java 基础课程
Java 基础课程内容涉及:Java 开发介绍、Java 数组、Java 面向对象、常用基础类、集合、IO 流、多线程、异常、反射。
一:Java 开发介绍
DOS 常用命令
JVM、JRE、JDK 之间的关系
Java 开发环境的搭建:安装 JDK,配置环境变量
Java 入门程序(Java 的开发流程)
Java 的注释,标识符、标识符的命名规范
Java 基本数据类型
变量和常量的定义及初始化
Java 的运算符
运算符的优先级
Java 分支语句之 if…else
循环的嵌套
方法的定义
方法的形参和实参
方法的递归调用
二、Java 数组
Java 数组的定义
Java 数组的声明
数组的优势与局限
数组的遍历访问(普通循环,增强 for 循环)
数组元素的顺序查找
数组元素的冒泡法排序
Arrays 工具类的使用
二维数组
三、Java 面向对象
面向对象设计思想
面向对象的分析与设计
Java 与面向对象
类中成员变量的定义与意义
构造方法的定义和调用
面向对象的封装特性
局部变量和成员变量的作用域问题
静态属性、静态方法、静态代码块
面向对象的继承特性
继承中构造方法的细节
面向对象的多态特性
抽象方法与抽象类
接口
四、异常
异常的概念
异常的分类
异常的理解
常见异常介绍
运行时异常
编译时异常
运行和编译异常区别
异常的处理方式之捕获异常
异常的处理方式之抛出异常
异常的处理方式之断点调试
断点调试之引导运行步骤
自定义异常
异常关键字处理
关键字执行流程
异常总结
五、集合
集合的概念和作用
集合和数组的区别
集合框架体系介绍
集合框架之 Collection 接口
ArrayList 和 LinkedList 的方法使用
ArrayList 和 LinkedList 各自的工作原理分析原理分析
使用多种方式遍历集合
HashSet 和 LinkedHashSet 各自的工作原理分析
集合框架之 Map 接口
泛型的使用
Collections 工具类的使用
六、IO 流
File 类的作用
File 类中常用方法的使用介绍
使用 File 类操作文件和文件夹
相对路径和绝对路径的介绍
IO 流的概念和工作原理
IO 流的分类
文件流的使用
转换流的使用
缓冲流的使用
对象流的使用
内存流的使用
使用不同的流实现文件内容的拷贝
七、多线程
进程和线程的介绍
进程和线程之间的区别与联系
线程实现方式之继承自 Thread 类
线程实现方式之实现 Runnable 接口
线程实现方式之线程池
线程的生命周期
线程中常用方法的使用
END
第二阶段:JavaWeb
JavaWeb 课程内容涉及:HTML5 课程、CSS3、JavaScript、MySQL 使用、JDBC 连接池、Servlet、JSP、AJAX、jQuery、Bootstrap。
一、HTML5
html 概述
html 基本标签
图片标签
超链接标签
表格标签
无序列表标签
有序列表标签
定义列表标签
div 标签
语义化标签
表单标签
二、CSS3
CSS3 简介和用途
CSS3 书写规范
CSS3 基本语法
CSS3 三种使用方式
标签选择器
Id 选择器
Class 选择器
属性选择器
层次选择器
文字、文本属性
背景、列表属性
尺寸、显示、轮廓属性
浮动、定位属性
盒子模型
CSS3 高级属性
三、JavaScript
JavaScript 概述
JavaScript 发展史
JavaScript 组成
数据类型
运算符
分支语句
循环语句
系统函数、自定义函数、匿名函数
常见事件
数组、字符串、日期对象
正则表达式
BOM 对象:window、history、location
DOM 概念
DOM 操作:创建、修改内容、删除
Css 样式操作
四、MySQL 使用 或 oracle 数据库
数据库简介
MySQL 的安装与使用
MySQL 客户端和服务器配置
用户权限管理
DDL 创建数据库和表
约束与外键
DML 实现添加、修改、删除数据
聚合函数、日期函数等
DQL 简单查询
排序、分组、筛选
多表查询
子查询
in 和 exists 关键字
分页查询
Mysql SQL 语句优化介绍
五、JDBC 连接池
JDBC 概述
JDBC 使用步骤
Connection、Statement、ResultSet 接口
使用 JDBC 完成数据库 DML 操作
PreparedStatement 对象
大数据的操作
批量处理与元数据
事务处理
隔离级别
自定义连接池
DBCP、C3p0 连接池
DBUtis 工具类
QueryRunner
自定义结果集处理
连接池知识总结
六、Servlet
Tomcat 与 Eclipse 的集成开发
什么是 Servlet
Servlet 的进化史
Servlet 的优化过程
Servlet 中应用的多线程概念
Servlet 接收客户端请求信息
Servlet 响应客户端信息
Servlet 的生命周期
重定向写法
转发写法
转发和重定向区别
HttpServletRequest 获取中文乱码问题
HttpServletResponse 响应中文乱码问题
Servlet 路径映射问题
Servlet 多路径映射
七、JSP
什么是 JSP
JSP 的内置对象
透析 JSP 的本质
JSTL+EL
MVC 介绍
分层的重要性
Web 工程中事务实现
Session 的使用
Cookie 的使用
web 工程中连接池的使用
实现用户的自动登录
文件的上传、下载
过滤器、 监听器
反射、注解、泛型
综合案例练习
八、AJAX
Ajax 技术背景
Ajax 技术的理解
XMLHttpRequest 使用步骤
XMLHttpRequest GET/POST 的区别
同步请求 &异步请求
同步请求 &异步请求的区别
Ajax 获取不同的返回值类型
Ajax 使用原生 JavaScript 和 Jquery 的区别
Ajax 响应状态处理
JSON 语法
Java JSON 解析
Java JSON 生成
Java JSON 第三方工具快速解析
JavaScript JSON 转换
Jquery JSON 转换
END
Java 框架
Java 框架课程内容涉及:Spring、Spring MVC、MyBatis、SVN、Git、Maven、SpringBoot
一、Spring
框架原理介绍
框架环境搭建
快速入门
创建 Bean 的方式及实现原理
Bean 种类
Bean 生命周期
Bean 的作用域
Bean 的注值方式
整合 Junit 测试
注解装配 Bean
注解装配 Bean
AOP 思想、原理解剖
AOP 底层 JDK 动态代理
AOP 编程
AspectJ 介绍及实现 AOP 开发
事务
Web 项目集成 Spring
二、Spring MVC
Spring MVC 概述
使用 @RequestMapping 映射请求
请求处理方法签名概述
处理方法签名详细说明
使用 HttpMessageConverter
处理模型数据
数据绑定流程剖析
数据格式化
数据校验
视图和视图解析器
处理方法的数据绑定
视图和视图解析器
文件上传下载
JSON 处理
拦截器
三、MyBatis
MyBatis 数据框架介绍
MyBatis 对比 Hibernate 框架
MyBatis 配置、查询数据
MyBatis 全局配置文件
MyBatis 全局配置文件元素详细介绍
Mapper 映射文件
MyBatis 两种开发方式
MyBatis 中别名配置
MyBatis # 和 $ 拼接参数区别
关联查询,动态 sql
MyBatis 缓存机制、整合 ehcache
MyBatis 二级缓存处理
MyBatis、Spring、SpringMVC 整合
分页插件
MyBatis 逆向工程
四、SVN 和 git
SVN 简介
SVN 和 Git 对比
SVN 服务器搭建
SVN 创建仓库
SVN 创建用户以及分配权限
SVN 签出、提交、更新
Eclipse 整合 svn 插件
Idea 整合 svn 插件
使用 SVN 更新提交
SVN 仓库分析
SVN 协同修改 &冲突解决
SVN 代码整合注意事项
SVN 权限管理
SVN 数据回滚
TortoiseSVN
五、Maven
Maven 环境搭建
Maven 构建项目
Maven 本地仓库配置
Maven 中央仓库配置
Maven 基本概念
Maven 基本命令介绍
Maven 于 Eclipse 整合
Maven 于 Idea 整合
Maven 创建 web 工程
pom.xml、依赖管理
坐标、依赖、生命周期等
Eclipse 下的 Maven 使用
Maven 中 继承、聚合
Maven 构建 SSH/SSM 应用
自动部署、持续集成、持续部署
六、项目开发实战
总结
虽然我个人也经常自嘲,十年之后要去成为外卖专员,但实际上依靠自身的努力,是能够减少三十五岁之后的焦虑的,毕竟好的架构师并不多。
架构师,是我们大部分技术人的职业目标,一名好的架构师来源于机遇(公司)、个人努力(吃得苦、肯钻研)、天分(真的热爱)的三者协作的结果,实践+机遇+努力才能助你成为优秀的架构师。
如果你也想成为一名好的架构师,那或许以上这份 Java 成长笔记与学习路线你需要阅读阅读,希望能够对你的职业发展有所帮助。
评论