Подростковый возраст – идеальное время для обучения детей чему-то новому. Кодинг не стоит считать исключением. Есть несколько подходящих и относительно простых языков и вспомогательных сред: Скретч и Роблокс, Python, в том числе в связке с Minecraft, C# и JavaScript. Разбираемся, с чего стоит начать.

Мы в школе Pixel твердо уверены в следующем: если ребенку нравится играть в компьютерные игры, в том числе онлайн, то это не повод для ограничений, а основа развития ценных навыков. Нужно подтолкнуть школьника к тому, чтобы начать программировать: достаточно показать, скажем, что тот же «Питон» может применяться для моддинга в Майнкрафте, а C# – для создания игр на кроссплатформенном движке Unity. Но это лишь примеры.

Давайте разбираться в вопросах по поводу возраста и целесообразного маршрута. Для убедительности представим мнения наших преподавателей с опытом в обучении школьников программированию, разработке игр, созданию сайтов и другим IT-направлениям.

О возрасте и подходящем языке: когда и как начать, если школьник хочет писать код

Кто-то считает, что направление программирования для подростков – это слишком сложная тема, недетское занятие, поэтому осваивать кодинг стоит лишь в рамках профильных программ в вузах. В это же время даже дети 7 лет и старше успешно справляются с инструментами Scratch и Kodu, переходят к «Пайтону», Lua и C#. Но сразу отметим, что даже наши преподаватели не всегда выступают за раннее обучение маленьких детей написанию кода.

Так, давайте разберемся с вопросами по поводу возраста и его связи с языками и средами, предназначенными для погружения в программирование.

«Считаю, что 13–14 лет – оптимальный возраст, чтобы начать изучать программирование. В это время подростки уже способны видеть ошибки, выявлять проблемы и устранять их при работе с простыми и сложными программами. Думаю, что плюс – наличие сформированных основ в виде владения Scratch: среда пусть и визуальная, больше даже мультяшная, но она учит понимать некоторые конструкции, алгоритмы, имеющиеся в сложных текстовых языках. Когда родители новых учеников спрашивают меня, какое направление лучше выбрать в подростковом возрасте, я однозначно советую Python: простой синтаксис, возможность создания модов для популярной игрушки «Майнкрафт», известность и перспективность – основные аргументы».

Т. Малинин, преподаватель

Аналогичной позиции придерживаются и другие педагоги школы.

«13 лет – возраст, соответствующий обучению в 7-м классе в обыкновенной российской школе. В это время учащиеся активно знакомятся с алгеброй и геометрией, полностью понимают устройство окружающего мира и некоторые законы логики, что упрощает освоение переменных и более сложных моментов, скажем, полноценных конструкций. Если брать общий план, то мы учим и дошкольников, но основам: понятно, что тот же Scratch Junior не сделает ребенка программистом. Если же вы видите его в таком качестве, лучше записываться на курсы с текстовыми языками в 13–14 лет. Но в любом случае начать рекомендую со Скретча: это поможет лучше понять основы и беспроблемно познакомиться с написанием кода в будущем».

А. Ложеницина, преподаватель

Не будем цитировать мнения всех преподавателей, лишь отметим, что все они отличаются и основаны на личном опыте, на шишках, набитых во время обучения детей и подростков программированию. Разумнее вывести очевидную закономерность, сводящуюся к следующему: начинать в любом случае лучше с основ. Если ребенок приступаем к обучению «Питону» и не может понять базовые принципы программирования, значит допущена ошибка в подборе уровня сложности.

Промежуточные выводы следующие:

  • Основа в виде интереса к теме программирования, даже если изначально она сформирована из увлеченности компьютерными играми, – почти обязательное условие. Пытаться заставлять ребенка осваивать перспективное направление, каким бы оно ни было, не стоит;

  • Изучать кодинг нужно постепенно. Возраст не играет роли. Если, скажем, ребенку 10, но нет опыта в написании кода, в первую очередь подойдет Скретч. Далее, если учеба увлечет, можно попробовать Python.

Предлагаем более подробно рассмотреть популярные направления: одно из них может прийтись по нраву каждому современному школьнику.

5 хороших направлений программирования для подростков

Опишем 5 направлений, подходящих для знакомства с написанием кода и оттачивания соответствующих навыков. Это:

  1. Визуальный кодинг в Scratch.

  2. Программирование в Роблоксе на языке Lua.

  3. Написание кода на Python.

  4. Game-разработка на движке Unity с использованием C#.

  5. Веб-разработка с помощью HTML, CSS и ДжаваСкрипта.

1. Визуальное программирование в Scratch для детей 8–12 лет

«Считаю, что визуальное программирование – инструмент, доступный для 10-летних детей. В это время они пока не умеют концентрироваться на главном, вряд ли способны понять, что такое типы данных, классы, функции и т. п. Поэтому в раннем школьном возрасте обучать детей кодингу я советую именно с помощью Скретча. Да, можно научиться только пониманию алгоритмов, но это точно станет основой дальнейшей учебы, если захочется освоить, например, Python. И еще раз отмечу, что именно 10 лет – важный момент. Полагаю, что раньше не стоит, потому что, опять же, страдает концентрация внимания. Но это можно компенсировать благодаря наличию наглядных средств, как в Скретче».

Л. Кочубей, преподаватель

К теории: Scratch – визуально-блочная среда программирования. Она создана специально для детей и подростков, делающих первые шаги в направлении кодинга. Плюс – максимальная простота: ручное написание кода исключено. Достаточно использовать яркие блоки и составлять из них целое, как в конструкторе Lego. Дополнительное преимущество – бесплатность: создавать первые проекты можно даже онлайн без платного программного обеспечения.

Посредством Скретча дети:

  • Знакомятся с алгоритмами и приближаются к пониманию базовых принципов «сложного» программирования. Это, как уже отметили выше, поможет при условии дальнейшего обучения;

  • Учатся выполнять первые интересные проекты в виде анимации, презентаций и незамысловатых игр, что мотивирует: почти моментальное получение результата увлекает и вовлекает в учебный процесс, создает основу неподдельного интереса к теме кодинга.

Начать можно самостоятельно. Подойдут следующие подборки видеоуроков:

2. Программирование в Roblox на языке Lua для детей 9–14 лет

«Считаю, что начать стоит с Lua. Он является наиболее простым, если контекст – сравнение с другими текстовыми языками. Можно попробовать и Скретч, но он больше подходит совсем маленьким детям, нуждающимся в первую очередь в формировании логического мышления. Да и это не полноценный язык программирования, а средство подготовки основ дальнейшего обучения. Выбор в пользу Lua, на мой взгляд, очевиден: схожесть с Python, простой синтаксис, возможность сочетания с Roblox – серьезные аргументы».

А. Дорофеева, преподаватель

Роблокс – игровая онлайн-платформа, где дети и подростки могут создавать собственные игры, обмениваться ими, общаться и просто развлекаться. В первом помогает язык «Луа», который используется в Roblox для программирования.

Знание Lua:

  • Поможет ребенку приблизиться к написанию графических интерфейсов (как в Adobe Lightroom), расширений для игр и кодинга уровней (как в Garry’s Mod);

  • Заложит основы дальнейшего изучения того же «Питона» по бесплатным урокам или на курсах.

Вот какие обучающие плейлисты помогут сделать первые шаги:

3. Программирование на Python для детей и подростков от 9 до 14 лет

О «Питоне» мы говорили в самом начале и приводили примеры в виде мнений опытных преподавателей, знающих все о работе с детьми и подростками. Поэтому хотим отметить следующие факты о языке:

  • Универсальность. С помощью Python создаются веб-проекты, пишутся программы для машинного обучения, скрипты для автоматизации рутинных задач. Также язык применяется для создания игр, кодинга искусственного интеллекта и не только;

  • Простой синтаксис. Согласны, что в контексте обучения подростков это момент может оказаться спорным. Однако есть множество бесплатных онлайн-курсов, книг и самоучителей, посвященных данному языку. Они помогут сделать первые шаги и принять решение о полноценном обучении, если тема придется по нраву;

  • Карьерные перспективы. В 9–14 лет говорить о них рано, но если приблизиться к верхней границе и вспомнить, что это момент вхождения ребенка в стадию профессионального самоопределения и выбора, то можно отметить, что изучение «Питона» даже с нуля – хороший выбор.

Если хочется начать самостоятельно, помогут обучающие ролики:

4. Программирование на C# и разработка на движке Unity в 10–14 лет

С# – сложный язык. Но знакомство с ним можно максимально упростить, если использовать Unity – игровой движок, на котором даже дети могут научиться создавать:

  • Многопользовательские 2D- и 3D-игры;

  • AR- и VR-проекты.

Движок перспективен: он используется даже в промышленности (пакет Industry). В сочетании с C# данная среда становится отличным инструментом для обучения детей написанию кода и разработке.

Мы в школе Pixel считаем, что движок «Юнити» характеризуется низким порогом вхождения, что делает его идеальным для знакомства с языком «Си Шарп». Дело в том, что это скорее конструктор, чем сложный профессиональный инструмент вроде Unreal Engine. 

Так, во время самостоятельных занятий или на уроках с преподавателем предстоит:

  • Собирать игры из объектов, образованных простыми компонентами. Последние определяют действия конкретного виртуального персонажа, предмета или явления;

  • Скриптить простые и сложные игровые миры с помощью C#. Он необходим для программирования логики и других важных моментов.

Сделать первые шаги в рассмотренном направлении помогут обучающие видеоуроки, посвященные:

5. Веб-разработка для детей 12 лет и старше

«Думаю, для начинающего подростка подойдет JavaScript. Для этого достаточно пары простых действий: нужно открыть браузер и перейти в режим разработки. При этом мой выбор неслучаен: JS востребован среди разработчиков онлайн-игр, при создании и поддержке сайтов. Можно найти различные библиотеки, предназначенные для решения отличающихся задач. По простоте восприятия ребенком от 12 лет и старше данный язык превосходит некоторые аналоги, что делает его хорошим вариантом».

С. Ильин, преподаватель

Веб-разработка – еще одно востребованное и популярное направление. Если принято решение освоить его, то в первую очередь стоит изучить HTML, CSS и JavaScript. Первый инструмент – язык гипертекстовой разметки, второй – средство описания внешнего вида веб-документов. Это не о программировании, чего не скажешь о JavaScript – полноценном средстве, предназначенном для кодинга.

Не будем углубляться в теорию и отметим практическую пользу: если направление увлечет ребенка, он сможет пойти дальше и научиться реализовывать сложные проекты. Это:

  • Создание и поддержка клиентской части того или иного сайта (frontend). Код здесь становится средством реализации дизайнерской идеи, задуманного функционала. Здесь как раз и понадобятся языки, перечисленные выше, а также освоение продвинутых библиотек;

  • Создание серверной части веб-ресурсов (backend). В этом смысле веб-разработчик – специалист, работающий с важными функциями. Это, скажем, авторизация на сайте, обработка платежей, автоматизация управления ассортиментом в интернет-магазине и не только.

Сделать первые шаги поможет подборка роликов для самообучения в направлении веб-разработки.

А мы хотим подвести итог и в заключение условного рейтинга направлений программирования для подростков задать вопрос: учите ли вы своих детей писать код и если да, то какие инструменты, среды и языки используете?

Материал подготовлен школой программирования Pixel. Мы учим современных детей, увлеченных IT, грамотно использовать языки программирования, разрабатывать игры и веб-сайты. 

Комментарии (25)


  1. jackchickadee
    11.10.2024 03:33

    Разбираемся, с чего стоит начать.

    а начать стоит с оценки перспектив начинающего работничка ИТ (т.наз. "джун") в этой стране и в мире вообще. потом сравнить доход джуна в ИТ с другими отраслями. после чего стоит закончить и больше не начинать.


    1. everis
      11.10.2024 03:33

      А если уж решил начать - то начать с базовых основ математики, с алгоритмов на бейсике/паскале. И тогда со временем будет польза и развитите.

      А начав с фигни всякой - получаем то, что получаем.

      "Разработчики" одного фреймворка, не способные сделать шаг в сторону.


    1. andyshark1974
      11.10.2024 03:33

      Дети - это не о работе. Даже близко. Младший школьный возраст и тем более подростковый - это расширение кругозора и выстраивание мышления в определенном порядке. До джуна там еще годы работы. Важно задать правильное направление для развития и дать базовые основы. И в программировании тут начинать как раз с 8 лет нормально. Но ни о какой оценке перпектив речи даже и близко нет в этом возрасте.


      1. jackchickadee
        11.10.2024 03:33

        Важно задать правильное направление

        ИТ не является "правильным направлением" для 99% населения любых возрастов. потому что:

        1. плохо влияет на физичское здоровье.

        2. способствет утере гуманитарных навыков, как и любая возня с высокоуровневыми многослойными абстракциями типа математики.

        3. приобретенные в ИТ навыки не переносимы в другие области.

        как говорится пруф ми вронг.


        1. andyshark1974
          11.10.2024 03:33

          Это да, соглашусь. Можно поставить логику, показать как работать с техникой. Но тут важна цель которую ставит преподаватель.

          Я (опять про шахматы) сторонник того что любой ребенок должен научиться в них играть. По нормальной учебной программе (а не тому ужасу что сейчас в России приняли в школах...). Но там важны сроки и возраст. А это все просто - 6-7 лет и максимум 2 года. Базовые основы получит, логику поставит и все норм. А кому нужно - пойдут дальше. Кто- то в IT, кто-то нет. Но навыки они получат.

          С программированием аналогично. Но обучение детей делается в связке ВСЕХ предметов, а не просто - я захотел и сделал.


          1. jackchickadee
            11.10.2024 03:33

            Я (опять про шахматы) сторонник того что любой ребенок должен научиться в них играть.

            я не сторонник. шахматы - все. Deep Blue обыграет любого шахматиста. игра Го тоже все.

            а вот покер, преферанс, бридж - не все так 1значно. хехе.


            1. andyshark1974
              11.10.2024 03:33

              Возможно не поверите, но я думаю аналогично. Просто я как практикующий преподаватель наблюдаю что ребенок не просто играет в шахматы, он меняет свое мировосприятие через шахматы. У меня много как личных, так и не только, историй когда человека видно сквозь шахматную доску. А так же как шахматы влияют на поведение человека в реальной жизни.

              К сожалению для большинства тренеров шахматы это просто медальки и места. А если тренер так воспринимает их - то их методика которая натаскивает ребенка на результат. А ведь через шахматы можно воспитывать детей и развивать. Но с этим сложно, особенно в России где все построено на цели любой ценой (кстати возможно шахматы к этому фигуру тоже приложили исторически...)


            1. randomsimplenumber
              11.10.2024 03:33

              шахматы - все. Deep Blue обыграет любого шахматиста.

              легкая атлетика тоже всё. велосипедист обгонит любого бегуна.


              1. jackchickadee
                11.10.2024 03:33

                ваша аналогия кривовата, но я тут вспомнил свое детство.
                легкую атлетику я ненавидел и всегда стремился откосить. почему ?
                потому что у меня был велосипед и я передвигался заведомо быстрее любого бегуна.
                это летом. а зимой - лыжи + то что сейчас называется "могул", а тогда никак не называлось.
                с горки можно было разогнаться до таких скоростей, какие бегунам и не снились.


                1. randomsimplenumber
                  11.10.2024 03:33

                  с горки можно было разогнаться до таких скоростей, какие бегунам и не снились.

                  Это вам в детстве так казалось;) До такой скорости, которая бегунам и не снилась, на деревянных лыжах с пружинными креплениями по ледяным буграм вы не разгонитесь ;)

                  Аналогия нормальная. Штангисты тоже не с подъёмным краном соревнуются.


                  1. jackchickadee
                    11.10.2024 03:33

                    с пружинными креплениями

                    разумеется нет. использовались два полужестких крепления навстречу друг другу, так что фиксировался и носок и пятка. лыжи деревянные укороченные, длина по пояс, у экстремалов по колено. любители проехаться по целине (и подготовить трассу для экстремалов) брали лыжи широкие охотничьи и тоже их укорачивали.

                    ps: а штангисты соревнуются в допинге.


        1. DaneSoul
          11.10.2024 03:33

          1. Ну так учеба в целом занятие сидячее и не самое полезное с позиции физического здоровья. Вот только мы не в Спарте и умственные навыки в современном мире крайне важны.

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

          3. ИТ навыки сейчас важны практически в ЛЮБОЙ сфере, так как обработка данных крайне важный аспект практически любой интеллектуальной деятельности. И если человек может набросать макрос\скрипт для автоматизации своей работы - это выводит его производительность на принципиально иной уровень.


          1. jackchickadee
            11.10.2024 03:33

            2.1. бюджет времени на учебу ограничен.
            2.2. чтобы получить результаты выше среднепоганого, времени придется потратить МНОГО.

            вот и выбирайте:

            • физкультура и спорт.

            • точные науки и ИТ.

            • гуманитарщина (школьный театр, школьный дискуссионный клуб).

            • шахматы и шашки.

            1. гуманитарии обработку данных делают не скриптами, а людьми-исполнителями.


            1. DaneSoul
              11.10.2024 03:33

              1. Конечно время ограниченно, и способности у всех разные. Поэтому, ИМХО, нужно максимально развивать те направления, к которым есть склонности, которые можно развить во что-то стоящее. Если человек глубокий интроверт, то будет он проклинать ваш школьный театр и только еще глубже уходить в себя если его силой загонять на такие занятия.


  1. randomsimplenumber
    11.10.2024 03:33

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

    Потребление и создание - они конечно как-то связаны.. Но не так как вы хотите представить. Если человеку нравится играть (читать книги , слушать музыку, ...) - при чем тут создание игр (книг, музыки, етц)? Из общих навыков только сидение за компутером.


    1. andyshark1974
      11.10.2024 03:33

      Думаю что там мысль в том чтобы завлечь ребенка через знакомую игровую среду. Просто подается все немного непонятно.

      На самом деле чтобы это сделать нужно иметь системный последовательный учебный курс. Дети на это хорошо идут. Начинать с завлекухи, продолжать системой, заканчивать тоже каким нибудь результатом. По статье как бы системность показана только в общем, конкретики мало. А там дьявол кроется в деталях. Плюс первоначальный этап по логике пропущен :-) Но он к программированию мало относится - логика ставится отдельно (это легче)


  1. andyshark1974
    11.10.2024 03:33

    По теме статьи все верно. Но (!!!) - может все таки свои "с 5ти лет" уберете в описании компании? Вы же сами в тексте приводите слова преподавателей про возраст! Иначе получается что пишите одно, а продвигаете другое.

    Ну не идёт программирование в 5-6 лет, не идёт. С 7ми лет ещё ладно, можно начинать (хоть и сложно). Но не с 5ти.


    1. lear
      11.10.2024 03:33

      Смотря что понимать под обучением. Есть комп игры, которые обучают логике в игровой форме. Да, это развивающие игры более общего плана, а не конкретно программированию, но всё же помогут и в изучении программированию в дальнейшем.

      До сих пор помню бесящий уровень с рыболовной сетью из Медвежонка Плюма... Эту игру мне дали, когда было 5-6 лет.


      1. andyshark1974
        11.10.2024 03:33

        Обучение - это развитие способностей детей. Причем не в едипничном случае, а в массе. Я больше сторонник того что обучать нужно не разово (дать поиграть на раз-два) а обучать системно. А это долго. И для этого есть хорошая "игра" которая не игра - шахматы. но там куча проблем, начиная с того что в приоритете там результаты - а это плохо для детей. Но вот логику они ставят хорошо, и системность. только не нужно давить на результат (к сожалению часто происходит обратное).

        А компьютерные программы в нынешнее время - это ни о чем. Да - что-то базовое может и пойдет. Но, как я писал неоднократно, педагогика не оперирует единичными детьми, она оперирует массой.


        1. lear
          11.10.2024 03:33

          Я говорил именно про обучение с 5-6 лет.

          Я не говорю, что системный подход не нужен, Я говорю про то, что учебная программа для 5 летних и 12 летних будет разной. И если в 5 лет обучать чему-то более общему, нежели конкретно программированию, то это не означает, что более общее не относится к обучению программированию.

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

          Вообщем мой тезис сводится к тому, что обучение программированию это не только про сам код/анализ/проектирование.


  1. Vdm_ro
    11.10.2024 03:33

    Столкнулся тут со школьником, который изучает питон в школе, нужно было покидать ему каких-то заданий для закрепления материала. основные проблемы питона для обучения, на мой взгляд(раньше с ним не сталкивался, но это и к лучшему, чистый взгляд, без отложившихся в подкорке танцев с бубном из разряда "вы просто его неправильно держите"):

    • зависимость алгоритма от форматирования, более-менее большой кусок кода и начало-конец кода перестают быть в видимой области, что приводит к неработающей программе, даже в случае идеального синтаксиса

    • кусок с ошибкой тупо пропускается, без сообщения об ошибках, итоговый результат - ошибочный, там где с/С#/паскаль/бейсик вывалились бы в крит ошибку и было бы понятно, питон просто пропускает блок, вот тебе неверный результат всего твоего кода - ищи где накосячил(вполне возможно, что забыл пробел)

    • бордель со свойствами объектов, часть получается через функции, часть через точку после объекта. (в нашем случае были какие то заморочки с текстом, из разряда переводим строку в верхний регистр через точку после переменной, а считаем длину строки через функцию, где переменная как аргумент)

    • некоторые действия совершаются через вставки bash-скриптов, и там где я вижу несработавший скрипт, в силу каких то настроек - человек видит питоновскую программу, которая в 10 прошлых случаях работала, а сейчас почему то нет, и вместо тестирования в консоли самого скрипта - он ищет синтаксическую ошибку в программе, либо пропущенный где то там отступ.


    1. DaneSoul
      11.10.2024 03:33

      бордель со свойствами объектов, часть получается через функции, часть через точку после объекта. (в нашем случае были какие то заморочки с текстом, из разряда переводим строку в верхний регистр через точку после переменной, а считаем длину строки через функцию, где переменная как аргумент)

      Это не бордель, там есть вполне логичное обоснование:
      Перевод строки в верхний регистр - это метод именно строки, его нет у объектов других типов, естественно он вызывается через точку как метод.
      А длина строки в данном случае это общая функция которая работает с разными коллекциями (разными типами данных) и считает количество их элементов (в данном случае символов в строке), поэтому она и реализована отдельной функцией.


      1. randomsimplenumber
        11.10.2024 03:33

        есть вполне логичное обоснование:

        Обоснование есть чему угодно, даже 2 + "2" в js. Но затем и учитель, чтобы непонятное объяснять.


    1. PanDubls
      11.10.2024 03:33

      Так то у объекта String есть и метод (через точку, как вы говорите) для получения длины:

      "Hello, world".__len__()

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

      Это как? Можно line wrap включить, все IDE это позволяют. Да и повод задуматься, а чего это у меня строка по длине перестала в экран влезать, если про длину строки речь. Если про длину всего кода по вертикали, то для любого кода рано или поздно вылезет. В питоне действительно может быть какая-то проблема с тем, что не видно, где начинается indented block, но как-то ни разу с таким не столкнулся. VSCode ещё и линовку по ним включает.


    1. randomsimplenumber
      11.10.2024 03:33

      некоторые действия совершаются через вставки bash-скриптов

      Говнокод-стилю нужно учится ещё со школы.