[中文正文内容]

当你想到学习一门外语时,你可能会想到法语、西班牙语或汉语。但如果换成是 PythonJava 呢? 这两个过程可能比你想象的更相似。

华盛顿大学研究人员最近发表的一项研究表明,语言能力和解决问题的能力最能预测人们学习流行的编程语言 Python 的速度。他们发表在 Scientific Reports 上的研究,使用了行为测试和脑部活动测量方法,来观察这些因素与参与者学习编程的速度和程度之间的相关性。

在这项研究中,招募了 42 名参与者,尝试通过 Codeacademy 学习一个流行的在线编程课程。他们被要求完成“Learn Python”课程的十节 45 分钟的课程。从完成研究的 36 名参与者中,他们能够确定学习速度以及学生学习课程的程度。

在参加在线课程之前,参与者进行了一系列测试,旨在考察数学技能、工作记忆、解决问题的能力和第二语言学习能力。在他们的在线编程课程中,研究人员能够跟踪他们学习的速度以及他们在在线软件中内置的测验中的表现。他们还在研究结束时完成了一项测验和编码任务,以考察他们的总体编码知识。

记忆力、解决问题的能力以及对数字或语言的掌握程度,对他们学习编码的速度有多大影响?

然后,研究人员能够比较 Python 课程前后的测试结果。目的是确定参与者 Python 学习的差异,有多少可以用他们在不同预测试中的表现来解释:记忆力、解决问题的能力以及对数字或语言的掌握程度,对他们学习编码的速度有多大影响?

参与者学习 Python 的速度不同,并且在研究结束时具有不同的编程能力。研究人员研究了预测试技能中涵盖的技能与参与者学习 Python 方式的差异之间的关系。他们发现,学生学习 Python 的_好坏_主要由一般认知能力(解决问题和工作记忆)解释,而他们学习的_快慢_则由一般认知技能和语言能力共同解释。

很多人都说自己“不擅长数学”,但他们可能只是计算机科学领域的人才

语言能力解释了人们学习 Python 速度差异的近 20%。相比之下,数学预测试的表现仅解释了学生学习速度差异的 2%,并且与他们学习的好坏根本没有相关性。学习编码更多地依赖于语言技能,而不是数字技能。

Lines of Python code Python 确实是另一种语言。 Wikimedia Commons.

支持语言技能重要性的另一个证据来自脑电图 (EEG) 数据。 EEG 是一种通过可以穿过颅骨记录的电模式来测量大脑活动的方法。在他们的在线学习任务之前,参与者接受了静息状态 EEG,它测量了受试者放松并且什么都不做时大脑中的模式。

静息状态下的电活动具有不同的模式。其中一种模式是称为 beta 振荡的缓慢电活动波。过去的研究表明,静息状态下高水平的 beta 振荡与学习第二门语言的能力有关。

a man wearing a cap covered with eeg electrodes and watching a screen ulrcichw on Pixabay

在这项研究中,高水平的这些 beta 振荡与更快的学习和更多的编程知识相关。虽然这一发现为语言学习和学习代码之间的联系提供了额外的支持,但尚不清楚(目前)beta 振荡如何与学习成果相关,还需要更多的研究。

总而言之,这些结果证明了语言技能是学习编程(或者至少是学习 Python)的一个组成部分,而数学技能对参与者学习的好坏或快慢的预测性不强。这种观点对围绕编程的看法具有重要影响,编程通常被视为“数学密集型”领域。

既然语言能力被证明可以预测学习编程的能力,也许女性应该在编程方面享有更高的声誉。

关于程序员有很多假设,特别是关于_谁_能成为一名优秀的程序员。女性经常觉得她们与“典型”计算机程序员的想法不符。然而,平均而言,女孩通常比男孩具有更高的语言技能。既然语言能力被证明可以预测学习编程的能力,也许女性应该在编程方面享有更高的声誉。

诚然,有些领域需要数学和编程技能,但这些不一定是大多数可用的编程工作。根据这项研究,对于每个计算机科学专业的学生来说,高级数学课程的要求似乎没有必要,并且增加对数学要求的灵活性可能有助于招募和留住学生。

随着编程成为许多工作的先决条件,现在是时候质疑长期以来对学习编程的先决条件的假设了

明确地将语言技能与编程联系起来,并提供不需要高级数学的教育选择,可能有助于提高多样性,同时仍然教授学生他们需要的编程技能。事实上,迅速普及的“训练营”式选择可以在不强迫参与者学习微积分的情况下,引导他们走向编程职业。

随着编程成为许多工作的先决条件,现在是时候质疑长期以来对学习编程的先决条件的假设了。根据这项新研究的结果,大学和个人应该重新思考他们如何描述学习编程以及哪些能力发挥作用。很多人都说自己“不擅长数学”,但他们可能只是计算机科学领域的人才。

评论专家评论

我们邀请来自我们联盟的其他科学家,从他们的专家角度对文章发表评论。

Dori Grijseels 神经科学 萨塞克斯大学 链接 这是一篇关于真正重要研究的优秀文章。 编程正在成为就业市场上的一项宝贵技能,但仍然存在这样一种观点,即您必须擅长数学才能学习它。 这造成了不平等。 例如,之前的研究表明,女孩的数学自信心较低,这意味着她们也可能低估自己的编程能力。

我也想知道这项研究对我们如何教授编程可能意味着什么。 我所接受的教学几乎完全是面向数学的练习,例如计算 fibonnaci 数或实现排序算法。 也许在教授编程时,我们应该开始使用更多有创意和面向语言的练习,这可以帮助更多的学生学习如何编程。

总的来说,我很高兴我们开始消除编程只适合数学天才的想法。 我喜欢最后一句话,这是如此真实:“很多人都说自己“不擅长数学”,但他们可能只是计算机科学领域的人才。”

Simone Eizagirre 纳米技术 剑桥大学 链接 我认为人们常常对了解如何编程意味着什么有很多误解,而实际上将编程语言视为一种实际语言更有意义。 与 Dori 所说的类似,我很想看看用类似于教授外语的方法来教授编程会对学生的学习产生什么影响。

作为一个在一段时间没有做之后重新开始用 Python 编程的人,我在编写代码时感受到了与在暑假后回到学校的法语课时相同的挫败感。 我确切地知道我想说什么,但似乎记不起任何单词!