Как помочь ребёнку, если вы сами не программируете
Родителю-непрограммисту не нужно объяснять циклы и переменные: его роль — это роль внимательного слушателя и первого пользователя программы. Когда ребёнок объясняет свой код вслух, он сам замечает пробелы в понимании.
Психолог Л. С. Выготский описывал зону ближайшего развития: то, что ребёнок пока не может сделать один, но может с поддержкой взрослого[1]. Поддержка здесь — не готовый ответ, а наводящий вопрос, пример или предложение разбить задачу на части. Именно так родитель может помочь ребёнку без всякого опыта в программировании.
Есть ещё одно преимущество незнания: вы задаёте честные вопросы. «А почему кот идёт влево?» от взрослого, который действительно не знает ответа, заставляет ребёнка разобраться глубже, чем подсказка от того, кто знает.
Чем помочь ребёнку в разном возрасте
Форма помощи меняется с возрастом: в 5–7 лет взрослый играет вместе, в 8–10 лет помогает спланировать проект, а подростку чаще нужна поддержка в организации времени, чем подсказки по коду. Ниже — ориентиры, а не строгие правила: возраст не стоит считать жёсткой границей.
| Возраст | Среда | Как помогает взрослый |
| 5–7 лет | ScratchJr, игры без компьютера | Сидит рядом, читает надписи, играет роль «робота», который выполняет команды буквально |
| 8–10 лет | Scratch | Помогает нарисовать план игры на бумаге, тестирует проект, задаёт вопросы о блоках |
| 11–13 лет | Scratch и Python | Поддерживает переход к тексту, помогает читать сообщения об ошибках |
| 14 лет и старше | Python | Помогает с расписанием и целями: школьная информатика, ОГЭ, свой проект |
Scratch, который разрабатывает группа Lifelong Kindergarten в MIT Media Lab, переведён на русский, поэтому младшему школьнику подсказка взрослого чаще нужна для чтения, а не для программирования. Python бесплатно распространяет Python Software Foundation, и официальная документация Python написана на английском: с ней подростку можно помочь, разбирая примеры вместе. В школе, по федеральной образовательной программе ООО, программирование появляется на уроках информатики с 8 класса, и помощь дома хорошо дополняет эти уроки.
Главное во всех возрастах одно: помочь ребёнку — значит дать ему сделать шаг самому. Если подсказка снимает с него всю работу, это уже не поддержка, а замена.
Вопросы вместо готовых ответов
Если ребёнок застрял, первые 5 минут помощи — это вопросы, а не подсказки. Хороший вопрос заставляет его посмотреть на программу по-новому и найти решение самому.
| Ситуация | Вместо этого | Спросите так |
| Программа не запускается | «Дай я посмотрю» | «Что написано в сообщении об ошибке? На какой строке?» |
| Работает не так, как задумано | «Тут надо поменять 10 на 20» | «Что ты хотел, чтобы произошло? А что происходит?» |
| Не знает, с чего начать | «Сделай сначала фон» | «Что должно случиться первым, когда нажмёшь флажок?» |
| Задача кажется слишком большой | «Это сложно, давай попроще» | «Из каких частей состоит игра? Какую можно сделать сегодня?» |
| Получилось! | «Молодец» | «Покажи, как это работает. Что было самым трудным?» |
Вопрос «что ты ожидал и что получилось?» — самый полезный в программировании. Профессиональные разработчики задают его себе постоянно, и ребёнку полезно привыкнуть к нему с первых проектов.
Отладка вместе
Отладка — это поиск и исправление ошибок, и она занимает в программировании заметную часть времени. Помогать в ней можно по простому порядку, без знания языка.
- Прочитать сообщение. В Python ошибка называет тип и номер строки. Попросите ребёнка вслух прочитать последнюю строку сообщения.
- Найти строку. Пусть покажет пальцем строку с номером из сообщения и строку над ней: ошибка часто сидит выше.
- Объяснить построчно. «Что делает эта строка?» Ребёнок рассказывает, вы слушаете. Этот приём программисты называют «резиновой уточкой»: объясняя вслух, человек сам находит ошибку.
- Менять одно за раз. Одно исправление — один запуск. Иначе непонятно, что помогло.
- Записать находку. Тетрадь «мои ошибки» с примерами быстро становится личным справочником.
Пример. Ребёнок написал программу, и Python выдал ошибку SyntaxError:
for i in range(3)
print("Ура!")
Не подсказывайте сразу про двоеточие: готовый ответ здесь не нужен. Спросите: «Посмотри на другие свои циклы. Чем эта строка от них отличается?» Исправленный вариант:
for i in range(3):
print("Ура!")
Как читать такие сообщения, подробно разобрано в статье как читать ошибки Python, а общий подход — в материале про отладку программ.
Игра «угадай вывод» в редакторе
Чтобы потренироваться вместе, используйте редактор под заголовком: это окно с кодом, кнопками «Сбросить» и «▶ Запустить» и панелью «Вывод» справа. Черновик сохраняется в браузере.
Правила игры для двоих такие. Ребёнок читает программу и говорит, что она выведет. Родитель записывает ответ на листке. Потом нажимаете «▶ Запустить» (или Ctrl+Enter) и сравниваете. Если не совпало, ребёнок объясняет, где ошибся в рассуждении. Затем меняйте роли: пусть ребёнок поменяет одно слово в списке, а вы угадываете, что изменится. Взрослый, который ошибается вслух и разбирается вместе, показывает, что ошибки — нормальная часть работы.
Такая самопроверка закрепляет знания лучше перечитывания: Roediger и Karpicke показали в исследовании, что попытка вспомнить ответ даёт более прочное запоминание, чем повторное чтение[2]. Если ребёнок сделает ошибку в коде, редактор покажет сообщение и подсказку на русском.
Проекты на выходные
Совместный проект на выходные — это способ помочь ребёнку увидеть цель: не «выучить циклы», а сделать открытку бабушке или игру для младшего брата. Ниже идеи, для которых родителю не нужно знать код.
| Проект | Среда | Что делает взрослый |
| Анимированная открытка к празднику | Scratch | Придумывает текст поздравления, записывает голос |
| Игра «поймай яблоко» | Scratch | Тестирует игру и честно говорит, где скучно |
| Семейная викторина | Python | Составляет вопросы о семье, проходит викторину |
| Узор черепашкой | Python, turtle | Выбирает цвета, предлагает «а если 8 сторон?» |
| «Угадай число» | Python | Играет против программы и ищет способ её «сломать» |
Больше идей по уровням — в подборке идеи проектов Scratch. Роль «тестировщика» особенно ценна: ребёнок видит, что его программой пользуется живой человек, и сам начинает думать о том, где она может сломаться.
Как поддерживать интерес
Интерес держится на своих проектах, зрителях и ощущении прогресса. Сеймур Пейперт, автор языка Logo, писал, что дети лучше всего учатся, когда создают то, что им самим важно[3].
- Зритель. Регулярный «показ» проекта семье по выходным. Ребёнок готовится, а значит доделывает.
- Хвалить процесс. «Ты долго искал ошибку и нашёл» работает лучше, чем «ты гений».
- Сравнение с собой. Откройте проект месячной давности: видно, сколько стало понятно.
- Свобода темы. Игра про любимого героя важнее «правильного» учебного задания.
Подробнее о мотивации — в статье как поддержать интерес к программированию.
Миф: «Чтобы помогать, родителю нужно самому выучить Python». Это не подтверждается практикой: вопросы, внимание и роль первого пользователя доступны любому взрослому. Знание языка полезно, но не обязательно.
Миф: «Если ребёнок долго мучается, надо сразу показать решение». Готовый ответ снимает напряжение, но не учит. Короткая пауза и наводящий вопрос дают больше, а «правильного» времени, после которого обязательно подсказывать, не существует.
Когда ваша помощь мешает
Если взрослый берёт мышку и клавиатуру в свои руки, помощь мешает: проект становится его, а не ребёнка. Есть и другие ситуации, где лучше отойти на шаг.
- Вы исправляете код быстрее, чем ребёнок успевает подумать, уже 2–3 раза за вечер. Сядьте подальше и ждите вопроса.
- Ребёнок 13–14 лет хочет разбираться сам. Предложите помощь один раз и оставьте дверь открытой.
- Вы сидите рядом все 60 минут занятия. Ребёнок начинает ждать подсказки вместо того, чтобы думать.
- Вы задаёте вопрос за вопросом 10 минут подряд. Это уже допрос; дайте паузу и вернитесь позже.
Чего делать нельзя
- Нельзя забирать клавиатуру и исправлять код за ребёнка, даже если «так быстрее».
- Не следует сравнивать ребёнка с одноклассниками, братьями или «детьми из интернета».
- Не стоит ругать за ошибки в программе: ошибка — обычный этап работы.
- Нельзя превращать занятия в обязаловку с отчётом по часам.
- Не стоит обесценивать игры: желание сделать свою игру — сильный повод учиться.
- Не допускается высмеивать проект, даже в шутку и даже если он «детский».
Если хочется с чего-то начать прямо сегодня, откройте вместе первую программу ребёнка.
Источники
[1] Выготский Л. С. Мышление и речь. М., 1934.
[2] Roediger H. L., Karpicke J. D. Test-enhanced learning: Taking memory tests improves long-term retention // Psychological Science. 2006. Vol. 17, № 3. P. 249–255.
[3] Papert S. Mindstorms: Children, Computers, and Powerful Ideas. New York: Basic Books, 1980.
Вопросы и ответы
Что делать, если я совсем ничего не понимаю в коде?
Попросите ребёнка научить вас. Объясняя взрослому, он повторит материал и заметит, что понимает плохо. Ваша роль — честно переспрашивать.
Сколько времени уделять совместным занятиям?
Достаточно короткой встречи несколько раз в неделю: посмотреть проект, задать вопросы, сыграть в «угадай вывод». Регулярность важнее длительности.
Нужно ли проверять домашние задания с курсов?
Проверять правильность не нужно, это работа педагога. Полезнее спросить, что было новым, и попросить показать результат.
Как помочь ребёнку, если он хочет бросить?
Выясните причину: скучно, трудно или нет времени. Иногда хватает смены проекта на более интересный, иногда — паузы на несколько недель.
Стоит ли учиться программировать вместе с ребёнком?
Если вам интересно — да. Но держите роль ученика рядом с ним, а не учителя: пусть ребёнок будет на шаг впереди.
Ребёнок просит сделать за него домашнее задание. Что ответить?
Предложите разобраться вместе: какое условие, что уже получилось, где застрял. Сделанная за него задача не даст навыка, а на контрольной рядом никого не будет.