那些自学编程的人通常都会从同样的“起点”开始:一台笔记本电脑、互联网连接,以及坚定的决心。然而,他们所缺乏的,是系统的指导、明确的学习计划,或是任何形式的教学支持。
这种缺乏方向感的情况会让学习过程变得异常艰难。面对海量的在线资源,许多初学者会不知从何入手,往往试图一次性掌握所有内容。
大脑是如何处理信息的
学术学习理论的作用
本文的目的是深入剖析这些重要的学习理论,并将其直接应用于初学者自学开发者的学习过程中。通过了解大脑是如何处理信息的,初学者可以更有意识地安排自己的学习内容,更可靠地掌握知识,从而以更加自信和清晰的方式成为一名称职的开发者。
目录
认知负荷理论
学习一个新的概念通常需要大脑付出一定的努力来处理这些新获得的信息。这种大脑所付出的努力被称为“认知负荷”,这一术语是由澳大利亚教育心理学家约翰·斯威勒在1988年研究大脑如何获取和保留信息时提出的(Sweller, 1988)。
此后,其他研究者也对这一理论进行了进一步的发展。值得一提的是,迪伦·威廉在2017年曾发推文称,认知负荷理论是“教师必须了解的最重要的概念”(Dylan William, 2017)。
你可能会再次问:这与我有什么关系呢?作为一位初学者自学开发者,答案很简单:你自己既是老师,也是学生。
因此,这是你必须掌握的最重要的理论。在这段自学的过程中,你需要自己设计学习计划、选择学习资源、控制学习进度,并评估自己的学习成果。
如果不了解认知负荷如何影响你吸收和保留知识的能力,你就可能会无意中让大脑负担过重,从而破坏自己的学习效果。
在深入探讨认知语言学习的细节之前,有一些由大卫·吉里提出的重要概念,你需要掌握这些概念才能真正理解这一理论:“能够被学习的内容”(生物性初级知识)以及“能够被教授的内容”(生物性次级知识)(吉里,2007年、2008年)。
根据吉里的观点(2007年、2008年),“生物性初级知识”指的是那些人类大脑天生就具备的、“无需通过正规教育就能学会的本能技能”。
例如学习母语、识别面孔,或者进行基本的社交互动等都属于这类技能。
而“生物性次级知识”则包括阅读、写作等文化性或技术性技能。这些技能对社会来说是非常必要的,但人类大脑并不会天生具备这些能力;因此,我们需要通过正规的教育和学校来学习它们。
因此,编程就是生物性次级知识的一个典型例子。虽然人类大脑具有很强的可塑性,但它并没有进化出理解语法结构、管理内存分配或调试逻辑循环的能力——这些都是后天形成的文化产物,而非与生俱来的本能。
认识到人类大脑并不适合自然地学习编程,就能帮助我们调整学习策略。一旦你接受“编程概念并非与生俱来”的事实,就可以有针对性地投入时间和精力去系统地学习它们了。
初学者自学编程时还需要了解和掌握另外一些概念,包括工作记忆、米勒定律、信息组块化、长期记忆以及图式等。
工作记忆
工作记忆是进行思考的核心区域。它就像一个临时的“思维空间”,在处理信息的过程中,这些信息会暂时储存在这里。当你第一次接触到语法结构、循环语句、函数或者if/elseif条件句等概念时,所有这些信息都会被存入你的工作记忆中。
然而,工作记忆的容量是非常有限的,而且也非常容易受到干扰。
刚开始学习编程的时候,你的大脑中的“思维空间”就相当于一张小桌子,一次只能放置少量的信息。
想象一下,如果你试图在一张小小的咖啡桌上组装宜家家具:如果把说明书、螺丝、木板和工具全部摊开放在桌子上,桌面很快就会变得杂乱无章。你会不知道该把哪个零件放在哪里——这不是因为你能力不足,而是因为可供使用的空间太小,无法同时容纳所有这些东西。
工作记忆的工作原理也是如此。当你学习新的编程概念时,每个新知识都会占据这个“思维空间”的一部分。如果这些信息过多,空间就会变得拥挤不堪,从而导致你的记忆力下降,无法有效地记住这些内容。
这并不是智力不足的问题,而仅仅是工作记忆的天然局限而已。
当信息量超过工作记忆所能处理的限度时,就会出现这种认知崩溃的情况。研究表明,工作记忆通常一次只能处理5到9条信息(Miller,1956),这一现象被称为“米勒定律”。
米勒定律
1956年,乔治·米勒发现,普通人一次能在工作记忆中同时容纳大约7个信息单元,不过也有最新研究认为这个数字更低,仅为4个信息单元(Nelson Cowan,2001)。
假设你遇到一个教程,其中同时介绍了以下这些概念:路由、控制器、模型、迁移文件、视图、请求处理、辅助文件、作业队列、中间件、角色与权限以及服务提供者。如果你试图同时记住所有这些内容,你的工作记忆肯定会超负荷运转,而且很可能在还没记完前几个概念时就忘记了后面的内容。
那么,如果大脑一次只能处理4到9个信息单元,我们该如何应对复杂的任务呢?
答案就是“组块学习”——即将零散的信息整合成有意义的整体。
组块学习
组块学习是大脑用来简化复杂信息的策略。与其让工作记忆同时承载大量无关的信息,不如将这些信息重新组织成几个结构清晰的整体。这样不仅可以降低认知负担,还能让我们处理远超常规限制的信息量。
我们来举个例子:
对于初学Laravel的人来说,“路由”“控制器”“模型”“迁移文件”和“视图”这些概念可能显得既陌生又难以理解。但经验丰富的开发者会将这些概念视为一个有机的整体——即MVC架构模式。因此,专家只需要在脑海中记住这个整体结构,而无需同时记下其中的每个细节。
这里就产生了一个重要的问题:初学者如何才能意识到这些概念其实是相互关联的呢?
需要强调的是,组块学习并不是自动发生的。它依赖于人们发现概念之间的逻辑关系,而初学者往往缺乏这种认知能力。
但随着学习过程的不断重复,人们会逐渐注意到某些固定的模式。随着时间的推移,大脑天生倾向于寻找结构规律,这使得他们能够识别出哪些组件是相互配合使用的,从而将这些信息整合成有意义的整体。
例如,在我第一次学习Laravel电商开发时,我发现每当教程创建新的功能模块(如支付系统、购物车、用户身份验证等)时,总会遵循相同的模式:控制器、模型和视图这三个组件总是会被一起创建出来。
在多次遇到这种信息组合后,我逐渐意识到这些组成部分始终属于同一组。随着时间的推移,我不再将控制器、模型和视图视为独立的元素,而是将它们看作一个有机的整体。
因此,初学者在刚开始学习时可能无法有效地将这些信息进行整合,因为他们缺乏识别哪些内容应该被归为一组的先验知识。但随着时间的积累,以及在不同情境下反复接触这些内容,这些分散的信息最终会融入到长期记忆中,形成稳定的认知结构。
起初让人感到难以应对的任务,最终会变得轻而易举——这并不是因为任务本身变简单了,而是因为我们的大脑对这类信息的处理方式变得更加有条理了。
这就是信息整合的力量:它将零散的信息转化为有序的整体,从而使我们能够轻松地将其纳入工作记忆的承载范围。
如果没有这种整合能力,初学者就会被各种细节淹没;而掌握了信息整合技巧后,他们就能获得理解、记忆和应用所学知识所需的认知空间。
长期记忆
与工作记忆不同,长期记忆的容量几乎是无限的。所有学习的最终目标,都是将信息从有限的工作记忆转移到广阔的长期记忆中。
其实真相是:我们并不是在工作记忆中进行学习,而只是在那里处理信息而已。
真正的学习过程发生在长期记忆中,它会导致我们的认知结构发生永久性的变化。
图式
一旦信息被存储在长期记忆中,它们就会成为某种“图式”的一部分——这种图式是一种组织相关概念的心理结构或分类系统。
例如,当你终于明白Laravel是一个MVC框架时,你并不是在死记硬背三个字母,而是在构建一个图式,让大脑明白:模型负责处理数据,视图负责呈现结果,而控制器则负责逻辑控制。
一旦形成了这样的图式,这些信息就可以作为一个整体被调用到工作记忆中,从而有效地规避了米勒定律的限制。
这就是为什么专家能够轻松地思考,而初学者却会感到不知所措的原因。
这也是加内特(Garnett, 2020)之所以认为“某人在某方面的能力高低,完全取决于其大脑中相关图式的稳定性”的原因。
现在我们已经明确了工作记忆、长期记忆、图式以及信息整合这些概念的基础,接下来我们可以探讨另一组每个自学开发者都必须了解的概念:内在负荷、外在负荷和相关负荷。这三个要素共同构成了认知负荷理论的全部框架,它们决定了学习过程是会让人感到轻松还是令人难以承受。
内在负荷:任务本身的难度
内在负荷指的是材料本身所具有的复杂性。有些概念之所以更难理解,是因为它们包含了许多需要同时处理的相互关联的因素。
在Laravel框架中,理解一个简单的路由规则,其内在负荷是相当低的。
但是,像依赖注入或多态关系这样的概念,由于其涉及多层抽象机制以及相互关联的概念,因此它们本身就带有较高的认知负担。
你无法改变一个概念本身的认知负担,但可以通过将其分解为更小、更容易理解的子任务来应对这一负担。正因如此,优秀的教学方法——以及有效的自学方式——总是从简化内容与合理安排学习顺序入手。
简化意味着将一个概念剥离到其最本质的部分,这样学习者就不会被不必要的细节所困扰。
合理的顺序安排则是指按照逻辑顺序呈现各个学习环节,确保每个步骤都是在前一步的基础上进行的。这样做有助于减少不必要的认知负担,使学习者能够将更多的精力用于构建相关的知识框架。
这就好比你遇到一个新认识的人,对方告诉你他的名字,而这个名字恰好也是你母亲的名字。瞬间,你的大脑就会建立起这种联系,将这个人的名字与你对母亲深刻而牢固的记忆联系起来。
因为这个知识框架早已存在于你的长期记忆中,所以新的信息就能很容易地与之结合。后来当你试图回忆这个名字时,就不会感到困难了,只需想到你的母亲,这个名字就会立刻浮现在脑海中。
虽然很多人认为自学成才的开发者会遇到困难,因为他们缺乏即时、可靠的个人指导,但实际上这种处境中也隐藏着优势。当老师讲解某个概念时,即使他们尽力将信息分解成易于理解的部分,也无法真正了解学习者的认知极限——比如学习者能够承受多大的认知负担,他们处理新知识的速度有多快,或者他们能调动多少先前的知识储备。
而自学成才的开发者恰恰能够在这些方面发挥出优势。因为你自己既是老师也是学生,所以你比任何人都更清楚自己的认知能力边界。当觉得某个学习内容过于困难时,你可以放慢学习速度;当工作记忆负担过重时,可以暂停学习;你也可以根据自己的能力来安排信息的学习顺序。
你可以将一个概念简化到其最本质的部分,并按照自己能够理解的速度来学习它。
额外负担:那些干扰学习的因素
额外负担是自学成才的开发者面临的最大敌人。它指的是那些无法促进真正学习、反而会浪费认知资源的因素。而在这里,自学成才的开发者才能真正展现出他们的优势。
在教室里,老师的责任是消除一切可能干扰学生学习的因素。而对于自学成才的开发者来说,这一责任完全由你自己承担。你必须识别出这些干扰因素,并将其消除掉。
作为一名自学成才的开发者,我会采取一些特定的策略来保持专注。在开始学习任何课程之前,我都会先阅读评论区的内容,了解其他人的学习体验。如果我发现某门课程的音频质量不佳、讲解不清楚,或者教学进度太快,我就会立即放弃它,去寻找评价更好的课程来学习。
任何可能阻碍我学习进展的因素都必须被消除。如果你把一半的精力用来理解这些杂七杂八的东西,那么剩下的另一半精力就只能用来理解代码的逻辑了。请记住:在学习新概念时,我们会使用工作记忆,而这种记忆是非常脆弱的。
作为自己“内心的导师”,你必须清除这些干扰因素,这样你有限的工作记忆才能完全专注于真正重要的内容。
相关负载:构建过程
相关负载是指那些有助于构建和完善认知结构、从而让后续学习变得更加容易的心理活动。
当新信息与你已掌握的知识产生有意义的联系时,你就会体验到那种“恍然大悟”的时刻。
例如,当你意识到数据库迁移实际上就是为你的表格结构提供一种版本控制机制时,这种理解过程其实就是认知结构的构建。
教师们经常会被建议帮助学生管理他们的相关负载。他们通常会通过将新学的知识与已有的概念联系起来来实现这一目标。
通过这种方式,教师可以帮助学生建立起那些用于组织和解释信息的认知结构。
对于自学成才的开发者来说,这意味着不要孤立地记忆新的语法规则,而是要寻找自己已经理解的知识点作为切入点。
比如,如果你已经了解物理文件柜的工作原理,那么理解代码中的数组或对象结构就会变得容易得多。
你并不是从零开始学习——你只是将新的知识“插入”到已有的认知框架中而已。这样就能减少大脑的负担,使新知识更容易被长期记住。
但是,只有当内在负载得到妥善管理、外在干扰被消除之后,这种效果才能真正实现。
需要强调的是,与内在负载和外在负载不同,相关负载并不是一种独立的认知负载类型。
实际上,它代表着你的工作记忆中剩余的那部分资源,这部分资源可以被用来处理与内在负载相关的学习任务。
换句话说,相关负载就是你在剔除掉所有不必要的干扰因素之后,还剩下的用于学习的心理能量。
了解认知负载的概念可以帮助我们理解为什么在学习过程中有时会感到压力巨大,但这也无法解释为什么过了一段时间后知识就会逐渐被遗忘。对于这个问题,我们需要借助学习科学中的另一个基本原理——艾宾浩斯遗忘曲线来加以解释。
艾宾浩斯遗忘曲线
如果还记得我们之前用桶子来做比喻的话,这条曲线就代表了“桶底那些会漏水的孔”——也就是说,大脑有这样一个天性:除非对某些信息进行反复巩固,否则它们很快就会被遗忘。
19世纪末,赫尔曼·艾宾浩斯发现,人类的记忆遵循一种可预测的衰退规律。在学习新知识之后,我们往往会很快忘记大部分内容——通常在几小时内就会遗忘——除非这些知识被再次复习。遗忘曲线表明,记忆力的保持程度最初会急剧下降,随后则会逐渐以较慢的速度继续减弱。
间隔重复理论的工作原理
-
第一天(初步学习):你学习大O图表,了解每一个复杂度类别。
-
第二天(第一次复习):自我测试。如果你能正确回忆起某个知识点,就安排三天后再次复习;如果记不住,那就第二天再复习一遍。
-
第五天(第二次复习):再次接触这些内容。由于你仍然记得它们,这次复习的间隔可以延长到十天。
-
第十五天(第三次复习):你的记忆已经开始模糊,但一旦看到相关提示,这些概念就会重新浮现出来。这种回忆信息时所遇到的轻微困难,恰恰有助于巩固长期记忆。
-
第四十五天(第四次复习):此时,这些知识已经得到了深度巩固。像O(logn)这样的复杂度概念,会变得像你的电话号码一样容易记住。
通过这个过程,间隔重复法能够将脆弱、短期的记忆转化为持久、长期的知识。每次复习都能中断遗忘的过程,强化认知结构,并减少将来回忆这些知识时所需的认知负担。
对于自学编程的人来说,间隔重复可以采取多种形式:你可以凭记忆重新编写代码,几天后再实现同一个功能,或者构建这个概念的不同变体,在完成其他任务后再次回到这个主题进行学习。
每一次复习都会强化认知结构,减少回忆这些知识时所需的认知负担。随着时间的推移,那些曾经觉得复杂的知识点会变得自然而然地被记住——这并不是因为这些概念本身发生了变化,而是因为你的大脑将它们重新组织成了一个稳定、高效的结构。
由此可见,学习并不是一次性完成的任务,而是一个包含接触、遗忘和强化在内的循环过程。
掌握任何知识并非仅仅看一次就能实现,而是需要反复学习,直到这些知识成为你认知结构的一部分。
不过,在进行重复练习时我们必须谨慎。一味地重复同样的事情并不能保证进步;事实上,无目的的重复反而会让你永远停留在同一个水平上。
这时,“刻意练习”的理论就显得尤为重要了。这种理论强调要提高练习的难度,针对自己的薄弱环节进行专门训练,并积极寻求反馈,这样才能使每次练习都能带来实质性的进步,而不仅仅是增加对知识的熟悉度。
刻意练习的理论
这一理论由心理学家K·安德斯·埃里克森提出,他认为专业技能并非天赋的结果,而是高质量、有目的的练习带来的(Ericsson, 1993)。这种类型的练习与单纯的重复行为有着本质的区别。
在研究人们如何成为专家的过程中,埃里克森提出了“刻意练习”这一概念。他通过研究多个领域的专家,打破了“专家天生具备特殊才能”的谬论。
事实上,专家之所以能够取得高水平的成就,是因为他们的练习方式与众不同——这是一种有目的的、旨在提升技能的努力。这种练习方法的特点是将所需的技能分解成较小的部分,然后反复进行这些部分的训练。
根据安德斯·埃里克森的观点,刻意练习需要满足以下条件:
-
明确的目标
-
即时的反馈
-
那些能够将你的能力推向舒适区边缘的任务
-
全神贯注与全力以赴
刻意练习的核心原则就是:任务必须将你的能力推向舒适区的边界。这一点对于学习进步而言至关重要。
想象一下,如果一个孩子每天只被教导1+1这样的简单运算,那么他永远无法掌握更高级的数学知识。安德斯·埃里克森将这种现象称为“发展停滞”(Ericsson、Nandagopal和Roring,2005年)。如果这个孩子想要成为一名数学家,他的知识面就必须得到拓展。
对于开发者来说,这一点同样适用。遵循“不要重复自己”的原则:如果你只是重复已经掌握的知识,而不尝试挑战自我,那么你就无法取得进步。这种“挑战”正是刻意练习为“间隔重复”学习法带来的额外价值。
如果一遍又一遍地开发简单的待办事项列表、计算器或天气应用,你根本不会有什么进步——因为你早已掌握了这些技能的实现方法。
要想真正取得成长,就必须挑战自我。试着去做一些融合新理念的项目吧。例如,可以开发一个迷你应用程序,让天气数据影响你的待办事项安排:当API显示正在下雨时,该应用会自动隐藏户外任务,并计算出你可以节省的时间,或者提示你应该优先处理哪些室内任务。
这样的尝试会迫使你处理复杂的逻辑问题和状态管理问题,从而帮助你从简单的重复练习中迈向真正的精通境界。
这种创造能力引出了我的最后一个讨论主题:布鲁姆的分类法。
什么是布鲁姆的分类法?
布鲁姆的分类法为学习者提供了认知技能发展的层次结构。学习者会按照这个顺序逐步提升自己的能力,从最基础的任务开始,逐渐过渡到最复杂的任务:
-
记忆——回忆事实或语法知识
-
理解——用自己的话解释概念
-
应用——在实际情境中运用所学知识
-
分析——将问题分解成各个组成部分
-
评价——判断各种解决方案或比较不同的方法
-
创造——构建原创的系统或应用程序
大多数自学成才的开发者往往停留在前两个层次。他们能够记住语法知识,也能理解示例,但在应用、分析或创造方面却遇到困难。
这并不是因为他们缺乏能力,而是因为他们没有被教导过学习必须按照这个顺序逐步进行。
布鲁姆的分类法为学习过程提供了明确的框架。
它提醒自学成才的开发者:掌握技能并非通过观看教程就能实现,而是需要依次经历记忆、理解、应用、分析、评价和创造这几个阶段(其中创造是最重要的环节)。
创造是开发者成长过程中最具有挑战性却又最具变革意义的体验之一。它迫使你进行抽象思考,面对模糊不清的问题,并发现那些教程中很少提及的问题的本质所在。
当你真正去构建某样东西时,你脑海中那些完美的理论就会土崩瓦解,你会开始看到它的真实复杂性。这时你就必须想出策略来应对这些挑战,而在这个过程中,你才会学到真正的知识。
与任何有价值的事情一样,这个过程并不会一帆风顺。你会遇到各种错误——不仅仅是一两个,而是成百上千个。但恰恰就是通过这种方式,真正的知识才得以形成。每一个你解决掉的错误,都会成为你长期记忆中永久的一部分。
下次当你再次遇到那个错误时,你就不会惊慌失措了。相反,你会立刻认出它,清楚地知道它的来源以及如何修复它。
有些自学成才的开发者遇到一些错误后,就再也不会回到他们的项目中去了,他们会得出“编程不适合我”这样的结论。
在尝试了几种解决方法却没有任何进展之后,他们就会放弃这项工作,去寻找其他事情来做。但这种结论是错误的。问题通常并不在于缺乏天赋,而在于人们对大脑在面对认知压力时的运作方式存在误解。
专注模式与扩散模式
当你花费很长时间去解决某个错误时,你可能会陷入“心理固着”或“功能固着”的状态。
这时你的大脑会陷入单一的思维路径中,不断地重复同样的逻辑过程,因为你觉得这就是正确的方向。你越是专注于这个问题,这种认知困境就会越深。你会产生“隧道视野”,几乎无法看到其他的解决方案。
在这种情况下,了解大脑的运作方式就变得至关重要了。
根据Oakley(2014年)的研究,大脑主要有两种工作模式:
-
专注模式:这种模式非常适合执行已知的公式或遵循明确的步骤,但完全不适合探索新的方法或摆脱思维困境。
-
扩散模式:当你暂时离开问题所在的环境——比如去散步、洗澡、放松或者睡觉时,大脑就会进入这种模式。
-
Clearwater, L. (2024). 《理解学习保持背后的科学原理 | 报告 | 我们的观点 | Indegene》。[在线] www.indegene.com. 可访问地址:https://www.indegene.com/what-we-think/reports/understanding-science-behind-learning-retention。
-
Dylan Wiliam [@dylanwiliam]. (2017年1月25日). 《我认为斯韦勒的认知负荷理论是教师必须了解的最重要的概念》[推文]. X. https://x.com/dylanwiliam/status/824682504602943489
-
Ericsson, K. A., Krampe, R. T., & Tesch-Römer, C. (1993).《刻意练习在获得专家级表现中的作用》.
《心理评论》,100(3),363–406页。 -
Garnett, S. (2020.). 《认知负荷理论:教师手册》.[在线] 可访问地址:https://www.crownhouse.co.uk/assets/look-inside/9781785835018.pdf。
-
Geary, D. C. (2007). 《从进化角度探讨数学学习障碍》.《发展神经心理学》,32(1),471–519页. https://doi.org/10.1080/87565640701360924
-
Geary, D. C. (2008). 《基于进化论的教育科学》.《教育心理学家》,43(4),179–195页. https://doi.org/10.1080/00461520802392133
-
George A. Miller (1956). 《神奇的数字7,正负2:我们处理信息能力的一些限制》.《心理评论》,63(2),81–97页. https://doi.org/10.1037/h0043158
-
Nelson Cowan (2001). 《短期记忆中的神奇数字4:对人类信息存储能力的重新思考》.《行为与脑科学》,24(1),87–114页. https://doi.org/10.1017/S0140525X01003922
-
Oakley, B. (2014). 《数字思维:如何在数学和科学领域取得优异成绩(即使你以前数学很差)》. 纽约:TarcherPerigee出版社.
-
Sweller, J. (1988). 《解决问题过程中的认知负荷及其对学习的影响》.《认知科学》,[在线] 12(2),第257–285页. doi:https://doi.org/10.1207/s15516709cog1202_4.
在这种模式下,大脑会进入一种“全局视角”的状态,神经连接会在不同的区域之间进行互动。
大脑的背景处理过程会继续致力于解决这个问题,而不会受到有意识关注的束缚,也不会产生“隧道视野”现象。
这种现象被称为“酝酿效应”。
这就是为什么有时候,当你不再主动思考某个问题时,解决方案却会突然出现。因为你暂时离开了这个问题,你大脑中的其他部分开始发挥作用,帮助你找到了答案。
事实上,许多开发者并没有给自己的大脑留出“酝酿”的时间。当你暂时离开问题时,你的大脑其实正在进行潜意识的整合:它会过滤掉那些干扰因素,让核心的逻辑思路得以沉淀。当你再次回到这个问题面前时,那些曾经让你困扰的错误思路已经消失不见了,而正确的解决方案往往也会因此变得清晰可见。
因此,开发者们必须有意识地为大脑留出“酝酿”的时间。我们可以从过去一些杰出的思想家那里学到一些经验:
亨利·庞加莱曾为研究富克斯函数耗费了数周时间。直到在一次地质考察途中,当他完全忘记了那些数学问题时,一登上公共汽车,答案便“理所当然”地出现在他的脑海中。他的突破并非源于更多的努力,而是因为暂时远离这些问题,让大脑以另一种方式来处理这些信息。
弗里德里希·奥古斯特·凯库勒在多年思考苯分子中的碳原子为何无法构成线性结构后,也经历了类似的事情。
如果历史上一些最伟大的思想家都能通过暂时远离问题,让大脑以另一种方式来寻找答案,那么开发者又有什么理由不这样做呢?
现在你已经了解了认知负荷理论、间隔重复法以及布鲁姆分类法这些重要的学习方法,接下来应该尝试从零开始创建一个项目。这将帮助你整理、检索并巩固那些作为自学开发者所积累的各种知识。
结论
在这篇文章中,我们探讨了为什么人类大脑并非天生就适合理解编程。编程是一项生物学上属于次要能力的技能,这意味着它不能通过自然学习来掌握,而是需要系统的指导、结构化的学习过程以及耐心。
我们还讨论了工作记忆的局限性、将信息分块处理的重要性,以及如何控制认知负荷,以确保学习过程能够顺利进行而不会让人感到不堪重负。
接着,我们分析了认知负荷理论的三个组成部分——内在负荷、外在负荷及相关负荷,并探讨了它们各自对学习过程的影响。对于自学开发者来说,减少外在负荷尤为重要,因为这能为他们释放更多的脑力资源,从而帮助他们真正理解所学内容。
随后,我们介绍了艾宾浩斯遗忘曲线,这个曲线说明了如果没有及时复习,新学到的知识会以多快的速度被遗忘。
为了对抗这种自然的遗忘现象,我们引入了间隔重复法——通过在不同时间间隔内复习材料来加强记忆。我们还研究了刻意练习这种方法,它能够将学习者推到他们的舒适区之外,从而促进真正的技能提升;同时,布鲁姆分类法也为我们的学习过程提供了清晰的框架,帮助我们了解认知发展的各个阶段。
最后,我们强调了适时退后一步的重要性。大脑既可以以专注的方式工作,也可以以分散注意力的方式来处理信息,而有效的学习需要在这两种状态之间切换。休息并不是软弱的表现,而是巩固知识、获得深刻理解所必需的环节。
综上所述,这些理论共同构成了一个系统而科学的学习编程框架。当自学开发者了解自己的大脑是如何学习、遗忘以及成长的时候,他们就能设计出更加高效且可持续的学习方法。
掌握了所有这些新知识后,我们可以肯定一点:专注力、决心和持之以恒的态度才是将理论知识转化为实际能力的关键因素。
学习科学可以为这一过程提供指导,但只有持之以恒的努力才能将知识转化为技能。
参考文献