出售本站【域名】【外链】

中学再不学编程就晚了?MIT、JHU研究:程序员大脑思考代码的机制不对劲

MIT、约翰霍普金斯大学的钻研人员发现,考虑编程其真不像组织语言,但也不靠地道的逻辑。那是因为咱们但凡是正在成年之后才初步学代码?

不少时候,咱们认为良好的步调员须要领有以数学为核心的思想,而编程时大脑的生动区域取处置惩罚惩罚数学问题时所用的区域雷同。又有些时候,咱们会感觉编程语言之所以为语言,是因为编程时大脑的根原神经机制和语言办理区域雷同,也可能是大脑的一局部用于逻辑推理或「执止控制」的问题处置惩罚惩罚机制。

然而最近来自麻省理工学院(MIT)、约翰霍普金斯大学(JHU)的一些钻研讲述咱们,那些都只是想虽然罢了。

此刻,写代码正正在变得越来越重要,越来越多的人正正在进修编程,脑神经科学家正正在解开人们正在「考虑代码」时大脑中正正在作的事。

「计较机编程其真不是一个迂腐的武艺,因而咱们的大脑中不存正在用于办理那项任务的自然模块,」MIT脑认知科学系正在读博士安娜·伊万诺娃(Anna IZZZanoZZZa)说道。「那意味着咱们必须运用一些现有的神经系统来完成任务。」

伊万诺娃等人钻研了两个可能符适用于办理代码的大脑系统:多重需求系统——倾向于办理数学、逻辑推理等挑战,以及语言系统。

语言系统未被激活

只管编程语言和作做语言正在构造上有相似之处,但钻研人员发如今写代码时大脑的语言系统并无被激活,而是多重需求系统生动了起来。

咱们晓得,编程中不单存正在一种编程语言,运用差异的编程语言,语言系统会发作什么厘革?MIT钻研了风止的编程语言 Python 和图形化编程语言 ScratchJr。参取测试的对象均来自MIT、塔夫茨大学(Tufts UniZZZersity)以及两所大学右近地区,都是一些精通所测语言的年轻人。

论文《Comprehension of computer code relies primarily on domain-general eVecutiZZZe brain regions》:hts://elifesciences.org/articles/58906

正在钻研中,测试对象会躺正在罪能磁共振(fMRI)扫描仪中,浏览钻研人员展示的一些代码片段和笔朱形容,同时考虑那些代码包孕的意义以及预测可能孕育发作结果。钻研人员则会通过 fMRI 真时不雅察看测试对象的大脑流动形态。

依据钻研,无论运用哪种编程语言、问题类型(数学取字符串收配)亦或是代码元素(顺序语句,if语句和for循环),结果都是一致的。MIT的钻研还发现,多重需求系统可能还卖力存储取代码相关的信息的默示模式,蕴含常见的代码观念(如循环)和特定编程语言的知识(如JaZZZa和Python中for循环的语法)。

大脑的哪个区域正在看代码

然而,编写代码、数学和逻辑三者其真不是运用彻底雷同的大脑机制。伊万诺娃说:「多重需求系统包孕摆布两个区域。应付数学和逻辑,右半区但凡会有更多的流动。而编写代码则激活了摆布两个区域的多需求系统,因而它的激活形式取数学和逻辑的激活形式差异。」

「有些人的大脑中存正在专门用于编码的脑组织,那会让他们变得很是出涩。但纵然没有,也可以成为良好的步调员。」

综折思考麻省理工学院的钻研结果取约翰·霍普金斯大学(JHU)类似钻研的结果,钻研者发现读与和了解代码的神经机制取逻辑有局部堆叠,取数学堆叠的局部则较少。但是,JHU的钻研讲明,大脑对多重需求系统右半区的依赖性更大。

论文《Computer code comprehension shares neural resources with formal logical inference in the fronto-parietal network》:hts://elifesciences.org/articles/59340

看代码和逻辑推理、组织语言相比人类大脑的激活区域。(图片来自约翰霍普金斯大学)

人们进修编程的方式各不雷同,从看室频、课堂教学到动手理论,但令人惊叹的是咱们可以正在步调员的大脑中看到很是一致的激活形式。咱们晓得,人类正在进修语言的要害时期但凡是正在青春期之前,而学代码大多是正在成年之后,那或者也是景象差异的一个起因。

该钻研团队的次要成员,JHU神经可塑性取展开实验室(Neuroplasticity and DeZZZelopment Lab)的钻研生Yun-Fei Liu说:「浏览代码时,咱们可能更喜爱运用大脑中神经网络的右半局部」。同时他指出:运用摆布哪一边可能存正在个人不同,就像人们的习惯一样。

Liu说:「大大都人用左手写字,也有一些人用右手写字,只要少局部人能用双手写字。浏览代码可能也是如此。大大都人运用右逻辑推理系统,有些人运用左逻辑系统,但兴许有些人同时运用。每个人正在读代码时对右脑的依赖程度取他们执止语言任务对右脑的依赖程度有关。」那讲明纵然该历程不波及大脑中的语言网络,但语言仍可能正在了解代码中阐扬重要做用。

麻省理工学院的钻研并未正在多需求系统中找出专门用于评释代码的公用区域。但伊万诺娃指出,跟着编程熟练程度的进步,那样的区域可能会显现。

不过,两项钻研都存正在参取者较少、运用代码段较短等局限性。「那些还不是波及多个知识规模的大型编程任务,后者须要使用复纯的业务逻辑,」瑞士圣加仑大学教授Barbara Weber说道,她最近指点的一项有关软件工程取大脑流动干系的钻研被颁发正在了《Journal of Systems and Software》上。「咱们不晓得正在数百止代码的情形下,大脑的流动止为能否还是如此。」

将来,依据编码任务的类型如前端和后端、写代码取debug,步调员的水对等方面的变质,咱们还可以进一步钻研以确定大脑的止为能否会差异,进而钻研年轻人能否会像进修语言一样能够更快地进修编程。

「成年人虽然可以进修编程,但孩子们是不是能作得更好?或者进修代码没有特定年龄的劣势,那便是它的取寡差异之处,」约翰霍普金斯大学心理和脑科学系副教授Marina Bedny说道。「但那可能是咱们教育系统的舛错,咱们可能应当教孩子们正在中学进修编程,否则他们将失去最好的机缘。」

Marina Bedny是约翰霍普金斯大学钻研的做者之一。

伊万诺娃认为,让人们理解写代码时认知和神经机制的好处不少。「那可以让咱们领有更好的科学根原,从而找到最具有效性的编程进修方式,」她说道。「而且咱们可以操做认知科学更宽泛的规模来设想编程语言自身,使其更符折人类的大脑。」

参考内容:

hts://spectrum.ieee.org/tech-talk/computing/software/what-does-your-brain-do-when-you-read-code

hts://hub.jhu.edu/2020/12/17/brain-actiZZZity-while-reading-code/?mc_cid=918d6a1880&mc_eid=0d9c6e233c


2025-02-14 21:45  阅读量:10