Программирование - это техническая или гуманитарная профессия?

Программирование - это техническая или гуманитарная профессия?

Высокоуровневые языки программирования используют «инструкции», призванные быть понятными как машине, так и людям. Это что-то среднее между человеческим языком и переложением того двоичного кода, которым оперируют компьютеры. Первый не всегда легко воспринимается искусственным интеллектом, а второй непонятен живым существам. Поэтому психологи считают, что изучение работы мозга программистов поможет пролить свет на то, как мы усваиваем новые навыки, отличающиеся большой сложностью. У людей ведь нет особых областей мозга, предназначенных для понимания компьютерного кода, не правда ли? Почему бы не выяснить, какие из имеющихся работают с ним?

C++, Java, Python - ещё полстолетия назад этих языков не существовало. Однако сегодня миллионы людей свободно владеют ими. Возможно, в будущем их понимание будет в той или иной мере необходимым для большинства представителей нашего вида живых существ. Вопрос обучения человека кодированию приобретает все большую важность, но чтобы научиться делать это наиболее эффективно, надо выяснить, как мозг интерпретирует эти команды. На сегодняшний день относительно внятно сформулированы две теории на этот счет.

Согласно одной из них мы обрабатываем код, как обычный язык, например, суахили или армянский. То есть эта деятельность задействует языковые области мозга, отвечающие за решение задач лингвистического характера. Вторая гипотеза предполагает, что в этих процессах эксплуатируются нейронные схемы, использующиеся при работе с математикой, в том числе и символической, вроде той же алгебры. Эти сети расположены внутри системы множественных требований («multiple demand system»), включающей в себя обширные участки, вовлеченные в решение логических и других сложных задач.

Теоретический диспут был, по существу, бесплодным, но в прошлом году нейробиологи из Массачусетского технологического института решили подключить к изучению вопроса магнитно-резонансную томографию. Они привлекли к исследованию более четырех десятков опытных программистов, расположили их внутри аппаратов МРТ и заставили решать задачи, составленные либо из обычных слов, либо с помощью компьютерного кода. Половина участников использовала популярный текстовый язык программирования Python, а вторая ScratchJr - визуальный продукт, разрабатывавшийся для обучения детей. Последний, как ожидалось, будет оказывать меньшее воздействие на языковые области мозга.

Эксперимент с языками программирования Python и ScratchJr
Эксперимент с языками программирования Python и ScratchJr

Что в итоге? Эксперимент не смог выдать однозначно интерпретируемых результатов. Выяснилось, что в те минуты, когда участники работали с кодами, языковые области не задействовались вообще. Система множественных требований активировалась, но не в тех частях, которые ассоциируются с решением чисто математических задач. Обычно подобная работа осуществляется в левом полушарии, как минимум у правшей, которых специально отбирали для этого исследования. Но у программистов были задействованы области по всему мозгу - объединяло их то, что они традиционно ассоциируются с логикой и сложной когнитивной деятельностью. То есть, если верить «тепловой карте» МРТ, программирование больше похоже на решение очень трудной, комплексной задачи, чем на рутинные математические упражнения.

Все это означает, что кодирование для мозга - это и не язык, и не некий аналог алгебры с геометрией. Это не относящийся к существующим категориям феномен, обрабатывающийся уникальным способом. Звучит в высшей степени интересно и даже таинственно, но данная информация ничем не облегчает работу, допустим, преподавателей программирования. Если бы мы воспринимали код как слова, ему можно бы было обучать, как иностранному языку. Или как математике, если бы мозг видел в нем только абстрактные формулы. Но поскольку он не идентифицируется однозначно ни как то ни как другое, педагогам приходится подходить к процессу обучения «творчески», постоянно изобретая новые способы донесения информации.

Языковые области (слева) и система множественных требований (справа)
Языковые области (слева) и система множественных требований (справа)

Американские нейробиологи, проводившие описанное исследование, сделали ещё одно интересное предположение. По их мнению, люди, обучавшиеся программированию с детства, используют языковые области мозга для обработки кода в гораздо большей степени по сравнению с теми, кто выбрал данное занятие после достижения совершеннолетия. Это может быть связано с тем, что названные области у детей активно развиваются, и «языком» для них могут стать в том числе и кодовые инструкции для компьютеров. Система множественных требований, в свою очередь, сохраняет «гибкость» в течение всей жизни, поэтому у взрослых людей она задействуется чаще.

Наконец, вышеназванные ученые предполагают, что работа с кодом способна «перепрограммировать» мозг. Когда мы многократно выполняем то или иное действие, у нас в голове складываются новые и усиливаются существующие связи между нейронами. Это значит, что у профессионалов, занимающихся кодированием в течение десятков лет, могут формироваться специализированные области внутри системы множественных требований, посвященные Python, C++ и любым другим языкам программирования. И если мы хотим наиболее эффективно использовать поразительную гибкость нашего мозга, надо продолжать работать над изучением тех принципов, по которым он функционирует.

Вас также может заинтересовать

Другие записи из раздела Психология и личность