提升学习

在本文中,我想写一些关于我在Launch School学习过程中学习新主题和新材料的能力方面的变化。 我认为对于知识驱动型领域的任何人来说,分析他们如何学习和提高这些技能至关重要,这对软件开发人员来说是双重的。

软件开发需要不断学习新技术和新领域,以保持敏锐,站在技术的最前沿并在将来保持可出租性。 因此,至关重要的是,我们不仅要深入学习新学科,而且要提高我们更有效地学习的能力。

在Launch School学习的过去1.5年中,我不断改进自己的学习过程,并改进了每天使用的技术。 我已经完成了Coursera上的“学习方法”课程,并阅读了多篇影响我学习方式的书,这些书已在本文末尾列出。 我想与您分享我发现有用的东西以及我认为无用的东西。 让我们开始!

间隔重复

此技术是您在延迟的时间范围内查看材料的过程,通常通过抽认卡实施。 目的是更频繁地检查您发现困难的材料,并在您即将忘记它的时候进行检查。 这有助于与信息建立更牢固的神经联系,以便您可以更有效地调用它。

假设您正在学习JavaScript,并创建了一个抽认卡套,其中涵盖了您需要了解的所有内容。 传统上,人们每次学习时都会检查整个套牌,他们每天左右都会对其进行检查。

间隔重复让您检查一下卡片组,根据您是否容易地调回卡片的信息来分开卡片,然后以不同的间隔再次检查卡片。 如果您立即得到一张卡,请在一周内再次进行检查。 如果您在使用卡时遇到困难,请明天再进行检查。 随着时间的推移,请重复此过程,并延长间隔时间(如果您不断地调用卡的信息)。 而且,如果您用卡挣扎,则可以“重置”到明天的间隔。

该技术要求一致性,并通过提高您记住关键信息的能力并为您提供每天学习合理数量的卡的系统,从而获得巨大的回报。 值得庆幸的是,有一个名为Anki的免费程序,您可以下载该程序来创建和存储抽认卡,它甚至可以为您计算时间间隔! 我强烈建议您使用它,而不要随身携带自己的抽认卡。

深度工作

这是一种改变游戏规则的方法,并由Cal Newport在他的《深度工作》一书中成为主流,对此我强烈推荐。 本书的主要要点是,为了在当今的知识经济中蓬勃发展(软件开发已牢固地立足于此),我们需要发展出快速掌握硬事物并在质量和速度上进行高水平生产的能力。 做到这一点的方法是通过深入的工作,这是当您在无干扰的专注状态下工作/学习时,将您的能力推向极限。

例如,如果您正在研究Ruby中的块并且想利用更深入的工作,那么您需要在安静的地方学习而不会分心(没有社交媒体,电子邮件,电话,音乐等),并让您的大脑沉浸在通过填补您的知识空白和解决问题来获得信息。 您可能会发现这样做会很困难,因为您的注意力将不断转移到新事物上,并且您全神贯注于这种材料会使您的大脑感到劳损。

但是,这种技术非常重要,因为它可以像肌肉一样锻炼大脑。 一开始,在需要休息之前,我一次不能进行超过40分钟的深度工作。 但是现在,我每天可以做3到4倍的1.5个小时。 有一个原因是启动学校经常讨论深入的工作,因为它确实提高了您学习新主题并在充满挑战的情况下工作的能力。

故意练习

与深层工作密切相关的另一种技术是刻意练习,这是针对薄弱区域/技能的重点练习,以改进它。 就像深入的工作一样,它要求您自由工作,完全专注于手头的任务。 为了促进和推动您的成长,该任务应该是一项挑战,该挑战刚刚超过您当前的技能水平。 我进行有意练习的步骤通常是:

  1. 确定我需要改进的薄弱环节/技能。
  2. 创建我想在练习结束时实现的目标。
  3. 在此区域/技能上自由工作一定时间(通常对于大多数人来说限制为1–1.5小时)。
  4. 查看我的进度,并确定我是否达到了目标。

为了更加具体,让我们以我提高230课程的前端开发技能为例。 在学习过程中,我发现自己在构建小型项目(从准系统HTML和CSS到添加用户与JavaScript的交互)过程中感到很挣扎。 我的故意做法是:

  1. 确定我的弱项是建立UI,而不是HTML / CSS或基本JavaScript。
  2. 将我的目标设置为一个完整的小型项目,该项目允许用户通过事件侦听器,处理程序和管理HTTP请求进行交互。
  3. 设置我的工作区域以消除干扰,从一个已经具有HTML / CSS的准系统项目和一个可以接收HTTP请求的后端开始(在230课程中有很多这样的项目可以实践)。
  4. 完全专注于此项目1–1.5小时。
  5. 时间到了之后,我将快速回顾我的进度,并确定我需要进一步练习的项目领域。

只要遵循类似的过程,就可以对几乎任何主题或项目进行有意识的练习。 很快,您会发现曾经是您薄弱环节的地方有了长足的进步。

我确实想对刻意练习和深入工作之间的区别作一下简要说明。 它们似乎是同一件事,并且有很多重叠之处,但是有一些重要的区别。 我认为深入的工作与学习新材料或专注于现有项目有关。 这些示例包括:

  • 建立辅助项目。
  • 阅读新主题并组织您的理解(例如101课程中的Ruby)。
  • 撰写博客文章。
  • 查看一些您可能忘记的材料。

现在,深思熟虑的实践确实将深层次的工作纳入了要求重点和缺乏分心的工作中。 但是刻意练习的目标是提高现有技能或将您当前对材料的理解提高到另一个水平。 示例包括:

  • 练习通过小型项目改进的概念。
  • 解决比您先前解决的难题更难的编码问题。
  • 提高您解释一个困难/复杂概念的能力(例如JavaScript中的原型继承)
  • 练习系统设计和算法以准备面试。

尝试在您的日常学习中进行深入的工作和深思熟虑的练习,并亲自了解它们可以带来多大的改变。

费曼法

最后一种技术是我最喜欢的技术之一,并且在很多文章中都有介绍。 这种方法由获得诺贝尔奖的物理学家理查德·费曼(Richard Feynman)推广,他被广泛认为是用简单的术语解释复杂思想的最伟大的老师之一。 他最著名的名言之一就是他将如何解释原子的概念:

如果某种破坏性地摧毁了所有科学知识,而只有一句话传给了下一代生物,那么用最少的词来表达最多信息的陈述是什么? 我相信 ,所有事物都是由原子构成的 ,这是原子假说(或原子事实,或您想要称呼的 任何东西 ,原子是小分子,它们以永续运动的方式运动,彼此相距不远时就会相互吸引,但是被彼此挤压时排斥 如果仅施加一点想象力和思想,您将在那句话中看到关于世界的大量信息。 -理查德·费曼(Richard Feynman)

理查德·费曼(Richard Feynman)在研究生期间,会拿一个全新的笔记本,并命名为“我不知道的事情”。 在此笔记本中,我们将确定他在某个主题上的知识差距,并剖析每个细节,直到他对材料有了完整的理解。 他的过程实际上非常简单:

  1. 确定主题并写下您对主题的了解。 无需查看任何笔记或资源即可执行此操作,而应从内存中回忆您的主题知识。
  2. 向对主题一无所知的人讲解主题。 通过这一步骤,您不得不使用简单的术语并着眼于简洁。
  3. 找出您的解释中的任何空白,无论是您难以解释某个主题,还是听众无法轻松或简单回答的问题。 这是真正的学习开始的地方。
  4. 返回学习发现的差距。 将您的解释整理并简化为易于传达的叙述。

该技术的强大功能来自完全从记忆中召回信息(类似于间隔重复)以及学习主题,完善您的理解,试图使其对其他人可以理解以及确定您仍需要改进的方面的周期。 。 我们的大脑异常擅长使我们相信自己对某个学科的流利程度要比我们实际的流利程度 (被称为“ 流利幻觉” )更重要。这种技术使您残酷地清楚了您对某个学科的实际流利程度。

现在,这听起来可能需要做很多工作,如果您将它用于较大主题领域中的每个单个概念,则可能会很麻烦。 因此,我建议您选择一个广泛的主题(例如Ruby的基础知识或HTTP的工作方式),并在编写详细信息并遵循该过程时自然会发现需要关注的空白。 当然,最好通过深入的工作来实现此技术!


我希望您尝试这些技术,并发现它们和我一样有用。 学习如何学习可能是一个令人鼓舞和启发的旅程,我强烈建议您探索各种技术以找到适合您的方法。 如果您有我没有涉及的任何提示或技巧,或者想与我共享的技巧或经验分享您的经验,请发表评论。 谢谢阅读!

图书清单

深入工作-加州纽波特

精通-罗伯特·格林

学习的艺术-乔什·怀茨金

有效思考的5个要素-Burger和Starbird

心态-Carol Dweck

学习方法—芭芭拉·奥克利博士(库塞拉)