Для генерального директора Microsoft Сатья Наделла (Satya Nadella) кодирование похоже на поэзию, и последние исследователи обнаружили в области психологии, что не нужно быть даже хорошим математиком, чтобы стать хорошим программистом. Об этом говорят факты от технологических гигантов Кремниевой долины, таких как Apple.
Новые исследования, проведенные в Университете Вашингтона в Сиэтле, показали, что естественная способность к изучению языков является более сильным основанием для обучения программированию, чем базовые знания по математике.
Обучение написанию кода предполагает изучение второго формального языка вместо естественного, умение выучить словарный запас и грамматику этого языка, а также закономерности общей логики, чтобы передать свои идеи и намерения.
Другие когнитивные функции, связанные с обеими областями, такие как решение проблем и использование рабочей памяти, также играют ключевую роль.
«Многие барьеры на пути к программированию связаны с идеей о том, что программирование в значительной степени зависит от математических способностей, и эта идея не основана на современных данных», — говорит ведущий специалист Шантер Плат (Chantel Prat), доцент кафедры психологии в UW.
«Учиться программированию трудно, но оно становится все более важным для получения квалифицированных должностей в рабочей силе» — пояснила Прат.
«Сегодня первое исследование, увязывающее как нейронные, так и когнитивные способности естественного языка с индивидуальными различиями в изучении языков программирования».
«Нам удалось объяснить более 70 процентов различий в том, как быстро разные люди учатся программировать на языке Питон, и лишь небольшая часть этой суммы была связана с математикой», — сказала Прат.
Дальнейшие исследования могли бы изучить связи между способностями к языку и обучением программированию в классе, или с более сложными языками, такими как Java.
Очень часто кодирование ассоциируется с математикой и инженерным делом. Зачастую курсы программирования в колледже, как правило, требуют знания продвинутой математики, и их часто преподают на факультетах вычислительной техники и инженерного дела.
Но на самом деле кодирование имеет основу близкую к человеческим языкам: программирование включает в себя создание смысла путем связывания символов между собой на основе определенных правил.