最近松哥在连载 Spring Security 系列,到目前为主,前前后后已经写了二十多篇了,从 Spring Security 入门开始,一步一步深入,直到现在。
当然这个系列还没有完结,目前还在继续连载中,欢迎小伙伴们保持关注。
有小伙伴看松哥的文章都是系列为主,不由得好奇,到底该如何成体系的学习一个框架?看书?还是看视频?还是看博客?
今天松哥结合自己的一些经验,和小伙伴们聊一聊这个话题。
1.系统性学习
1.1 为什么要系统性学习
为什么一定要系统性学习?不管你是不是做 IT,其实都有系统性学习的必要。
系统性的学习一个知识点,可以让我们在遇到问题时考虑的更加全面,这也是一个成熟的工程师应该具备的特征;碎片化的学习则很容易让我们得出一些片面的、甚至错误的结论。
然而,系统性学习需要耗费巨大的时间和精力,有的人可能会觉得不值得,就放弃了系统性学习,转而信仰复制粘贴改一下七字真言,一头扎进 CURD 的苦海。
工作之余和小伙伴们聊天,我也发现很多人都明白天天 CURD 的危害,想提高,但是不知道该从哪里入手?松哥告诉你,就从系统性学习入手。
1.2 系统性学习如何切入
很多小伙伴不清楚系统性学习该从哪里入手?我给大家举一个简单的例子:
公司想要结合 RabbitMQ 搭建一个邮件服务器,可是你从来没用过 RabbitMQ,那怎么办?工作中的事情都是比较急的,所以一般可能这样做:
- 网上搜一个教程,照着从头到尾搞一遍,成功了,工作搞定!不成功,就再搜搜一个教程搞,现在网上教程这么多,总有一款适合你。
当借助网上的教程把工作中的问题搞定了,从此 RabbitMQ 就扔在一边了,再也不管了,以后出了问题,再继续搜索。
相信这可能是大部分小伙伴的日常。如果你想系统性学习,这就是一个很好的切入点,请继续看:
如果在搞定工作之后,利用业余时间买一本 RabbitMQ 相关的书,或者翻一遍它的官方文档,再去认真的啃一遍它里边消息队列、消息发送和确认、故障恢复、故障转移、REST API 操作 RabbitMQ、监控、性能提升等等各个方面,把它从头到尾的认真啃一遍,那么下次当你再遇到 RabbitMQ 相关的需求时,写代码就信手拈来了,因为你已经熟知 RabbitMQ 有哪些特性、可以实现哪些功能,不用再去一遍遍百度搜索。
其实我们日常工作中,有很多可以系统性学习的切入点。当你 Coding 的时候遇到问题了,百度搜一下,复制粘贴改一下就完事了,也不去深究到底是什么原因,这时候其实就错过了一个系统性学习的机会。其实这个时候可以想一想为什么是这样,如果从当前问题这个点深挖下去,就会有惊喜。
有的小伙伴表示平时工作太忙了,没时间系统性学习,这个问题其实我很难给你什么好的建议,我只能说,时间挤一挤总会有的。我属于那种对自己比较狠的,所以我基本上不会有这个问题,工作再忙我都有时间学习,但是我这种方式可能并不是适合所有人。
2.如何入手一个新的框架
总体上来说,有这样几种方式可以选择:
- 看视频/网课
- 看书/看官网
- 网上看博客
三种方式有的人不知道通过哪种方式学习效果好,或者应该选择哪种方式,松哥在这里给大家稍微分析一下。
视频教程
- 优势:可以快速上手,短时间内了解到该技术的具体应用。
- 劣势:看视频比较费时间,所以大家看到各大视频网站一般都有倍速播放的功能。
看书
- 优势:书中的知识是成体系的,可以帮助读者构建关于一个知识点的完整知识体系;同时,看书也能更加深刻的理解某一个知识点。
- 劣势:书一般会有一点滞后性,毕竟知识点出来后,从写书到出版社出版发行,是需要时间的;另一方面就是对于新手而言,直接选择看书不一定看得懂。
看官网
- 优势:官网具备和书相同的优势,并且更加具备实时性。
- 劣势:大部分情况下,我们学习的技术官网可能都是英文的,所以这对读者的英文水平有一定的要求;另一方面就是官网的介绍虽然完整,但是却比较浅显,缺乏一些实际使用经验,从这个角度来看,图书融入了作者关于技术的使用经验,可能更胜一筹。
看博客
- 优势:博客能够触及到最新技术,而且获取极为方便,大部分的技术点网上都充斥着大量的博客。
- 劣势:大部分博客呈现碎片化知识,比较零散,不利于建立完整的知识体系。
了解了每种方式的优劣势之后,我们再来看学习步骤:
- 看视频快速入手,虽然略微花点时间,但是却是最有效的入门方式(如果你开发经验很丰富的话,或者直接撸书就能懂的话,可以跳过这一步)。
- 看书/看官网深入学习,充分发掘书系统性的特点。
- 看博客了解该技术的最新动态。
通过这样的方式,我们就能系统性的学习某一个知识点,进而逐步建立起自己的知识体系。
3.什么时候看源码比较合适
还有一个大家比较关心的问题,就是源码该怎么看?什么时候看比较合适?
这块我也来稍微说一下经验。
首先不建议一上来就尝试通读源码,这有点费时间。
源码阅读,建议采取“农村包围城市”的方式,即“点动成线,线动成面”,学习的时候,先学某一个技术点的应用,然后,结合具体的应用去分析相关的源码,这样源码阅读起来要容易很多。这块大家可以参考我最近在连载的 Spring Security 系列,基本就是按照这样的方式来的,每次讲完一个知识点,我会顺便带着大家看一下源码,这个时候源码看起来就不枯燥,很有意思。
当我们将一个一个知识点的源码攻克之后,最后再回过头从整体上看源码,你就会发现原来如此简单!
4.总结
系统性学习是一个漫长艰辛的过程,对自己来说也是一场修炼,松哥写了很多系列教程(参考不知不觉松哥已经撸了 8 个原创电子书了,今天打包下载!),不仅仅帮助大家掌握技术,对我自己来说,也是一个知识梳理与提炼的过程,我很享受这种一个系列完结后的轻松与惬意,所以每一个系列尽量避免烂尾。
说到系统性学习,如果大家想系统性学习 Spring Boot+Vue+微人事+Spring Cloud+Redis,那么不妨看看松哥录制的视频教程Spring Boot+Vue+微人事视频教程
好啦,今天周五就和小伙伴们随便聊一聊,下周我们来继续学习 Spring Security+CAS,小伙伴们敬请期待哦~