<audio id="audio" title="16 | 导学：你应该掌握哪些学习方法？" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/5c/fb/5c116ae4fa4b6f120936b5f59f0c63fb.mp3"></audio>

你好，我是华仔。

从今天开始，我们进入到课程的第三部分，学习方法。

我相信绝大部分人都是愿意通过学习来提升自己的，但是在你学习的过程中，肯定会遇到很多困难。比如在之前的课程中，就有同学提出了非常典型的问题：<br>
<img src="https://static001.geekbang.org/resource/image/f1/a1/f1146ee66f4058818cd5676cb889f3a1.png" alt=""><br>
不知道你是不是也有这样的感受：光是上班累得要死，还要陪对象吃饭逛街看电影，或者送孩子去上培训班，根本就没什么时间学习；等到哪天好不容易有点空余时间，又因为没有计划，只能随便找本书或者上网水水论坛看看；就算知道要针对某个技能专门提升一下，也不知道怎么学才能达到精通水平；过段时间回头一看，前几周学的东西又忘得差不多了；跟别人交流一下子就暴露了水平……

其实你遇到的这些学习相关的困难，我在过去的职业生涯中也都遇到过。为此，我看了很多书来学习各种学习技巧，同时我自己也尝试总结了一些更加适合互联网行业的学习技巧。经过多年的实践检验和筛选，我逐步形成了一套系统的学习方法。

现在，我就把这一套方法分享给你，让你能够用最少的时间实现最好的学习效果。

## 指导原则和关键问题

我认为一套系统的学习方法，既需要一个统领全局的宏观指导原则，让人能够一目了然地理解它的核心内容，同时也要能够回答以下四个关键问题：

1. **时间从哪里来？**如果没有足够的时间投入，再好的理论也只是纸上谈兵。
1. **学什么？**找到正确的学习方向，明确了学习的目标，才能做到有的放矢。
1. **怎么学？**不同的学习目的应该有不同的学习方法，保证学习的投入产出比。
1. **怎么保证学习效果？**如何解决“学了用不上，学了就忘”两个常见影响学习效果的问题。

按照这个思路，我将这套学习方法的大纲整理如下，方便你了解。<br>
<img src="https://static001.geekbang.org/resource/image/c8/9b/c8b4b226a23134bd423a75011166189b.jpg" alt="">

接下来，我逐个简要介绍一下。

## 简介

### 指导原则：10000小时定律

总的指导原则是10000小时定律，它是一个很出名的用于专业领域提升的理论，有大量的相关资料可以参考（例如《异类》《1万小时天才理论》等），其核心思想是如果你想要在专业领域不断提升自己的能力，必须投入足够的时间。

### 找时间：海绵学习法

10000小时可不短，相当于平均每天3小时，持续10年时间。我们平时光是工作就已经“累成狗”了，可能还有家人需要照顾，怎么才能找到自己的10000小时呢？这就要靠海绵学习法了。

海绵学习法是我原创的一个时间管理方法，它可以让你轻松地挤出时间，既不会对工作、家庭和娱乐有明显的影响，又能够兼顾学习。

### 学什么：三段分解法

有了时间之后，我们要学什么呢？怎么才能制定合理的学习目标呢？如何制定可行的学习计划并能够真正落地呢？这就要靠三段分解法了。

三段分解法是我原创的制定学习目标和计划的方法，它基于职业等级体系，将10000小时逐级分解，最终落实到可以实施的各项学习行动。

### 怎么学：链式&amp;环式&amp;比较学习法

确定目标和计划后，我们具体要怎么提升技术能力呢？在职级详解部分你已经了解到，技术能力可以拆解成三个维度，技术深度、技术宽度和技术广度。我在第9讲解释过这三个维度的区别。

针对技术能力的不同维度，我原创了3个不同的学习方法：

- **链式学习法**适合提升技术深度，通过自顶向下逐步深入的方式，将关联技术逐一掌握。
- **比较学习法**适合提升技术宽度，通过比较相似的知识或者技能，全面掌握单个领域的技术。
- **环式学习法**适合提升技术广度，通过学习业务闭环流程中相关技术，全面掌握多个领域的技术。

### 保证效果：Play学习法、Teach学习法

就算用对了方法，我们在学习过程中还是会遇到一些难以解决的困难，这些困难会导致我们学习效果不好。

第一个常见困难是，如果平时不学，真正要用的时候又来不及临时学；但如果平时学了，可能要等很久才能在工作找到的实践机会，到时候技术可能都生疏了。

第二个常见的困难是，学完之后感觉学得不深，跟别人讨论的时候，或者在晋升答辩环节被问到的时候，就发现很多东西明明学过，却说不出个所以然来。

针对这两个常见影响学习效果的问题，我通过学习和实践，归纳提炼出如下两种学习方法：

- **Play学习法**可以用来解决工作中暂时没有实践机会的问题，学以致“玩”，通过“玩耍”的方式来应用。
- **Teach学习法**可以用来解决学得不深的问题，教学相长，通过“教学”的方式来加深理解。

## 组合使用

最后，我还想补充一点，这些学习方法是相辅相成的，你可以根据你当前的级别和实际工作内容，把它们组合起来使用，具体的方式如下：

第一步，无论你当前是什么级别，先用“三段分解法”来规划你的学习目标和计划。

第二步，使用“海绵学习法”来找到你可以用于学习的时间。

第三步，根据学习目标采取相应的学习方法。

- 如果你是Java后端P5/P6/P7级别，你的技术提升以技术深度为主，你可以采取“链式学习法”来学习MySQL以提升技术深度；
- 如果你是P7/P8级别，除了技术深度外，还需要提升技术宽度，你可以采取“比较学习法”来学习PostgreSQL、MongoDB和Elasticsearch等存储系统；
- 如果你是P8/P9级别，你可以采用“环式学习法”来学习跨领域的技能，比如学习vue、小程序和人工智能等业务闭环流程涉及的技术领域。

<img src="https://static001.geekbang.org/resource/image/5c/85/5c5c54f21f09yyc7967e7b690028a285.jpg" alt="">

当然，并不是说每个级别都只能用指定的学习方法，例如Java后端P6/P7的技术人员一样可以使用“环式学习法”从整体上概要地了解前端的基本原理。

第四步，采用“Play &amp; Teach学习法”来加强效果。

## 小结

现在，我们总结一下这一讲的重点内容：

1. 一套系统的学习方法，既需要一个总的指导原则，也需要回答4个关键问题：时间从哪里来？学什么？怎么学？怎么保证效果？
1. 在我总结的这套学习方法中，10000小时定律提供了指导原则；海绵学习法解决了时间从哪里来的问题；三段分解法解决了学什么的问题；链式、环式和比较学习法解决了怎么学的问题，Play和Teach学习法解决了怎么保证学习效果的问题。
1. 学习方法是相辅相成的，你需要基于当前的级别和工作内容，把多个方法组合起来使用。

## 思考题

这就是今天的全部内容，留一道课后思考题给你吧。你在学习过程中遇到的最大困难或者困惑是什么？你尝试了什么解决方法呢，效果怎么样？

欢迎你把答案写到留言区，和我一起讨论。相信经过深度思考的回答，也会让你对知识的理解更加深刻。<br>
<img src="https://static001.geekbang.org/resource/image/f8/da/f88ef84d86c7f15f55c3a8a134f01bda.jpeg" alt="">
