前言
上篇针对《如何学习》这本书的重要内容进行了汇总,建议还没看的同学可以先看下:《如何学习》读后总结及对学习的思考(上篇)。其实从豆瓣上对本书的评论可以看出虽然大家对本书比较推崇,但也有很多人说书上并没有结合实际场景来给出学习计划建议,就像给了一碗鸡汤却不给勺子。本篇就对本书的一些关键结论进行进一步提炼,并结合自己的思考来给出实际学习场景的学习计划,以供大家参考和讨论,如果大家觉得哪里不对,或有更好的方法,欢迎留下评论,共同探讨。
看完顺手点个赞呗^_^
1. 重要结论汇总
- 遗忘后努力回忆能记得更牢;
- 还原学习场景记忆效果更好;
- 切换更多环境学习记得更牢;
- 相同重复次数,分开多次来完成效果更好;
- 要想一直记住知识点,应该在学习后间隔一两天、一个星期、一个月、两个月、两个月...再复习,就能持续记住;
- 对于终身学习,复习间隔最好为两个月;
- 要记忆文章,最好三分一时间来学习,三分二时间来背诵;
- 学习后马上考试能有效加深记忆,并且最好增加考试的频率;
- 对知识向外表述和输出能加深记忆并识别出其实不理解的内容;
- 遇到难题实在想不出解决办法时,放松能够让大脑关注到更多东西,提供解决灵感;
- 学习过程适当打断并有意识地反思能够提供持续的进步;
- 若有一个困难的项目,最好尽早开始,遇到难题卡壳时适当放下一段时间;
- 把相关又不相同的题材混合到一起学习能大大提高学习效果;
- 交替学习时要注意把学过的但一段时间没复习过的内容混在一起学;
- 知觉学习训练时节奏必须要快,让大脑的全部感官系统快速运作和调整,达到看一眼就能知道答案的效果;
- 睡眠开始时的深度睡眠阶段能对新学习的知识进行整理,睡眠中后段能对运动相关能力进行加固;
- 午休1-1.5小时对知识整理的效果,跟晚上睡一觉的效果相当;
- 可以考虑早上五六点起来学习,利用午休的时间加固学习效果;
2. 对于一些学习场景的思考
2.1 如何学习技术组件
比如要学习消息队列组件。首先收集主流的消息队列有哪些,从中挑选3种主流的组件(为交叉学习做准备),然后收集这三种组件的笔试面试题,先做一遍,不管对错,只求对这些组件有个初步的重点内容印象(先考试后学习)。买来相应的书,把3种组件中相类似的章节对应起来,在学习过程中,学完第一种组件第一章后,改为学习第二种组件的第一章,然后学第三种组件的第一章,然后再回到第一种组件进行第二章的学习(交替学习,中断)。一边看一边把关键知识点整理成题目,每个章节看完2天后用这些题目进行自考(尽早考试,适当遗忘,第一次复习,学习过程混杂学过的内容),自考一个星期后、一个月后分别再次自考,之后的复习以两个月为一次进行,可以只挑选出更核心的知识点作为每两个月一次的复习材料(长效记忆的最优复习时间)。在每次复习时,都可以换到不同的场所进行(切换环境)。每学习几个章节后,都尝试把这些章节写成博客,或做成PPT给别人讲解(有意识地反思)。
若只是单单学习一种组件,也能按照上面的节奏来进行。
2.2 如何刷算法题
假设6个月后就要去面试,可以按照这样的节奏来学习:学习两天后和3个星期后复习(尽早考试),然后再每个月复习一次(最优复习时间),最后在6个月后进行一次全面复习,每次集中练习一类的算法,比如与分治法相关的基于不同数据结构来设计的题进行集中学习(混合学习),先尝试解题后再看答案(先考试后学习),每道题搜索多种解题思路进行对比(有意识地反思),并简单记录每种解题思路的区别及其优缺点,作为每次复习的自考内容。学习时切换到不同的场所来进行(切换环境),复习时可以在不同于学习时的场景来进行。
2.3 如何提高英文技术文档阅读能力
假设目标是能较为流畅地看英文的官方文档或技术博客,该目标可以转化为要在看文档的时候遇到单词能够不经思考地获知其含义。想一下自己是怎么看中文文档的,凡是在看公众号文章有一目看几行能力的人都知道,看文档时心中不会默念,看一行字的时候并不一定是从左往右看的,文字的含义是不经思考就知道的,并且往往在阅读时会自动略过不重要的部分。快速阅读可以看作是一种视觉的模式识别,我们需要的是进行有效的知觉训练,使我们达到不经思考就能感知到这一连串文字的含义。再来回想下我们阅读英文文档的场景,由于对英文单词的不熟悉,我们在阅读英文文档时往往会出现心中默读的情况,大大影响速度,并且由于前面内容没看懂,导致做不到跳跃式阅读,一篇文档要看很久很难坚持下来。其实计算机类别技术文档中出现的词汇主要就是计算机相关的词汇,词汇量并不会像新闻类的那么大,并且如果是某一种特定技术的文档,比如Kafka的官方文档,使用的词汇量更少。因此我们只要针对常用的计算机词汇进行专门的知觉训练,就能大大提高此类文档的阅读速度。
训练方法:
挑选一篇中等长度的技术文章先看一遍,其中遇到不认识的单词或句子先查一下做好标记,看完后反复确认下标记的位置确保能短时记忆住这些单词的含义,开始训练。第一阶段:先按习惯的阅读方式从头到尾看一遍,记录用时;第二阶段:用手指以比默读更快的速度从左往右划过句子,以眼睛跟踪手指来看文字代替心中默读,逐渐提高手指划动速度反复阅读同一篇文章,直到速度稳定到第一阶段的三倍以上;第三阶段:还是用手指划过句子看,但改为S字形划动,如第一行从左往右滑动,第二行则从右往左,第三行从右往左,当然每一行的单词不能过多,以自己能够理解句子的程度来控制文档宽度,直到阅读速度也稳定到第一阶段的三倍以上,就可以换下一篇文章再从第一阶段开始。第四阶段:前面三个阶段每读过的文章,都要记录下是哪一天训练的,后续在间隔2天、1星期、1个月分别以第三阶段方式重读文章直到恢复到第一次训练的计时速度,起到复习效果。
2.4 如何提高代码编写速度
现代IDE都提供了大量的快捷键来编写代码,但看一圈周围的同事写代码的状态就知道,绝大多数人都做不到大部分操作不通过鼠标来完成,很多人都只懂ctrl+a/s/f/z/x/c/v,alt+tab这几个快捷键,操作基本靠鼠标。不仅限于IDE的快捷键,大家用了这么多年的Window系统也有大量快捷键。其实只要熟练使用快捷键,就能大大减少手离开键盘的时间,能显著地提高代码编写速度。本人作为使用快捷键的深度用户,在使用快捷键的时候感觉其实就跟打字时应该输入按哪个字母一样,并不需要思考手指就能按到那几个位置,而且往往真要说出来按了哪几个键,可能还得思考一下才能答得上来(比如你可以在脑中想一下26个字母每个按键的位置也会有同样的感觉)。因此学习快捷键就跟学习打字是一样的,开始学习打字的时候是一个个字地思考打什么字母,字母在哪里,在打多了相同的字后,速度慢慢就上来了,学习快捷键也是这样,不可能一下子记住很多快捷键的,要有意识的关注自己平常经常用鼠标进行的操作是否有对应的快捷键(当然首先你得先查一下IDE有哪些快捷键,有个印象就行),然后每次挑选一个最常用的鼠标操作替换为快捷键,等到这个快捷键习惯之后,再选择下一个常用的鼠标操作来替换为快捷键,直到能做到90%的操作都能通过快捷键完成。这种反复刻意的训练方法其实就是知觉训练。
还有一种训练方法:挑选几道简单的并且涉及到多个代码文件来回切换编写的题目来练手(比如按照先写测试后写代码的方式来编写代码,包括了写测试、运行测试、实现代码、运行测试、写新测试的反复流程)。每道题目在实现时需要做到完全不碰鼠标,在第一次编写的时候可以先记录下哪些操作用到鼠标了,然后查一下IDE有没有对应的快捷键,贴在电脑旁边,第二次实现的时候开始完全不用鼠标。反复地新建项目来实现,直到所有快捷键都能在3秒内按出来。对于Window的快捷键也可以设计操作步骤来进行专门的练习。
3. 总结
以上所说的各种学习场景,都需要每次学习完一个知识点后记录下这个知识点是在什么时间、什么地点学的,以此来确定应该什么时候复习、复习时怎么切换环境。此外,由于程序员学习的内容基本上是偏逻辑性的,深度睡眠阶段(第三四阶段)对知识整理具有显著效果,因此要注意睡眠的规律性,充分发挥深度睡眠对知识的加固作用,可以清晨学习一次,利用午休的深度睡眠提升效果。
看完顺手点个赞呗^_^
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。