给自己制定一个学习计划
前言
这篇学习计划,借鉴了我很喜欢的一位博客园博主“五月的仓颉”所写的几篇文章,同时也针对自己的情况改了“关于我在什么时间学习”。以后看到这篇博客,能够时时刻刻警惕自己,努力,奋斗,向优秀的人学习。
“五月的仓颉”博客园主页链接:https://www.cnblogs.com/xrq730/
为什么我要不断学习
-
努力,是因为同班同学都小有成就、聚会侃侃而谈、畅聊人生,而我们却只能在一旁默不作声。
-
努力,是因为在工作中别人可以深入底层写框架、搞架构,而我们却只能日复一日地增删改查。
-
努力,是因为明天马上我们就要去面试,却有太多问题茫然而不知所措。
关于我在什么时间学习
- 午休时间
- 13点30开始午睡,午休时间用来看一些比较快的知识点,有40分钟的时间。
- 来回宿舍的路上
- 同样用来看一些比较快的知识点,每天早上8点10分出门,到达岗位9点整,再加上回宿舍的时间,有1个小时的时间。
- 周末和小长假
- 周末每天可以拿出4个小时的时间,回顾一下最近的工作,没有弄懂的地方研究一下。也可以看一些技术方面的书籍。
- 长假
- 系统性的研究比较大的知识点,多敲一些例子,最好能够写一些博客进行记录。
- 下班
- 每天用2个小时的时间巩固自己的基础。
学习方法
学懂 —> 写出来让别人懂 —> 说出来让别人懂
学习的方向
基本功、基本功、基本功。
Java语言层面:
- 《Effective Java中文版》,至少看三遍。
- 基本的东西扎实之后,学习JDBC、序列化、文件IO、Socket IO之类稍微进阶的东西。
- 设计模式,策略、模板、工厂、状态等。
- 集合框架ArrayList、LinkedList、HashSet、Queue、HashMap、HashTable、ConcurrentHashMap等,什么时候用哪种数据结构,每种数据结构其优缺点。
- 多线程的学习,《Java多线程编程核心技术》作者高洪岩。
- 源码的学习。
- JVM学习,《深入理解JVM虚拟机》,至少看五遍。
框架层面:
- Spring
- MyBatis
- SpringMVC
- Netty,现在大量Java组件使用,例如dubbo、Jetty、Tomcat等,以后编写高性能网络通讯框架时,必然Netty框架也是首选。底层原理、基本用法、线程模型、粘包拆包及解决方案等。
非Java层面(不分前后次序):
- Java大多数都是用来做网络这一块,因此需要对网络有一定了解,包括TCP、HTTP、长短链接、WebSocket、epoll模型等。
- MySQL,从基本语法到存储引擎、数据结构、索引、锁、最重要还需要定位什么是慢SQL。
- 缓存,Redis,至少需要知道缓存的使用场景以及缓存的基本用法。
- 消息中间件,有什么用,使用场景,有哪些常见的消息中间件,简单原理,点对点模式和发布订阅模式的区别。
- 容器,例如Tomcat、Jetty、JBOSS,一些基本配置。
- 分布式概念,为什么需要分布式,CAP理论,常用的负载均衡算法(尤其以一致性Hash算法最为重要,原理、作用)、分布式锁、熔断、服务降级、分布式一致性等,这方面需要学习的非常多。
- Linux服务器相关知识,操作系统原理。
总结
借鉴“五月的仓颉”说过的一句我很喜欢的话:“我只是一个程序员,这就是我现在纯粹人生的全部。希望每一天,我都可以成为更好的自己。”
附录
参考文章
1.《为什么要不断学习》 链接:https://mp.weixin.qq.com/s/i0ije0dC7_htOS9ZKIwiSw
2.《工作这么忙,哪有学习时间》 链接:https://mp.weixin.qq.com/s/Syxra7rrJzJ-wLBdMLoUwQ
3.《分享一些我的学习方法》 链接:https://mp.weixin.qq.com/s/y8BgHBQcPy5cCgDfAcq_Ow
4.《学习、学习、学习,我们到底应当走怎样的学习路线》 链接:https://mp.weixin.qq.com/s/pJHCcdX6ZV2MjzCMVg-fnQ
5.《我们努力的动力在哪里》 链接:https://mp.weixin.qq.com/s/Prc3EYYyhXlT1eq29ay3gQ