Издание MakeUseOf рассказало о том, как изучение языков программирования влияет на образ мышления. dev.by приводит сокращённый перевод публикации.
Как и занятие искусством, написание кода оказывает заметное влияние на ход мыслей человека. Недавние исследования головного мозга привели авторов к некоторым любопытным выводам о связи программирования и ментальных особенностей человека.
1. Программирование формирует модель мышления
Имеет ли значение, какой язык программирования изучать первым? Оказывается, да. Большинство знакомится с информатикой ещё в школе, где никто не предоставляет особого выбора. У кого-то первым языком был С. Те, кто постарше, начинали с Fortran, Cobol или Basic, а сегодня это, скорее, Java или Python.
В любом случае стоить признать, что структура языка программирования определяет способ мышления. Один из самых влиятельных учёных в области информатики и информационных технологий Эдсгер Дейкстра утверждал:
«Инструменты, которые мы используем, оказывают огромное влияние на наш образ мыслей, а следовательно, и на нашу способность мыслить»
а также:
«Программирование на Cobol калечит мозг, поэтому обучение ему должно трактоваться как преступление»
и ещё:
«Студентов, ранее изучавших Basic, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации»
Хотя все языки программирования являются полными по Тьюрингу, изучение одного из них может помешать освоить другой. Java- и Python-разработчики — два разных «зверя» с абсолютно разными подходами к программированию.
Иными словами, парадигма и идиомы первого языка, который изучает будущий программист, будет влиять на то, как он осмысливает структуры данных, алгоритмы и т.д. Причём настолько сильно, что определить автора кода можно лишь на основе его подхода к задаче и стиля написания кода: чем сложнее решаемая проблема, тем легче определить «родной» язык разработчика.
Согласно исследованиям, даже если программисты изменяют имена переменных и функции, структуру или предпочитаемые операторы инкремента им диктует подсознание. «Когда у тебя в руках молоток, все задачи кажутся гвоздями»: научившись программировать на одном языке, разработчик будет смотреть на все задачи через призму этого языка. Поэтому подходить к выбору нужно с умом и осторожностью.
2. Программирование укрепляет здоровье мозга
Мозг часто сравнивают с мышцей, которую нужно тренировать, чтобы поддерживать в хорошей форме. Если это так, считается ли программирование умственным упражнением, годным для сохранения здоровья мозга?
В исследовании 1991 года учёные рассматривали влияние компьютерного программирования на познавательные способности. Они выяснили, что в соответствующих тестах испытуемые с опытом написания кода набирали на 16 процентилей больше чем те, у кого таких навыков не было.
В ходе более крупного эксперимента в 1999 году исследователи обнаружили и подтвердили, что интеллектуальные виды деятельности помогают замедлить снижение когнитивных функций. В то же время, со снижением этих самых функций люди меньше склонны браться за задачи, требующие умственного напряжения.
Аналогичные выводы получили авторы ещё более масштабного исследования 2009 года: у людей, которые в более старшем возрасте занимаются деятельностью, стимулирующей работу мозга, снижается риск (и даже замедляется наступление) болезни Альцгеймера и других видов интеллектуальных расстройств. Улучшить работу мозга помогают чтение, написание сочинений, игра на музыкальных инструментах, головоломки, а также настольные и карточные игры.
Наконец, по результатам опубликованного в 2013 году исследования, остроту ума развивают лишь некоторые виды активности: сложная интеллектуальная деятельность, связанная с обучением и преодолением трудностей. Сложно представить задачу, которая требует большего напряжения ума и обучаемости, чем программирование.
Необходимы дальнейшие исследования в этой области, и хотя ни в одном из уже проведённых не говорится, что решение интеллектуальных задач делает человек умнее или способнее, все они свидетельствуют о том, что сложные когнитивные задач укрепляют текущее здоровье мозга и в значительной степени помогают предотвратить ослабление нервной системы. Поэтому программировать действительно полезно, а начинать — никогда не поздно.
3. Чтобы программировать, нужны не только математика и логика
В исследовании 2014 года с использованием снимков фМРТ учёные наблюдали за мозговой активностью программистов во время проработки и осмысления отрывков кода. Специалисты выяснили, что при этом активизировались пять участков головного мозга, которые в основном связаны с обработкой языка, кратковременной памятью и вниманием.
Однако при этом неактивными оставались участки, которые обычно задействуются при выполнении математических задач и вычислений — даже при работе с кодом, включавшем циклы, условные операторы, арифметические действия и другие алгоритмические операции.
Это исследование нельзя назвать совершенно полным, и сами исследователи отмечают, что:
- отрывки кода, которые использовались в эксперименте, содержали менее 20 строк, и время на их анализ было ограничено, а значит, они не были достаточно сложными для испытуемых;
- судя по результатам, нельзя приравнивать языки программирования к иностранным языкам, но можно утвержать, что они активизируют одни и те же области мозга;
- исследуемые не создавали код, а только изучали готовый. В противном случае стоило бы ожидать активации других частей мозга.
В целом же можно сказать, что программисты постоянно перечитывают исходный код, будь то свой или чужой, и зачастую на его исправление уходит больше времени, чем на написание кода с нуля. Поэтому выводы исследования достаточно важны. А исходя из этого можно сделать вывод, что само программирование подходит не только для людей, у более активно левое полушарие мозга: достойную конкуренцию им могут составить и те, у кого доминирует «творческое» правое полушарие.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.