Ежегодно HeadHunter проводит “Школу программистов”, где обучает студентов и молодых специалистов всем хитростям разработки, а также работе в команде. Помимо языков программирования ребята изучают основы дизайна, тонкости командной разработки.

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

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

image

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

Что получилось


//Сайты


Если ребенок хочет изучить Python, это можно делать не только по книгам, но и с помощью качественного бесплатного онлайн-курса на udacity.com: Programmic foundation with python.

Окей, курс пройден. Но в мире столько интересных задач, которые можно решать накапливая баллы, объединяясь с друзьями в группы и хвастаясь результатами: Codewars. Ачивки, грейды, хорошие задачи — такие опции мотивируют учиться и работать даже взрослых ребят.

Также можно обратить внимание на подобные первоисточники таких проектов, как Project Euler.

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

// Очное обучение


У ребенка горят глаза и он хочет глубже заниматься разработкой и общаться с теми, кто также интересуется этим?

Для детей помладше существует школа «Интеллектуал».

А вот для 10-11 классов рекомендую попробовать поступить в СУНЦ при МГУ:

Уровень подготовки в этих школах на высоком уровне и может упростить поступление в ведущие ВУЗы.

Дополнительно рекомендую обратить внимание на всероссийскую школьную акцию Минкомсвязи и Минобра “Урок цифры” (ранее “Час кода”). Урок по программированию проводится раз в год (обычно зимой) для школьников с 1 по 11 класс по всей России. Может, именно он станет для вашего ребенка первым шагом в большой и интересный мир all things coding?

// Кружки


При многих профильных университетах есть кружки и вечерние школы, где читают курсы сверх школьной программы.
При МГУ их два:
механико-математический факультет
факультет вычислительной математики и кибернетики
Также есть кружки в Центре непрерывного математического образования.

// Заочные школы при ведущих вузах


Если вы живете не в Москве, или не хватает время на очное обучение, всегда можно поступить на заочное:
заочная школа физтеха
СУНЦ МГУ

// Олимпиады


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

Посмотрите такие варианты Олимпиад:
Математический праздник (6-7 классы)
Московская олимпиада школьников по информатике (6-11 классы)
Турнир имени М.В. Ломоносова (6-11 классы)
Московская математическая олимпиада (8-11 классы)
Объединенная межвузовская математическая олимпиада (9-11 классы)
Codeforces

// Книги


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

Начать можно с книг издательства “Манн, Фербер, Иванов”:

Программирование для детей. Иллюстрированное руководство по языкам Scratch и Python
Авторы книги предлагают ребенку простые проекты игр и анимации, которые вовлекут его в процесс разработки. Познакомят его с основами программирования и научат двум наиболее распространенным языкам — визуальному Scratch и текстовому Python.

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

JavaScript для детей
Эта книга — не только введение в JavaScript, но и вообще в программирование.
Поможет узнать, как кодить на этом языке “с нуля”. Каждая глава посвящена отдельной теме, и в каждой следующей главе изучается что-то новое, опираясь на уже прочитанное. Кроме того, в книге есть упражнения, которые помогут расширить примеры и написать собственный код. К концу книги ребенок сможет запрограммировать свою игру с анимацией!

Must read — это книга о проектировании миров в Minecraft

Книга специально написана для тех, кто не только любит играть, но и хочет создавать что-то новое. Поможет с легкостью освоить программирование, просто играя в Minecraft. В этом помогут пошаговые инструкции, позволяющие построить дом, фантастическое сооружение или 3D-копировальную машину.

А тем, кто постарше не стоит забывать про классику жанра типа «Совершенного кода» или GoF. «Приемы объектно-ориентированного проектирования. Паттерны проектирования» —
Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес

// Другие варианты


Однозначно есть смысл походить на конференции/митапы — это может подкинуть идеи, заинтересовать.

Есть даже крутой опыт Ревел Карлберг Вест, 9-летней девочки из Нью-Йорка. Она пошла выступать на митап в Нью-Йорке и сейчас при поддержке сообщества развивает свою собственную библиотеку React hooks.

Сформировалось мнение, что детям нужно пробовать. Пробовать всё сразу или по очереди, и по себе уже смотреть, что нравится, а что — нет.

Даже если в итоге разработка у ребенка не пойдет, есть ощущение, что базовый навык программирования будет must have в вакансиях будущего — а в вакансиях мы толк знаем!

Конечно, здесь не всё — поэтому ждем ваши рекомендации в комментариях. Онлайн-курс, книга, сайт, форум — любой вариант из нашей подборки. Автор самой залайканной рекомендации получит все 4 книги, которые я посоветовал, и ценный мерч от HeadHunter.

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


  1. f0ks
    26.02.2019 17:12
    -1


    1. Oskal174
      27.02.2019 16:02

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


  1. regamad
    26.02.2019 17:38
    +1

    7 летний ребенок самостоятельно, практически без вопросов, прошел два курса по блочному программированию на code.org (под блоками javascript, код можно посмтреть). Все кроме кода на русском языке, в качестве объектов испольхуются персонажи игр, например Plants vs Zombies или Angry Birds.
    Тот же ребенок в 6 лет с щелкал на планшете игры Coddy и Lightbot. (очень простое блочное программирование перемещания персонажа по полю). Также, практически без вопросов, и на русском языке.
    После code.org в плане playcodemonkey и простые задания для adruino.


  1. myxo
    26.02.2019 19:03

    Ну раз такое дело, прорекламирую своих =)
    В Новосибирске каждое лето проводится Летняя Школа Юных Программистов (ссылка вк). Мы выезжаем на 2 недели в какой-нибудь лагерь и кодим с детьми с утра до вечера. Фокус у нас на проектную деятельность (не олимпиады) в малых группах (до 6 человек). Проекты пишем самые разные (много мастерских, в каждой проект задает преподаватель, каждый год делаем разное). По возрасту берем примерно с 5 класса и до 11.

    ps. В этом году будет 44 школа. Сильно подозреваю, что мы старейшая детская школа по программированию в СНГ =)


  1. vt4a2h
    27.02.2019 00:50

    Тут основной вопрос в том, что мы понимаем под программированием в данном случае: промышленную разработку ПО, какие-то основы математики, алгоритмизацию и т.п.? Потому что, когда ребёнок хочет стать разработчиком, он скорее всего не понимает, что такое разработка и какие задачи решают программисты, и те, кого ошибочно к ним причисляют. Я к тому, что всё описанное в статье, соотносится с реальной разработкой, как, допустим препарирование лягушки в школе с профессией нейрохирурга.


  1. Terras
    27.02.2019 07:43

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


    1. DaneSoul
      27.02.2019 12:10

      Все люди разные, я с детства руками не любил что-то делать, ну кроме конструкторов, а был бы в то время компьютер, то с удовольствием бы копался в алгоритмах и программировании…


    1. kshshe
      27.02.2019 16:01

      Думаю, можно просто спросить у конкретного человека, интересно это или нет, не притягивая к этому возраст.

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

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


    1. GarfieldX
      27.02.2019 19:06
      -2

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


      1. GarfieldX
        28.02.2019 17:18

        Аргументы у минусаторов будут? Или голосующая аудитория хабра на уровне карапузов вконтактика?


  1. Bookvarenko
    27.02.2019 12:00

    Советую движок Instead. instead-hub.github.io
    Внутри простой и понятный ЯП Lua. Графоний обеспечивает SDL2.
    В наличии документация на русском и английском языках.


  1. SkinnerDE
    27.02.2019 16:01

    Мы выезжаем на 2 недели в какой-нибудь лагерь и кодим с детьми с утра до вечера.
    Мне их уже жалко. На какую фигню тратится детство. Зачем превращать детей в ботанов-задротов и с детства приучать к галерным режимам работы?

    Когда мой сын — шестиклассник рисует игрушку в Скретче — я не против, помогу/подскажу. Но когда он сам заходит в Лазарус и листает мои старые талмуды по Дельфи — это уже настораживает. Но это его выбор. А специально привлекать к кодингу ни в коем случае не буду.


    1. Bookvarenko
      27.02.2019 18:38
      +1

      Самоценность детства значительно переоценена.



  1. Bea5t
    28.02.2019 07:00

    Исходя из своего опыта, массово можно обучать программированию на Scratch с возможностью далее перейти на AppInventor (с помощью которого можно создать реальное мобильное приложение) или Python (с помощью книжки, которая здесь уже упоминалась Programming on Scratch and Python).
    Так же отлично помогает игра LightBox (классическое управление роботом с помощью блоков) и, внимание, игра Human Resource Machine — ее я советую вообще всем — это симулятор работы процессора от разработчиков World of Goo.


    1. Bea5t
      28.02.2019 07:45

      Да, игра все же LightBot правильно называется.


      Для более старшего возраста отличное подспорье — поступить и заниматься по программе Яндекс.Лицея. Это очень объемный курс по программированию на Python с нуля. Рассчитан на 2 учебных года, при успешном прохождении на выходе получается junior-программист.


  1. Bookvarenko
    28.02.2019 08:44

    Помнится, была занятная игрушка от «LucasArts», под названием «Star Wars Pit Droids: Logic and Reasoning». Перед играми с непосредственно программированием, порешать вместе с чадом тамошние головоломки будет небесполезно.


  1. Browning
    28.02.2019 09:53

    Онлайн: pythontutor.ru
    Живьём в течение года: в Москве и окрестностях ШП, в регионах Яндекс.Лицей
    Летом, интенсивно: ЛКШ и другие летние школы (Слон, GoTo)
    А тема хороших школ в одной только Москве совершенно неисчерпаема, например, явно стоит упомянуть 179.