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

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

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

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

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

Прежде чем начать, вот несколько метапоинтов:

  • Блок-схема самоуверенна, что означает, что она сосредоточена на предоставлении хороших советов. Он не пытается охватить все существующие пути обучения или даже большинство из них. Вместо этого он пытается выбрать лучшие репрезентативные примеры из разных категорий. Это технологии и игрушки, которые я пробовал сам, но если вы пробовали что-то, что вам нравится, дайте мне знать.
  • Тема блок-схемы - это вкус программирования. Его цель - помочь вам начать работу. Он не пытается помочь вам развить навыки, необходимые для того, чтобы стать программистом.
  • Блок-схема имеет сочетание разных уровней сложности и требований ко времени. Вы сможете сказать, какие занятия более расслабляющие, а какие - более сложные. Но вы можете не знать, сколько ребенок получит от того или иного занятия - и это прекрасно! Когда вы изучаете что-то новое, вы не теряете зря время.

1. Выберите свой подход

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

Переход в автономный режим

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

Если вы учитель, ведущий группу, возможно, вы захотите познакомить вас со знаменитым упражнением для роботов с арахисовым маслом от MIT (отлично подходит даже для маленьких детей). Если вы немного более амбициозны, обратите внимание на серию Алиши Новин Обучение без технологий. Он использует игры для демонстрации простых идей и более сложных концепций, таких как связанные списки и даже машинное обучение.

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

Для детей, которые любят читать, в книжных магазинах есть огромные каталоги детских книг, в которых говорится о коде. Большинство из них двухъярусные. Но книга Вычислительные сказки, написанная главным инженером Google и экспертом по алгоритмам Джереми Кубицей, представляет собой проницательный взгляд на реальные компьютерные концепции, воплощенные в жизнь в вымышленном мире. (Lauren Ipsum - еще одно хорошее чтение.) Подобные книги предлагают долгий путь к изучению идей программирования, но они доставляют много удовольствия подходящему ребенку.

Электроника

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

Новички, не имеющие опыта программирования, могут сразу погрузиться в очень доступную плату micro: bit (примерно 20 долларов). Соедините его с блочным языком программирования MakeCode и используйте его для управления светом, звуками и простыми элементами подключенной электроники. За дополнительные деньги вы можете использовать визуальный язык программирования Blockly для управления причудливым роботом Dash от Wonder Worskshops. Если это похоже на ваш путь, мы подготовили для вас гораздо более подробную статью о детях и электронике.

2. Печатать или не печатать

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

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

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

Кодовые игры

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

Большинство игр с кодированием включают в себя перемещение какого-либо аватара (черепаха, зомби, персонаж из фильма Диснея) по игровой поверхности. Они похожи на более современные, но более ограниченные версии древнего языка программирования Logo. Вы можете использовать любую версию, которая работает на предпочитаемом вами устройстве. Мы использовали Move the Turtle на iPad и поиграли с бесплатным веб-сайтом Hour of Code, который более точно описывается как час симуляции кодирования.

Царапать

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

3. Выбор текстового языка

Теперь все становится мясистым. Двадцать лет назад новички почти всегда начинали с таких языков обучения, как Logo, BASIC или Pascal. Но сегодня большинство профессиональных языков имеют низкие барьеры для входа, что позволяет даже новичкам погрузиться в них. Но с чего начать?

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

Если вы решите не создавать веб-приложение, лучшим выбором будет Python. Ни один язык не охватывает огромный океан между программированием для начинающих и серьезной работой, от простых игр до науки о данных. Книга Питон для детей - отличная отправная точка. Но чтобы получить максимум удовольствия при минимальном объеме работы, я рекомендую объединить Python с инструментом для создания игр Pygame Zero. Он основан на популярном наборе инструментов pygame, но радикально его упрощает, избавляя новых программистов от написания огромных блоков шаблонного кода. Это настолько хороший первый вариант, что вряд ли стоит упоминать какие-либо вторые варианты.

Если хочется чего-то еще попроще, Small Basic еще цепляется за жизнь - еле-еле. Это легкая среда программирования, которую можно запустить в браузере. Вы пишете старый добрый код в стиле BASIC, сохраняете его как текстовый файл (если хотите) и запускаете свою программу в онлайн-эмуляторе (если вам не нужно загружать компилятор). Вероятно, это наименее устрашающая текстовая среда программирования из существующих. Но, опять же, он не предлагает особых функций. Кроме того, веб-сайт может напугать вас поистине причудливой графикой в ​​виде черепаховых людей.

Еще один нишевый вариант - C #, который на удивление работает в качестве отправной точки для детей благодаря бесплатному курсу Pluralsight Обучение детей программированию с помощью C #. В этом курсе используется библиотека рисования черепах в стиле логотипа. Проблема в том, что как только ваш ребенок перерастет приложения командной строки и рисунок черепахи, дальнейший путь станет не таким ясным. Существует несколько очень разных фреймворков пользовательского интерфейса .NET, и ни одна из них не является кроссплатформенной, ориентированной на будущее или просто интересной для среднего заинтересованного ребенка.

4. Изучение веб-стека

Современная сеть потрясающая. Это не что иное, как универсальная платформа для обмена приложениями практически с каждым компьютером и устройством в мире, с бесплатными инструментами разработки и без необходимости распространения. Это должен быть рай для любителей! Но существует так много уровней технологий (HTML, CSS, JavaScript, фреймворки JavaScript, менеджеры пакетов и т. Д.), Что ситуация становится пугающей. Так с чего же начать настоящему новичку?

Достаточно HTML

Прежде чем кто-либо сможет разместить код на веб-странице, он, вероятно, должен иметь некоторое представление о HTML. Я говорю возможно, потому что есть несколько онлайн-руководств, которые позволят вам начать работу с простым кодом JavaScript, который использует HTML <canvas>, минуя все другие элементы, которые мы знаем и любим. Самый подробный пример - курс Введение в JS: рисование и анимация в Khan Academy.

Для ребенка или подростка, который хочет изучить HTML, есть два способа восполнить пробел. Вы можете пройти полный курс, например Введение в HTML и CSS в Khan Academy, и получить прочную основу. Но многие дети будут нетерпеливы и захотят приступить к программированию по-настоящему. Им может быть достаточно поэкспериментировать с образцом разметки HTML. Один из лучших инструментов для этой работы - X-Ray Goggles, созданный Mozilla проект, который позволяет детям манипулировать HTML на сайтах, которые они посещают. Это как упрощенная детская версия Chrome DevTools. Дети могут научиться пользоваться им с помощью бесплатного сертифицированного нескучного учебника Messing Up the Web.

Примечание: вы могли заметить, что я полностью исключил CSS. Изучение стандарта таблиц стилей - ключевая часть веб-разработки, но это также слишком много препятствий на пути к игре с вашей первой функцией JavaScript. Я предпочитаю начинать обучение JavaScript с заранее написанных примеров, которые включают готовый CSS (так что они не похожи на 1994 год). Затем дети могут глубже изучить CSS, если им интересно узнать больше о графическом искусстве.

Переход к IDE

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

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

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

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

Главный недостаток Codepen состоит в том, что вам не хватает некоторых более мощных функций, которые есть в специальном инструменте проектирования, например, интерактивной отладки. Чтобы получить эти функции, вам необходимо установить на свой компьютер редактор кода. Это значительный шаг вперед, но есть много наград. Мой любимый редактор кода - это бесплатный многоплатформенный инструмент с открытым исходным кодом от Microsoft под названием Visual Studio Code. Он начинается относительно просто, поддерживает множество различных языков через плагины и имеет неограниченный потенциал роста.

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

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