写在前面
搞我们这行的,需要不断学习,不断总结,否则,我们很快就要被社会所淘汰。由于,最近很多人私下和我讨论说:“我到底该怎么学习呢?”。东西倒是收藏了不少,微信收藏室,百度盘等各种盘里装的满满的,却从来没有开始学习过。
收藏从未停止,学习从未开始
我也是收藏专家,我百度盘里有4000多G,但我还是有学习的,只是学习的基本上不是收藏的资料。
视频实战
截图部分优质实战视频,还有很多很多.....,这里就不一一展示了。
扯远了,下面,结合本人这么多年的学习和工作经验,今天来和大家分享分享(可能不是很适合你,但是我觉得对于大部分人还是蛮适合的)。
我给大家整理出了五点:
第一点:选好技术栈
第二点:制定好规划
第三点:预估”工期“
第四点:挤时间学习
第五点:学会总结
下面我们就来详细地聊聊每个点:
选好技术栈
不管是上班族还是学生,咱们都得有个技术栈,也就是你最熟悉的那些框架。再直白点,就是你简历上写的,你熟悉的、掌握的、熟练的。
再次我给大家推荐几个技术栈:
第一个:Spring Spring Boot Spring Cloud Redis Mybatis MySQL。
第二个:Spring Spring Boot Dubbo Zookeeper Redis Mybatis MySQL。
第三个:Spring Spring Boot Spring Cloud elasticsearch Redis Mybatis MySQL。
这里就举三个例子,每个人的技术栈可能不同,咱们可以针对自己的经历来制定技术栈,比如当前相对前言的技术,或者自己已经非常熟练的技术栈,另外还有一些常规必须掌握的:JVM、多线程并发编程、Java基础。
如果可以的话,强烈推荐学习netty,因为很多框架中都是用到了netty。
选好技术栈,逐个攻破 !
既然,我们技术栈选好了,那接下来就是如何制定规划,如何学习。
制定好规划
在制定规划之前,咱们得先搞清楚,要学写什么内容,把学习的内容列出来。
下面我们以tomcat为例:
我们可以去官网看看,或者找本书看看tomcat有哪些内容,实在不行就找一本书来,按照其目录进行安排计划。
以学习目的为导向反推学习内容,这里我简单罗列一下:
- 从官方下载tomcat,解压到本地,跑起来,访问试试。
- 熟悉tomcat下面几个目录的用途。
- 写个Servlet项目,打成war,放到tomcat下,跑起来访问一下自己写的代码是否正确,
- 多搞几个项目试试,改端口、调整一些配置参数等,做到熟练使用。
- 学习tomcat架构,看看人家整体架构是怎么样的,混个眼熟。
- tomcat源码分析,找到启动类,找到解析配置文件的类,画点流程图,类图之类的。
- tomcat调优,官方也有说哪些地方不建议用户自定义,哪些地方用户可以选择性的自定义,哪些地方建议用户自定义。
- 总结tomcat整个学习过程,尝试着自己写一个简单版的tomcat,时间精力充足的话,还可以针对自己的简单进行优化版本升级等。逐步形成自己写的tomcat版本,也称之为高仿版,写全肯定很难,但是我们可以写重要功能点。
PS:不要把tomcat当做是个什么很牛逼的很难的,你要把tomcat想成是咱们业务系统中的一个小系统,然后通过不断完善,逐步形成一个系统(tomcat也是版本在不断升级的,我这么理解貌似也是没毛病的哈)。
依葫芦画瓢,我们学习其他框架技术,也可以用这种思路去学习,或许你还有你自己的一些更好的方法。总之,我们是为了学习更多更深更广,让自己早点变得牛逼起来。
预估“工期”
前面,我们已经把要学习的点,要实战的点都已经罗列出来了,此时,我们还要对此进行拆分。熟悉tomcat大概要多久,建议把时间稍微放宽点,但也别宽的离谱。
比如:下载tomcat,安装,访问,熟悉目录可以设置为2个小时。使用tomcat跑自己的项目设置2个小时....
这样我们就能够计算出一个预估工期,接着,我们就针对每周有多少时间是自己的,从而,我们就能知道自己什么时候能搞完。但考虑很多技术是需要电脑实战的,所以还得考虑是否满足条件。比如:每天业务代码忙成狗了,根本没时间使用电脑干这些,所以,这时候还得规划好,是否可行。
任务拆分,算出工期。
挤时间学习
时间就像海绵里的水,看着没有,挤挤还是有不少的。
我把我们这行的人分为两种:
- 有时间摸鱼的
- 没时间摸鱼的
有时间摸鱼
看到这类人,我只想说我很羡慕你,但是如果你不利用好摸鱼的时间,我反而觉得还不如那些每天很忙的人。摸鱼的时间不利用好,天天看一些没有营养的东西,碎片化的东西,迟早把自己给搞废了(大神除外,但貌似我见过的大神们反而更爱学习,更自律)。
建议有时间摸鱼的朋友,可以选择性的学习技术或看某一类的书籍,或把工作多多总结总结,技多不压身。
没时间摸鱼
关于每天忙成狗了,每天上班喝水的时间都没怎么有,上厕所都可能是跑着去跑着回来的,每天开会时间太多,下班后开始码代码....真的很苦逼,但也很充实。人活着就是折腾嘛,不折腾,趁年轻多折腾也是好事。但是如何学习呢?我说一个我本人亲身经历,2017年我在上海一家互联网金融公司上班,每天都很忙,那段时间主要是出现了很多项目搞完最后不让上线,使劲的催,赶紧搞完,最后说这个项目暂缓上线(后面就根本没上)。做过互联网金融项目的朋友,都知道,一个监管下达了一个什么政策,然后项目马上改,以最快的速度上线,主要他们可以对外吹牛逼说,你看我们系统完全就是符合监管政策的。
扯远了,回来继续聊,我那段时间怎么学习的,我住在浦东,上班在豫园那边,每天做公交上下班。从家里出发,坐的公交车是从第二站上次,然后倒数第二站下车,就是我们哪边上车都是第二站,还是蛮爽的,基本都有座位。我刚开始就是刷刷朋友圈,看看新闻,然后就到了。后面我忽然发现,我为什么不利用好这个时间呢?每天在路上的时间有两个多小时。最后,我决定使用微信阅读开始学习技术。接下来我就是用这种方式学习了差不多半年,感觉这半年我彻底的把自己一起的知识点给看了一篇,尤其是李刚的疯狂java我看了两遍,JVM也看了差不多两遍,还在B站上刷了Dubbo源码分析、Spring源码分析、Mybatis源码分析、设计模式。
我就是利用好了上下班时间,为了看视频,还可以去开通了无限流量。这半年时间后,几乎觉得最初的自己是多么的肤浅,多么的无知,很多技术都是停留在表面(尽管现在还是很无知很肤浅)。
如果你是挤地铁,其实也是可以利用好挤地铁的时间的,但是地图非常挤的另说,就比如我为什么说是半年时间呢,就是因为后面公司办公地方换了,新通的地铁刚刚在我住的小区边上有个站,所以每天就挤地铁,挤得要命,啥都干不了。
tips
关于自律性的问题,人性本来就是懒惰的,这个都是可以理解的。但,你可能不知道,比咱们优秀的人、比咱们有钱的人,可能比咱们更努力。
不吃学习的苦,必吃生活的苦。
学会总结
我们不光要学习,还得要对已经学习的进行总结,好记性不如烂笔头。
我自己比较喜欢的作总结的方法分享给大家:
- 写文档。整理成文档,因为可能会涉及到代码,建议使用markdown来记录。
- 写博客。写博客,这样也是一种笔记的方式,比如CSDN、博客园等。
- 流程图。整理成流程图,很多逻辑性比较强的,如果画成流程图,后面再复习回顾的时候,能快速捡起来。
- 思维导图。整理成思维导图,思维导图里主要是对知识点进行整理,整理成大纲模式,一眼就知道哪些重点,还可以把流程图放进去,也可以把对应博客地址放进去。
总结
本文主要分享了自身关于技术栈的选择、规划制定、任务拆分、挤时间学会等方面的内容,希望大家都能结合本文与自身情况,制定出属于自己的高效学习方式。
越努力,越幸运。