Яша учится программировать

Яша учится программировать

Книга для детей «Яша учится программировать»

Основатель LinkedIn как–то сказал: «Если вас не смущает первая версия вашего продукта, вы запустились слишком поздно».
Так вот, признаюсь, я смущаюсь. Уже почти год, как я развиваю проект по обучению детей программированию. Пришло время поведать про него вам.

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

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

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

Сам–то я начинал с Бейсика и Ассемблера в докембрийскую эпоху, когда по планете еще шастали, а точнее сидели в бетонных берлогах, такие диплодоки, как Радио86–РК, Спектрум и прочие пожиратели электроэнергии и детского восхищенного внимания.

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

С вашего позволения пропущу промежуточные шаги и с сразу скажу, что выбрал. Это был один из новых, но совершенно не представленных у нас диалектов Java под странным, я бы даже сказал хамелеонским, названием Процессинг (Processing).

Сам не ожидал, честно.

Java? Первый язык? Чур меня, тебя и всех окружающих! Да в нем, чтобы нарисовать на экране круг, нужно (с точки зрения ребенка) целое сочинение наваять.

Но Процессинг — это диалект, специально разработанный так, чтобы детей проще обучать было. И это здорово.

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

Также Процессинг оказался языком бесплатным (хотя можно внести пожертвование), кроссплатформенным, а значит работающем на Mac, Windows и Linux.

А главное, это настоящий полноценный язык, со множеством подключаемых библиотек, расширяющих базовые возможности. Когда в нем станет «тесно», стоит сделать небольшой следующий шаг и вот вы уже на Java, или C++, или чего там еще.

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

И еще забыл сказать, что сама среда, в которой программируешь на Процессинге, мне понравилась. Самое то для начинающих. Ничего лишнего. Внешне напоминает плеер. Открыть. Запустить. Сохранить. Экспортировать.

В общем, на нем я и остановился. Есть очень интересные Руби и Питон, но о них как–нибудь в другой раз.

Конечно, обучить одного ребенка можно было бы и без написания книги. Из пушки по воробьям ведь? Тем более, что люблю устно объяснять. Но я подумал, что раз уж впрягся, то почему бы и не сделать что–то большее? В национальных, так сказать, интересах.

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

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

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

Ну и еще. Меня всегда удивляло то, что в книгах для новичков всегда все программы написаны идеально, вылизаны и запускаются с первого раза. Что идет вразрез с личным опытом юного программиста. Когда у него ошибка на ошибке сидит и ошибкой погоняет.
Поэтому в моей книге герои если чем и занимаются, то это ошибаются. Шутка, конечно. Но с долей правды. Так как оказалось, что очень важно дать ребенку понять, что ошибаться это нормально, естественно и даже забавно. А как это полезно в обычной жизни, не мне вам рассказывать.

А ребенок, между тем, втянулся не по–детски. Любимое занятие теперь, после чтения, придумать какую–нибудь безбашнную идею, а потом ее запрограммировать. А что, программисты — они ведь волшебники!
Последний его финт ушами — это программа эмуляции жизни клеток. Потом на сайте посмотрите.

Что–то я заговорился. Подытожу.
В общем написал я книгу, страниц на 200. Заодно и иллюстрации к ней нарисовал, скриншоты вставил, всего около 150 штук получилось.
А не так давно и сайт для нее сделал: www.ProgrammingForKids.ru называется.

Пока что книжка неспешно готовится для бумажного издания. Неспешно, так как «российского рынка для детского программирования еще не сформировано”. Но gutta cavat lapidem, как говорится.

На текущий же момент она продается на сайте в электронном виде. Не спешите только говорить «фу, реклама», а затем бранить, удалять и ругаться. Потому как здесь есть кое–что интересненькое.

А именно способ продажи. Он заключается в том, что книга сразу же доступна вам для скачивания без каких–либо ограничений, регистраций и всяких там «подайте емэйл на пропитание».
А оплата? Ну когда сможете, тогда и заплатите, если будете использовать и захотите поддержать проект. Да и на этой стадии ваше внимание дороже!

Ведь главное я уже получил — ребенок программировать научился. А теперь мне нужно понять, имеет ли смысл этим всем дальше заниматься? И ответ на этот вопрос отчасти лежит на вас. Вашей поддержке, как финансовой, чтобы выделить достаточно времени, так и в вашем одобрении, критике, отзывах. А уж какой простор для любимых граммар–наци.

З. Ы. У книги есть коротенький такой отзыв от создателя языка Процессинг Кэйси Риза. А еще недавно рецензия появилась.

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

И вы знаете, это сработало!
В четвертом классе парень уже делал свои игры на профессиональном языке программирования!
Разбирался в циклах, переменных, функциях и даже правильно произносил английские термины. Более того, он настолько глубоко усвоил основы, что вскоре стал обучать своих друзей программированию.
Как мне это удалось? Я вам сейчас расскажу.

Представьте себе, книга родилась из одной страницы!

Многие дети любят играть в компьютерные игры. Да что «многие», почти все. И вот в какой-то момент ко мне пришла мысль, а можно ли извлечь толк из постоянных сидений за компом или айпадом? И я спросил: «А знаешь, как делаются игры? Они программируются на специальном языке, языке программирования. Наверно это ужасно увлекательно написать свою игру!»

Сначала это не возымело действия.
Но через некоторое время ребенок стал рассказывать свои идеи, как и что он хотел бы улучшить в играх, в которые играл. А еще совсем скоро сказал: «Хорошо наверное уметь программировать, этим ведь еще и зарабатывать можно! Своим умом!»

Передо мной остро встал вопрос: «Какой язык программирования выбрать?»
Сам-то я начал программировать очень рано, на маленьком самодельном компьютере, который мне собрал отец. Помнится, он подарил мне этот увесистый железный клавиатурный блок, который нужно было подключать к телевизору, так как мониторов еще и в помине не было. А в качестве записывающего устройства выступал старый советский магнитофон. (А сейчас уже даже мой айпад не знает слова «магнитофон»)

Игр тоже особо не было. Зато был Бейсик и Ассемблер — мои первые языки программирования. Затем уже в школе я выучил Паскаль (теперь он называется Дельфи), Си, и дальше пошло-поехало, но это уже отдельная история.
Сейчас же меня занимал вопрос: «Хорошо, с этих языков начинал я, но актуальны ли они сейчас в деле обучения детей? Не появилось ли что-нибудь новое за это время? Более подходящее. Захватывающее. Но и простое в изучении?»

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

Но Java, Java сложна для начинающих. В ней нельзя вот просто раз, взять и что-нибудь такое сотворить. Скажем, сделать бегущий по экрану цветной овал, олицетворяющий зайчика, или, тем более, трех-мерный вращающиеся куб. А вот в Процессинге, в Процессинге оказалось, что можно. Этим он меня и подкупил.
Потом я узнал, что он был создан аж в 2001 году Кэйси РИВЗом и Бен Фрайем в Массачусетском Технологическом Институте.
Кстати, уже много позже, когда Кэйси РИВЗ ознакомился с моей уже написанной на тот момент книжкой, он выразил свою поддержку и сказал что-то вроде: «Эй, а ведь классный подход повествования!».
Итак, создан был Процессинг именно с прицелом на обучение, и с тех пор используется во многих западных школах.
Я себя спросил: «А мы?» Ведь многие популярные сейчас сервисы, те же соц. сети, зародились за рубежом, и только потом попали к нам.

Оставались еще некоторые вопросы.
Например, на каких компьютерах его можно запускать?

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

И еще один вопрос, что у нас с оплатой?

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

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

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

Процессинг же позволял с первых же строк кода — творить! И это очень воодушевляло!
Никаких особых специальных знаний, чтобы начать не требовалось, а вот перспективы выглядели крайне заманчиво: как только ребенку станет «тесно», он сможет узнать новые функции и возможности языка, без того, чтобы менять один язык на другой.

И тогда я написал свою первую страницу. Дал почитать Илье. И тут поднялись такие вопросы, о которых я даже не думал. Настолько они были очевидны для меня, как и для любого программиста с опытом.

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

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

А книга, тем временем, обретала живость и индивидуальность.

Так сухие и безличные «типы данных» превратились в веселые и озорные «семейства». «Переменные» ожили и стали «монстриками». Круглые скобочки — калиткой. Фигурные — заборчиком.
Сказочный мир рос и набирал силу.
А светящиеся пониманием и вдохновением глаза ребенка, его первые работающие игры были отличной наградой.

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

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

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

Надеюсь вам понравится!

Вопросы можно задавать и ВКонтакте: vk.com/programmingforkids

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

Книга постоянно (раз в 1-2 недели) обновляется, исправляются ошибки, поэтому я бы рекомендовал проверять новостной твиттер проекта, или, если удобно, подписаться на обновления (ваш е-мейл гарантировано никому не будет передан, сама рассылка не чаще раза в неделю):

Как научить ребёнка программировать

  • Подборки , 1 июня 2018 в 14:40
  • Евгений Туренко

В этой статье мы расскажем родителям, как самостоятельно обучить ребёнка основам программирования. Кстати, описанные ресурсы могут помочь не только детям. Поэтому любителям курсов «Java за 3 дня» тоже не будет лишним прочитать материал.

Прежде чем начать обучение, нужно понять, что объяснить что-то ребёнку часто сложнее, чем взрослому. Как минимум нужно быть усидчивее, терпеливее и сдержаннее. Иначе нервный срыв будет у всех участников учебного процесса. Также почитайте разные статьи об обучении детей программированию, например, интервью с заведующим отделом учебной информатики НИИСИ РАН А.Г. Кушниренко.

Примечание Если вы не планируете научить ребёнка программированию на 1C, то есть смысл отдать его на курсы английского языка, чтобы у него было хотя бы базовое понимание англоязычных терминов и текстов.

Перед началом обучения желательно поставить цель. Подумайте, чего должен достичь ваш ребёнок после освоения того или иного аспекта программирования. Например, если вы хотите научить его пользоваться компьютером на продвинутом уровне, то вероятнее всего, не нужно углубляться в языки вроде C++. Достаточно будет просто освоить Scratch, а также рассказать и показать, как работает Web. Уже на этом уровне ребёнок будет выделяться среди своих сверстников.

25 февраля – 18 мая , онлайн, беcплатно

Если ваша цель — заинтересовать ребёнка в профессии программиста, то имеет смысл начать разрабатывать учебный план. Для этого можно посмотреть, как преподносится материал на YouTube в видео с большим количеством положительных комментариев. Также стоит обратить внимание на Khan Academy. Там есть множество материалов для детей и взрослых, и вы можете просто перевести их и использовать для обучения своего ребёнка.

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

Инструменты для начала обучения программированию

Scratch

Наиболее популярная среда для обучения как совсем маленьких, так и детей 10+. Программы создаются с помощью блоков с понятными для детей описаниями действий. Детям нравится смотреть на результаты своего труда, здесь они увидят или интересную игру, которую сами сделали, или какую-нибудь анимацию. Ещё существует аналог Scratch для iOS — Hopscrotch. Кроме того, есть версия для совсем малышей и называется она Scratchjr, однако разрабатывается не командой MIT.

Alice

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

StarLogo TNG

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

Более продвинутый вариант Scratch. И выглядит, и работает сложнее, но ребёнок тоже растёт, верно? В Snap реализована возможность создания своих собственных блоков.

Gamefroot

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

Code.org

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

ПиктоМир

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

Конструкторы

Arduino

Когда речь заходит о программировании, то нельзя не сказать про Arduino. Такие игрушки подходят как детям, так и взрослым. Кроме того, программирование микросхем может заинтересовать ребенка роботехникой, что, конечно, не хуже, чем Web. А ещё Arduino работает со Scratch.

Raspberry PI

Raspberry PI — небольшой одноплатный компьютер под управлением Linux, который совместим с Arduino. Кроме того, он поддерживает язык программирования Python, что покажет ребёнку, как выглядит программирование у взрослых.

Lego, как Arduino, позволяет программировать свои конструкторы, но не все. Кроме того, Lego не может взаимодействовать ни с Arduino, ни с Raspberry, что уменьшает его шансы на популярность среди детей возраста 6+.

Примечание Чтобы заинтересовать ребенка миром IT еще сильнее, можете предложить ему почитать необычные статьи об устройстве тех или иных технологий. Например, обратите внимание на статью о том, как устроен Интернет под водой.

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

Что такое детское программирование, и зачем оно нужно?

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

Знакомьтесь. Это Лим Динг Вен. Он живет в Сингапуре. Ему 14 лет. И в его персональном резюме уже более 20 приложений, которые он сам написал для iPhone. Известно, что с помощью папы он сел за компьютер в два года, а первые «простенькие» программки уверенно создал в 7 лет, владея на тот момент пятью языками программирования. В 9 лет Лим Динг Вен выпустил знаменитый графический редактор Doodle Kids, который принес ему всемирную славу: для своих детей его уже скачали больше миллиона родителей.

Или другой пример. Шестиклассник Томас Суарес. Мальчик самостоятельно написал 5 приложений для iPhone и iPad и вместе с отцом организовал успешную компанию Carrot Corp. Теперь Томас еще и видный общественный деятель — хочет привлечь внимание учителей к открытиям их учеников. Ведь очень часто именно дети создают нечто, опережающее время. Думаете, Лим Динг Вен и Томас Суарес — вундеркинды? Ничего подобного. Оказывается, и ваш ребенок так может.

В списке самых прогрессивных и креативных бизнесменов по версии журнала Forbes первую строчку занимает 24-летний Алекс Клейн. Его компания Kano — пионер в области обучения детей программированию. В 2012 году он изобрел первый компьютерный набор Kano, с помощью которого дети 6–7 лет могут самостоятельно собирать «железо», устанавливать софт, познают азы написания ­кодов для простейших игр, пробуют себя в создании сайтов и музыкальных треков. Клейн признается: ­вдохновлялся конструктором Lego.

PR-кампанией в поддержку углубленного компьютерного образования детей занимаются все мастодонты IT-индустрии. Доказательство — в ­начале декабря 2014 года в российских школах впервые прошла беспрецедентная акция «Час кода» — урок по программированию с помощью современных приложений Kodu от Microsoft и «Ам Ням» от ZeptoLab. В числе организаторов мероприятия, собравшего больше семи с половиной миллионов детей, значилась и такая влиятельная компания, как «Лаборатория Касперского». Забегая вперед, скажем о девочках. Не женское это дело — программирование? Сама идея проводить национальные недели обучения компьютерной грамоте в начале зимы привязана к дате рождения — 9 декабря — выдающейся американской ученой-программистки Грейс Хоппер. Накануне этого события 17-летняя правозащитница из Пакистана Малала Юсуфзай, получившая в прошлом году Нобелевскую премию мира, записала видеообращение к девочкам всей планеты, призывая их участвовать в «Часе кода» и в со­здании технологий, изменяющих мир.

Потому что гладиолус

Зачем детям программирование? Кто-то из блогеров спародировал в ответ старую кавээновскую шутку: «Потому что гладиолус». Намекая на абсурдность вопроса и очевидность ответа. Программировать с младых ногтей сегодня так же важно, как читать, считать и писать. И это вовсе не преувеличение. Мы живем в обществе, где каждый использует мобильный телефон, планшет и/или компьютер с массой веб-сервисов. Программирование — это современная форма познания мира. Практически все, что мы видим и до чего можем дотянуться, сделано с помощью компьютеров. Роботы потихоньку атакуют. Нет, серьезно. Неудивительно, что детство становится цифровым. Это надо понять и принять. Ребенок должен обладать элементарной компьютерной грамотностью, даже если в будущем мечтает стать врачом, пожарным, продавцом мороженого, космонавтом, водителем трамвая, модным дизайнером, бизнесменом, «как папа», бухгалтером, «как мама», или бабушкой, «как бабушка».

«И как эксперт, и как отец я полностью поддерживаю инициативы по обучению детей программированию с самого раннего возраста, — говорит Сергей Голованов, ведущий антивирусный эксперт «Лаборатории Касперского». — Для многих родителей уже не возникает вопросов о том, стоит ли учить своих отпрысков английскому или счету и письму до школы. Так и с программированием — уже сейчас этот навык можно отнести к базовым, а когда наши дети подрастут, он тем более станет абсолютно необходимым. Еще один аргумент за: как эксперт по ­информационной безопасности, я вижу, что большинство проблем у пользователей возникает из-за их собственной неподготовленности или незнания элементарных правил поведения в интернете. Если ребенок будет с ранних лет обучаться этому — так же, как, например, он учится переходить дорогу на зеленый свет или не разговаривать с незнакомыми людьми, — то и хакерам в будущем будет намного сложнее».

Ням-ням ест леденцы

Если коротко и на пальцах. Программирование — это вид общения через набор команд. Сначала планирование, затем исполнение. Это способ взаимодействия. «Когда ребенок просит: «Налей мне сока, пожалуйста», это не что иное, как адресное обращение к кому-либо, чтобы получить что-либо. Именно это обращение в программировании мы называем командой, инструкцией, действием, — проводит параллели с бытовой жизнью Игорь Грессус, преподаватель, коуч и автор книги для детей «Яша учится программировать». — Мнение, что программирование — это что-то неразрывно связанное только с компьютером и ребенок должен до этого дорасти, ошибочно. Детей можно обучать практически с любого возраста, причем для них этот процесс не будет ничем отличаться от других игр. Но вместе с тем — поможет лучше узнать современный мир, его устройство, а значит, найти свое место в нем». Более того, по словам специалистов, компьютерные языки даже помогают детям в изучении родного русского — они быстрее и легче схватывают правила, систематизируют информацию и очень точно применяют ее на практике.

Программирование можно объяснить всего одним словом. Это творчество. Или «по-детски» — магия. Гарри Поттер отдыхает. Правильно составленный порядок слов в коде очень похож на волшебное заклинание. Стоит записать его в компьютере, и в нем оживают монстры, космические корабли летят от одной планеты к другой, эльфы встают на защиту Средиземья, Ням-Ням ест леденцы, а ниндзя разрезает фрукты. Стоит детям изменить параметры, «произвести заклинание», как образы мгновенно меняют цвет, форму, характер, поведение. Это ли не чудо? «Когда ребенок или взрослый начинает программировать, он ощущает себя творцом целой вселенной, так, как будто нет никаких преград на пути реализации самой смелой идеи или задумки. Это дорогого стоит. Поэтому любой вид игры, который развивает творческие способности, развивает и программистское мышление, — рассказывает руководитель проекта «Программирование для детей» Грессус. И продолжает: — Вы не представляете, с какой скоростью меняются современные языки программирования. То, что 15 лет назад ­было новым, сейчас лишь вызывает улыбку профессионалов. Вы же не будете учить ребенка латыни для ­того, чтобы он потом лучше усвоил французский? Главное в обу­чении — поощрять творчество, умение мыслить образно, абстрактно и реализовывать это в какой-нибудь конкретной форме: рисунки, башни из кубиков, «Лего», даже куличики на пляже!» Лозунг маленького программиста: «Придумай — запланируй — сделай».

Планшеты и компьютеры — это уже следующий, вполне логичный шаг. Расскажите ребенку, что все его любимые игры кто-то придумал. Спросите, что он думает на этот счет. Может быть, есть идеи? «Своего маленького сына я сейчас учу работать с компьютерами на базе системы «Ардуино» — это что-то вроде конструктора, с помощью которого можно построить и запрограммировать, например, своего робота или любое другое устройство. Причем «Ардуино» создан специально для новичков, и мы играем с ним, как с обычным конструктором. При этом мой сын получает представление о принципах работы сложных систем и учится (пока что элементарному) программированию. Естественно, что обучение должно иметь простую и понятную маленьким детям форму — лучше всего в виде интересной игры», — рассуждает ведущий антивирусный эксперт «Лаборатории Касперского».

Может ли раннее программирование быть вредным для ребенка? Сергей Голованов заключает: «Ну, разве что это не очень хорошо для зрения. Но наши дети и без того проводят часы за компьютерными игрушками или мультиками. Почему бы не заменить очередную Angry Birds на интересное приложение, обучающее программированию?».

Где и как ребенку научиться программировать?

www.programmingforkids.ru / раздел «Онлайн-кружок»

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

www.kpolyakov.spb.ru / раздел «Система «Исполнители»

Для детей от 11 лет. Отличный помощник в изучении нескольких компьютерных языков (С, Delphi, Python и другие) — система, придуманная ­Константином Поляковым.

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

Приложение «Динозавр Дейзи»

Для детей от 5 до 8 лет. Чтобы заставить динозавра плясать под дудку, детсадовцы быстро и легко освоят основы логики программирования.

Приложение Alice

Для детей от 8 лет. Разработка ­Университета ­Вирджинии, названная в честь героини ­Льюиса ­Кэрролла, рассчитана на обучение програм­мированию ­именно девочек.

Приложение Codea

Для детей от 11 лет. Популярное приложение — отличный старт для учащихся, заинтересованных в со­здании игр, симуляторов и других визуальных проектов на iPad и для iPad.

Настольная игра Robot Turtles

Для детей от 3 до 8 лет. Игра от программиста Google Дэна Шапиро. Малыши даже не подозревают, что, раскладывая карточки с черепашками, они строят настоящие компьютерные алгоритмы.

Самодельная игра по програм­мированию для детей до 8 лет

Разрежьте лист А4 на 20 небольших прямоугольников. Вместе с ребенком придумайте любые пять команд. ­Например, «шаг прямо», «прыгнуть», «присесть», «лежать», «взять предмет в руки». У вас получится по четыре карточки с каждой командой. Попросите ­ребенка произвольно выложить из карточек некоторую последовательность и зачитайте ее вслух. По очереди выполняйте сложившую­ся цепочку действий. Иногда будет все получаться, а ­иногда карточки окажутся несовместимыми друг с другом. Скажем, нельзя ­лежать и после этого ­сразу ­прыгать, для начала нужно встать. ­Отлично! Так ­ребенок изучает ­семантику только что придуманного вами языка программирования. Учится соблюдать границы. И выстраивать корректные предложения. Постепенно усложняйте задания, попробуйте использовать больше карто­чек и ­команд.

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

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

Новую область знания, computer science, науки прикладного программирования и проектирования стоит начинать изучать в раннем возрасте — уже с 4-6 лет, когда принципы мышления уже формируют представления об основах мира вокруг, его систем, структур. Игра всегда служила обучению ребенка — сегодня главным учебным инструментом становится гаджет, личный проводник в мир цифровых знаний ребенка или семейный планшет, школьный компьютер.

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

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

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

CodeCombat () — ветеран на рынке, развивающий игровое обучение настоящему коду Pythonчик, JavaScript, Lua, экзотику CoffeScript.

CodeMonkey () — простая игра в изучения принципов синтаксиса через игру с обезьянкой.

Ceebot () — старенький ветеран игрового обучения управлять персонажами используя команды C++.

Cargo-Bot () — простое приложение для дошкольников и их IPad.

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

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

Kodu Game Lab () — большой учебный проект от команды Microsoft Research, доступен бесплатно для PC и около 5$ за версию для приставки Xbox. Прелесть в притягательности для ребенка мира проектирования игры, его модульности, мышления категориями создания виртуальных миров. Менее полезна в знакомстве с кодингом и программированием, но больше помогает изучать основы дизайна игровых приложений.

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

ПиктоМир () — стоит отметить и этот российский проект, причем разработанный по техзаданию РАН, но мне не нравится визуальный дизайн — достоинство приложения это русский язык, весьма спорное при изучении основ программирования в котором английский это 70% быстрого успеха. Но проект вызывает уважение и полезен для дошкольников и младших классов.

RoboZZle () — приложение для составления алгоритма движения стрелки, обучает ребенка пониманию теории алгоритмов на практике

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

Зачем учиться программировать непрограммистам

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

Прогнозируемый мировой рост цифровой экономики к 2035 году — $16 трлн. Источник

Увеличивающийся спрос на программистов отражается на всех сферах жизни, в том числе образовании. Например, в Японии решено с 2020 года ввести обязательные уроки программирования в начальной школе. В некоторых государственных колледжах США уже появился учебный курс «Разработка приложений на Swift», а власти выделят на программирование в американских школах $200 млн в год.

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

Тим Кук

CEO компании Apple

И мы с ним согласны. Программирование постепенно становится базовым навыком в современном мире, и дальше объясним, в чем его польза.

Программирование — фундаментальный навык

Известный автор-фантаст ХХ века Артур Кларк сказал, что «любая достаточно развитая технология неотличима от магии». Программирование действительно можно сравнить с волшебством, но только пока не научишься творить его сам.

Цитата из книги А.Г. Гайштута «Калькулятор — твой помощник и соперник в играх», 1988 год.

Если говорить серьезно, то программирование — фундаментальный навык по той простой причине, что оно заставляет мыслить абстрактно. В его основе лежат принципы анализа и синтеза, или композиции и декомпозиции — это одно и то же по своей сути. В английском языке существует понятие “computational thinking”, которое можно определить как совокупность умений мыслить абстрактно, критически и разделять задачу на небольшие части. Именно этому может научить программирование, по мнению экспертов.

Но не только теория помогает в жизни и работе. Писать код для развития логического мышления — это здорово, но на этом польза не заканчивается.

Кто должен заняться программированием

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

Контент-менеджер и бильд-редактор

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

Настройка текстового редактора в Bitrix.Источник

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

SEO-специалист

Поисковая оптимизация — это точка экстремума, место встречи веб-разработчиков и SEO-специалистов. Ошибки первых могут сильно мешать работе вторых, поэтому нормальное взаимодействие между этими отделами на понятном друг другу языке очень важно, если проект хочет появляться в поиске «Яндекса» и Google.

Навыки в резюме SEO-специалиста.

Понимание устройства сайта изнутри необходимо в работе по оптимизации. Здесь важны знания HTML и CSS, препроцессоров, а также востребованных на сегодняшний день фреймворков. В общем, обязанности и задачи SEO-специалиста тесно связаны с программированием, хотя он и не пишет код.

Менеджер проектов

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

Менеджеры часто работают с базами данных и аналитикой — для этого и нужно знание SQL-запросов. Кроме того, сложные функции в Excel можно заменить макросами. Иными словами, некоторые знания базового программирования упрощают и ускоряют работу менеджеров.

Интернет-маркетолог

Если программирование и маркетинг кажутся вам вещами несовместными, вы удивитесь. Здесь тоже всем заправляет аналитика, а для решения ее задач в последнее время активно применяется язык программирования Python. Специально для этих целей созданы библиотеки NumPy, Matplotlib, Pandas, Jupyter и другие.

Пример работы с данными в библиотеке NumPy. Одной строкой кода можно посчитать средний чек и отсортировать таблицу. Источник

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

Как учиться программировать неразработчику

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

В интернете можно найти массу учебных пособий «для чайников», где информация изложена очень подробно и доступным языком. Ищите книги конкретно под ваши задачи. Например, для изучения SQL — «Семь баз данных за семь недель».

Хорошим стартом и дополнительной мотивацией к овладению новыми навыками станет прохождение онлайн-курсов. Например, «Аналитик данных на Python» для тех, кто желает прокачать себя как маркетолога. Новичкам рекомендуем взглянуть на курс «Профессия frontend-разработчик», где вы освоите базовые навыки HTML и CSS, полезные в работе маркетологов, менеджеров и других специалистов.

Курс «Профессия frontend-разработчик» С нуля до разработчика с зарплатой от 60 000 рублей за 6 месяцев. Научитесь верстать сайты и создавать интерфейсы, соберите два проекта в портфолио и получите современную профессию.

  • Живая обратная связь с преподавателями
  • Неограниченный доступ к материалам курса
  • Стажировка в компаниях-партнёрах
  • Дипломный проект от реального заказчика
  • Гарантия трудоустройства в компании-партнёры для выпускников, защитивших дипломные работы

Мысль о том, что программирование — вторая грамотность, озвучил еще в 1981 году на конференции ЮНЕСКО академик А.П. Ершов. В 2018 году мы видим, что эта идея воплощается в жизнь, хотя в докладе Ершова содержался несколько иной смысл — соответственно этапу развития компьютеров того времени.

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

10 игр, которые научат ребёнка программированию

Зачем учить ребёнка программированию? Тем более если у вас растёт будущая балерина или футболист? Ответ простой: для того, чтобы научить логически мыслить и планировать свои действия. Родители хвастаются, что современные дети почти с пелёнок умеют включать планшеты и компьютеры. Интерес к технике и тягу к развлечениям можно совместить с обучением и развитием, предложив ребёнку игры, которые научат составлять алгоритмы и даже писать код.

Kodable

Как думаете, с какого возраста нужно начинать обучение программированию? Создатели Kodable утверждают, что их игра доступна двухлетним детям. Учиться коду можно раньше, чем учить буквы. Гонять по лабиринтам весёлые рожицы действительно могут даже малыши, а заодно осваивать составление программ, указывая последовательность действий. Подсказки и рекомендации выполнены при помощи графики, так что читать ребёнку ничего не придётся.

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

Загрузить QR-Code Разработчик: SurfScore, Inc Цена: Бесплатно

Kodable

На сайте Code.org, созданном некоммерческой организацией, международным движением «Час программирования», собрано несколько образовательных курсов для детей и взрослых. Возраст, с которого можно начинать, — четыре года. Одной игры, которая научит всему и сразу, там нет, зато есть пошаговое игровое обучение с персонажами различных мультфильмов. Переходя от уровня к уровню, можно учиться и создавать свои короткие программы.

Сode.org

Lightbot

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

Не факт, что ребёнок, играющий в Lightbot, вырастет гениальным разработчиком, но зато точно научится планировать действия и составлять простейшие алгоритмы. Это приложение тоже можно рекомендовать как одно из стартовых даже для дошкольников 4–6 лет. Разработчики предлагают и более сложную версию, которая подойдёт для детей старше девяти лет.

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

Загрузить QR-Code Разработчик: SpriteBox LLC Цена: 229 рублей Загрузить QR-Code Разработчик: SpriteBox LLC Цена: 169,00 ₽

Lightbot

«ПиктоМир», разработанный НИИСИ РАН по заказу Российской академии наук, — наш ответ зарубежным аналогам. В НИИСИ РАН уже разработали систему «КуМир», в которой с программированием знакомятся старшие школьники, но игрового элемента в ней нет. «ПиктоМир», рассчитанный на дошкольников, получился увлекательным и очень доступным.

Робот раскрашивает поля, а ребёнок учится составлять алгоритмы. Все подсказки выполнены с помощью графики, поэтому «ПиктоМир» можно спокойно давать детям, не умеющим читать, начиная с пяти лет: заметно, что учёные постарались сделать действия понятными даже для малышей. Если родители не знают английского языка и ничего сами не понимают в программах, но очень хотят развивать логическое мышление у детей, «ПиктоМир» будет настоящим спасением. Мобильные версии доступны для iOS, Android и Windows Phone, но скачивать последние две придётся с сайта разработчика.

Загрузить QR-Code Разработчик: Alexander Leonov Цена: Бесплатно

ПиктоМир

Robozzle

Выполнить задания и составить алгоритм движения стрелки по пазлу — такой смысл у игры, в которую могут сыграть уже младшие школьники. Правда, обыкновенная стрелка вряд ли увлечёт семилеток надолго, тем более если это будет первая из подобных игр. Зато может всерьёз заинтересовать школьников с десяти лет, уже знакомых с алгоритмизацией, потому что самые интересные головоломки, конечно, встречаются на более сложных уровнях. Robozzle предоставляет почти неограниченные возможности по созданию и поиску новых заданий, поэтому больше всего подходит не для изучения азов, а для постоянного повторения и практики.

Загрузить QR-Code Разработчик: Bridger Maxwell Цена: Бесплатно Загрузить QR-Code Разработчик: l0st Цена: Бесплатно

Robozzle

Cargo-Bot

Ещё одна простая для освоения игра, на начальных уровнях которой комфортно будут себя чувствовать дошкольники. Поскольку текста в ней мало, детям достаточно различать отдельные буквы, чтобы выполнить первые задания и переложить ящики за меньшее число ходов с места на место. Над сложными комбинациями даже взрослые смогут задуматься надолго. Среди других обучающих и развлекательных приложений Cargo-Bot выделяется очень приятной картинкой. Кстати, Cargo-Bot был полностью спрограммирован на iPad.

Загрузить QR-Code Разработчик: Two Lives Left Цена: Бесплатно

CodeMonkey

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

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

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

CodeMonkey

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

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

Scratch

СeeBot

Нельзя забывать про классику, даже изрядно запылившуюся. Обучающие игры CeeBot появились в 2003 году как специальная разработка для образовательных учреждений. Изначально разработчики создали Colobot — игру о колонизации новой планеты, главная фишка которой была в том, что для управления персонажами нужно было писать свои программы.

CeeBot — игровой обучающий курс из нескольких заданий с подробными инструкциями. История про программируемых роботов на новой планете, уничтожающих местную фауну, конечно, для малышей не подойдёт, но для подростков, которые уже успели увлечься информатикой и представляют себе, что такое алгоритм, станет неплохим пособием. Выглядит CeeBot на фоне современных игр бледновато, но где ещё ребёнок будет управлять персонажами, создавая собственные программы, максимально приближённые к синтаксису С++?

Сeebot

CodeCombat

CodeCombat — это уже серьёзно, потому что в этой игре учат настоящий код и из победителя получится готовый программист. Вы выбираете язык программирования, на котором придётся писать команды для своего персонажа (игра предлагает Python, JavaScript, Lua или несколько экспериментальных вроде CoffeScript), и отправляетесь в путешествие за кристаллами.

Сажать за игру можно мальчишек и девчонок от восьми лет. Обучение и подсказки на русском языке, за $9,99 можно каждый месяц получать новые уровни для прохождения (первые 70 бесплатны). Игра может использоваться в школах, есть отдельные бонусы для учителей.

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