我最近开始重新理解“学习”这件事

关于上下文、主动输出、问题管理、实验与时间结构的一次学习方法复盘。

在最近的学习过程中,我逐渐发现,真正拖慢我的往往不是某一个知识点有多难,而是学习过程本身存在一些问题。

比如任务中断之后忘记自己做到哪里,输入很多却很少主动输出,问题越问越多,一个小问题耗掉半天,或者花大量时间理解理论,却迟迟没有真正动手。

针对这些问题,我尝试让 AI 结合我的实际情况帮我寻找解决办法。最后整理下来,我发现很多问题其实都有非常具体的应对方式。

1. 中断之后,上下文丢失

这其实可以分成两种情况。

第一种是忘记当前任务进行到了哪里

比如隔了一天重新打开项目时,我已经不记得昨天改了什么、接下来应该做什么,于是只能重新阅读代码、聊天记录和文档,无形中做了很多重复劳动。

解决方法很简单:每次停手之前,留下三行记录:

  • 我刚才在做什么?
  • 下一步要做什么?
  • 目前卡在哪里?

这样下一次回来时,不需要重新构建整个上下文,只需要沿着这三行继续往下走。

第二种则是记得做了什么,却忘记了为什么要这么做

比如我可能记得 Node.js 需要监听一个端口,却已经说不清为什么一定要监听端口。

这种情况就不是任务管理的问题,而是说明这个知识点其实还没有真正掌握。

前一种需要靠记录解决,后一种则需要重新理解。

这两件事看起来很像,但本质完全不同。

2. 输入太多,输出太少

以前学习时,我经常会产生一种错觉:

只要我把答案看懂了,我就已经会了。

但“看懂”其实只是识别,而不是掌握。

真正检验自己是否理解的方法,是在看完解释之后,把答案关掉,然后尝试自己重新构造整个过程。

如果能够脱离原答案,用自己的语言解释出来,甚至能够自己重新做一遍,才说明这个知识开始真正变成自己的东西。

如果做不到,也没关系。

恰恰是在重新构造失败的时候,我才能知道自己究竟卡在哪里,然后针对性地补漏。

所以现在我更希望自己的学习过程变成:

输入 → 关闭答案 → 自己重构 → 暴露漏洞 → 补漏。

而不是不断:

输入 → 输入 → 输入 → 输入。

3. 问题太多

我还有一个很明显的问题:

看到一个不理解的地方,就很想立刻把它彻底弄清楚。

但一个问题经常会引出另外三个问题,三个问题又继续引出更多问题。最后主线还没有推进多少,时间已经全部消耗在旁枝末节上。

后来我意识到,并不是所有问题都必须当场解决。

如果一个问题不会影响当前任务继续向前推进,完全可以先只记录一行:

这个地方为什么是这样?

然后继续沿着主线往下走。

等到主线完成之后,再统一回来处理这些问题。

因为学习过程中产生疑问是非常自然的,真正需要控制的并不是“不要产生问题”,而是:

不要让每一个问题都拥有打断主线的权力。

忍不住追问是人性,先记下来再继续走,才是方法。

4. 一个问题耗掉半天

我以前很容易掉进另外一个陷阱:

觉得只要再想一会儿,也许马上就能想通。

于是一个问题可能从十分钟变成半个小时,又从半个小时变成两个小时。

最后整个下午都耗在一个局部问题上。

现在我给自己定了一个简单的规则:

如果十五分钟没有任何实质性进展,就强制换路。

所谓换路,可以是:

  • 换一种问法;
  • 做一个更小的实验;
  • 暂时绕过这个问题;
  • 去查文档;
  • 或者直接找一个更懂的人。

这并不是放弃思考,而是在避免把“坚持”误认为“用同一种方式重复尝试”。

真正重要的是推进问题,而不是证明自己可以靠一种方法死磕到底。

5. 理论理解得太多,实验做得太少

这是我最近感受最深的一点。

以前我很容易把学习过程想象成:

理解 → 理解 → 理解 → 理解透彻 → 开始实践。

但实际做项目之后,我发现真正有效的学习循环更像是:

理解 → 实验 → 发现直觉错误 → 修正理解 → 再实验。

很多东西,如果不真正动手,只在脑子里想象它应该如何运行,看起来往往都非常合理。

因为在想象里,我们会自动忽略大量细节。

只有真正开始操作以后,现实才会不断暴露那些被我们遗漏的部分。

于是你会遇到:

“为什么实际情况和我想的不一样?”

而我现在反而觉得,这可能正是学习中最有价值的时刻。

因为学习很重要的一部分,就是不断校准自己的直觉。

我们的大脑会根据已有经验建立一个关于世界如何运转的模型。当现实结果与这个模型一致时,我们几乎不会意识到模型本身的存在。

真正能够改变模型的,恰恰是那些:

“我原本以为会这样,但实际上却不是这样。”

的瞬间。

这时候,比起因为自己之前理解错了而感到挫败,更值得做的是继续追问:

究竟是哪一个前提错了?

是什么导致我的直觉和真实情况产生偏差?

为什么现实一定要以这种方式运行?

然后修改自己脑子里的模型,再重新实验。

如此往复。

我现在越来越觉得,所谓“真正理解一个东西”,可能并不是第一次就建立一个完全正确的模型,而是不断让自己的模型经过现实检验,然后一点一点逼近真实世界。


除了学习方法本身,我还意识到一件很现实的事情:

学习需要时间结构。

如果要开始一个新的实验或者项目,我现在更倾向于给它留出一块相对完整的时间。

因为很多技术任务都存在一个“进入上下文”的成本。

你需要重新记起文件在哪里、代码运行到了哪里、现在的问题是什么、之前为什么这么设计。

如果每二十分钟就被中断一次,就意味着你需要反复支付这笔成本。

所以条件允许的时候,我更希望一次留下几个小时,把一个阶段完整地推进下去,而不是不断进入、退出、再重新进入。

当然,中断不可能完全避免。

所以前面提到的“三行记录”,本质上就是在降低重新进入上下文的成本。


最后还有一个我最近越来越相信的原则:

不要因为刚上手时很困难,就过早判断自己不适合这件事。

很多事情第一次接触时都会显得异常复杂。

陌生的术语、工具、文件、错误信息和操作方式同时出现,大脑里又没有完整的结构,于是每一步都像是在黑暗中摸索。

但这种感觉并不一定意味着这件事情真的有那么难。

很多时候,它只是意味着:

你的脑子里还没有形成足够多的连接。

真正花几个小时做下去之后,原本彼此孤立的东西会开始连接起来。

你突然知道这个命令为什么存在,那个文件为什么放在那里,这段代码究竟在解决什么问题,之前看起来毫无关系的几个概念也开始形成一条完整的链路。

那些一开始像谜一样的东西,会一个一个被解开。

所以我现在更愿意提醒自己:

不要在最陌生的时候,对一件事的难度下结论。

先真正做一段时间。

再评价它。