首頁>技術>

都說學程式設計就像學一門新的語言,但事實真的如此嗎?不不不,起碼在讀程式碼這件事上,你的大腦可不這麼認為。

最近,MIT神經科學家在eLife期刊發表了一項新研究:在讀程式碼的時候,並不會啟用人類大腦涉及語言處理的區域。相反,啟用的是一個叫做多需求 (multiple demand,MD)網路的分散式網路。

而這個MD網路,通常在人們處理比較複雜的認知任務時被啟用。舉個例子,數學問題、填字遊戲等……怪不得……看別人的程式碼,一直有種很痛苦的趕腳,原來它真的是很“燒腦”啊!讀程式碼時,你的大腦會發生什麼?或許你會認為,程式碼嘛,本質上就是解決數學或邏輯相關的問題,那讀程式碼會啟用MD網路也是可以理解的。Too simple,too naive.MIT的研究人員進一步發現:儘管讀程式碼的時候激活了MD網路,但和數學、邏輯問題相比,它似乎更加依賴這個網路的不同部分。也就是說,讀程式碼時大腦的工作狀態,還不能精確複製解數學問題時的大腦認知需求。通訊作者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網路幾乎可以做任何具有認知挑戰性的事情。然而,先前的研究表明,數學和邏輯問題似乎主要依賴於左腦的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腦與認知科學系助理教授。參考連結:https://elifesciences.org/articles/58906https://www.zdnet.com/article/reading-software-code-activates-the-part-of-your-brain-used-for-crossword-puzzles-and-logic-problems/https://www.fastcompany.com/3029364/this-is-your-brain-on-code-according-to-functional-mri-imaging

9
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Python 字串格式化(format)介紹