<audio id="audio" title="结束语 | 把学习当成一种习惯" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/70/0e/7023605ff46e2e92e7dc6f8eb38cff0e.mp3"></audio>

你好，我是王新栋。

当你来到这节课的时候，我们的课程已经接近尾声，相信你在课程的学习中都有所收获。在最后的这节课，我想跟你谈一谈如何学习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)，题目不多，希望你能花两分钟填一下。我非常期待能听你和我说一说，你对这个课程的想法和建议。今天虽然是结课，但我还会继续关注你的留言，也希望你能继续学习这个课程的内容，并会通过留言区和你互动。最后，再次和你一声“感谢”。
