要成为现代的编程奇才需要什么?出色的数学技能可能是您首先想到的。但本周发表在《科学报告》杂志上的一项新研究表明,编程能力不仅仅是计算数字的能力。
主要作者,华盛顿大学神经科学家Chantel Prat,多年来一直研究大脑的学习方式。她预感,语言能力强的人可能也擅长学习计算机编程——这个想法在一些先前的研究中被提及过,但缺乏数据支持,尤其是在近几年。
因此,Prat和她的同事招募了一群没有编程经验的英语母语者,让他们参加了Python(一种流行的计算机编程语言)的入门课程。他们扫描了他们的大脑,并进行了书面测试,以衡量他们在各种技能上的天赋,并将结果与他们学习编程的容易程度进行了比较。研究人员发现,语言天赋、记忆力和推理能力在预测一个人掌握计算机语言的难易程度上起着更大的作用——而不是他们对数字的熟练程度。
这些数据为Prat等研究人员提供了一个起点,以便更好地理解是什么让人擅长编程。她乐观地认为,这些结果可能会引发关于谁应该学习编程的新讨论。
“计算机编程语言的学习仍然主要是在工程[或计算机科学]部门提供的环境中进行的,”Prat说。“也许这不再是唯一适用的环境,而且还有其他教授编程语言的方式,可能与更广泛的受众相关。”
Python神童
在开始在流行的网站Codecademy上学习Python课程之前(该网站教授多种编程语言的基础知识),Prat和她的同事让36名参与者接受了脑部扫描,以观察他们静息脑电波的模式。
Prat在2016年的一项研究中使用了相同的技术,来预测成年人学习第二语言的能力。脑部扫描能够以高达60%的准确率预测参与者学习法语的难易程度。
在脑部扫描后,新研究中的参与者在第一次接触编程之前,参加了书面测试,以衡量他们在语言学习、计算能力、解决问题和记忆方面的天赋。研究人员跟踪了他们完成10次45分钟的Python课程的情况,每节课结束后都进行了小测验。他们追踪了参与者完成每个部分的进度,并注意到了参与者在测试中请求提示或解决方案的情况,以了解他们对主题的掌握程度。
虽然计算能力(研究人员称之为“读写能力的数学对等物”)确实与更快的学习速度相关,但它并不是预测参与者整体学习Python能力的有力指标。相反,语言天赋、记忆力和推理能力与学习速度、准确性和材料回忆之间有更强的相关性。
阅读更多:关于我们如何学习的一切值得知道的事情
但Prat说,这并不意味着程序员不需要数学。相反,程序员编写程序所需的数学知识与其说是数字计算,不如说是一项在许多学科中都很重要的技能。
“我认为人们所认为的数学实际上是解决问题,”Prat说。“它并不真正关乎计算能力。”
会编程的大脑
关于大脑如何学习编程——以及为什么有些人比其他人更擅长——还有很多需要了解的地方。Prat表示,她计划进行后续研究,以分析双语程序员和非英语母语者。
像Java、C++和ARM这样不像Python那样易读的语言,可能会给初学者带来更大的挑战,但目前这方面的证据仍然是道听途说的。
“没有人真正进行过Python培训,也没有让另一组人进行Java培训,并表明其中一种比另一种更难或更容易,”Prat说。学习者在使用更复杂的算法和解决初级Python课程未涵盖的挑战性问题时,他们的进步情况如何,这一点也不清楚。Prat说,学习第二语言通常依赖于陈述性知识。初学者不会对如何在所有场景中使用该语言有灵活的理解,而是主要依靠记忆来掌握词汇和概念。学生们能否成功地在Python方面变得“流利”,这一点尚不清楚。
但在Prat看来,主要收获是编程不仅仅是“数学人才”的事情。随着Python等用户友好的语言越来越受欢迎,这为教育者提供了一个机会,可以重新定义编程适合谁,以及它如何在各种职业中使用。
“没有学习的科学,就无法发展教学的科学,”Prat说。














