学会学习

学会学习

《学习之道》读后感。在这里简单分享书本的大体内容和结合自身学习经历与大家共同探讨“如何学习”这个话题。

《学习之道》

作者芭芭拉•奥克利(Barbara Oakley)是美国奥克兰大学的工程学教授,她所开设的“Learning How to Learn”课程是在线网络教育平台Coursera上最受欢迎的课程之一。 但她从小对数理深恶痛绝,高中数理课程一直不及格,在工作变动下被迫重新学习数理知识,最后成为工程学教授。而《学习之道》正是她从自身经历出发总结出的一系列学习法则,并尝试从科学的角度论证这些法则。下面我将简单介绍书中的重点内容,更详细的地方还请阅读原著。

专注思维与发散思维

请想象一个手电筒,开启远距离模式时,视野相对窄,但照射距离远,而开启近距离模式时,视野则相对宽广,但照射距离近。如下图所示。我们大脑同样有两种思维模式:专注思维与发散思维。专注思维相当于手电筒的远光模式,我们通常只关注很小的一个点,但会思考得比较深入;发散思维则是近光模式,关注范围比较广,但考虑得比较浅。

这里写图片描述

当我们着手处理一件事情的时候,大脑会启动专注思维模式,聚焦达成这件事所需要的信息。而当我们在跑步、洗澡、吃饭等注意力相对分散的时候,大脑会以发散思维在运作。这两种思维没有好坏之分,大脑常在两种模式中来回切换,但理解这两种思维模式及其切换过程将对我们的学习有所帮助。大家是否都有这样的经历:“上午冥思苦想都没有定位到bug,却在午饭排队点餐时不经意的一瞬间想到。”冥思苦想是在专注地思考问题,而排队点餐玩手机则是发散思维,为什么发散思维下更容易灵光一现?大家可以看回上面的图,发散模式虽然观察得不细致或思考得不深入,但是观察范围广,冥思苦想没有找到答案往往是因为答案不在你专注思考的那个点上,切换到发散思维,将思考范围放大,更容易找到答案。一句话总结:专注思维在超小解空间中找答案,而发散思维面对的是更大的解空间。

因此,作者建议我们在冥思苦想找不到答案的时候,先放下这个问题,去做点别的事情,灵感很容易会出现。

组块与回想

为了和大家讲解大脑是如何解决问题的,作者引进了组块这个概念。个人觉得组块可以理解为:大脑对一类知识的存储空间。设想一下你正站在台上演讲,你的脑海里会关注三点:语言表达、肢体动作和眼神交流。这三点可以理解为三个组块,例如语言表达组块存储了演讲中语言表达的技巧等相关知识。如下图所示,大脑执行演讲这个任务时,需要使用到这三个组块的知识,演讲效果如何,就看这三个组块里的知识是否全面,是否牢固。

这里写图片描述

组块是一类知识的存储空间,那什么是回想,回想是构建牢固组块的关键方法。读书的时候,课堂上听老师讲课或者课下自己看教材,很容易就觉得自己学会了,可是一旦做练习题时,发现根本不会,或者做起来不顺畅,这又是什么原因呢?解决问题需要相关的几个组块,同时组块里的知识要全面和牢固,刚学完的知识(填充到组块中)往往没那么牢固,大脑可能只是知道有这个东西存在,而这个时候,我们往往会进行自我欺骗:“我看完这部分内容我就会了,我看过我就记住了。”实际上并不是这样的,不信你现在就可以回想一下,这篇文章上文说了什么?能详细地回想起来吗?这里再给大家举一个我平时在字帖上练字的例子,为什么在字帖上都能写得像模像样,但在白纸上则写得奇奇怪怪。原因在于在字帖上写字时,总以为自己写过就记住了各个笔画,整体结构,其实闭上眼睛,在脑海里想象这个字,会发现诸如笔画倾斜角度、间距和长度等细节都没有记住,难怪在白纸上会写不好字。

回想是一种检验是否掌握知识的方法,其本身也是一种掌握知识的方法。学习完一部分知识后,不要欺骗自己——“我会了,我记住了”,闭上眼睛尽可能回想一下这部分内容,回想完后再快速浏览一遍,看是否有遗漏,然后再回想一次。牢固、全面的知识组件是解决相关问题的必要前提,应多利用回想来补全组件的相关知识和强化组件。

拖延

说到拖延大家都熟悉,甚至深有体会,这里少说一些:

  1. 很多实践过的知识打算沉淀到KM上,但是一直没写;
  2. 早上过来上班先刷刷朋友圈再开始工作;

为什么会产生拖延?拖延的本质在于要做的事情有一定的难度,而诸如刷微信、刷微博、逛淘宝等简单且能快速获得奖励(内心很开心)的诱发因素又很多,于是按常理,事情总是朝着阻力最小的方向发展,结果产生拖延

那如何避免拖延呢?书里提出了一些解决方法,大家可以按需选择适合自己的:

  1. 改变环境:主动减少诱发因素,例如把手机调静音,带上降噪耳机等;
  2. 难事先行:在能力范围内优先做困难的事情(能力范围外做不到的事情就没必要优先做啦),难事先行一是确保了有足够的时间来处理困难的事情,二是容易给处理后续的事情带来信心;
  3. 关注过程 / 番茄工作法:很多被我们拖延的事情在我们心里都觉得要达成结果很难,但如果先不看结果,先动手去做,会发现每一步都很清晰,并没有自己想象中这么困难,最终也能做出不错的结果。番茄工作法在这不多介绍,主要一套确保间隔性地专注过程的工作方法;
  4. 奖励机制:想象一下完成这件事情带来的好处,畅想一下自己美好的未来,会给自己增添动力;
  5. 提前计划:让自己对要处理的事情有宏观的认识,即使还没有动手做,大脑在发散思维模式下也会抽空思考这些事情的解决方法。举个栗子,情景一:产品周五上午给你提了需求,要求下午完成;情景二:产品周一给你提同样的需求,你周五上午开始做,同样是下午完成;两种情景下,我们通常喜欢情景二,因为有足够的时间去思考怎样做才是最合理最完美的。(然而现实中经常上演情景一…)

记忆方法

书中提到几种记忆方法,核心是教大家如何快速地把内容记住,再根据遗忘规律(请参考下图中的遗忘曲线,刚接触新知识时遗忘速度较快,随着时间推移,遗忘速度渐渐变慢),在适当的时间点复习记忆内容,达到长期记忆的效果,也就是构建牢固组件。

这里写图片描述

简单列举一下书中的方法:

  1. 视觉图像法:试着创造一种便于记忆的视觉图像来代替想要记住的关键内容,将抽象化为具象,例如将电流比喻做水流;
  2. 记忆宫殿法:回想一个熟悉的空间(例如自己的房间、桌面),然后想象在这个空间里放置你所需要记忆的内容。例如我们读书分享会上雪青姐分享如何利用记忆宫殿法记住上面避免拖延的几种方法:“早上刚到公司楼下,发现在楼下搞活动,于是赶紧走进大堂,避免被吸引(改变环境);在大堂走向电梯时,想到自己该多运动一下,于是走向了楼梯上十楼(难事先行);回到自己座位上,打开番茄钟开始工作(关注过程/番茄工作法);辛苦工作一天终于把任务都完成了,想着晚上能回家陪伴家人,明天也更有信心处理好新的挑战,真是开心(奖励机制);晚上回家前,先把明天要做得事情列个TODO List,再调整轻重缓急,放心回家(提前计划)。”
  3. 顺口溜助记:参考谷歌搜索-中国朝代顺口溜
  4. 肌肉记忆:背单词时,动手书写要比口中默念记得更牢;

一句话总结,记忆技巧很多,核心在于利用技巧快速记住和根据遗忘规律高效复习强化记忆

如何学习

全书在微信读书上有600页,阅读耗时7小时30分钟,有些章节会给我惊喜和启发,有些章节则会给我似曾相识的感觉。整体看完后个人感觉,比较散,就好像“听过很多道理,依然过不好这一生”,也许有些东西不是书本能直接给到我们的。看完后我不禁问自己:我是如何学习的,我的学习方法是否正确高效?下面来谈谈我的学习方法论。

这里写图片描述

方法论

针对某一项技术或者某个新的领域,我的学习过程可以抽象成下面六步:明确学习目标、建立宏观认识、搭建知识框架、动手尝试、解决问题和总结分析。具体学习流程可参考下图,下面我将以自己学习Chromium的过程为例和大家分享。

这里写图片描述

一,明确学习目标

出发点很重要,没有出发点也就没有终点。在学习开始前,我们要先明确,我学习这个知识是为了什么?是为了学会怎么使用还是为了深入了解背后的原理,自己参与创造?不同的学习目标往往对应不同的学习结果,也对应了不同的学习要求。例如我要学习Chromium,我的目标就是理解浏览器渲染原理,学习渲染优化策略,以便写出性能更好的前端代码。

二,建立宏观认识

我小时候下象棋,只会盯着眼前的一小步,很少去考虑后面几步的事情,因此常常输得一塌糊涂。缺少宏观认识,不利于我们把握整体局势,没有把握整体局势,就很难理解——“为什么要这样做?为什么我的做法有问题?”。越是复杂的事情,我们越要从更高层去理解。

Chromium项目作为Chrome浏览器和Chrome OS的开源核心,代码量十几个GB,用工作站首次编译也需要两个多小时(16年编译过,具体数据已经不确定),是个非常庞大复杂的项目。学习复杂项目或者复杂技术时,我们常常无从下手,就像突然给你一个十层楼高的巨型汉堡包,根本不知道从哪下口。这个时候我们先不急着去看代码,可以先去思考,这项技术解决了什么问题?底层是怎么实现的?

Chromium是一个开源浏览器,解决了web资源渲染到用户界面的问题,而底层通过C++完成词法解析,渲染树构建,利用Skia跨平台2D绘图库绘制用户界面。这只是粗浅的认识,要建立靠谱的宏观认识,最好还是从官方设计文档入手,例如Chromium的设计文档,里面会说到系统有哪几个模块,模块间是怎么通信的,代码是怎么组织的等等一系列从顶层设计考虑的问题。前期的宏观认识会让后期的学习事半功倍。

三,搭建知识框架

既然前面对所学的内容有了宏观的认识,那我们就要开始分解内容,看看涉及到哪些知识点。还记得前面关于演讲的例子吗?假如我们要学习演讲,那可以将演讲分为语言表达、肢体动作和眼神交流三部分,每一部分都是一个知识组块。通过学习往知识组块里填充知识,反复记忆应用强化组块。搭建知识框架就两步,切分知识点(划分组块),逐一学习知识点(填充组块)。很多时候我们没能解决一个问题,是因为我们缺少某一部分知识,例如我们不能完成一次高质量的演讲,有可能是肢体动作这一部分出了问题。

Chromium的知识框架比较复杂,这里简单说几个渲染相关的:①C++;②词法解析;③Skia绘图;④… 有时候不得不承认,知识的海洋如此浩瀚,以至于我们这辈子可能都学不完,但由于我们有明确的学习目标,我们可以聚焦实现该目标相关的知识内容,在这个范围内搭建小的知识框架,实现我们的目标。

四,动手尝试

终于走到动手尝试这一步了,以前没有章法地学习时,我都是直接跳到这一步的,虽然瞬间满足了自己动手写码的心愿,但是往往因为对问题理解不深入而掉进各种各样的坑里面,浪费了很多时间。

这里的动手尝试并不是指你要马上解决自己的问题,实现自己的学习目标,而是说先去跑个官方Demo,或者能用的Demo,运行成功后,在Demo的基础上尝试按照自己的理解改一下,再看看效果。这一步虽然看起来可有可无,但是在别人成功的基础上做改动做尝试成本更低,能更快地验证自己的理解是否到位,在复杂项目中这一步的技术预演能给后面节省很多环境配置等踩坑的时间。

在我学习Chromium时,别说动手改代码了,单是学习如何构建编译Chromium都花了我一天的时间,在确定编译出来的Chromium浏览器能用的基础上,我尝试将浏览器里的DOM元素背景上半部分绘制成红色,下半部分绘制成蓝色,尝试成功,说明我对Skia绘图以及渲染对象基类的绘制函数理解正确,能继续搞更大的事情。

五,解决问题

这一步可以说是水到渠成,如果还遇到什么问题,请退回到第三步,认真思考自己还遗漏什么知识点,去补全。如果还是不能理解问题,那建议退回第二步,去思考:“为什么是这样的”,尝试在官方那里找到答案。如果都没有效果,建议先暂时放下,切换到发散思维,让大脑在后台慢慢思索。

六,总结分析

好不容易学完了,也解决了自己的问题,先给自己一些掌声,甚至可以先去浪一波,甚至到此结束也没有问题。但为了日后能更高效地学习更复杂的知识,我们还可以总结,还可以提高。主要有两个方面,一是将自己学到的知识总结下来(当你真正去回想自己学过的知识时,你脑海里的印象会真实地告诉你,你是否掌握),二是可以思考为什么之前会失败,是因为知识遗漏?还是因为没有将组块交叉使用?后面怎样才能避免这些问题,更快地成功?

The End

全文作为《学习之道》读后感,仅为个人观点,不排除存在阅读理解偏差的情况。至于个人的学习方法论,也只是一个95后的狂妄之言,欢迎一起交流学习,如有任何问题也欢迎指出批评。

同时期待下一期的读书会。毕竟学习和思考本身,比学习所得更重要。而一群人一起学习交流,则能获得更大的启发,欢迎大家加入!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值