Научиться программировать — значит не только развить полезный навык, но и приобрести особый тип мышления. Программисты умеют хорошо решать математические и логические задачи. Также они обращают внимание на детали, моделируют ситуации в обычной жизни и дают оценку на основе большого количества факторов.



В преддверии нашего курса Go Workshop рассказываем, что психологи, лингвисты и педагоги думают о влиянии кодинга на мозг, при чем тут австралийские индейцы и гипотеза Сепира-Уорфа.

В 30-х годах прошлого века появилась, названная по аналогии с открытием Эйнштейна, теория лингвистической относительности. Она гласит: язык определяет сознание, то есть люди воспринимают мир неодинаково, потому что лингвистические категории родного языка накладывают ограничения и даже определяют мышление.

Эту мысль сформулировали Эдвард Сепир и его ученик Бенджамин Уорф, однако они были не правы. Любую идею можно передать на любом языке. Они же приписывали колоссальное влияние на когнитивные процессы простым различиям в грамматике, но при этом концепция содержала и здравое зерно. Гай Дойчер в своей книге «Сквозь зеркало языка» объясняет, какое:

«Если разные языки по-разному влияют на мышление своих носителей, то тут дело не в том, что каждый язык позволяет думать своим носителям, а скорее в тех частях смысла, о которых каждый язык обычно заставляет думать. Когда язык принуждает своих носителей обращать внимание на отдельные аспекты мира… такие привычки речи могут в конце концов стать привычками мышления с последствиями для памяти, восприятия, ассоциаций и даже практических навыков».

Истина где-то к северу


Убедительно доказано, что система родов существительных влияет на ассоциативные ряды, вынуждает наделять те или иные неодушевленные объекты воображаемыми женскими или мужскими чертами. Похожий эффект связан с различиями в чувствительности к оттенкам цветов, для которых в языке есть название.

Но это мелочи по сравнению с тем, что язык может формировать навыки. Это выяснилось при изучении одного из языков австралийских аборигенов. Они вместо привычных «спереди» и «сзади», «лево» и «право» для указания направления используют исключительно стороны света.

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

Чтобы говорить на этом языке, приходится постоянно отслеживать расположение сторон света, что формирует географическую память и не требующее сознательного контроля чувства направления. Так, глубокое изучение языка — больше чем просто знание грамматики и лексики.

Изучение влияния языка на мышление еще только начинается, но уже идут схожие исследования языков программирования, которых роднит с естественными не только название.

Программирование ? речь


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

Его наблюдения подтверждаются. Статистические исследования выявили корреляцию между программированием и высокими лингвистическими способностями. Непосредственные наблюдения за активностью в различных зонах мозга при помощи МРТ установили, что во время работы над кодом активируются те же отделы мозга, что отвечают за естественные языки.

Не удивительно, что многие программисты считают гипотезу Сапира-Уорфа применимой к их работе. Подобных взглядов придерживался Кеннет Айверсон, создатель APL. Юкихиро Мацумото признавался, что при разработке Ruby, вдохновлялся романом «Babel-17», основанным на гипотезе лингвистической относительности.

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

Первую попытку обобщить имеющиеся данные по влиянию программирования на когнитивные процессы, предприняли в 1987 году в майском номере журнала Educational Computing Research.

Тогда исследователи подметили, что программирование с его разнообразными задачами может положительно влиять на умение стратегически решать задачи, на способности к формальной логике, на навыки моделирования и на когнитивные стили, но к однозначным и доказательным выводам так и не пришли из-за недостатка данных.
Еще шесть лет прошло, прежде чем была собрана статистика, которая позволила конкретизировать представления о влиянии кодинга на мышление. Она представлена в метаанализе шестидесяти пяти исследований о влиянии программирования на когнитивные процессы, опубликованном в 1991 году.

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

Сравнительные исследования влияния различных языков программирования на познавательные процессы продолжаются. На анализ содержимого онлайн-репозиториев Github и BitBucket, вопросов и ответов, размещенных на StackExchange выделено 750 тысяч долларов гранта. По ним Knowledge Lab и Department of Psychology Висконсинского университета Мадисона восстановят «естественную историю» языков программирования, отследят, как часто и для каких целей используется каждый из них.

К 2020 году исследователи планируют выяснить, как специфические особенности языков программирования влияют на число путей и скорость решения различных задач, проанализируют насколько хорошо тот или иной язык подходит для коллективного программирования.

Перед проектом поставлена амбициозная задача: предоставить информацию о том, какие языки стоит выбирать для конкретных проектов, и выяснить, насколько этот выбор влияет на то, как разработчики думают и работают.

Больше чем навык


Помимо собственно навыков программирования, изучение языков формирует привычку к тому, что математик, психолог и программист Сеймур Паперт в своих работах называет «вычислительным мышлением».

Это — гибкий набор навыков, нацеленных на алгоритмическое решение задач, привычка комплексно использовать в повседневной жизни абстрагирование, декомпозицию, оценку, логическое мышление, точность и привычку замечать детали.

Концепция вычислительного мышления приобрела авторитет в педагогике, легла в основу многих образовательных программ, но со временем, как и предполагалось в восьмидесятых годах прошлого века, ее влияние распространилось далеко за пределы колледжей и ВУЗов.

С помощью методологии программирования успешно решаются самые разнообразные проблемы. Примером тому служат не только компьютерное моделирование, сбор больших данных, внедрение автоматизированных систем, успехи финтеха.

Вычислительное мышление применимо и полезно в повседневной жизни и для профессионалов, далеких от IT-технологий. Изучение программирования помогает найти новые подходы и решения, о чем бы ни шла речь. Будь то физика, биология, химия, социология, педагогика, бизнес или здравоохранение.

Так появилась концепция эффективного альтруизма, начались поиски наиболее эффективных стратегий благотворительности. Благодаря этим исследованиям выяснилось, например, что в борьбе с малярией эффективнее жертвовать деньги на антимоскитные сетки, а не дорогие лекарства.

Другое следствие вычислительного мышления — идея использовать инструменты математического анализа бартерных сделок и большие данные для решения проблемы подбора доноров органов. В результате разработан дизайн действующей в США сложной и в тоже время надежной и эффективной системы обмена донорскими почками «по цепочке» за который профессор Гарвардского университета Элвин Рот в 2012 году получил Нобелевскую премию.

В контексте новых исследований, изучение языка программирования — не просто получение навыка, но и способ по-новому взглянуть на жизнь, по-новому справляться с вызовами, что она ставит.

Совсем скоро в Binary District стартует курс Go Workshop — отличный старт для начинающих программистов и логическое продолжение для тех, кто уже сталкивался с проектированием собственных веб-сервисов.

Комментарии (44)


  1. mikhailian
    05.10.2018 14:31

    Да… гипотезу лингвиститческой относительности притягивают за уши все, кому не лень. Вот и в фильме Arrival тоже.


  1. sha4
    05.10.2018 14:37

    "теория лингвистической относительности" это полный бред. Идея конечно хорошая, но провальная.


    1. Alert123
      05.10.2018 14:52

      почему вы уверены что такое мнение не сформировано под влияением именно вашего родного языка? Каждый судит лишь по себе, и проверить альтернативы не так уже просто.


      1. sha4
        05.10.2018 16:45

        Почему лично я уверен? Потому что слишком простая теория, она не учитывает остальные факторы — социальные, культурные, географические, экономические, случайные.

        По теме есть литературный труд

        Дарон Аджемоглу и Джеймс Робинсон «Почему одни страны богатые, а другие бедные. Происхождение власти, процветания и нищеты» от 2015 года.
        Авторы приводят множество теорий, а потом их взгляд на вопрос.

        Знакомясь со списком альтернативных теорий понимаешь, простенькая лингвистическая стоит в самом начале. Потом идут более хитрые, а завершает список признание того, что абсолютно всё влияет на развитие социума и невозможно вычленить что-то одно.


        1. Alert123
          05.10.2018 17:32

          Ни одна теория не учитывает все. Упрощать это свойство людей, как и категорически судить: «полный» / «пустой». И родной язык этому сильно помогает. Нет у нас готового однозначного слова для «бреда наполненного на 93%». И такими категориями вы уже не можете думать. Или например «blue» в английском и «синий»/«голубой» в русском.


          1. berez
            05.10.2018 19:42

            Нет у нас готового однозначного слова для «бреда наполненного на 93%». И такими категориями вы уже не можете думать

            1. Бредок.
            2. Люди вообще вряд ли могут мыслить процентами. У нас количество значимых градаций всяко поменьше 100.

            Или например «blue» в английском и «синий»/«голубой» в русском.

            Вряд ли наше мышление сильно зависит от того, считаем мы некий оттенок полноценным цветом или таки цветовым оттенком.


            1. APXEOLOG
              05.10.2018 23:38

              1. Бредок.

              А на 92%?


              Вряд ли наше мышление сильно зависит от того, считаем мы некий оттенок полноценным цветом или таки цветовым оттенком.

              Я сталкивался с инофрмацией об одном из африканских племен, у которых есть специальное слово для одного определенного оттенка зеленого цвета. И они способны отличать его от любого другого зеленого, тогда как люди не знающие такого понятия, просто считали что это зеленый. И это не мистика — наш мозг мыслит категориями. Если у вас в голове есть категория на данный оттенок зеленого, мозг при обработке информации класиссифицирует цвет соответстенно, а если нет — запихнет в просто зеленый. Соответственно вы просто не увидите различия (если конечно не будете специально фокусироваться на поиске отличчий) — а значит ваше мышление будет строиться иначе


              1. mkshma
                06.10.2018 04:42

                Есть бесчисленное количество оттенков зеленого, о названиях которых большинство не только не осведомлено, но и не подозревают, что у них названия в принципе есть. Что не мешает им отличать эти оттенки на глаз, но называть их зелеными. Чем же тот зеленый такой особенный, что аж выделается из кучи неизвестных зеленых?


              1. michael_vostrikov
                06.10.2018 07:26

                И они способны отличать его от любого другого зеленого, тогда как люди не знающие такого понятия

                Ну а с чего вы решили, что дело в знании слова, а не в большей чувствительности колбочек или в более распространенном в той местности оттенке растительности? Слово это следствие, а не причина.


              1. AnutaU
                06.10.2018 09:38

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

                Вот тут-то и косяк с гипотезой лингвистической относительности: нельзя понять, до каких границ влияние оказывает именно язык, а где культура, привычки, воспитание, традиции, климат — да что угодно.


              1. u010602
                07.10.2018 02:56

                У австралийских аборигенов разные слова для «один крокодил» и «два крокодила» и так далее. Им это не особо помогло в развитии технологий. Человеку не обязательно выражать идею одним словом, чтоб о ней думать. Почитайте например уголовный кодекс или СНИП, там ад из уточнений, но люди с ними работают, и их пишут. Вопрос привычки.

                А для цветов есть RGB, для тех, для кого важны оттенки.


        1. salkat
          06.10.2018 14:13

          > Потому что слишком простая теория, она не учитывает остальные факторы — социальные, культурные, географические, экономические, случайные.

          А если предположить, что все эти факторы и так отпечатались в языке?


          1. sha4
            06.10.2018 14:19

            Вот это уже ближе к правде. Типа идёт человек, оставил след. Никто же не говорит, что форма следа слепила человека.


    1. DGN
      05.10.2018 15:52

      Это отличная идея! Вот вы стоите напротив друг друга, говорите ему посмотрите направо, а он смотрит налево! Это неудобно. Люди единожды перейдя на управление ПК устройством с абсолютной адресацией (тачпад, планшет) с кошмаром вспоминают мышку (устройство с относительной адресацией).

      Остается вопрос калибровки, нужно или иконы в восточном углу или имплант-компас (по сути, намагниченная иголка).


      1. DnV
        05.10.2018 17:21

        В том и суть, что мозг начинает автоматически калиброваться относительно известных объектов и солнца, т.е. не нужно сознательно искать дополнительные ориентиры. Движения мышкой, кстати, тоже автоматически калибровались мозгом и не сказать, что это казалось кошмаром.


        1. Wesha
          06.10.2018 00:27

          калиброваться относительно известных объектов и солнца

          (выглядывая из окна и ворча) трудно относительно солнца калиброваться, в пасмурный день-то...


          1. hahenty
            07.10.2018 19:02

            тут опять, взаимодействие языка и органов чувств порождают какую-то восприимчивость к проникающим излучениям солнца.
            шутейка


          1. u010602
            08.10.2018 00:25

            На самом деле очень многие люди и так знают где что находится. Ну в общем попробуйте указать пальцем направление на какое-то заведение или место сидя в квартире. У большинства получается. Т.е. относительная карта пространства у нас в голове всегда есть, а у этих аборигенов она всегда еще и повернута на север. И у меня первые 15 лет жизни она была повернута, и я знал где север, а где юг, но т.к. не пользовался, то утерял этот навык. Пасмурность дня важна, только в незнакомой обстановке. Но думаю у аборигенов не бывает незнакомых обстановок.


          1. ainoneko
            08.10.2018 05:19

            трудно относительно солнца калиброваться, в пасмурный день-то...
            А разве вы поляризацию света не ощущаете? (Я тоже нет.)


      1. APXEOLOG
        05.10.2018 23:41

        Я бы поспорил с вашим утверждением про кошмарные воспоминания. Для меня мышь намного удобнее, когда нужна точность


      1. destroy
        06.10.2018 11:28

        Тачпад это костыль, вы серьезно за ним работаете?


        1. DGN
          06.10.2018 11:39

          Каждому инструменту своя область применения.


        1. D01
          06.10.2018 13:14

          На Windows — да, на MacOS — очень четко работает.
          Думал оборудование разное, а потом поставил винду и офигел от того, как поменялась реакция точпада.


    1. Perlovich
      05.10.2018 17:05

      «теория лингвистической относительности» это полный бред.


      Я не могу сказать, насколько сильно язык определяет наше сознание и ход наших мыслей, но то что восприятие мира может отличаться в зависимости от языка, на котором думаешь, — это не такой и бред. И я уверен, что многие из тех, кто изучали языки, замечали это. Особенно, когда знаешь несколько языков.

      Для русских, например, определенные и неопределенные артикли — это боль. И в нашем мышлении мы их не используем. Но многие европейцы мыслят этими артиклями. Для них они естественны.

      Одна из причин, почему испанский язык для англичан может быть сложен, потому что вместо привычного «to be» у них два глагола: ser и estar. Один говорит о том, что свойство постоянное и не меняется (имя, например), второе, что свойство не постоянное (голоден, например). Но сами испанцы думают с этих категориях. И для них они естественны и встроены в процесс мышления.

      У японцев, чей язык вообще мало похож на европейский, есть несколько вариантов союза «и», которые выражают либо исчерпывающие списки, либо не исчерпывающие (т.е. представленное перечисление не полно).

      Используемые цвета могут различаться. Мы используем «голубой» и «синий», а в английском, как правило, это просто «blue».

      И т.д., и т.п.

      Поэтому цитата из статьи кажется мне очень даже правдоподобной:

      язык определяет сознание, то есть люди воспринимают мир неодинаково, потому что лингвистические категории родного языка накладывают ограничения и даже определяют мышление.


      1. AnutaU
        05.10.2018 17:23

        То, что вы описываете, называется «языковая картина мира».


      1. Wesha
        06.10.2018 00:39
        +1

        Для русских, например, определенные и неопределенные артикли — это боль
        В школе для новых русских:
        — Запомните: неопределённый артикль «a» переводится как «типа», а определённый артикль «the» — «конкретно».


  1. AnutaU
    05.10.2018 14:53

    Ну, допустим, детище Сэпира с Уорфом можно хоть немного наблюдать в контексте естественного языка (да-да, те примеры с цветами и сторонами света, других обычно никто и не приводит). Но в этих случаях мышление формируется с самого детства параллельно с языковой способностью. Что там на что влияет, строго говоря, понять очень сложно, но я сейчас не об этом. Программирование мы учим в сознательном возрасте, когда мышление уже сформировано. Да, какие-то навыки приобретаются, конечно, но теория лингвистической относительности тут вообще ни при чём, по-моему.

    Языкознание на фоне программирования отлично заходит, это да.


    1. Hardcoin
      05.10.2018 15:07

      Программирование мы учим в сознательном возрасте,

      Вы — да. А некоторые и в пятом классе начинали (как я) и раньше. В этом возрасте ещё не всё лингвистические навыки сформировались, понимание всяких тонких смыслов, например (опять же, у меня так было).


      1. AnutaU
        06.10.2018 09:43

        Речевая способность формируется очень рано: 7-10 лет, в принципе, уже пороговый возраст. Дальше развитие скорее количественное. Родной язык тоже ведь не учат, им овладевают, и именно в очень раннем возрасте. Позже иностранным языком уже нельзя так просто и естественно овладеть, приходится учить.

        Вот когда наряду с программами раннего развития типа «плавать раньше, чем ходить» появится «программировать раньше, чем говорить», тогда и посмотрим, как это на развитие мышления повлияет ;)


        1. glioma
          07.10.2018 07:39

          Причём изучение иностранного языка после 7 лет затрагивает иные области мозга, чем овладевание родным языком с донатального периода. Ведь ребёнок слышит родную речь уже в утробе матери.


        1. u010602
          08.10.2018 00:32

          Я освоил простейшее программирование раньше, чем научился писать. Но как оценить что это дало, а что просто мои врожденные качества? Из такого, что мне кажется, этим вызвано — я терпеть не могу человеческие языки, все, стихи, прозу, худ произведения, саму их структуру, ненужные эпитеты и нюансы. И еще я забыл как писать прописью, примерно через 7 лет после окончания университета. Пишу печатными. Почерк настолько ужасный, что не важно какой рукой и в каком направлении я пишу, обе руки левые так сказать.


    1. tyomitch
      08.10.2018 12:34

      (да-да, те примеры с цветами и сторонами света, других обычно никто и не приводит)

      Десятки их: с числительными, с исчисляемыми/неисчисляемыми предметами, с направлением течения времени, и прочая и прочая.


  1. Tertium
    05.10.2018 15:58

    Ага, и на кпвд индус, программирование, серьезно? Ну разве что сравнение питона и хинди.


    1. tyomitch
      08.10.2018 12:40

      Просто к сведению: на хинди говорят лишь 53% индийцев, и ещё меньшее количество индусов (10% индусов проживают вне Индии).


  1. Alert123
    05.10.2018 16:07

    Вообще основной язык программирования сильно влияет на мышление, нарабатываются привычки и шаблоны специфичные именно этому языку, и потом они тянутся и в другие языки.

    «Программист на Фортране будет писать на Фортране на любом языке программирования.»


    1. berez
      05.10.2018 19:46

      Очень согласен.
      Именно поэтому многие не рекомендуют использовать языки промышленной разработки (С, С++) в обучении программированию: привычки и шаблоны потом ничем не перебьешь.


      1. Fedcomp
        08.10.2018 01:05

        Перебьешь, достаточно желания писать идиоматично на том языке который используешь.


  1. Ryppka
    05.10.2018 16:29
    +1

    Если считать, что большинство комментариев на хабре пишут программисты, то тезис статьи о «больших лингвистических способностях» у программистов вызывает серьезные сомнения…


    1. u010602
      08.10.2018 00:50

      В человеческих языках все очень плохо с пунктуацией и структурой предложений, они совершенно не способствуют логичности мышления. Нужно строить цепочку в голове, а потом переворачивать и менять местами под человеческую пунктуацию.

      Если (писать на русском языке И в императивном стиле)
      То будет ошибок меньше, чем обычно и верхний абзац можно записать так:
      Если (язык требует писать во временный буфер И переворачивать последовательность при написании)
      То язык не способствует логичности рассуждений.
      Следовательно человеческие языки имеют плохой синтаксис.

      Или, допустим мы хотим писать на функциональном языке, тогда нам нужно будет выбрать способ сочленения, допустим через запятую, как в этом примере, и запишем абзац в этом стиле.
      Языки с плохим синтаксисом те = языки, которые (не способствуют логике => это языки которые ( требуют писать во внутренний буфер и переворачивать последовательность))

      На правах шутки.


      1. ainoneko
        08.10.2018 05:22

        Другое дело японский, который почти готовый Forth.


  1. alex_zzzz
    05.10.2018 16:29
    +1

    Это — гибкий набор навыков, нацеленных на алгоритмическое решение задач, привычка комплексно использовать в повседневной жизни абстрагирование, декомпозицию, оценку, логическое мышление, точность и привычку замечать детали.

    — Дорогой, не хочешь вынести мусорное ведро?
    — Нет.
    — Дорогой, вынесешь мусорное ведро?
    — Ага.
    (через два часа)
    — Дорогой, вынеси мусорное ведро сейчас!


  1. dudu
    05.10.2018 16:33

    У программистов хорошо развиты те области мозга, которые отвечают за логику, визуализацию, абстракцию и т.п.
    Всё.

    Организм наш так устроен, что ему не выгодно содержать ресурсы, функции, которыми человек не пользуется, поэтому те области мозга, которые не тренируются (к которым не происходит частого обращение) напросто атрофируются.


  1. Alcpp
    07.10.2018 01:24

    Думаю программирование приучает видеть общее в разных вещах. Как мы видим похожие куски кода, которые можно выделить в функцию.


  1. Alexufo
    07.10.2018 21:20

    Сегодня узнал что сталинизм кодингу не помеха.