До того, как стать преподавателем в университете, я вёл программирование в детском технопарке Кванториум. Это такой центр дополнительного школьного образования куда дети приходили после уроков и изучали программирование, робототехнику, биологию и т.д. Конкретно я вёл занятия по Python, C++ и Arduino.

Программирование на Python отлично заходило детям, к тому же именно Python сейчас изучают в школе на уроках информатики. Он практически полностью вытеснил Pascal т.к. не уступает ему в простоте, а возможностей сделать разные интересные проекты гораздо больше. Поэтому вопрос как лучше изучать Python ребёнку актуален не только для родителей, но и для самих детей.

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

Материалов, специализированных для изучения Python детьми, много, но я расскажу про те, которые считаю лучшими, и которые лично сам использовал на реальной практике при работе со школьниками. Кроме того, у меня два профильных образования:

  1. программист (09.03.01 Информатика и вычислительная техника) в бакалавриате;

  2. педагог (44.04.04 Профессиональное обучение) магистратура.

Поэтому хоть что-то в этой теме я, наверное, знаю. Вспоминает школьные годы автор YouTube-канала PyLounge - Макс. Поехали!

Возраст

Для начала скажу пару слов про подходящий возраст для изучения программирования. У нас в Кванториуме обучались дети от 10 до 18 лет и по опыту работы мне кажется, что самый подходящий возраст для изучения программирования от 12 лет.

Поэтому ресурсы из этой подборки ориентированы, условно, на детей от 12 до 16 лет. Хотя повторюсь, всё условно, все люди разные, кто-то лучше воспринимает информацию кто-то хуже, но в среднем будем ориентироваться так.

Я считаю, что лучшим средством для изучения программирования являются книги, поэтому начнём с них.

Книги

И первая книга в списке - Python для детей. Самоучитель по программированию / Джейсон Бриггс.

Хорошая, красочная книга, где поэтапно разбираются все основные темы по Python. Дополнительно разбираются библиотеки tkinter для создания графических программ и turtle, которая предназначена для рисования геометрических фигур и анимации. Это помогает в наглядной игровой форме осваивать возможности Python и базу языка. Нет как таковой воды, много примеров кода, картинок. Кроме того, есть упражнения после каждой темы, а во 2 и 3 частях книги идёт разработка 2-х мини-проектов по созданию игр на Python. Фундаментальные темы, такие как циклы, условия, функции объясняются сразу с созданием каких-то интересных графических штук из turtle. Детям обычно очень нравится. И читать книгу не скучно. Из всей подборки — это моя любимая книга.

Далее на очереди Пэйн Брайсон Python для детей и родителей.

Тоже очень понятная и красочная книга. Где также как в случае с Бриггсом поэтапно освещаются все необходимые темы. Также есть материал по черепашьей графике turtle. Но вместо библиотеки tkinter, рассматривается библиотека для разработки игр Pygame. Материал преподносится на практике и в игровой форме. Есть упражнения после каждой главы. Я скажу так, она плюс-минус равносильно предыдущей. Стоит попробовать почитать обе и выбрать ту, в которой больше понравится изложение материала.

Свейгарт Эл Учим Python делая крутые игры.

Особенность этой книги заключается в том, что все базовые темы тут разбираются сразу на примере создания каких-то мини-игр. Например, объяснение циклов и случайных чисел происходит в ходе создания игры «Угадай число», функции попадают в «Царство драконов» и т.д.  В конце главы нет упражнений, но каждая тема подаётся в виде разработки игры, поэтому каждая тема является своего рода мини-проектом. Также рассматривается библиотека Pygame и создание анимации. Она чуть менее красочная, меньше иллюстраций, но компенсируется это большим количеством кода. Стоит попробовать, как минимум посмотреть, как заходит материал.

Программируем с Minecraft. Создай свой мир с помощью Python / Крэйг Ричардсон

Необычная книга тем, что изучение программирования на Python идёт через мир в Minecraft! То есть ты пишешь код на Python, который сразу же вносит какие-то изменения в игру: создаются постройки, происходит телепортация игрока, изменение ландшафта и т.д. Вы изучаете тему и сразу применяете полученные знания на практике, пишите код, который как-то затрагивает игровой мир. Это очень интересный и что самое главное эффективный формат изучения именно для детей. Вообще Minecraft часто применяется в образовательном процессе. Есть даже отдельная версия, которая называется Mineсraft Education Edition.

Однако многие родители боятся, что вот он будет только играться, а не учиться. Это далеко не так. Тебе интересно учиться только когда ты видишь результат своей учёбы. Когда ты прикладываешь полученные знания на практике. А Minecraft позволяет прикладывать эти знания в знакомом и любимом для ребёнка мире. Детям проще учиться через игры, есть даже куча педагогических методик, завязанных на играх. Поэтому изучать программирование в игровой форме или через создание игр мысль неплохая.

Сайты

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

Самоучитель Python c Python World
Самоучитель Python c Python World

Второй сайт, на который я хотел бы обратить внимание, это Django Girls Tutorial. Это набор последовательных уроков по ходу выполнения которых вы создаёте сайт на Python и фреймворке Django. Это самый сложный материал в подборке, но я решил добавить его, потому что там хорошо изложены основы языка, а также всё изучение идёт на практике, а это всегда интересно. Кроме того, можно будет ещё и освоить дополнительно язык разметки веб страниц HTML и язык стилизации страниц CSS.

Самоучитель djangogirls
Самоучитель djangogirls

Видеоролики

И закрывает подборку ресурсов плейлисты на YouTube.

Первый плейлист это Уроки Python для начинающих от Гоши Дударя с канала ItProger и его же плейлист по созданию игры с помощью Python и библиотеки PyGame.

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


Я предложил несколько различных ресурсов для изучения Python. Выбирайте именно тот формат, который больше нравится именно вам. Когда освоите сам язык можно переходить к различным дополнительным инструментам. Например, фреймворку для создания сайтов Django, библиотеке для компьютерного зрения OpenCV, или модулю aiogram для создания telegram-ботов. Спасибо за внимание!

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


  1. involute
    00.00.0000 00:00
    +2

    Привет. Всё-таки лучше в 12 лет с python начать? Мне рекомендуют сначала сына c обучить, а потом python.


    1. PyLounge Автор
      00.00.0000 00:00
      +1

      С Cи будет сложновато


    1. alexdesyatnik
      00.00.0000 00:00
      +2

      У меня >10 лет опыта в школе (учитель информатики в 7-11 классах), по моему опыту 12 лет даже для Python может быть рановато, лучше попробовать что-то визуальное вроде Scratch. Нужный уровень внимания к деталям и абстрактного мышления формируется обычно годам к 15-16. Разумеется, бывают исключения, обычно 1-2 человека на параллель (около 40 человек, школа небольшая) прям на порядок быстрее остальных схватывают материал.

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


      1. iuabtw
        00.00.0000 00:00

        А что скажете насчёт игр? Есть относительно простые, типа этих
        https://store.steampowered.com/app/792100/7_Billion_Humans/
        https://store.steampowered.com/app/375820/Human_Resource_Machine/

        Есть хардкор в стиле программирования МК, или постройка процессора начиная с простейших логических операций.
        Есть абстрактные игры про алгоритмы, в основном от zachtronics.

        Можно ли их включить в обучение, для повышения интереса?


        1. alexdesyatnik
          00.00.0000 00:00

          Не пробовал, т.к. в учебный процесс их встроить достаточно проблематично. Хардкор типа Shenzhen I/O - это вообще не для детей, как мне кажется. Что-то попроще и понагляднее - почему бы и нет. Только, разумеется, без даже тени принудилова. Зашло - хорошо, не зашло - ну значит не зашло.

          То, что пробовал - роботехника Lego, вот от неё польза точно есть. Правда, по финансам довольно неприятно, если самому покупать. Кружок робототехники хорошая тема, особенно если они ещё и в соревнованиях участвуют.


      1. PereslavlFoto
        00.00.0000 00:00

        … что-то практическое на нём сделать намного сложнее. Я имею ввиду законченные проекты...

        Что-то практическое легче всего писать на Visual Basic for Applications, да, да!


        1. alexdesyatnik
          00.00.0000 00:00

          Вы готовы поспорить с тем, что обозначенные направления разработки на C/C++ гораздо менее доступны по сравнению с Python?


      1. Shatun
        00.00.0000 00:00

        У меня >10 лет опыта в школе (учитель информатики в 7-11 классах), по моему опыту 12 лет даже для Python может быть рановато, лучше попробовать что-то визуальное вроде Scratch. Нужный уровень внимания к деталям и абстрактного мышления формируется обычно годам к 15-16.

        Мы с другом в кружок программирования пошли в 4 классе(думаю это 11 лет), учили basic, шло достаточно легко.
        Видел много людей кто начинал учить постарше(после 20)-мне кажется им было гораздо сложнее, они непонимали такие вещи как циклы, присваивание и т.д., а в детскую голову это все заходит легко.


        1. alexdesyatnik
          00.00.0000 00:00

          Детские головы бывают разные. Да, есть люди, которые и в 10-11 лет могут уже начать это осваивать, но - опять же, исключительно по моему опыту - попытки начать изучать программирование на "взрослых" языках (обычно Python, C++ или JS) раньше 7 класса (т.е. 13-14 лет) часто заканчиваются ничем, обычно где-то в районе уровня, когда надо не просто один цикл или условие написать, а использовать несколько конструкций сразу.

          Конечно, если инициатива исходит от ребёнка, то это совсем другое дело, там и мотивация есть, и скорее всего какая-то склонность.


  1. geirby
    00.00.0000 00:00
    +7

    Эка вы куда хватили: "с 12-лет"! Да 12 лет это уже начало заката в нашей профессии, вы что!

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


  1. aMster1
    00.00.0000 00:00

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


    1. alexdesyatnik
      00.00.0000 00:00
      +1

      Ровно тот дистрибутив и ту среду, которую посоветовал учитель или учебник. Для начала комплектного IDLE вполне хватает, но если учитель/учебник говорит "берите Wings 101" (например) - берите Wings 101 или ищите другой учебник / другого учителя, всё просто.


    1. Wrench_IT
      00.00.0000 00:00

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

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


      1. Kraleks
        00.00.0000 00:00

        Думаю еще и pyscripter будет лёгок в использовании. Нижняя его часть дублирует стандартный IDLE


  1. Talexklg
    00.00.0000 00:00
    +1

    Я бы добавил ещё пару бесплатных курсов на Stepik'е. "Поколение Python" : курс для начинающих и "Поколение Python": курс для продвинутых. Материал дан кратко, но доходчиво, много практики для закрепления материала.