Михаил Соловьев, директор по развитию продуктов облака в МТС
— Моя жена — IT-директор, сам я строю облака всю жизнь. Теща писала обучающих роботов для Международной космической станции, а тесть — математические алгоритмы стыковки аппаратов к этой МКС. Моя мама была учителем информатики. То есть у нас это такая естественная история, — рассказывает Михаил.
Сейчас его дочери Анне 20 лет, она учится на аналитика данных. Кодингом она занималась с 8 лет.
— В современном мире не учить ребенка программированию, не дать возможность посмотреть на IT, на мой взгляд, глупо. Мы же учим рисовать: даем карандаши, краски. Ребенок берет, пробует. Точно так же мы даем компьютер ребенку и объясняем, что тут можно не только в игрушки играть. Нужно показать, что у него есть силы управлять этой штукой, — считает он.
Как рассказывает Михаил, свои первые шаги в кодинге 8-летняя Анна сделала с помощью наборов программируемых роботов Lego Mindstorms и обучающей среды программирования Scratch: «И то, и другое — это такие красочные понятные возможности стрелочками показать, что ты хочешь от робота, виртуального исполнителя».
— Играть, конечно, интересно, но ребенку еще более интересно… Вот на чем основаны Scratch и Mindstorms? Они дают возможность сделать что-то, чем ты управляешь внутри компьютера. И это детей поражает, — говорит он.
По мнению Михаила, важно научить ребенка воспринимать компьютер не как непонятное устройство, на котором можно запускать видеоигры, а как инструмент для решения задач.
После Scratch и Mindstorms, рассказывает Михаил, он постарался показать дочери, что кодить можно на разных языках — при этом не думая, на чем конкретно ты кодишь: на Python или на C для Arduino.
— То, что мы используем несколько инструментов, и при этом меняется язык, на котором ты пишешь, ребенок в процессе смены платформ не замечает, потому что ему интересно, — говорит Михаил. — Сперва у него программа квадратики переставляла, а теперь лампочки зажигает, датчики читает. Ей это все интересно, и она не замечает, что какая-то сложность происходит, другой язык, другие буквы. А потом приходит осознание, что, оказывается, она умеет более-менее писать на том или другом языке.
Такой подход позволяет снять страх перед новыми языками программирования, считает Михаил.
— Ребенок приходит со школы и говорит: «Нас учили на Pascal писать, а я была на олимпиаде, и там мальчик на Python пишет». Ты говоришь: «Ну-ка, давай, открывай свой файл прошлогодний из Arduino. На каком языке ты писала?» — «Не знаю» — «Это C» — «Понятно». И ребенок понимает, что какой-то разницы, на каком языке писать, по большему счету нет, — говорит он.
Михаил выделяет несколько важных правил обучения программированию. Первое из них — дать ребенку хорошую базу английского языка.
Второй совет — не ограничивать ребенка в обращении с техникой, но стараться «сдвигать» его интерес, если он застопорился на чем-то. Например, если ребенок любит во что-то играть, то можно подсказать ему более сложную и креативную игру, а затем показать редактор карт для нее.
— Это просто меняет сознание человека. Я не один раз так делал. Мне говорят: «Ребенок только в игры играет». Ну окей, дайте я с ним три раза по полчаса пообщаюсь — потом смотришь, он уже не только играет, а начинает копаться в играх, какие-то картинки оттуда извлекать, что-то менять. Глядишь, уже более-менее развиваться начал! — говорит программист.
Виталий Тев, Digital Marketing Manager в Codemonkey
Сыновья Виталия начали заниматься кодингом с ранних лет — 13-летний Роман программирует с 9 лет, а год назад к нему присоединился 7-летний Максим. Поскольку сам Виталий работает в компании, разрабатывающей обучающую браузерную кодинг-игру Codemonkey, дети начали свой путь в кодинге именно с нее, а также со Scratch.
— В случае со старшим — это была его идея. Он сам изъявил желание: кто-то из его друзей в классе занялся программированием, и его это тоже заинтересовало, — рассказывает Виталий. — Они разговаривают между собой, обсуждают игры, ютуб, и какой-то ребенок сказал: «Я вот еще сам игру пытаюсь сделать». Сына это заинтересовало, он мне сказал: «Вот, папа, а ты знаешь что-то об этом?». И я ему предложил варианты. А младший видел, что делает старший, и ему самому стало интересно, попросил для себя что-то более простое подобрать.
Занимаются дети дома: в случае с Codemonkey без участия родителей, но со Scratch уже нужна помощь взрослого.
— Scratch — это неигровая система, — говорит Виталий. — Это как бы свободный мир программирования такой, но он очень визуальный: можно ставить туда мультяшных персонажей, можно делать анимации. Там немножко нужна помощь родителя, ребенку самому разобраться сложно — но когда он разбирается, у него появляется очень большая свобода того, что можно сделать.
В семье программиста нет никакого установленного расписания занятий — дети кодят тогда, когда им хочется.
— Это активность, которая детям нравится, поэтому заставлять в моем случае не нужно, — говорит Виталий. — Очень долго они тоже не могут просидеть, устают. Но некое полезное занятие с экраном — это хорошо. Они не только играют в игры, а еще могут сесть и позаниматься чем-то полезным.
Как рассказывает Виталий, для его сыновей программирование стало в том числе способом отвлечься от видеоигр или ютуба.
— Я могу им предложить: давайте вместо этого позанимайтесь программированием, и они соглашаются. Для ребенка это равнозначная вещь — ему это кажется интересным, веселым, и он с удовольствием это делает. По времени не очень долго, может полчаса-час в день — и не каждый день, — говорит он.
Сейчас, подытоживает Виталий, нельзя сказать, что его сыновья стали программистами — и тем более рано думать, что это станет их карьерой. Но у них появилось понимание устройства современной техники и кода, что он считает полезным для их развития.
Для обучения детей кодингу Виталий рекомендует искать варианты, основанные на играх.
— В этом случае не придется давить на ребенка, не придется его заставлять, он будет сам рад заниматься. Во-первых, ребенку это приятнее и интереснее, а во-вторых такие системы требуют меньшее участия родителя. Я по своему опыту знаю, что у родителя обычно нет много времени. Бывает, в начале есть силы сесть и начать что-то делать с ребенком, но поддерживать темп и режим очень сложно, — рассказывает Виталий.
Именно поэтому, говорит он, лучше подумать над решением, при котором дети смогут заниматься самостоятельно. Игровые системы работают именно так: дети и так привыкли решать задачи по уровням, идти от простого к сложному и учить новые концепции уже по ходу игры.
Как считает Виталий, учить ребенка популярным языкам программирования нет нужды — важнее всего основы и фундаментальные понятия, которые могут в итоге пригодиться на любой работе.
Оксана Лобко, Senior Python Developer
— Если вы хотели услышать, что ребенок в четыре года захотел кодить, и я ему дала учебник — то это обычно так не работает, — говорит Оксана. — Если ребенок захотел что угодно, у него внимания хватит хорошо если на полчаса. В лучшем случае — на две недели. За это время ему можно какие-то там концепции объяснить. Но очень часто бывает, что его в этот момент записываешь на какой-то кружок, ему там надоедает через пару недель или месяц — и все.
Дети Оксаны — 12-летний Тима, 8-летний Боря и 5-летняя Катя, забросили примерно половину дополнительных занятий и кружков по программированию, на которые записывались. Но на некоторых все же удалось «закрепиться» — например, Тима два года ходит на курсы по Python, а Боря и Катя посещают кружок робототехники.
В обучении детей программированию Оксана выделяет три основных принципа. Первый из них — интересы ребенка.
— Когда человеку что-то интересно, и ты ему просто помогаешь — это эффективнее раз в 100 [,чем когда заставляешь], — говорит она.
Второй важный момент — это английский: «Он ключ ко всей информации мира».
— Я своих детей отправляла с двух-трех лет на разные развивалки английского. Сейчас, когда им нужно что-то узнать в играх, например, они понимают, что на английском они эту информацию с большей вероятностью найдут, чтобы решать свои проблемы, — рассказывает Оксана.
Третий ключевой момент — инструменты и время. У каждого из детей Оксаны есть свой компьютер и много свободного времени, поскольку в их частной школе нет домашних заданий. Помимо этого дети ходят на несколько дополнительных занятий — кружки английского, физкультуры, и программирования/робототехники, но все это не отнимает много времени: «Каждый день у них есть по полдня, когда они делают, что хотят».
Сама Оксана воспринимает различные курсы скорее как «полезную добавку», которая дает базовые знания, но «это не то, почему они учатся».
— Если вы возьмете какого-то абстрактного ребенка без доступа к технике и засунете его раз в неделю на кружок, а дома у него не будет компьютера, то я не верю, что этот ребенок будет программировать — говорит она.
По ее мнению, двигатель обучения — это собственные интерес и желание детей решить свои проблемы — например, в играх. Чему-то научить ребенка лучше всего выйдет именно в тот момент, когда ему необходимы эти знания.
— Например, старшему надо было выпендриться перед друзьями, и он в пять-шесть лет научился запускать Minecraft-сервер на AWS. Условно первые пару десятков раз муж ему показал, какую командочку запустить, а уже с какого-то раза он сам запомнил и делал, потому что ему это было очень надо, — говорит программистка.
Если родители не помогают ребенку в тот момент, когда ему это нужно — они упускают возможность научить его чему-то новому, считает Оксана. Впрочем, иногда дети могут удивлять.
— Был момент у старшего, когда он захотел изучать Unreal Engine 5. Я была занята, сказала, мол, сам разбирайся. И он сам нашел репетитора по Unreal Engine и договорился с ним, сам созванивался с ним, тот ему домашки давал. И вот они так несколько месяцев конкретно по Unreal Engine занимались.