【400天学习日记】非科班学习Java路线规划
这是个常见的问题,好像没有具体分享过,再说一次吧(其实每次分享学习经验我也挺不好意思的,说学校我也就是个普通211,说水平我数据库只会个mysql,说算法easy我还要看答案。。)
Java面试的话,主要包括Java本身和计算机基础两大类:
- Java
- 基础(语法、数组、集合、多线程...)
- 虚拟机(分区、垃圾回收器...)
- 网络(过滤器、拦截器、Servlet...)
- 框架(SSM、Spring Cloud、Mybatis...)
- 计算机基础
- 网络(分层模型、TCP、HTTP、网络安全...)
- 操作系统(进程/线程、死锁、Linux...)
- 数据结构(链表、栈、堆、二叉树、哈希...)
- 数据库(MySQL、Redis...)
- 设计模式
- 算法(基本排序、二叉树、递归...)
具体的学习路线肯定是因人而异的,没有标准答案,我只能说下自己推荐的大致路线:
Java方面:语法-》网络-》框架,虚拟机和多线程建议有一定基础后再进行学习
计算机基础方面:网络和操作系统可以并行学习,数据结构可以再学完Java语法后学习Java版的数据结构,数据库在语法-网络中间会学到,一般教程里都有,设计模式也是建议有一定基础再学习,算法的话每天尽量至少刷一题
Java的重点我觉得还是在基础和框架的应用,虚拟机几乎工作中用不到不要花费太多时间,要分清楚哪些学了是实际应用的,哪些是为了应付面试的。为了面试的话,少做多背重应付,为了工作的内容,多做少背重应用。
网络的重点还是TCP和HTTP、操作系统的重点就是进程线程和死锁、Linux看看基本操作命令就好,Linux确实让人感觉很难,不过装一个虚拟机多练练其实发现也就罢了、数据库方面,MySQL的重点就是ACID、索引、锁那些,redis就是五种数据结构的基本原理和指令吧,设计模式也不需要深入了解,单例、工厂、代理这些使用较多、算法的话牛客网的剑指Offer就足够了。
目前工作当中,我觉得用的最多的还是就是SSM吧,其它就是Java的基本语法了,不会的再百度。我可能会比较后悔在虚拟机浪费了很多时间,还有就是多线程的一些锁源码原理上。工作后发现应用起来学习要比之前为了背题学习理解快很多,没工作前都是一个个点,工作了才能连成一条线,焦虑需要适度,是人都能找到工作的。
附上当时的秋招备战日记供参考:
8月
27日 开始学习达内u3d网课 1-8节
28日 9-16节
29日 17-30节
30日 31-47节 (面试失败)
31日 48-65节 做了彩票系统
9月
1 日 66-74节 做了2048游戏(存在错误)
2 日 75-87节 发了第一篇博客
3 日 88-99节 发了一篇博客
4 日 100-111节 开始阅读C#本质论7.0
5 日 112-125节 阅读进度52/690
6 日 126-133节 阅读至74(22)
7 日 阅读至125(51)
8 日 阅读至168(43)
9 日 阅读至222(54)
10日 阅读至271(49)看了继承 委托
11日 线性表 单链表 数组栈
12日 委托网课
13日 事件 链栈 队列 树
14日 开始阅读C#入门经典(54)
15日 开始Java基础 leetcode 2道
16日 leetcode做题11道
17日 Java程序设计1-5章 leetcode 5道
18日 Java程序设计6-8章 leetcode 5道
19日 Java程序设计9-12章 leetcode 3道
20日 Java程序设计13,17,18章 lc 3道
21日 牛客网141道
22日 Java泛型 牛客70道 leetcode3道
23日 Java黑马 基础语法113节
24日 Java黑马 API继承接口多态 81节
25日 Java黑马接口10节 牛客300道
26日Java黑马API集合泛型43节 lc1道
27日 Java黑马map异常36节
28日 Java黑马 异常线程File类58节
29日 Java黑马 输入输出流44节
30日 Java黑马 TCP/IP 函数接口流42节
10月
1日 方法引用 反射注解(32)
2日 完成牛客java选择(281)(共1316)
3日 开始mySQL(36) +1
4日 开始JDBC(45)
5日 开始HTML CSS JavaScript
6日 开始Tomcat XML Servlet(2) +2
7日 Servlet(11) request(18)
8日 response(22) cookie(11)
9日 session(14) EL&JSTL(19) 计网1.1
10日 安装linux,mysql filter&listener(16)
11日 Redis(17) Ajax(7) jq(5) 计网1.2-3 4.1
12日 Ajax(8) Redis(3) mysql 计网 +2
13日 Maven (18) +1
14日牛客选择337计网4.3核心卷 +2
15日 核心卷(27) 操作系统第一章 +16
16日 核心卷(56) +300
17日 计网Ch1 操系 Ch1 核心卷(20) +2
18日 核心卷(44) +16
19日 核心卷(72) 安装 GitBash
20日 Mybatis(10) +10
21日 整理浦发代码 (35)道
22日核心卷 集合 操作系统2.1
23日 mySQL 剑指offer +13
24日mySQL 核心卷(33) +9
25日 线程 单例模式 转账小case + 4
26日 完善转账case 集合映射 +5
27日 排序 慕课MySql-1 +2
28日慕课MySql-2~4 线性表 +2
29日 慕课JDBC 反射 操作系统2.2 +3
30日黑马Spring(27) +4
31日 黑马注解(7)SpringIoc(19) +1
11月
1日 黑马动态代理转账case(10) +1
2日 黑马Aop(10) 左神算法1
3日 黑马Spring事务(17) 左神算法2 +1
4日 黑马SpringMVC(24) +1
5日 黑马SpringMvc(14) +1
6日 SpringMvc(7)Mybatis(17) 左神算法
7日 SpringBoot入门
8日 blog项目 前端(1-7)
9日 blog项目 前端(8-14) +1
10日 blog项目 前端 搭框架(15-21) +1
11日 blog项目 前端页面处理(22-27)
12日 blog项目(28) 线程(2) +1
13日 join/死锁 计网 OS同步 +4
14日 OS同步、死锁 计网整理1.4 +4
15日 计网整理2.6 +1
16日 计网整理3.3
17日 计网整理3.6 +800 +4
18日 计网整理4.4 sql+8 +2
19日 计网整理4.9 sql+8 +2
20日 计网整理5.8 sql+7 +1
21日 计网整理5.9 JavaSE整理 sql+1
22日 JavaSE整理 +1
23日 渡一IO上 +2
24日 IO下 反射上 +1
25日 反射下 注解 +3
26日 JVM(1-7) +3
27日 JVM(8-11) OS内存管理
28日 JVM(12-15) OS虚拟内存 +4
29日 GC(74-77)+5
30日 CMS(84-85)+4
12月
1日 GC(78-82)+4
2日 GC回顾(86-89)OS文件管理 +2
3日 G1 并发基础 并发(1-5)+4
4日 多线程 +6
5日 MySQL(1-42)leetcode+11
6日 MySQL(43-81)leetcode+11
7日 MySQL(82-96)leetcode+12
8日 MySQL(97-123)+4
9日 MySQL(124-146)leetcode+8
10日 MySQL(147-178)+5
11日重装linux MySQL leetcode+6
12日 多线程(1-21)+9
13日 AQS CAS 锁相关 +6
14日 锁 线程通信 +5
15日 原子变量类 +8
16日 容器 同步工具类 +5
17日 Executor 线程池 +2
18日 JDBC(1-19) +5
19日 JDBC(20-40) +4
20日 JDBC(41-55) +4
21日 Linux(1-30) +3
22日 Linux(31-61) +4
23日 Linux部分内容 JS +6
24日 xml tomcat +5
25日 servlet request +3
26日 response +4
27日cookie session +4
28日 JSP EL JSTL +3
29日filter listener +3
30日 jQuery Ajax +1
31日 Json +1
2020年
1月
1 日 Redis(30)+1
2日 Redis(16) +4
3 日 Mybatis(1-26) +1
4日 Mybatis(27-51)
5日 Mybatis(52-75) +4
6 日 Spring(1-52)+4
7日 Spring(day3 day4)
8 日 选择插入冒泡归并排序的总结
9日 快速堆希尔排序的总结
10日 项目UI改进 +8
11日 算法总结 数组 字符串
12日 算法总结 链表
13日 MySQL总结 day1
14日 MySQL总结 day2
15日MySQL 总结day3
16日 视图 变量 索引
17日 存储过程 函数 分支结构
18日 循环结构 游标 触发器 sql优化
19日 索引的使用 sql优化
20日 查询缓存 内存管理 并发参数
21日 锁 sql技巧 mysql常用工具
22日 算法x4
23日 算法x2
24日 算法x3
25日 算法x1
26日 算法x4
27日 算法x6
28日 算法x4
29日 算法x1
30日 mvc(1-3) +1
31日 mvc(4-7) +2
2月
1日 mvc (8-15) +1
2日 mvc (16-25) +1
3日 mvc(26-31)
4日 mvc (32-41)
5日 mvc(42-48)
6日 算法x5
7日 maven高级1-9
8日 maven高级10-14 +3
9日 JPA (1-16) +1
10日 JPA (17-37)
11日 JPA (38-58) +1
12日 JPA (59-69) +7
13日 JPA(70-86) +6
14日 springboot
15日 springboot +4
16日 leetcode+18
17日 Vue入门1-24
18日 vr的登陆UI +1
19日 spring security +3
20日 apache shiro
21日 数据库表设计 开题一半
22日 开题写完 一套笔试题
23日 环境搭建 笔试题
24日 工具类 笔试题x4
25日 部门模块 +1
26日 用户模块
27日 用户模块 +6
28日 权限模块 +8
29日 权限点
3月
1日 角色模块 +1
2日 角色权限 sql+5 +1
3日 权限拦截 3套题 +1
4日 redis缓存 两套题 +1
5日 黑马Java进阶 静态、继承、引用 +1
6日 黑马Java进阶d2 设计模式 +1
7日 黑马Java进阶d3 设计模式4 +1
8日 黑马Java进阶d4 设计模式4 +1
9日 黑马Java进阶d5 1/2 设计模式4 +2
10日 黑马java进阶d5 设计模式3 +1
11日 黑马Java进阶d6 1/2 设计模式4 +1
12日 黑马java进阶d6 +2
13日 黑马Java进阶d7 +1
14日 黑马java进阶d8 1/2 +1
15日 黑马java进阶d81/2 +1
16日 黑马java进阶d9 1/2 +1
17日 黑马java 进阶d9 1/2 +1
18日 黑马java进阶d10 +1
19日 黑马java进阶d11 1/2 +1
20日 阿里笔试0分 黑马javad11 +2
21日 黑马java d12 +2
22日 牛客基础题+52 JVM总结+1
23日 牛客基础题+18 网络总结 +1
24日 阿里电话面 总结面试21题 +2
25日 总结面试21题 +4
26日 阿里电话面 总结面试21题 +2
27日 总结面试37题 +2
28日 总结面试49题 +1
29日 总结面试53题 +1
30日 总结面试19题 +3
31日 git +1
4月
1日 zookeeper day1 +1
2日 zookeeper day2 +1
3日 zookeeper day3 +1
4日 富途笔试 zookeeper +1
5日 rpc +1
6日 dubbo +3
7日 kafka day1 +4
8日 kafka day2 +1
9日 tw笔试 +1
10日 tw 面试 +2
11日 spring设计原则 +1
12日 spring工厂模式 +1
13日 spring 单例模式
14日 招行面试 完美世界笔试 +1
15日 spring设计模式 +1
16日 阿里电话面试 整理面试知识
17日 整理面试题
18日 整理面试题
19日 整理面试题
20日 富途一面过
21日 整理面试题
22日 富途二面过
23日 富途hr面 tw二面
24日 字节一面 前后端分离项目上
25日 前后端分离项目下
26日 并发整理
27日 并发整理
28日 并发整理 + 15
29日 动态规划算法+10
30日 复习笔记 基础+算法
5月
1日 整理笔记复习笔记
2日 整理JVM笔记 二叉树算法17
3日 整理笔记+二叉树算法16
4日 整理集合等+二叉树算法 25
5日 并发笔记 + 二叉树算法14
6日 并发笔记 + 二叉树算法30
7日 并发笔记 + 数组算法
8日 并发笔记 + 链表算法
9日 数据库习题
10日 剑指Offer50题
11日 剑指Offer 15题 MySQL总结
12日 MySQL总结 算法7
13日 gradle spring 算法20
14日 完成spring 开始mvc 算法6
15日 完成mvc 算法
16日 springdatajpa 算法
17日 完成jpa
18日 学springcloud
19日 完成springcloud 广联达一面
20日 整理网络 算法x9
21日 学习 mybatis
22日 学习 mybatis Java操作execl
23日 完善硫酸稀释功能 修改开题报告
24日 开始做开题ppt
25日 做完开题ppt
26日 改了改ppt
27日 Scala 1-61 广联达二面
28日 Scala 62-108
29日 Scala 109-156 广联达offer
30日 Scala 157-184
31日 Scala 185-221
6月
1日 tw实习
2日 tw实习
3日 算法 x 4
4日 排序 算法x 1
5日 网络编程 1.1-2.3 算法x2
6日 网络编程 2.4 - 5.14 算法x2
7日 网络编程 6.1 - 7.9
8日 网络编程 8.1 - 10.6
9日 网络编程 算法x3 开始整理复习笔记
10日 复习排序和设计模式
11日 复习JavaSE
12日 复习 JavaSE 和 JVM
13日 复习 集合 JVM
14日 复习并发
15日 复习 Spring
16日 复习MySQL
17日 开始整理算法
18日 redis 算法x6
19日 redis 算法x10
20日 redis
21日 算法x2
22日 tcp/ip HTTPS
23日 更新复习笔记
24日 更新复习笔记
25日 更新复习笔记 http
26日 复习 TCP 网络安全
27日 整理完网络安全
28日 做ppt 算法x7
29日 算法x4
30日 springcloud
7月
1日 整理复习资料,准备面试
2日 shein 一面
3日 整理复习资料
4日 整理复习资料
5日 整理复习资料,准备面试
6日 字节一面挂
7日 开始做牛客网项目
8日 开发社区首页、git
9日 发送邮件、注册
10日 验证码、登陆退出
11日 显示登录信息、账号设置
12日 修改密码功能、检查登录状态
13日 过滤敏感词 shein 二面
14日 发帖、帖子详情、评论、回复
15日 私信、异常
16日 核心小论文
17日 点赞、关注、取消关注
18日 关注和粉丝列表,优化登录
19日 算法x8
20日 打印资料 算法x3
21日 算法x7
22日 整理复习资料
23日 整理复习资料
24日 整理复习资料
25日 整理复习资料
26日 kafka 发送系统通知
27日 显示系统通知
28日 整理复习资料
29日 整理农行资料
30日 整理农行资料 + 8
31日 整理 linux 命令
8月
1日 奇安信笔试
2日 整理笔记
3日 整理设计模式、JVM
4日 整理并发
5日 整理 mysql、redis
6日 整理网络 算法
7日 算法x11
8日 网易笔试 算法x4
9日 算法x5
10日 算法x5
11日 农行行测+算法
12日 行测 数据库 b站笔试题
13日 b站笔试
14日 算法x5
15日 算法x4 unity连通spring
16日 算法x1
17日 unity get 农行选择
18日 unity post 完成小论文
19日 算法x3
20日 tw笔试 总结计网
21日 tw面试 总结计网
22日 学校开会 总结 OS
23日 总结Java基础
24日 总结 JVM
25日 总结 并发
26日 总结 框架
27日 tw 群面
28日 随便复习
29日 农行笔试 烽火笔试
30日 缩减redis笔记
31日 中信笔试
9月
1日 烽火一面
2日 绿盟一面 联影一面
3日 烽火二面 整理网络、操作系统
4日 修改小论文投稿 整理Java基础
5日 整理JVM
6日 中移物联网笔试 整理并发
7日 整理框架
8日 联影二面
9日 浙商一面
10日 复习农行
11日 复习农行
12日 浙商笔试 咪咕笔试
13日 复习农行
14日 复习农行
15日 农行一面
16日 大华一二三面
简历尽量一页就行了,别太多废话
结构:教育经历、技能、项目(最多2个)、奖项、爱好