Многие родители хотели бы, чтобы дети изучали программирование и впоследствии могли работать в IT. Действительно в России не хватает программистов, крупные компании не могут закрыть тысячи вакансий. В ближайшие годы, по их прогнозам, эта нехватка останется, а значит, в IT по-прежнему будут хорошие зарплаты и карьерные возможности. К тому же сегодня минимальное умение программировать — преимущество, как хороший английский. Знание, скажем, языка, позволяющего работать с данными, помогает во многих профессиях, далеких от IT: в журналистике, естественных науках. Но как сориентироваться — когда, где и чему учить ребенка? Разбираемся с педагогами и подростком, который уже два года работает в IT-компании и готовит обучающий курс для детей.
С какого возраста начинать?
Сейчас много школ программирования для детей 1–3-х классов. Настоящему кодингу там не учат, детей знакомят с тем, как создаются программы. Для этого чаще всего используется обучающий язык Scratch — это и программа, где можно, как пазл, из блоков складывать игры, мультфильмы, простые задачи, и комьюнити, где все выкладывают свои проекты, их можно просматривать, как-то менять для себя. В магазинах продаются, например, машинки-конструкторы, которые нужно собирать и писать для них команду на Scratch. В программе обычной школы всему этому не учат. Но стоит ли нагружать ребенка так рано?
"В большинстве школ знакомство с программированием начинается в седьмом классе в минимальных объемах — это поздно, — считает Александр Паволоцкий, академический руководитель школьных программ "Яндекса", руководитель IT-профиля и учитель программирования в школе №1514. — В мировой практике с детьми начинают заниматься в начальной школе или до школы. В Белоруссии дошкольников учат программированию без компьютера — смысл в том, чтобы объяснить детям на пальцах, как устроена техника. Ребенку технологии кажутся очень простыми. У него есть телефон, планшет, он смотрит видео, играет в игры, кажется, все умеет. Он не задумывается, как и что работает. Это формирует поверхностное отношение к миру. Учить ребенка программировать нужно, чтобы донести мысль: железкой можно управлять, больше — с помощью знаний он может сам контролировать что-то в мире. Эту мысль воспитать в нем нужно как можно раньше. Это нужно попробовать всем детям. Не все дети захотят заниматься программированием в средней школе. Но каждый должен попробовать написать программу, которая заставит котика на экране ходить или робота ездить, — понять, что с помощью простых команд вы управляете машиной".
В средней школе детям, которым нравится программирование, можно начинать заниматься им всерьез. Есть несколько направлений. Первое — промышленное программирование и инженерная разработка: ребенок может начать учиться делать ту работу, которую делают программисты в компаниях. В этом случае он может пробовать разные специализации: работа с данными, машинное обучение, мобильная и веб-разработка, создание игр и так далее. Спортивное программирование — участие в олимпиадах, где нужно решать алгоритмические задачи. Это направление сейчас популярно, многие родители хотят, чтобы дети участвовали в олимпиадах. Начинать заниматься им слишком рано не советуют.
"Я считаю, что детям, которые учатся в математических, инженерных классах и склонны к техническим наукам, лучше начинать в восьмом классе. По моему опыту, чем младше класс, тем меньше детей, у которых все сразу получается. Я начинала занятия по программированию с одаренными шестиклассниками. Хотя сейчас мы замечаем, что дети развиваются раньше, возможно, еще дело в том, что информатику преподают в начальной школе. В прошлом году у меня был кружок из учащихся пятого класса. Многие дети смогли заниматься по той же программе, по которой раньше занимались шестиклассники. Но опоздать при наличии способностей невозможно: у нас есть примеры, когда, серьезно начав заниматься только в девятом классе, учащийся из неспециализированной школы Григорий Резников в 11-м завоевал золото международной олимпиады", — говорит Елена Андреева, член экспертного совета образовательного центра "Сириус", завкафедрой информатики специализированного учебно-научного центра МГУ. Она председатель жюри Открытой олимпиады по программированию и Московской олимпиады по информатике, член жюри заключительного этапа ВсОШ по информатике.
При этом есть исключительные примеры, когда ребенок начал учиться программированию очень рано и добился больших успехов. "Ученик 11-го класса Егор Лифарь в этом году завоевал золотую медаль на 33-й Международной олимпиаде по информатике, и это его пятая медаль международных олимпиад, — продолжает Елена Андреева. — С ним брат начал заниматься программированием в первом классе".
Как понять, что ребенка нужно развивать в программировании?
Банально — смотреть, насколько ему это нравится. Бывает, что даже ученикам математических классов в школах, куда берут по конкурсу, программирование не интересно. Но все же чаще дети, которые любят математику и информатику, хотят этим заниматься.
"В начальной школе на уроках математики и информатики дети учатся решать простые алгоритмические задачи вроде "перевести козла, капусту и волка через реку", "расположить вагоны в нужном порядке, используя тупики". Если ребенку нравятся такие задачи, у него скорее всего получится в дальнейшем решать и задачи по программированию. Если ребенок любит работать с компьютером, возится с ним, пробует разные режимы, функции — это тоже говорит о том, что у него может получиться. Хотя мне довелось заниматься с пятиклассником, который впоследствии получал дипломы победителя заключительного этапа Всероссийской олимпиады по информатике, и он не знал клавиатуры и искал каждый символ. Но он был одарен математически, так что дело пошло", — рассказывает Елена Андреева.
Выяснить, насколько сильные способности у ребенка к программированию, помогут олимпиады по математике и информатике. "На школьном этапе по информатике для 5–6-х и 7–8-х классов в Москве мы стараемся давать такие задачи, чтобы все были в равных условиях: и дети из математических школ, и из обычных, — продолжает Елена Андреева. — Смысл в том, чтобы выявить способности, в том числе алгоритмическое мышление, у неподготовленного ребенка. Теперь подобную идею мы пытаемся распространить на составление вариантов для других регионов России".
В средней школе становятся видны склонности ребенка к тем или иным предметам. Детям, которые ориентированы на гуманитарные предметы и химию и биологию, учиться программировать часто неинтересно и трудно. В таком случае заставлять заниматься нельзя. "Или бывает, что ему в целом нравится IT, но не нравится долго писать код и делать большие проекты, тогда можно попробовать дизайн, создание интерфейсов", — говорит Александр Паволоцкий.
Участвовать в олимпиадах — важно?
На первый взгляд кажется, что да, на поверку все сложнее. Если вы мечтаете о том, что ваш ребенок станет успешным программистом, и считаете, что олимпиады помогут, поэтому нужно ориентировать его на них, то можете разочароваться.
Участие в олимпиадах — это спорт. Спорт подходит не всем, там хорошо себя чувствуют дети, которые любят соревноваться. Есть дети, у которых получается играть в олимпиады, — тогда это нужно развивать с педагогом, который занимается именно подготовкой к олимпиадам. Потому что не все умеют распознавать таких детей и работать с ними.
"Успешное участие в олимпиадах — это билет в лучшие вузы РФ и даже мира, но с другой стороны — это синдром выжившего. На каждого победителя олимпиады сотни, а то и тысячи проигравших. Это сильно демотивирует, а по факту при приеме на работу гораздо важнее навыки и пул проектов, которые выполнил кандидат", — считает Александр Ефремов, руководитель методического отдела школы будущих профессий Skysmart Pro.
"Собеседование в крупнейшие IT-компании проводят по олимпиадным задачам по информатике. Чтобы попасть туда — нужны знания алгоритмов, многие из которых изучаются как раз в процессе подготовки к олимпиадам. Немало бывших олимпиадников потом быстро обучаются технологиям, которые нужны для реального IT-сектора, и находят себя там. Но есть примеры, когда на олимпиадах человеку задачи решать нравится, а делать большие проекты, в том числе на работе, — не нравится", — говорит Елена Андреева.
Что изучать кроме программирования?
Главное — хорошо выучить английский язык. Это нужно, чтобы читать техническую литературу на английском, общаться в международном сообществе разработчиков.
"Помогут занятия шахматами, математикой и логикой. Если ребенок хочет создавать игры — физикой. Но, по большому счету, сама дисциплина "программирование" и любое из направлений, которым будет заниматься ребенок, уже включает все необходимые элементы английского, физики, логики и других предметов", — добавляет Александр Ефремов.
Можно учиться онлайн?
Преподаватели считают, что при возможности лучше выбирать очные занятия, где есть живой контакт с учителем.
"Даже если на онлайн-курсе есть индивидуальный контакт с преподавателем и ребенок мотивирован заниматься — это хуже, чем очные занятия с преподавателем. Совсем плохой вариант — когда ребенок полностью самостоятельно осваивает курс, как на степике или на курсере и на массовых онлайн-курсах", — говорит Александр Паволоцкий.
В целом можно учиться онлайн, если нет возможности отдать ребенка на очные курсы. "Но важно не оставлять ученика один на один с таким курсом. Важно, чтобы был наставник, который будет помогать. Онлайн-курс должен сопровождаться тем, что кто-то рядом при необходимости может подсказать или направить: учитель, родитель, брат, более опытный одноклассник. Учиться решению задач по программированию совсем самостоятельно могут только самые "звездочки", это единичные случаи. Когда мы занимались с 5–7-классниками по материалам, разработанным нами в "Сириусе", была заметна разница между дистанционным прохождением материала и смешанной формой работы, когда ребят можно направить, подсказать, помочь решить их проблемы. Ведь иногда учащийся не знает, где и как искать ошибку, что делать с неработающей программой", — говорит Елена Андреева.
Как сделать обучение интереснее?
Жора Бугаков — сотрудник онлайн-школы Skyeng. Ему 16 лет. В 14 лет его пригласили работать в компанию. Сейчас он в рабочей группе школы будущих профессий Skysmart Pro. Его история — тоже иллюстрация того, как надо поступить, если вы хотите, чтобы ребенок всерьез заинтересовался IT.
"Учиться легче сразу на проектах, на абстрактной теории программировать не научишься. В нашей школе я предлагаю строить процесс так, чтобы ребята сначала придумали, что хотят сделать, нашли проблему, которая мешает им жить, и тогда уже приступили к решению. Например, сделать так, чтобы в чат класса отправлялось расписание уроков. Это то, что я с одноклассниками сделал, сидя на дистанте в 2020 году. Уроки проходили на Microsoft Teams, а расписание лежало в электронном журнале на мос. ру. Ссылки на встречи не подтягивались. Мы с ребятами написали сами прогу, которая копировала ссылки из Teams и отправляла нам в ТГ-чат", — говорит он.
Отец начал заниматься с ним в дошкольном возрасте. "Мне было шесть-семь лет, когда папа принес домой программную плату c кучей светодиодиков и всяких механических штук, мне стало интересно, как это работает, — вспоминает Жора Бугаков. — В итоге я запрограммировал незамысловатый моторчик, и получилась игрушка для кота: робот катался по полу и светился, кот за ним с радостью гонялся. Я понял, что создал вещь, которая автоматизирует действия людей, что при желании машине можно объяснить, что ты от нее хочешь, и решил дальше разбираться во всем этом. Мой отец из IT и способствовал моему увлечению. Я стал копатьcя в программах, попробовал язык программирования C++. В восемь лет засел за Scratch. Не помню, что было раньше — мои знания в английском или навыки программирования, — но постепенно и то, и другое совершенствовалось. Мой английский первоклассника был, конечно, не супер, но его хватало, чтобы нагуглить, что нужно, и писать код. Плюс я много смотрел английский YouTube и TED Talk с субтитрами, так что быстро стал программировать сам и читать код других".
Где учиться программированию?
Бесплатно:
- Онлайн-курс "Введение в программирование на языке Python" в образовательном центре "Сириус". На этом курсе дают базовые знания программирования, помогают написать первую программу, знакомят со структурами данных и особенностями работы с ними. Для начала учебы умение программировать не требуется — достаточно знаний математики за седьмой класс. Авторы курса — преподаватели ведущих школ и вузов, действующие педагоги очных программ "Сириуса". Набор идет до 31 октября.
- Курс "Алгоритмы и анализ данных" в "Сириусе" набирает участников по конкурсу. В приоритете победители и участники олимпиад. Им придется выполнить дополнительные задания и пройти дистанционный отборочный курс. Подробнее здесь.
- В 2022 году откроется набор на бесплатные двухгодичные курсы по программированию для учеников 8–10-х классов. Это программа Минцифры России в рамках федерального проекта "Кадры для цифровой экономики".
- Каждый год "Лицей Академии Яндекса" набирает по конкурсу талантливых школьников 8–10-х классов на бесплатные двухлетние очные курсы по программированию. На первом курсе ученики изучают основы Python — языка программирования, востребованного как в IT-компаниях, так и в научной среде. Второй курс посвящен промышленному программированию. Подростки пробуют свои силы в разработке веб-приложений, чат-ботов, пользовательских интерфейсов. В этом году набор длился до 10 сентября. Он повторится следующей осенью. Узнать больше о программе, условиях поступления можно здесь.
За деньги:
- Онлайн-платформы "Алгоритмика", "Учи.ру", "Фоксфорд", Skysmart Pro и другие предлагают курсы для начальной школы в пределах 1 тыс. рублей в месяц. Для старших классов дороже. Например, курс программирования на Python в "Фоксфорде" — 5, 2 тыс. рублей в месяц, длится полгода.
С льготами:
- Некоторые IT-профессии можно освоить с льготами от государства. "Цифровые профессии" — это проект федеральной программы "Кадры для цифровой экономики", который позволяет гражданам России получить дополнительное профессиональное образование в IT с финансовой поддержкой в размере 50% стоимости обучения. Доступно подросткам с 16 лет. Можно выучиться на разработчика, тестировщика, аналитика данных, руководителя проекта. Подробности здесь.
Анастасия Акулова