程序员应该学习的 10 件事(省流版)
翻译:10 Things Software Developers Should Learn about Learning
原文:https://cacm.acm.org/magazines/2024/1/278891-10-things-software-developers-should-learn-about-learning/fulltext
10件和记忆、学习、程序员相关的事。
1.人类的记忆不是bit组成的
人无法像计算机一样精确读取和存储记忆。
- 人在回忆时会重新整合记忆。
- 人通过传播路径回忆。这可能导致错误记忆,也可能产生新的想法。
2.人类的记忆由长期记忆和工作记忆组成
长期记忆永久存储大量信息,类似磁盘。
工作记忆短暂存储有限的信息,并能快速访问和操作,类似CPU寄存器。
如果你对某个主题很熟悉,就可以将一些信息作为一个块,从而增加工作记忆容量。
当任务超出个人能力的时,将问题分解成可以处理和分块的更小的部分。
3.专家把握整体,新手陷入细节
初学者可以通过阅读和理解大量代码成为专家。专家(在心里)建立了一个模式的库,能更容易地读写代码。
4. 理解一个概念从抽象到具体再到抽象
从抽象的概念,到具体的例子/细节,再回到抽象。
5. 间距和重复问题
间隔效应:在一段时间内分散学习,而不是在一次学习中集中学习相同数量的内容,学习效果更好。
为了安排一天的学习,学习者应将学习时间限制在 90 分钟或更短。持续学习时间太长时,大脑难以集中注意力。每次学习后,至少休息(放松)20分钟。
在学习中,有几种策略可以最大限度地提高效率。首先,随机化正在解决的问题类型的顺序,以便在长期记忆中激活不同的概念。但随机化顺序需要更多的努力。 第二种策略是随机休息一下,以增强记忆巩固。建议每 2-5 分钟休息 10 秒。
6. 互联网并没有让学习过时
尽管搜索引擎和ChatGPT能让你快速找到某个知识点,但你仍然需要学习这些知识。否则你无法将知识存储到长期记忆中并形成联系,产生高层次的理解和抽象。
7. 解决问题不是通用技能
脑筋急转弯对评价编程能力没有帮助。如果要判断编程能力,就要评估编程能力。
8. 在某些情况下,专家可能会有问题
一些对初学者有益的东西,可能对专家产生负面效果。
例如IDE中的提示信息可能帮助初学者使用IDE,但会影响专家的注意力。这被称为专业知识逆转效应:帮助初学者的提示和指南可能会妨碍专家并降低他们的工作效率。
9. 编程能力的预测因素不明确
简而言之,很难预测谁将能够编程。
10. 你的心态很重要
以成长型思维方式处理任务是有效的,但也是一项需要培养的技能。
总结
对于学习和培训,我们提出以下建议:
- 阅读大量代码将帮助某人成为更高效的程序员。
- 专家并不总是最擅长培训初学者。
- 学习需要时间,包括学习课程之间的时间。激烈的死记硬背是无效的,但间隔重复是有效的。
- 同样,花时间远离问题可以帮助解决问题。
- 仅仅因为你可以通过互联网搜索或生成式人工智能工具找到它,并不意味着学习已经过时了。
- 使用示例在抽象概念和具体的可学习事实之间切换。
- 寻求成功(而不是避免失败)并相信能力是可以改变的,是适应力和学习的重要因素。