金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 都说学编程就像学一门新的语言,但事实真的如此吗? 不不不,起码在读代码这件事上,你的大脑可不这么认为。 最近,MIT神经科学家在eLife期刊发表了一项新研究:
相反,激活的是一个叫做多需求 (multiple demand,MD)网络的分布式网络。 而这个MD网络,通常在人们处理比较复杂的认知任务时被激活。 举个例子,数学问题、填字游戏等…… 怪不得……看别人的代码,一直有种很痛苦的赶脚,原来它真的是很“烧脑”啊! 读代码时,你的大脑会发生什么? 或许你会认为,代码嘛,本质上就是解决数学或逻辑相关的问题,那读代码会激活MD网络也是可以理解的。 Too simple,too naive. MIT的研究人员进一步发现:
也就是说,读代码时大脑的工作状态,还不能精确复制解数学问题时的大脑认知需求。 通讯作者Anna A Ivanova这样表述道:
嗯,有种“VIP专属区域”的味道了。 研究人员测试的编程语言主要有2个:一个是Python;另一个是在少儿编程较火的可视化编程语言ScratchJr。 测试对象是两组年轻人,分别对上述2个编程语言达到了精通状态。 大致的测试过程是让这些年轻人平躺,工作人员会给他们展示代码片段和文字描述 (如上图所示),并让他们预测这些代码将产生什么样的结果。 在这个过程当中,研究人员还会用脑功能磁共振成像 (fMRI)来扫描,以此来检测这些年轻人大脑的活动。 上述的实验是这次研究的“主实验”(上图A),除此之外,还有额外的2个“副实验”(上图B,与定位器相关): MD System Localizer:困难模式,在出现的8个蓝色方块中,一次性记住2个的位置;简单模式,在出现的4个蓝色方块中,一次性记住1个的位置。 Language System Localizer:包括一个句子,以及非单词(一次出现一个)。 对测试对象扫描过后,便得到了如下结果。 图中的A展示了MD网络在大脑左半球和右半球的位置,以及大脑涉及语言的区域。 B和C分别展示了在读Python和ScratchJr代码或文本时,通过fMRI扫描得到的响应反馈情况。 再具体的,SR代表句子阅读,NR代表非单词阅读,SP表示句子问题,CP表示代码问题。 从实验结果难看出,大脑中的语言区域,几乎对代码问题(CP)没有反应,或者说反应极低。 但十分意外的是,在读代码过程中,主要激活了MD网络,活动分布在大脑的额叶和顶叶。 Anna A Ivanova对此表示道:
然而,先前的研究表明,数学和逻辑问题似乎主要依赖于左脑的MD区域,而涉及空间导航的任务对右脑的激活程度要高于左脑。 MIT这次的研究表明,读代码过程中,似乎同时激活了MD网络的左右两个部分;并且,读ScratchJr代码时,对右侧大脑的激活程度略高于左侧大脑。 同时也推翻了以往的认知,即读代码时大脑的活动,和数学逻辑相同。 到底更倾向于“数学逻辑”还是“语言”? 对于人们在处理代码过程中,大脑的活动机制,更加倾向于“数学逻辑”还是“语言”,这个问题并不是第一次被拿出来研究。 正如Anna A Ivanova所述,关于大脑如何学习编程,有两种思想派系:
第一次利用科学成像工具来做这方面研究的,需要追溯的2014年。 来自帕绍大学(德国)、CMU等机构联手,对程序员大脑如何理解代码做了研究。 当时所采用的方法依旧是fMRI,参与测试的是17名精通Java的学生。 被测试的学生,每个人都需要阅读不同的几段Java代码片段,且难度相似,因此研究人员可以平均得到的大脑成像数据。 这项研究虽然并没有得到非常有力的结果,但第二作者表示:
除了MIT这次在eLife发表的研究外,同期还有一篇配套论文,来自约翰·霍普金斯大学。 他们的研究也表明,读代码的过程中,大脑众多的MD网络被激活,而不是与语言相关的区域。 至于在读代码时,大脑是否有专属的“工作区域”,MIT研究人员表示:
实验团队介绍 这项研究来自MIT脑与认知科学系。 本研究的第一作者是Anna A Ivanova,是MIT的一名研究生,对语言和语义处理的神经基础感兴趣。 另外一位通讯作者叫做Evelina Fedorenko,目前在MIT脑与认知科学系助理教授。 免责声明 以上内容为用户在观察者网风闻社区上传并发布,仅代表发帖用户观点。 |
|