写点什么

Alibaba 最新发布:2021 最符合 Java 程序员的“学习路线”

发布于: 1 小时前
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 开发介绍

  1. DOS 常用命令

  2. JVM、JRE、JDK 之间的关系

  3. Java 开发环境的搭建:安装 JDK,配置环境变量

  4. Java 入门程序(Java 的开发流程)

  5. Java 的注释,标识符、标识符的命名规范

  6. Java 基本数据类型

  7. 变量和常量的定义及初始化

  8. Java 的运算符

  9. 运算符的优先级

  10. Java 分支语句之 if…else

  11. 循环的嵌套

  12. 方法的定义

  13. 方法的形参和实参

  14. 方法的递归调用

二、Java 数组

  1. Java 数组的定义

  2. Java 数组的声明

  3. 数组的优势与局限

  4. 数组的遍历访问(普通循环,增强 for 循环)

  5. 数组元素的顺序查找

  6. 数组元素的冒泡法排序

  7. Arrays 工具类的使用

  8. 二维数组

三、Java 面向对象

  1. 面向对象设计思想

  2. 面向对象的分析与设计

  3. Java 与面向对象

  4. 类中成员变量的定义与意义

  5. 构造方法的定义和调用

  6. 面向对象的封装特性

  7. 局部变量和成员变量的作用域问题

  8. 静态属性、静态方法、静态代码块

  9. 面向对象的继承特性

  10. 继承中构造方法的细节

  11. 面向对象的多态特性

  12. 抽象方法与抽象类

  13. 接口

四、异常

  1. 异常的概念

  2. 异常的分类

  3. 异常的理解

  4. 常见异常介绍

  5. 运行时异常

  6. 编译时异常

  7. 运行和编译异常区别

  8. 异常的处理方式之捕获异常

  9. 异常的处理方式之抛出异常

  10. 异常的处理方式之断点调试

  11. 断点调试之引导运行步骤

  12. 自定义异常

  13. 异常关键字处理

  14. 关键字执行流程

  15. 异常总结

五、集合

  1. 集合的概念和作用

  2. 集合和数组的区别

  3. 集合框架体系介绍

  4. 集合框架之 Collection 接口

  5. ArrayList 和 LinkedList 的方法使用

  6. ArrayList 和 LinkedList 各自的工作原理分析原理分析

  7. 使用多种方式遍历集合

  8. HashSet 和 LinkedHashSet 各自的工作原理分析

  9. 集合框架之 Map 接口

  10. 泛型的使用

  11. Collections 工具类的使用

六、IO 流

  1. File 类的作用

  2. File 类中常用方法的使用介绍

  3. 使用 File 类操作文件和文件夹

  4. 相对路径和绝对路径的介绍

  5. IO 流的概念和工作原理

  6. IO 流的分类

  7. 文件流的使用

  8. 转换流的使用

  9. 缓冲流的使用

  10. 对象流的使用

  11. 内存流的使用

  12. 使用不同的流实现文件内容的拷贝

七、多线程

  1. 进程和线程的介绍

  2. 进程和线程之间的区别与联系

  3. 线程实现方式之继承自 Thread 类

  4. 线程实现方式之实现 Runnable 接口

  5. 线程实现方式之线程池

  6. 线程的生命周期

  7. 线程中常用方法的使用

END

第二阶段:JavaWeb

JavaWeb 课程内容涉及:HTML5 课程、CSS3、JavaScript、MySQL 使用、JDBC 连接池、Servlet、JSP、AJAX、jQuery、Bootstrap。

一、HTML5

  1. html 概述

  2. html 基本标签

  3. 图片标签

  4. 超链接标签

  5. 表格标签

  6. 无序列表标签

  7. 有序列表标签

  8. 定义列表标签

  9. div 标签

  10. 语义化标签

  11. 表单标签

二、CSS3

  1. CSS3 简介和用途

  2. CSS3 书写规范

  3. CSS3 基本语法

  4. CSS3 三种使用方式

  5. 标签选择器

  6. Id 选择器

  7. Class 选择器

  8. 属性选择器

  9. 层次选择器

  10. 文字、文本属性

  11. 背景、列表属性

  12. 尺寸、显示、轮廓属性

  13. 浮动、定位属性

  14. 盒子模型

  15. CSS3 高级属性

三、JavaScript

  1. JavaScript 概述

  2. JavaScript 发展史

  3. JavaScript 组成

  4. 数据类型

  5. 运算符

  6. 分支语句

  7. 循环语句

  8. 系统函数、自定义函数、匿名函数

  9. 常见事件

  10. 数组、字符串、日期对象

  11. 正则表达式

  12. BOM 对象:window、history、location

  13. DOM 概念

  14. DOM 操作:创建、修改内容、删除

  15. Css 样式操作

四、MySQL 使用 或 oracle 数据库


  1. 数据库简介

  2. MySQL 的安装与使用

  3. MySQL 客户端和服务器配置

  4. 用户权限管理

  5. DDL 创建数据库和表

  6. 约束与外键

  7. DML 实现添加、修改、删除数据

  8. 聚合函数、日期函数等

  9. DQL 简单查询

  10. 排序、分组、筛选

  11. 多表查询

  12. 子查询

  13. in 和 exists 关键字

  14. 分页查询

  15. Mysql SQL 语句优化介绍


五、JDBC 连接池


  1. JDBC 概述

  2. JDBC 使用步骤

  3. Connection、Statement、ResultSet 接口

  4. 使用 JDBC 完成数据库 DML 操作

  5. PreparedStatement 对象

  6. 大数据的操作

  7. 批量处理与元数据

  8. 事务处理

  9. 隔离级别

  10. 自定义连接池

  11. DBCP、C3p0 连接池

  12. DBUtis 工具类

  13. QueryRunner

  14. 自定义结果集处理

  15. 连接池知识总结

六、Servlet

  1. Tomcat 与 Eclipse 的集成开发

  2. 什么是 Servlet

  3. Servlet 的进化史

  4. Servlet 的优化过程

  5. Servlet 中应用的多线程概念

  6. Servlet 接收客户端请求信息

  7. Servlet 响应客户端信息

  8. Servlet 的生命周期

  9. 重定向写法

  10. 转发写法

  11. 转发和重定向区别

  12. HttpServletRequest 获取中文乱码问题

  13. HttpServletResponse 响应中文乱码问题

  14. Servlet 路径映射问题

  15. Servlet 多路径映射

七、JSP

  1. 什么是 JSP

  2. JSP 的内置对象

  3. 透析 JSP 的本质

  4. JSTL+EL

  5. MVC 介绍

  6. 分层的重要性

  7. Web 工程中事务实现

  8. Session 的使用

  9. Cookie 的使用

  10. web 工程中连接池的使用

  11. 实现用户的自动登录

  12. 文件的上传、下载

  13. 过滤器、 监听器

  14. 反射、注解、泛型

  15. 综合案例练习

八、AJAX

  1. Ajax 技术背景

  2. Ajax 技术的理解

  3. XMLHttpRequest 使用步骤

  4. XMLHttpRequest GET/POST 的区别

  5. 同步请求 &异步请求

  6. 同步请求 &异步请求的区别

  7. Ajax 获取不同的返回值类型

  8. Ajax 使用原生 JavaScript 和 Jquery 的区别

  9. Ajax 响应状态处理

  10. JSON 语法

  11. Java JSON 解析

  12. Java JSON 生成

  13. Java JSON 第三方工具快速解析

  14. JavaScript JSON 转换

  15. Jquery JSON 转换

END

Java 框架

Java 框架课程内容涉及:Spring、Spring MVC、MyBatis、SVN、Git、Maven、SpringBoot

一、Spring

  1. 框架原理介绍

  2. 框架环境搭建

  3. 快速入门

  4. 创建 Bean 的方式及实现原理

  5. Bean 种类

  6. Bean 生命周期

  7. Bean 的作用域

  8. Bean 的注值方式

  9. 整合 Junit 测试

  10. 注解装配 Bean

  11. 注解装配 Bean

  12. AOP 思想、原理解剖

  13. AOP 底层 JDK 动态代理

  14. AOP 编程

  15. AspectJ 介绍及实现 AOP 开发

  16. 事务

  17. Web 项目集成 Spring

二、Spring MVC


  1. Spring MVC 概述

  2. 使用 @RequestMapping 映射请求

  3. 请求处理方法签名概述

  4. 处理方法签名详细说明

  5. 使用 HttpMessageConverter

  6. 处理模型数据

  7. 数据绑定流程剖析

  8. 数据格式化

  9. 数据校验

  10. 视图和视图解析器

  11. 处理方法的数据绑定

  12. 视图和视图解析器

  13. 文件上传下载

  14. JSON 处理

  15. 拦截器

三、MyBatis

  1. MyBatis 数据框架介绍

  2. MyBatis 对比 Hibernate 框架

  3. MyBatis 配置、查询数据

  4. MyBatis 全局配置文件

  5. MyBatis 全局配置文件元素详细介绍

  6. Mapper 映射文件

  7. MyBatis 两种开发方式

  8. MyBatis 中别名配置

  9. MyBatis # 和 $ 拼接参数区别

  10. 关联查询,动态 sql

  11. MyBatis 缓存机制、整合 ehcache

  12. MyBatis 二级缓存处理

  13. MyBatis、Spring、SpringMVC 整合

  14. 分页插件

  15. MyBatis 逆向工程

四、SVN 和 git

  1. SVN 简介

  2. SVN 和 Git 对比

  3. SVN 服务器搭建

  4. SVN 创建仓库

  5. SVN 创建用户以及分配权限

  6. SVN 签出、提交、更新

  7. Eclipse 整合 svn 插件

  8. Idea 整合 svn 插件

  9. 使用 SVN 更新提交

  10. SVN 仓库分析

  11. SVN 协同修改 &冲突解决

  12. SVN 代码整合注意事项

  13. SVN 权限管理

  14. SVN 数据回滚

  15. TortoiseSVN

五、Maven

  1. Maven 环境搭建

  2. Maven 构建项目

  3. Maven 本地仓库配置

  4. Maven 中央仓库配置

  5. Maven 基本概念

  6. Maven 基本命令介绍

  7. Maven 于 Eclipse 整合

  8. Maven 于 Idea 整合

  9. Maven 创建 web 工程

  10. pom.xml、依赖管理

  11. 坐标、依赖、生命周期等

  12. Eclipse 下的 Maven 使用

  13. Maven 中 继承、聚合

  14. Maven 构建 SSH/SSM 应用

  15. 自动部署、持续集成、持续部署

六、项目开发实战 

总结

虽然我个人也经常自嘲,十年之后要去成为外卖专员,但实际上依靠自身的努力,是能够减少三十五岁之后的焦虑的,毕竟好的架构师并不多。

架构师,是我们大部分技术人的职业目标,一名好的架构师来源于机遇(公司)、个人努力(吃得苦、肯钻研)、天分(真的热爱)的三者协作的结果,实践+机遇+努力才能助你成为优秀的架构师。

如果你也想成为一名好的架构师,那或许以上这份 Java 成长笔记与学习路线你需要阅读阅读,希望能够对你的职业发展有所帮助。


用户头像

还未添加个人签名 2020.09.07 加入

还未添加个人简介

评论

发布
暂无评论
Alibaba最新发布:2021最符合Java程序员的“学习路线”