You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

58 lines
7.1 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 结束语 | 把学习当成一种习惯
你好,我是王新栋。
当你来到这节课的时候我们的课程已经接近尾声相信你在课程的学习中都有所收获。在最后的这节课我想跟你谈一谈如何学习OAuth 2.0 这门技术。
在谈起如何学习这个话题的时候,我很愿意跟你分享我的一些经历和经验。我个人认为,**学习从来都不是一件容易的事情,夸张一点讲有点“反人性”**。你想啊,谁不愿意,在工作忙碌了一天后,晚上回家多陪陪家人;又有谁不愿意,到了周末去找几个朋友打打篮球或者陪女朋友看看电影呢。但是,学习一定要养成一种习惯。我在《程序员思维修炼》这本书中读到这么一段话,分享给你:
> 知识投资也是一样。你需要定期投资最低限度的时间量。养成一种习惯,如果需要的话。躲到你的家庭办公室里去或者走进有无线网络的咖啡厅。并非每期学习都同样富有成效,但是只要定期安排学习,长期来看一定会成功。如果你一直在等待空闲时间或者等待灵感的突现,那么它永远都不会发生。
在具备了上面所述的“定力”以后,我再和你谈一谈具体的学习方法。
我按照层次由低到高把学习分为**基础学习、分析学习和主题学习**
* 基础学习,就是从知识点最基本的理论开始学习;
* 分析学习,就是对知识的结构脉络做梳理,并带着问题去学习;
* 主题学习,就是对同一个知识点,分别找到不同的资料来学习。
这样看基础学习和分析学习属于“点”的学习而主题学习就属于“面”的学习整体下来就是从点到面构建知识网络的过程。接下来我就和你说说OAuth 2.0的学习,是怎么对应到这三个层次的。
在基础学习的过程中我们要学习OAuth 2.0的四种基本角色包括资源拥有者也就是用户、客户端也就是第三方软件、授权服务、受保护资源服务还要学OAuth 2.0的四种基本授权许可类型,包括授权码许可类型、隐式许可类型、客户端凭据许可类型、资源拥有者凭据许可类型。
当确定了基础学习阶段的学习范围之后我们就要将这些角色带入到每个许可类型中让这些角色“转起来”这时你就可以像我一样用小明使用小兔打单软件的例子串起整个OAuth 2.0的工作流程。
在分析学习的过程中我们就需要将OAuth 2.0 的知识体系结构进行一个梳理同时把学习时遇到的问题都列出来然后逐一分析。这些问题可能是为什么授权码许可流程一定要有授权码为什么授权码许可一定要有两次重定向如何管理JWT格式的令牌的生命周期当访问令牌失效了一定要让用户重新授权吗刷新令牌会一直有效吗ID令牌和访问令牌之间有联系吗等等。
在主题学习的过程中我们可以把要重点理解的内容当成一个主题去“横向”地学习。怎么才能叫做横向呢比如要知道PKCE到底解决了什么问题那么你就可以把PKCE当成一个主题来学习你要去查阅跟它相关的任何资料可以找OAuth 2.0 的官方文档,可以看咱们的专栏,也可以看其它与之相关的书籍等等。总之,这是你的一个“研究方向”。
在掌握了基础学习、分析学习和主题学习这三个层次的学习方法之后,我还有一招儿,就是配合 **“输出倒逼输入”**来加强学习效果。
有一天我在图书馆看书时,回想起自己这些年在公司内外做分享和写书的经历,猛然间脑子里面蹦出了“输出倒逼输入”这个词儿,一下子想通了输出对于技术学习的重要性。再后来,我刷朋友圈里别人分享的文章时,也看到了这个词。再到后来,我在读《如何阅读一本书》时,看到了其中有这样一句话“阅读与写作的互惠”,又再次印证了这一点。
那我再分享自己的一个小故事吧。有一年618刚结束京东大学的同事就来找我问我愿不愿意做一次618大促备战的复盘分享而且要在一周内准备好要分享的内容。虽然时间很紧张我也不知道自己要分享什么内容甚至连思路都还不清晰但我还是毫不犹豫地答应了下来。输出倒逼输入嘛。
在接下来的准备时间里,我从要备战内容的点点滴滴,到系统黄金流程的识别过程,再到人员的培训,分别进行了梳理,逐渐形成了自己的一套备战方法论,完成了那次的大促复盘分享,也获得了同事们的很多正反馈。
你看,要不是因为有“输出”的逼迫感,我可能就不会去做这个复盘,也不会沉淀自己的方法论。正所谓备战在平时,后来我和团队就把这套备战方法论落到了日常工作中,时刻保证着系统的稳定运行。
这就让我无比坚信,“输出倒逼输入”是一个绝好的学习方式。
那具体到我们的课程中,该怎么运用这个方法呢?
最简单的,自然就是留言了。永远不要觉得看完文章就是学会了,要知道,任何一种思想都不可避免地带有局限性,想要拥有更高维度的见解,前提是你见识过足够多、足够好的东西。
因此,你要多输出自己的想法,抛出引子,比如你对某些内容的深入思考、你在工作中积累的独特经验,甚至是你对我的一些观点的质疑,等等。我和其他同学看到了你的留言,也会和你讨论,我们的思想交叠碰撞,你的知识厚度必定会有所增加。
除了零碎的留言你还可以进行系统的梳理制作一些思维导图、PPT或者是写成文章在公司内部做一场分享。最后你得到的是一套知识体系同时也可以增加你在公司里的“出镜率”这是不是一举多得呢
当然,这种方式绝不仅限于咱们课程的学习,希望你总能积极地向外传达你的想法。带着惊喜的输出亮相,理所当然地会得到未知的惊喜。
到这里,我们相伴而行的时光也就接近尾声了,接下来,我们要回归各自的赛道了。在此之前,我很想很想跟你说一句“敬佩”。
你不知道的是,在你坚持学习的时候,有很多人都掉了队,站在终点回头去看,不知不觉中你就成为了极少数人。放大到整个人生去看,只要持续走极少数人走的路,你就能成为极少数人。
**“将每一个忙碌、充实的日子,累积成酣畅淋漓的生命”**,希望我们都能活到淋漓,与你共勉。
我在这里为你准备了一份[毕业问卷](https://jinshuju.net/f/YJJsnf),题目不多,希望你能花两分钟填一下。我非常期待能听你和我说一说,你对这个课程的想法和建议。今天虽然是结课,但我还会继续关注你的留言,也希望你能继续学习这个课程的内容,并会通过留言区和你互动。最后,再次和你一声“感谢”。