说起学习一门新语言,你多半会想到法语、西班牙语或是汉语。但为什么不是Python或Java呢?自然语言和人工语言的学习过程有多相似?相似到超过你想象。 华盛顿大学的研究者最近发
说起学习一门新语言,你多半会想到法语、西班牙语或是汉语。但为什么不是Python或Java呢?自然语言和人工语言的学习过程有多相似?相似到超过你想象。
华盛顿大学的研究者最近发表了一项研究,显示最能预测一个人对流行的编程语言Python的学习速度的,其实是语言能力和问题求解的技能。
这项研究发表在《科学报告》(ScientificReports)杂志上,它采用了行为学测试和对脑部活动的测量,以此观察了被试学习编程的速度及效果究竟与什么因素相关。
研究招募了42名被试,要他们在Codeacademy学一门热门的编程网课——10节45分钟的“学习Python”课。一共有36名被试完成学习,研究者确定了这36人的学习速度和学习效果。
在开始网络学习之前,被试先接受了一组测试,以判断他们的数学技能、工作记忆、问题求解以及外语学习能力。
在网上的编程课中,研究者追踪了被试的学习速度以及他们对网上软件中内置的测验题的回答情况。被试在学习结束后,还接受了一次测验和编程任务,以评判他们的整体编程知识。
记忆、问题求解、数字能力或语言能力,对于被试们学习编程到底有多大影响呢?
被试学习Python的速度有快有慢,在学习结束时也显示了不同的编程能力。研究者发现,学生们学习Python的效果,主要和他们的一般认知能力(即问题求解和工作记忆)有关。而他们学习Python的速度,则与一般认知能力和语言能力这两个因素有关。
在Python的学习速度上,语言能力解释了近20%的个体差异。
与之相比,数学能力只能解释学习速度2%的个体差异,和学习效果更是毫无相关性。总之,学习编程更多是依靠语言技能,而非数字技能。
研究里,脑电图数据进一步证明了语言技能的重要性。在开始网上学习任务之前,被试先测了静息状态的脑电图,也就是被试在心情放松无所事事的状态下脑内的电流模式。
静息状态的脑电活动包含了不同的模式。其中一种缓慢的脑电波被称为“β振荡”(beta oscillations)。之前的研究显示,静息状态下高强度的β振荡和学习一门外语的能力有关。
而这项研究显示,高强度的β振荡和更快的学习速度以及更丰富的编程知识有关。
虽然这一发现对语言学习和编程学习的联系提供了额外支持,但目前还不清楚β振荡和学习效果有什么关系,还需要进一步研究研究。
总的来说,这些结果证明了语言学习技能是编程学习中一个不可或缺的方面(至少对Python的学习是如此),而数学技能对于被试学得多好多快反而没有多少预测作用。
这个结论对于围绕编程的种种看法具有重要影响,因为编程常被看作一个“数学密集”的领域。
关于程序员存在许多成见,特别是哪些人能成为优秀程序员的问题。女性常常觉得自己不符合“典型”计算机程序员的形象。但是平均而言,女孩一般具有比男孩更高的语言技能。
现在这个新研究显示,语言技能可以预测编程学习能力,或许女性未来可以有“擅长编程”的名声了。
有些领域确实对数学和编程技能都有要求,但大部分编程工作却不一定来自这些领域。根据目前这项研究,似乎没有必要让每个计算机科学的学生都完成高等数学课程。在数学要求上增加一点弹性,或许有助于招收并留住学生。
将语言技能和编程明确地联系在一起、提供无需高等数学的教育选择,这或许能在传授学生他们需要的编程技能之外,增加一点学生的多样性。眼下“训练营”式的编程教育正迅速风行,它引导参与者进入编程行业,而不需要强迫他们学习微积分。
随着编程成为许多工作的必备技能,是时候质疑一下那些关于编程先决条件的成见了。从这项新研究的成果出发,大学和个人应该重新思考自己对编程学习的认识、以及学会编程究竟需要哪些能力。有许多人不是所谓的“数学高手”,但他们完全可能成为编程专家。
(责任编辑:中博IT教育)