Что такое мотивация к программированию
Мотивация к программированию — это желание ребёнка возвращаться к коду без напоминаний: открыть Scratch после школы, доделать игру, придумать ещё один уровень. Она бывает внутренней, когда увлекает сам процесс, и внешней, когда работают похвала, оценка или приз.
Внешние стимулы помогают сделать первый шаг, но редко удерживают надолго. Когда приз получен, исчезает и причина садиться за компьютер. Внутренний интерес устроен иначе: ребёнку любопытно, почему персонаж застревает в стене, и он сам ищет ответ. Такой интерес не нужно подогревать каждый день, его достаточно не гасить. Разработчики из MIT Media Lab строили Scratch именно в расчёте на внутренний интерес: среда бесплатна, а Scratch Foundation поддерживает её как место для собственных проектов, а не для оценок.
Митчел Резник, руководитель группы Lifelong Kindergarten в MIT Media Lab, где создан Scratch, описывает четыре условия творческого обучения: проекты, увлечённость, сверстники и игра[1]. Это удобная рамка для родителя. Если в занятиях есть все четыре элемента, мотивация к программированию обычно поддерживает себя сама. Если остался только «урок по расписанию», желание быстро слабеет даже у способного ученика.
Почему интерес к коду угасает
Интерес к коду чаще всего угасает по 4 причинам: задания слишком лёгкие или слишком трудные, результат никто не видит, занятия навязаны взрослым, а первая серьёзная ошибка воспринимается как провал. Каждую из них можно заметить заранее.
- Неподходящая трудность. Если задача решается за минуту, становится скучно. Если над ней приходится сидеть час без единого сдвига, появляется ощущение «я не способен».
- Работа в пустоту. Игра, которую никто не запускал, кажется ненужной даже самому автору.
- Чужая цель. Ребёнок записан на курс, потому что «за этим будущее», а сам он хотел рисовать комиксы.
- Страх ошибки. Красное сообщение в Python или персонаж, который не двигается, выглядят как приговор, если взрослый реагирует раздражением.
Лев Выготский называл зоной ближайшего развития задачи, которые ребёнок пока не решает сам, но решает с небольшой помощью. Для программирования это золотая середина: проект чуть сложнее предыдущего, с одной новой идеей. Слишком большой скачок не стоит делать даже ради амбициозной игры, лучше разбить её на этапы.
Свой проект вместо чужих упражнений
Свой проект — это главный источник увлечённости: ребёнок делает игру про собственного кота или мультфильм про любимого героя, и каждое новое умение сразу нужно для дела. Учебные упражнения полезны, но смысл им придаёт именно проект.
Сеймур Пейперт ещё в 1980 году описал обучение через создание: ребёнок, который программирует черепашку на языке Logo, не заучивает геометрию, а пользуется ею, чтобы нарисовать задуманное[2]. Тот же механизм работает сегодня. Девятилетний автор платформера сам приходит к вопросу, как сделать прыжок плавным, и тогда переменная скорости перестаёт быть абстракцией.
Как помочь найти тему? Спросите, что ребёнок любит вне компьютера: футбол, динозавров, космос, лошадей. Почти любую тему можно превратить в проект: викторину о динозаврах, симулятор пенальти, открытку ко дню рождения бабушки. Если идей нет совсем, подойдёт готовый список — например, идеи проектов в Scratch по уровням. Важно, чтобы последнее слово оставалось за автором: выбранная им тема держит интерес дольше, чем самая полезная тема от взрослого.
Хороший размер первого проекта — 1–2 вечера. Большая игра «как настоящая» откладывается до тех пор, пока не готовы три-четыре маленьких. Законченные проекты дают ощущение «я умею», а оно само по себе укрепляет желание продолжать.
Зрители и обратная связь
Если результат видит хотя бы 1 человек кроме автора, работать над ним интереснее: появляется причина доделать, исправить мелкие ошибки и написать инструкцию «как играть». Первым зрителем может стать родитель, брат или друг.
В Scratch для этого есть кнопка «Поделиться»: проект становится доступен сообществу, другие участники могут запускать его, оставлять комментарии и делать ремиксы. Авторы статьи об устройстве Scratch называют сообщество частью самой среды, а не дополнением к ней[4]. Перед публикацией стоит вместе договориться о правилах: без настоящего имени, фото и адреса в проекте. Подробнее — в материале о том, как обеспечить безопасность ребёнка в интернете.
Обратная связь от взрослого работает, когда она конкретная. «Молодец» быстро обесценивается, а вопрос «как ты сделал, что монетки исчезают?» показывает настоящее внимание. Ребёнок объясняет своё решение, заново его осмысливает и чувствует себя экспертом.
| Вместо этого | Лучше сказать | Что получает ребёнок |
| «Молодец, красиво» | «Покажи, как ты заставил врага ходить туда-обратно» | Повод объяснить своё решение |
| «Опять ошибка?» | «Что программа делает сейчас и что должна?» | План поиска ошибки вместо стыда |
| «У Пети игра лучше» | «Что ты добавишь в следующей версии?» | Сравнение с собой вчерашним |
| «Хватит играть, садись учиться» | «Во что бы ты хотел сделать свою игру?» | Связь между хобби и кодом |
| «Сделай уже что-нибудь полезное» | «Кому из друзей покажем?» | Зрителя и смысл доделать |
Игры как цель обучения
Желание сделать свою игру — это самый частый повод начать программировать, и его разумнее использовать, чем с ним бороться. Даже простая игра требует 3 базовых идей: циклов, условий и переменных.
Родители иногда опасаются, что «игрушки» отвлекают от серьёзной учёбы. На деле путь обратный: чтобы мяч отскакивал от стены, нужно условие касания; чтобы считались очки — переменная; чтобы враги появлялись снова и снова — цикл или клоны. Ребёнок изучает те же темы, что и в учебнике, но с понятной целью. Резник прямо называет игру одним из четырёх условий творческого обучения: речь об игровом отношении к делу, когда можно пробовать, ошибаться и пробовать снова.
Есть и разумный предел. Играть в чужие игры и делать свои — разные занятия, и первое не переходит во второе само собой. Если ребёнок хочет именно создавать, начните с маленькой игры за вечер, а потом расскажите, как устроен путь дальше: в статье о том, что делать, если ребёнок хочет делать игры, разобраны реальные проекты для 9, 12 и 15 лет.
«Если ребёнок часами играет в компьютерные игры, он обязательно полюбит программирование». Это миф: связь не подтверждается, потому что игра и разработка — разные виды деятельности. Любовь к играм даёт тему для проекта, но не гарантирует интереса к коду.
Как реагировать на ошибки и трудности
Ошибка в программе — это нормальная часть работы, а не повод для упрёка: почти ни одна программа не запускается правильно с 1 раза. От реакции взрослого зависит, увидит ли ребёнок в ошибке загадку или доказательство своей неспособности.
Не стоит сразу показывать, где ошибка, даже если вы её видите. Лучше задать вопрос: «Что должно было произойти? А что происходит? На каком шаге они расходятся?» Так ребёнок учится отладке — навыку, который пригодится ему в любой программе. Если родитель сам не программирует, это даже помогает: вы искренне ищете ответ вместе, а не экзаменуете. Подробно эта тактика разобрана в статье о том, как помочь ребёнку с программированием, не зная кода.
Помогает и простой ритуал: записывать на листке «ошибки недели» и способы, которыми их удалось найти. Через месяц такой список наглядно показывает рост. Ребёнок видит, что раньше застревал на пропущенном двоеточии, а теперь сам находит перепутанные переменные.
Ритм занятий: чаще, но короче
Короткие занятия 2–3 раза в неделю поддерживают интерес лучше, чем один долгий марафон по выходным: ребёнок не успевает устать и помнит, на чём остановился. Перерывы между подходами помогают и запоминанию.
Обзор Сепеды и коллег по распределённой практике показал, что материал, повторённый с промежутками, удерживается в памяти лучше, чем выученный за один подход[3]. Для начинающего программиста это означает простую вещь: три встречи с проектом за неделю полезнее одной длинной. Каждый раз ребёнок вспоминает, как устроен код, и это вспоминание укрепляет знание.
Не стоит забывать и о гигиене. СанПиН 1.2.3685-21 в таблице 6.8 ограничивает непрерывное использование электронных средств обучения, поэтому перерывы нужны не только для памяти, но и для глаз. Как совместить код с ограничением экранного времени, рассказано в статье про экранное время и программирование. Хорошая привычка — заканчивать занятие на моменте, когда что-то получилось: тогда ребёнку хочется вернуться завтра.
Когда давление не работает: время для паузы
Если ребёнок 2–3 недели подряд садится за код только по напоминанию, давление уже не работает — нужна пауза или смена формата. Пауза в таком случае не провал, а способ сохранить отношение к делу.
- 3 занятия подряд прошли со слезами или спорами. Продолжать в том же духе значит закреплять неприязнь. Лучше остановиться на 2–4 недели.
- Ребёнок 2 недели повторяет «мне скучно». Смените формат: вместо упражнений — проект, вместо Python — Scratch или задания для черепашки.
- В школе 1 из самых напряжённых периодов. Контрольные, конец четверти или подготовка к экзаменам 9 класса — время снизить нагрузку, а не добавлять кружок.
- Появилось 1 новое сильное увлечение. Спорт или музыка временно вытеснили код — это нормально. Предложите сделать проект на новую тему, но не настаивайте.
После паузы возвращайтесь через проект, а не через «давай наверстаем». Иногда интерес к программированию просыпается снова в 12–13 лет, когда появляется конкретная цель: сделать бота для друзей, разобраться с заданием по информатике, написать свою игру. Если же он так и не вернулся, это тоже ответ: не каждому нужно стать программистом.
«Программирование само по себе делает ребёнка умнее, так что неважно, нравится ли ему». Это не подтверждается: метаанализ Scherer и соавторов 2019 года по 105 исследованиям нашёл средний положительный эффект на другие навыки, но перенос не происходит автоматически — нужен продуманный урок и вовлечённый ученик[5].
Чего делать нельзя
Нельзя превращать увлечение в повинность: 6 привычек ниже быстрее всего отбивают желание программировать, даже если начиналось всё с восторга.
- Нельзя использовать занятия кодом как наказание («пока не решишь пять задач, гулять не пойдёшь»).
- Не стоит платить деньгами или гаджетами за каждый проект: когда награда заканчивается, заканчивается и работа.
- Не следует сравнивать ребёнка с одноклассниками или «детьми знакомых, которые уже пишут на Python».
- Нельзя исправлять код за ребёнка, пока он не попросил: вместе с ошибкой вы забираете у него победу.
- Не стоит публиковать проект без согласия автора — это его работа и его решение.
- Не допускается высмеивать «детские» темы проектов: игра про единорогов учит циклам так же, как игра про космос.
Больше типичных промахов взрослых — в разборе ошибок родителей в обучении программированию.
Источники
[1] Resnick M. Lifelong Kindergarten: Cultivating Creativity through Projects, Passion, Peers, and Play. Cambridge, MA: MIT Press, 2017. — подход «4P»: проекты, увлечённость, сверстники, игра.
[2] Papert S. Mindstorms: Children, Computers, and Powerful Ideas. New York: Basic Books, 1980. — язык Logo, черепашья графика, обучение через создание.
[3] Cepeda N. J., Pashler H., Vul E., Wixted J. T., Rohrer D. Distributed practice in verbal recall tasks: A review and quantitative synthesis // Psychological Bulletin. 2006. Vol. 132, № 3. P. 354–380. — распределённая практика.
[4] Maloney J., Resnick M., Rusk N., Silverman B., Eastmond E. The Scratch Programming Language and Environment // ACM Transactions on Computing Education. 2010. Vol. 10, № 4. Article 16. — устройство Scratch: блоки, сцена, спрайты, сообщество; «низкий порог, высокий потолок».
[5] Scherer R., Siddiq F., Sánchez Viveros B. The cognitive benefits of learning computer programming: A meta-analysis of transfer effects // Journal of Educational Psychology. 2019. Vol. 111, № 5. P. 764–792.
[6] Выготский Л. С. Мышление и речь. М., 1934. — зона ближайшего развития.
Вопросы и ответы
Как вернуть мотивацию к программированию после долгого перерыва?
Начните с маленького проекта на 1 вечер по теме, которая волнует ребёнка сейчас. Не возвращайтесь к старому учебнику с того места, где бросили: новая цель работает лучше, чем долг.
Стоит ли записывать ребёнка на курсы ради мотивации?
Группа сверстников может поддержать ребёнка, но только если ребёнку там комфортно. Перед записью сходите на пробное занятие и спросите его мнение, а не только мнение преподавателя.
Ребёнок бросает проекты на середине. Это плохо?
Не всегда: эксперименты без финала — тоже часть обучения. Если ни одна работа не доходит до конца, уменьшите размер замысла до 1–2 вечеров и договоритесь показать результат кому-нибудь.
Нужно ли самому родителю знать программирование?
Нет. Достаточно быть заинтересованным зрителем: просить показать проект, задавать вопросы и радоваться успехам. Иногда незнание кода даже помогает — ребёнок объясняет и лучше понимает сам.
Помогут ли призы и олимпиады?
Соревнования подходят тем, кого азарт заряжает. Для ребёнка, который боится проиграть, они станут лишним стрессом. Начинать лучше с собственных проектов, а соревнования предлагать, когда появится уверенность.
Мотивация к программированию пропала в подростковом возрасте — что делать?
Подростку важны самостоятельность и связь с реальными задачами. Предложите проект, полезный ему самому или друзьям, и не контролируйте процесс по шагам: доверие здесь важнее расписания.