Программирование — один из важнейших входов в современный технологический мир. Сегодня без программирования невозможно представить ни одну инженерную область — от медицины и энергетики до связи и космоса. Этот способ мыслить открывает путь как к серьезным разработкам, например, созданию ядра операционной системы, так и к прикладным задачам — таким как автоматизация повседневной работы или написание простого скрипта. В рубрике «Путь в инженерию» мы будем рассказывать, с чего можно начать вход в ту или иную технологическую область. В этом номере материал об одной из самых базовых и универсальных технологий. О том, почему программированием не рано заниматься в шесть лет, как подготовить ребенка к программированию, где начинается и где заканчивается роль взрослого в этом процессе, рассказал Алексей Федосеев — президент Ассоциации участников технологических кружков, один из основателей Национальной технологической олимпиады и киберфизической платформы «Берлога», программист по образованию, много лет проработавший в этой сфере.
Как понять, когда ребенок готов программировать
Если ребенок играет в компьютерные игры, он уже готов программировать. Это значит, что у него появилось ожидание результата своих действий, он умеет управлять чем-то виртуальным, имеет отношения с цифровой средой. Кроме того, игра содержит в себе алгоритмы действия, у нее есть условия, цели, этапность. Вслед за играми уже можно начинать программировать. Такое программирование — это всего лишь надстройка над игрой: «Вот я ставлю шарики в ряд, а я могу сделать так, чтобы они сами ставились в ряд». Здорово, если первые занятия программированием получится построить на том, что ребенку нравится делать. Некоторые уже с шести-семи лет предлагают попробовать Scratch, Minecraft, но мы рекомендуем начинать не с них, а с образовательных игр «Берлоги» или сразу с профессиональных инструментов, таких как Python. Учиться программировать можно и прямо в игре, например, в «Защите пасеки» из платформы «Берлога». Изучать программирование в игровой среде, которая уже близка и, скорее всего, любима детьми и подростками может оказаться намного легче. В «Берлоге» развитие персонажей происходит не только за счет усилий, сделанных в играх, но и благодаря участию в настоящих технологических мероприятиях, хакатонах, олимпиадах, слетах. Познакомиться с людьми, которые создают то, чем ты увлечен, — очень важно, особенно на старте.
Подробно о программировании в «Берлоге» мы рассказывали тут.
Другой вариант — начинать с профессиональных инструментов, таких как Python или C. Да, они сложнее, но позволяют сразу оказаться в профессиональной сфере, может быть, даже сделать что-то востребованное для других.
Другой вариант — начинать с профессиональных инструментов, таких как Python или C. Да, они сложнее, но позволяют сразу оказаться в профессиональной сфере, может быть, даже сделать что-то востребованное для других.
Благодаря программированию ребенок решает, что он хочет создать и каким это будет.
С какого языка стоит начать изучение программирования
Представим, что мы хотим научиться играть на скрипке. Скорее всего, мы первым делом не начнем думать о том, какую марку скрипки надо купить. Мы сначала подумаем о том, для чего нужно заниматься музыкой, послушаем музыку, поищем хорошую музыкальную школу или учителя. С языками программирования происходит примерно такая же ситуация.
Очень важно, чтобы в начале человек занимался тем, что ему интересно. Нравится делать телеграм-ботов — бери Python. Если хочется сайт — JavaScript. Игры — любой из доступных тебе конструкторов игр. Суть в том, чтобы ребенок или подросток захотел сделать что-то свое и понял главное: программирование — это язык управления миром, благодаря которому он может решить, в отличие от реальной жизни, что создать и каким это будет.
Программирование — это не только языки
Нужно осознать, что недостаточно научиться коду в смысле синтаксиса, для полноценного программирования необходимо научиться думать, удерживать задачу, делить ее на шаги. Это и есть первые шаги к программированию как системе мышления. В дальнейшем программисту предстоит научиться моделировать (как представлять реальный мир в программах), исследовать (как формулировать гипотезы и проверять их), проектировать (как пройти от идеи до внедрения) и многому другому. Но пробовать это стоит на личном опыте.
Ошибки, которые мешают начать
Очень часто люди думают: «Сейчас я сяду, открою Python, и через два часа все пойму». А потом оказывается, что не все так просто. И это нормально. С большим недоверием стоит относиться к курсам и программам, где за месяц-другой из человека обещают сделать профессионального программиста. Это невозможно. Есть серьезные исследования Массачусетского технологического института, доказывающие, что мозг не различает искусственных и обычных языков. Python — тоже язык, только для компьютера. Мы же не ждем, что ребенок, посещающий курсы английского, заговорит на уровне носителя через восемь недель после их старта. По этой же причине очень важно объяснить, что ошибки на старте (и не только) — часть обучения. Без них невозможно освоить никакое дело, и нет практически никого, у кого бы получилось идеально написать код с первой попытки. Программирование — это в принципе культура работы с ошибками и обратной связью.
Вторая вещь, которую нельзя рекомендовать, — пытаться побороть чрезмерное увлечение компьютерными играми с помощью занятий программированием. Из этого, на мой взгляд, просто ничего не получится. Игры, как правило, используются для развлечения, а программирование требует гораздо больше внимания, сосредоточенности и самостоятельности, о которой хочется сказать отдельно.
Если ты зависишь от чужих объяснений — ты всегда в хвосте.
Самостоятельность как показатель готовности к программированию
Еще двадцать лет назад в нашей стране детям не предлагались никакие курсы программирования. Мое поколение изучало его по книгам. Это формировало массу важных, в том числе для самого программирования навыков. Понять, что необходимо найти, отыскать, применить, понять, где ты допустил ошибку, исправить ее. По сути, все то же самое сегодня делается с помощью интернета и преподавателей. В этом есть свой жирный минус. Если ты зависишь от чужих объяснений — ты всегда в хвосте. Но для программиста очень важно быть самостоятельным без всякой помощи, и программирование — именно та область, где самостоятельность может созреть и проявиться. Настоящее обучение начинается не тогда, когда все понятно. А когда непонятно — и ты идешь искать.
Роль взрослого — это роль сопровождающего
Именно потому, что программирование не может существовать без личного самостоятельного подхода, у взрослого не должно быть цели научить. У него должна быть цель — идти рядом и помогать учиться самому. Взрослый может спросить, что ребенок сделал, поддержать его независимо от того, получилось это хорошо или не очень, интересоваться тем, что ребенок хотел бы попробовать еще. Очень полезно, если взрослый и ребенок могут вместе изучать или хотя бы обсуждать искусственный интеллект. Сегодня ИИ способен написать код, но не способен научить думать и искать решения. Он помощник, а не педагог. Важно, чтобы современный ребенок понял это, а не пытался сделать из ИИ систему, которой она являться не может.
Программирование как пропуск в мир технологий, которые нравятся ребенку
С помощью программирования можно решать огромный спектр задач, но если пока ребенок не планирует заниматься, например, чтением и обработкой геномных последовательностей, лучше всего показать ему, как программируется то, что ему интересно, может стать его профессией. Он может заниматься визуальным программированием в игровом мире, геймдев-разработкой, генерацией мемов и звука, программированием ритма и частоты для песни, обрабатывать фото и видео для социальных сетей, чтобы понравиться той самой Василисе из 8-го Б. Найдите то, чем он горит, а дальше все начнет программироваться само.