Как разработчики учат своих детей программировать (и надо ли это делать)

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

Мы в IT-Академии Алексея Сухорукова не занимаемся детским обучением, но у нас и наших преподавателей есть много интересного и познавательного на эту тему. Однако начать мы решили с западного опыта. В этой статье профессиональные разработчики и основатели стартапов рассказывают о том, как обучали своих маленьких (иногда совсем маленьких!) детей кодированию.

Как мой четырехлетний сын изучал Python

Мэтт Лернер (Matt Lerner), VP Product & Design @redfin, co-founder of @walkscore

Я хотел научить своих детей программированию, потому что это отличное мастерство и мощный способ мышления. Мои дети проводили много времени за игрой в Angry Birds на моем iPhone, и я решил, что пришло время им заглянуть за занавеску и узнать, как работает программирование. Итак, вот вам мои советы. Они целиком и полностью взяты из личного опыта и пригодятся вам независимо от того, кто вы - хардкор-программист или человек, который вообще не имел дела с кодом до этого.

Совет №1. Начинайте с элементарного

Когда моему сыну Сай было четыре года, мы уже начали пользоваться программами по созданию логотипов на iPad (Mad Logo) и делать анимации, используя язык программирования для детей Scratch. Но я хотел, что бы сын заглянул вовнутрь, и придумал некоторые уловки, которые бы смогли увлечь его программированием на Python. Этот язык достаточно простой, чтобы ребенок мог его понять и при этом достаточно мощный, чтобы реализовать все идеи, которые приходят мне в голову и за которые мне платят хорошую зарплату.

Совет №2. Переходите на Python.

Вы знаете, что Python уже установлен на вашем макбуке? Вам достаточно открыть окно терминала и ввести python для запуска (для выхода нужно нажать ctrl+d). Все, что вам нужно, чтобы запустить Python и начать на нем программировать, есть вот в этом руководстве.

Совет №3. Говорите с компьютером.

Для того, чтобы ребенок обратил внимание, у меня есть специальный лайфхак. Заставьте компьютер говорить! Если у вас макбук, то просто откройте окно терминала и введите команду “приветствовать”. Компьютер ответит “привет”. Разве не магия?

Как разработчики учат своих детей программировать (и надо ли это делать)

Совет №4. Поиграйте в игру с угадыванием числа на Python.

Чтобы запустить эту программу:

  • Загрузите исходный код
  • Откройте окно терминала
  • Введите cd Downloads
  • Введите python mathquiz.py (и проверьте, включен ли у вас звук)

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

Откройте этот файл с помощью текстового редактора и попробуйте изменить max_number на 100.

Как разработчики учат своих детей программировать (и надо ли это делать)

Совет №5. Все остальное вы легко найдете в интернете.

Представьте, что вы хотите научить ребенка чему-то сложному. Допустим, рекурсии. Помните, что это такое? Я помнил, но, черт возьми, меня очень интересовало - как я могу объяснить ребенку что-то действительно сложное (такое, как рекурсия)? Я использовал отличное из Khan Academy, которое доступно рассказывает о рекурсивной факториальной программе.

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

Как разработчики учат своих детей программировать (и надо ли это делать)

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

Однако, благодаря этим упражнениям, мой сын Сай увлекся факториалами и, самое главное, увидел, что программирование - это то, что может абсолютно каждый. Советую вам Code.org - там много материалов для эффективного обучения программированию.

Как мой восьмилетний сын учится программировать на Java (и ваши дети тоже так могут)

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

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

Шаг 1. Minecraft и YouTube.

Первый этап был такой же, как и у всех. Моему сыну исполнилось 7 лет и он очень интересовался Minecraft. Чуть позже он начал смотреть различные ролики на YouTube, он увидел, как люди создают новые текстуры, предметы, скины и добавляют их в игру. Ему всегда нравилось Lego, и возможность создавать новые блоки и персонажи в Minecraft очень увлекла его. Я считаю, что это самый яркий творческий инструмент для его возраста. Вместе с друзьями они встречаются, заходят в игру и получают по настоящему коллективный творческий опыт.

И обязательно разрешайте смотреть им ролики на YouTube. Это вдохновляет детей, показывает им их настоящие возможности. Потом они перейдут на ролики о науке, искусстве и обучении.

Шаг 2. Нужно научиться Java, чтобы самому делать моды в Minecraft

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

Шаг 3. Летняя школа Minecraft Redstone

Сын уже знал Scratch, но он наскучил ему. Я согласен - думаю, что интерфейс и возможности Scratch уже устарели. В итоге прошлым летом мы отправили его в технический летний лагерь на неделю, где он прошел курс цифровой инженерии Minecraft Redstone. Там он изучал цифровую логику, создавал сложные машины (например, лифт), осваивал командные блоки (Scratch это дать не может). Это был летний лагерь от Funtech в Лондоне, и я могу смело рекомендовать его. Диапазон и разнообразие их курсов просто потрясающие.

Шаг 4. Прорыв с Youth Digital

Мы пытались самостоятельно создавать моды на компьютере, но это оказалось сложно. Тогда я случайно наткнулся на сайт YouthDigital.com, на котором мой сын и научился программировать на Java. Этот ресурс, созданный Джастином Ричардсом, блестящ во всех отношениях. Система сочетает в себе интерактивные обучающие видео, пользовательскую версию инструмента кодирования Eclipse и Minecraft. Дети смотрят ролики, редактируют на Java в Eclipse, а результаты своих изменений смотрят в Minecraft. Вот, что значит XXI век!

Это правильное кодирование, а не интерфейс для перетаскивания. Вот скриншот из работы моего сына в доказательство.

Как разработчики учат своих детей программировать (и надо ли это делать)

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

Как разработчики учат своих детей программировать (и надо ли это делать)

У них много совершенно фантастических курсов - дизайн одежды, дизайн игр, дизайн сервера и так далее.

Шаг 5. Игра CodeKingdoms

Сам я начал кодировать с 12 лет и с тех пор увлекаюсь поиском новых способов и инструментов. Сегодня я соучредитель и партнер инвесторского фонда SparkLabs Global Ventures, дочерней компании SparkLabs Korea. Один из стартапов, в который мы вложились, это проект CodeKingdoms. Это восхитительная игра с умными способами привлечения и обучения детей кодированию. Мой сын проникся ей и рассказал всем своим друзьям.

Как разработчики учат своих детей программировать (и надо ли это делать)

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

Что дальше.

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

Еще я бы упомянул здесь вдохновляющий моего сына мультфильм Big Hero 6. Он отлично демонстрирует детям, как круто заниматься творчеством и технологиями. После его просмотра он стал мечтать о создании собственной лаборатории с роботами.

Как я учил своего десятилетнего сына JavaScript

Рич Клейн (Rich Klein), Full-stack web developer, автор детских книг.

Моему сыну было семь лет и он спросил меня, чем я зарабатываю на жизнь. Естественно, он сразу захотел понять, что такое “веб-разработчик”, и с этого все и началось… Родители любят учить своих детей - это инстинкты. Мы учим их говорить, пинать мяч, рассказываем о ценностях, но что насчет программирования? Это не так весело, как новые игрушки, как конструктор Lego, но это одна из полноценных форм творчества и самовыражения.

Начинаем с нуля

Scratch - это очень забавно и интуитивно понятно. И эта платформа как раз и похожа на то самое Lego. Мой сын активно пользовался ей больше двух лет и даже сейчас иногда туда заглядывает.

Настоящее кодирование

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

Как разработчики учат своих детей программировать (и надо ли это делать)

Первый язык

Я прочитал рекомендации и выбрал Python. Сам я работаю HTML / Javascript, PHP / Laravel, Node / Express, опыта с Python у меня не было. Но я сразу понял, что это лучшее решение и заказал книгу “Python для детей”. Python - легко читаемый и элегантный язык. На нем не надо писать так много кода, как это происходит на Cи-подобных языках.

Я взял ноутбук своей матери и установил на нем Python и Sublime. Навыки в Scratch позволили ему быстро освоить переменные, условные обозначения, циклы и списки. Все началось довольно весело, но потом мой сын остановился и потерял мотивацию. Задания из второй части книги не могли конкурировать с тем же Scratch, не говоря уж о Xbox. Но я понимаю, что это был отличный опыт для нас обоих, и уверен, что в будущем мой сын еще вернется к Python, потому что у него так много применений.

JavaScript приходит на помощь

Я помню, как он был взволнован, когда понял, что может просматривать код на сайтах и менять содержимое с помощью Chrome DevTools. Добавление “poop” в заголовки веб-страниц очень веселит детей. Я решил, что ему надо осваивать HTML и JavaScript, и заказал книгу “JavaScript для детей”, где даются все основы. Он работал по книге чуть больше часа по выходным, но добился значительного прогресса.

CodeSchool

Веб-разработка - обширная тема, и мне нужна была помощь. В определенный момент через пару месяцев его обучение потеряло первоначальный импульс и снова замедлилось. Мы подписались на CodeSchool и это сработало. Их смесь из музыки, видео-тренировок и онлайн-упражнений отлично подошли моему сыну, хотя иногда он просто слушал и искал новые джинглы. Потом он перешел к Javascript Road Trip Part 1, а сейчас мы работаем над Javascript Road Trip Part 3, и упражнения там сложны для нас обоих. Я сам многому научился вместе с ним.

Как объяснять детям концепции программирования

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

Переменные. Переменные в JavaScript - это как обычные ящики, в которых хранятся вещи. Вы даете им имена точно так же, как клеите стикеры на коробки. Надо давать понятные имена, чтобы потом любые вещи можно было легко найти.

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

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

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

Файлы cookie. Я прихожу в пекарню и пекарь спрашивает меня, какое печенье я хочу. Потом я начинаю каждый день бывать в этой пекарне, и он уже просто спрашивает меня: “Вам как обычно?”. Этот пример был все же недостаточно четким (потому что пекарь все же совершал повторяющийся запрос), и тогда мой сын сам предложил пример с нашим парикмахером. Мы приходим, и он просто начинает стричь нас, потому что знает, чего мы хотим.

Программирование - это длинное путешествие

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

P.S К январю 2017 года он потерял интерес к JavaScript (ему стало скучно). На самом деле, веб-разработка - это бесконечно длинный и сложный процесс обучения.

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

Я никогда не заставляю своих детей кодировать. Я могу выступать только в роли наставника и мотиватора. Мой сын бросил код и увлекся художественной литературой. Но в определенный момент его заинтересовал искусственный интеллект и машинное обучение. И тогда мы вернулись к Python!

Как я учила своих дочерей программированию

Грейс Франсиско (Grace Francisco), вице-президент по связям с разработчиками в Roblox

У меня две удивительные дочери 9 и 12 лет. Мне нравится иметь детей - каждый день мне приходится учиться и совершенствоваться как родитель. Мы с мужем стараемся воспитывать в них любовь к обучению, но при этом хотим, чтобы они оставались просто детьми. Как и большинство современных детей они уже на “ты” с технологиями. Но, например, когда мы сидим за ужином, мы не позволяем им лазить в смартфонах. Мы хотим, чтобы они умели общаться вне технологий, эти навыки крайне важны для успешной и счастливой жизни.

Как разработчики учат своих детей программировать (и надо ли это делать)

Несколько лет назад я выбирала летний технический лагерь для своего старшего сына. Моя дочь заглянула в мой ноутбук и сказала: “Это только для мальчиков” (на фотографиях из этих лагерей были преимущественно мальчики). После этого я попыталась привлечь их стандартными методами - Scratch и Code.org. Но их интерес пропадал через 10 минут. iPad-игры, готовые и красивые, казались им намного лучше.

Прорыв случился благодаря одному семинару, где я помогала коллеге. Там мы показывали другим детям, как использовать Scratch для программирования. Мои дочери тоже были в этой детской мастерской. Они увидели кучу мальчиков и девочек, которые с интересом копались в компьютерах. На том занятии им было весело, и после него моя старшая сказала, что хочет тоже работать в технологиях “как мама”.

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

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

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

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

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

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

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

Надо ли обучать детей программированию с ранних лет?

Да, обязательно, и как можно раньше (так же как грамматике и математике)

Только если они сами проявляют интерес и желание

Материал подготовлен IT-Академией Алексея Сухоркова

1212
24 комментария

Как всегда ни слова про ......,эх недальновидные родители

5

Это скорее если вы хотите своему ребёнку жизнь сломать )

5

эт точно. хоть над 1с-никами ржут, но вакансий по этому языку в несколько раз больше, чем по отдельно взятым по России (не говорите мне про мир, это и так понятно). Т.к. спрос на таких прогеров растет, будут расти и ЗП.

2

Любая профессия которая позволяет уехать за границу является перспективной. Эпоха углеводородов подошла к концу. Уже 10 лет стагнации, скорее всего и следующие 10 лет будет тоже самое или хуже. А ребёнку как раз уже будет 18 лет к 2030-м.

5

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

3

У меня сын в 4 года сам попросил показать ему как и почему работает компьютер и как "оживают" мультяшки на экране. Я показал ему как раз scratch и мы с ним вместе теперь делаем весёлые штуки.

P.S. вот буквально 2 дня назад он попросил сделать что-то "настоящее", на вопрос "а хочешь ли робота оживить с помощью редактора где мы программируем?" он засиял. Теперь вот ждём рождества и программируемого робота под ёлку.

К чему это я написал всё? К тому, что не "насиловать", а в игровой форме обучать ребенка самому востребованному ремеслу в 21 веке. Не вижу здесь пиздеца.

3

А математику, правописание они хотят изучать? А надо. Здесь примерно так же

1