Как заинтересовать ребенка кодом

Как заинтересовать ребенка кодом
Наш коллега, дизайнер ПО Сергей Болгов, поделился с порталом Downtown опытом обучения своих детей программированию — стоит ли прикладывать усилия, когда и с чего начинать, как оценить успехи ребенка.

С чего начать

Сначала нужно выяснить, готов ли ребенок мыслить алгоритмически, понимать взаимосвязи процессов. Я считаю, что для этого хорошо подходит, например, тест Беннета. Задачники того рода состоят из картинок, на каждой из которых изображена система объектов — скажем, несколько сцепленных шестеренок. Для первой шестеренки обозначено направление вращения — предлагается определить, в какую сторону будет вращаться последняя. По ответам ребенка будет видно — он моделирует и проигрывает ситуацию в голове или пытается угадать. Если увидите, что вызревает «физик» с моделирующим мышлением, можно начинать программировать. Думаю, младшим лучше начинать с того же типа задач, что и советские школьники в 80-е — рисования на экране при помощи кода и игр с текстом. Из конкретных языков сейчас часто советуют Python.

Как научить ребенка алгоритмическому мышлению

Для развития алгоритмического мышления подойдет любая игра с правилами, в которой можно хитрить — создавать себе преимущество, прогнозируя поведение партнера на основании правил. Лично мне нравятся «Черепашьи бега», «Роборалли» и шахматы. Менее очевидные занятия — музыка, танцы, иностранные языки и вообще любая дисциплина, где ребенок может следить за результатом, развивающимся во времени, и описывать его необычным языком — нотами, иностранными словами, шахматной нотацией и так далее.

С какого возраста начинать

При наличии склонности — можно пробовать сразу, как только ребенок научится читать и писать английские слова, сроки здесь индивидуальны. В детское «визуальное» программирование наподобие LEGO Mindstorms я не верю, у нас это не сработало. Ребята не поняли, что имеют дело с чем-то серьезным, и быстро потеряли интерес, как к очередной игрушке. А Scratch уже предполагает грамотность. Да что говорить — один из моих сыновей занимался шахматами с четырех лет и, подойдя к продвинутым разрядам, существенно затормозился, т. к. мы столкнулись с требованием записывать турнирные партии в дневник, а писать он еще толком не умел. Поэтому — скорее, младший школьный возраст, с 6–7 лет.

Как оценить успехи

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

Нужны ли кружки

Сейчас важно уметь работать в коллективе, каждый участник которого занимается своей областью разработки внутри выбранной технологии. На собеседованиях к вопросу «на каком языке пишешь?» добавились «с какими системами управления проектами знаком?» и «какие инструменты контроля версий умеешь применять?». Ответы на них показывают, есть ли у человека опыт работы в команде. Кроме того, вокруг программирования есть сложившаяся субкультура, среда общения со своими заморочками. Все это, конечно, можно почерпнуть и из интернета, но хороший кружок на старте мне кажется более надежным и эффективным. Как правило, в таких кружках практикуется проектный подход, когда группы из трех-четырех ребят работают вместе над одним проектом. Это почти та же модель, что используется в любой IT-компании. Еще один плюс кружков — регулярное участие проектов в конкурсах, где ребята могут поучиться еще и рассказывать о своей работе, а это умение — один из важных soft skills.

В каких областях дети могут создать что-то свое?

Для начала я предложил бы визуальные и текстовые игры с кодом. Например, создать игру в жанре текстового квеста, написать свою версию морского боя, сконструировать веб-страничку, отфильтровать ругательства. Ребята постарше могут поискать себя в мейкерстве — создании самодельных электронных устройств и даже роботов на основе микрокомпьютера Raspberry Pi или во взаимодействии со средой игры Minecraft, которая позволяет при помощи кода на Python создавать свои миры.