Как рано нужно учить детей программировать?

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

Некоторые утверждают, что 5-6 лет — хороший возраст для начала кодирования ( 1 , 2 , 3 , 4 , 5 , 6 ). Я ищу ответы, основанные на личном опыте или исследованиях, а не на мнениях .

СВЯЗАННЫЕ С:
Каких вех должен достичь ребенок, прежде чем изучать программирование? (обратите внимание, что в этом вопросе прямо говорится: «Я не спрашиваю, в каком возрасте должен быть ребенок, чтобы начать изучать программирование». )
Алиса и Скретч в возрасте 8+, а как насчет младше 8 лет?
Предложения по обучению ребенка программированию
Какой язык программирования подходит для начала обучения моего сына в 1 классе?


РЕДАКТИРОВАТЬ:
Только для целей этого вопроса не стесняйтесь обращаться как к кодированию, так и к программированию, даже если эти термины в целом не эквивалентны. Например, уместно использовать Scratch и подобные блочные языки или играть с Big Trak . Также не стесняйтесь обращаться к занятиям, которые напоминают программирование. Например, уместна игра, в которой ребенок дает инструкции другому игроку, который притворяется «роботом», или игра с Turing Tumble .

@ user130558 Спасибо, обновил вопрос. Обратите внимание, что вопрос, на который вы ссылаетесь, прямо говорит: «Я не спрашиваю, в каком возрасте должен быть ребенок, чтобы начать изучать программирование».
Тимур. Я голосую за то, чтобы закрыть этот вопрос как основанный на мнении, потому что нет хорошего ответа на вопрос «когда дети должны учиться программировать». Все дети разные, и для кого-то ответ «никогда», а для кого-то «сегодня». Вы спрашиваете: «В каком возрасте ребенок может научиться программировать, если он проявляет интерес?» Или вы спрашиваете больше в духе «в каком возрасте я должен подвергать своего ребенка кодированию, чтобы посмотреть, нравится ли ему это?» Или даже «чтобы дать им какую-то конкретную пользу», подобно людям, которые заставляют играть на фортепиано/скрипке/и т. д. на их детей?
@Joe Я спрашиваю: «В каком возрасте я должен подвергать своего ребенка кодированию, чтобы посмотреть, нравится ли ему это?». Спасибо за комментарий. Обновил вопрос, чтобы прояснить это, а также добавил запрос на ответы, не основанные на мнении.
Благодарю за разъяснение. Хотя это все еще немного противоречит самому себе — вы спрашиваете «в каком возрасте я должен учить», но затем вы говорите: «Мне было интересно узнать о плюсах и минусах обучения детей программированию в столь раннем возрасте». Вы хотите знать, в каком возрасте следует знакомить своего ребенка с программированием, или вы хотите знать, что произойдет, если вы познакомите своего ребенка с программированием в определенном возрасте?
@Joe, еще раз спасибо за предложение! Я удалил дополнительный подразумеваемый вопрос, чтобы сузить этот вопрос и ответ: мне было интересно узнать о плюсах и минусах обучения детей программированию так рано.
Я помню раннюю игрушку с микроконтроллером под названием «Большая дорожка».
ИМХО, вопрос еще слабо сформулирован. В частности, что здесь означает «код»? 3-летний ребенок не может писать новые полезные программы; у них нет достаточного мастерства в абстрактном мышлении. Но один из моих детей начал использовать Scratch в 3 года; это даже послужило для них мотивацией научиться читать, потому что мы отказывались читать за них блоки и другие элементы экрана. Их способность использовать Scratch каким-то образом развилась быстро, задолго до их 4-летия, но я бы не назвал то, что они делали, программированием . Но, может быть, вы бы. ...
... Честно говоря, не бывает "слишком рано"... пока вы не заставите их делать то, что вы считаете "кодированием", они могут столкнуться с этим в любом возрасте.
Этот вопрос определенно плохо определен. В ходе редактирования в теле вопроса было (как минимум) два разных вопроса , а в заголовке есть еще один вопрос .
Не беспокойтесь так о коде. Учите критическому мышлению, и код будет иметь смысл, когда они с ним столкнутся.

Ответы (10)

В 4 года мне подарили компьютер ZX Spectrum 48k и книгу под названием BASIC for Beginners, изданную Usborne.

С этого момента я попал на крючок.

В следующем году мне дали Практика Ваш BASIC.

К 8 годам у нас в доме был компьютер, и я начал пытаться самостоятельно выучить C с помощью книги The C Primer. Указатели меня тогда очень смущали, и через некоторое время я сдался и не возвращался к C как минимум десять лет. Я развлекался написанием пакетных сценариев для DOS, а время от времени баловался очень короткими битами машинного кода, почерпнутыми из компьютерных журналов.

Мой брат, однако, совершенно не интересовался программированием.

Я бы порекомендовал вам предоставить вашему ребенку инструменты (компьютер и справочные материалы) и посмотреть, интересно ли это ему или нет.

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

(Кстати, книги Usborne по программированию 1980-х годов теперь доступны бесплатно в Интернете: https://usborne.com/books/computer-and-coding-books )

Сколько инструкций (если да) вы получили от родителей? По крайней мере, они помогли вам написать и запустить что-то вроде программы Hello World (например, самый первый фрагмент кода)?
Никто! :-) Кажется, я помню, что мне в первый раз настроили компьютер, и показали, как подключить магнитолу к компьютеру, а потом как загрузить программу с кассеты ( ), но с тех пор LOAD ""я был один
@TimurShtatland Еще одна замечательная книга, которую я любил в детстве, была Supercharging MS-DOS Вана Волвертона — я мог корпеть над ней часами, желая, чтобы настала моя очередь за компьютер, чтобы я мог попробовать что-то новое, что я читал :- )
@TimurShtatland Я думаю, что эквивалентом сегодня, вероятно, будет Raspberry Pi с комплектом электроники (макет, различные датчики, светодиоды, переключатели, резисторы и т. д.) и книга с некоторыми интересными проектами.
@TimurShtatland Около пятнадцати лет назад я помню, что набор робототехники LEGO Mindstorms был еще одним хорошим способом заинтересовать детей использованием технологий и программирования для создания забавных вещей. Быстрый поиск показывает мне, что они все еще делают Mindstorms, но в последней версии на их веб-сайте написано «Скоро уйдет на пенсию»; так может новая версия не за горами?
Выбирая, что представить детям, между (а) компьютером + книгами, (б) Raspberry Pi + набором электроники и (в) набором робототехники LEGO Mindstorms (и, возможно, другими вещами), какие соображения я должен учитывать?
@TimurShtatland хороший вопрос... и хитрый! Raspberry Pi и LEGO Mindstorms предназначены для детей немного старше: рекомендуется от 10 лет и старше, хотя я думаю, что у умного 8-летнего ребенка не будет особых проблем. Однако отладка проблем с электроникой может разочаровать. Преимущество LEGO в том, что он физический — когда что-то работает не совсем правильно, вы часто можете увидеть, где вы ошиблись, а петля обратной связи по выявлению и последующему устранению проблемы короче, что снижает разочарование. [1/2]
[2/2] Преимущество компьютера в том, что он многофункциональный: если они не ладят с программированием, то, может быть, им нравится использовать, например, программу для рисования или программу для создания музыки? Или, может быть, они захотят строить вещи в Minecraft? (также в Майнкрафте можно исподтишка внедрять программирование - для него довольно легко делать несложные модификации и скрипты)
Я могу полностью относиться. У меня был Dragon 32, когда мне было 6 лет, затем Amstrad CPC 6128, когда мне было 8. Я начал вводить программы из журналов, затем играл с текстом и числами и смотрел, что происходит. Так я научился основам программирования и использовал эти знания для написания собственных программ. У меня были способности и желание научиться делать свои собственные игры, потому что мои карманные деньги не превышали 1 игру за полную стоимость в месяц. Мой интерес никогда не ослабевал, и теперь я зарабатываю на жизнь программированием после получения степени в области разработки программного обеспечения.

Это очень зависит от ребенка, как и все вопросы такого рода, но 5-6, конечно, можно .

Мои дети, которым сейчас восемь и девять лет, впервые серьезно столкнулись с программированием примерно в возрасте 4-5 лет. Мы начали с простых игр, которые являются «упрощенным программированием», в которых ребенок создает «программу» либо для перемещения элемента из одного места в другое с инструкциями, либо, в одном случае, «программирует» родителя делать все, что хочет ребенок. их к. Это учит концепции пошаговых инструкций, булевой логики и даже функций (вы можете создать «функцию» из нескольких инструкций, а затем вызывать эту функцию вместо повторения строк). У них также были программируемые роботы (настоящие роботы с приложениями для iPad, которые позволяли им давать им повторяемые инструкции с помощью блочного языка, включая логические вентили, циклы и функции). Это очень весело в этом возрасте.

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

Около семи лет оба ребенка начали изучать Python. Старшим в какой-то степени это наскучило, но младшие действительно увлеклись этим и программировали самостоятельно для развлечения или решения проблем (например, случайный выбор уроков музыки). Хотя они еще не умеют программировать что-то сложное, они понимают основные концепции и имеют желание узнать больше, что мы, безусловно, сделаем максимально возможным!

Толкание, однако, не работает в этом возрасте, и я не рекомендую это делать. Познакомьте их с программированием и посмотрите, понравится ли им это — это очень возможно в возрасте пяти или шести лет либо с помощью игр, либо с помощью начального опыта программирования на блочных языках; а затем обратите внимание, когда они будут готовы перейти к следующему шагу. Мои дети оба относительно рано читают, а это означало, что я мог бы научить их Python в семь лет, но я подозреваю, что многим детям нужно подождать еще несколько лет, прежде чем их беглость станет достаточной. Царапина/и т.д. великолепны, так как они не требуют большого чтения — вы можете узнать, что представляют собой блоки, распознав форму.

Scratch также использует довольно простой язык, но некоторые из них используются для программирования. Я также сделал несколько Scratch за последние пару лет с моей 7-летней дочерью (последний раз это машина со звуковыми эффектами, которая работает на планшете — щелкните значок, получите соответствующий звук, с некоторыми случайными элементами, используемыми, когда ее люди Lego есть приключения). Я впервые использовал BASIC, когда мне было 8 лет, и, хотя я не очень хороший программист, я могу заставить работать большинство вещей и нормально осваивать новые языки. Это должно было распространить некоторые домашние задания по математике на гораздо большие числа, т.е. с определенной целью; это всегда помогает
5-6, конечно, возможно — я научил свою дочь (элементарную) C в 6 лет. Это, безусловно, возможно.

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

  • Ребенок: Намазать хлеб арахисовым маслом.
  • Родитель: [кладет закрытую банку с арахисовым маслом на хлеб (все еще в пакете)]
  • Ребенок: Хорошо, возьми хлеб из мешочка.
  • Родитель: [достает хлеб из пакета]
  • Ребенок: А теперь открой банку.
  • Родитель: [роботизированный голос] ТРЕБУЕТСЯ ДОПОЛНИТЕЛЬНЫЕ ИНСТРУКЦИИ
  • Ребенок: Закройте банку крышкой.
  • Родитель: [отворачивает крышку, но переворачивается вся банка]
  • Ребенок: Хорошо, держи банку одной рукой, а другой поверни крышку.
  • Родитель: [поворачивает крышку, но не в ту сторону, поэтому она затягивается]
  • Ребенок: Нет, нет. Поверните крышку в другую сторону!

и т. д.

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

Неплохая идея, спасибо! Я бы хотел, чтобы была также механическая игра , эквивалентная языку программирования, с условными выражениями, циклами, функциями и т. д. Что-то вроде Scratch , но основанное на физических объектах (и не требующее, чтобы в него играл другой человек)...
@TimurShtatland Для цикла вы можете добавить следующий шаг: Родитель: [немного поворачивает крышку, недостаточно, чтобы открыть ее]. Ребенок: Поверни еще немного. Родитель: [поворачивается еще немного, но все еще недостаточно]. Ребенок: Продолжайте поворачивать его, пока крышка не оторвется.
Мой учитель начальных классов проделал точно такое же упражнение с нашим классом (кажется, это было в 5-м классе), и это был действительно хороший способ заставить детей мыслить алгоритмически. Даже помимо обучения навыкам программирования, это также учит детей тому, как четко выражать свои мысли и как разбивать проблемы на более мелкие части, что является полезным навыком для всех.
@DarrelHoffman: Родитель : [продолжает поворачивать крышку даже после того, как ее можно снять, так как крышка на самом деле не отрывалась].
@TimurShtatland Вы имеете в виду, как Биг Трак?
@TimurShtatland Turing Tumble — коммерчески продаваемая «настольная игра», в которой игроки собирают механический компьютер из пластиковых деталей. На самом деле нет никаких циклов или функций, но игра определенно является разновидностью компьютерного программирования.
@TannerSwett Их на самом деле много. Вот ветка со списком некоторых из них. На данный момент насчитывает более 100 записей. Я слышал лишь о некоторых из них, хотя не все они подходят для очень маленьких детей — многие из них довольно сложны.
@DarrelHoffman Ну, я думаю, есть две вещи, которые отличают Turing Tumble от большинства игр в этом списке. Во-первых, в TT компьютер, который вы построили, работает сам по себе (все, что вам нужно сделать, это положить шарики), тогда как в играх из этого списка игрокам приходится выполнять свои программы вручную. Во-вторых, TT достаточно гибок, чтобы вы могли создавать достаточно сложные конечные автоматы, в то время как в большинстве игр из этого списка программы кажутся ограниченными очень простыми вещами, такими как «двигайтесь вперед, затем поверните направо, затем двигайтесь вперед». ."
Одна игра, предназначенная специально для маленьких детей, которую я не видел в теме, упомянутой выше, — это Robot Turtles. Это мило, это глупо, это увлекает родителей с детьми и учит создавать линейные инструкции. Моему ребенку в 4 года это нравилось, и он до сих пор тянет к нему, хотя сейчас он изучает Javascript в Академии Хана в возрасте 9 лет.
Это отличная идея. Мой сын недавно решил, что хочет запрограммировать игру. Возможно, мы могли бы выполнить несколько таких упражнений, прежде чем мы начнем.

Чем больше люди знают о компьютерах, тем позже они подпускают к себе своих детей. В этой статье Business Insider есть несколько наблюдений и цитат:

Гейтс, например, не позволял своим детям пользоваться мобильными телефонами, пока им не исполнилось 14 лет. Джобс, изобретатель iPad, запретил своим детям пользоваться этой технологией.

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

«Вот я в Массачусетском технологическом институте, в окружении супертехнарей, и здесь та же история», — сказал [психолог Массачусетского технологического института] Теркл [...]. «Все учатся в школе Монтессори, и у них есть правила: никаких компьютеров за обеденным столом, никаких компьютеров за завтраком, никаких компьютеров здесь, никаких компьютеров там, никаких компьютеров в классе».

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

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

Не поощрять или запрещать компьютеры в определенных ситуациях — это совсем другое (можно даже утверждать, что прямо противоположное) обучению детей программированию. Последний должен научить детей осваивать машины, а первый учит детей, как не подчиняться им. У одного из моих лучших университетских преподавателей никогда не было компьютера на рабочем столе в офисе, но он очень часто им пользовался и очень умело говорил ему, что и как делать.
@Павел Верно. Я обратился к этому в предпоследнем абзаце, упомянув о самодисциплине. Однако общая тенденция дигерати явно не охватывает компьютер и вместо этого сосредотачивается на «реальном» опыте. Делают ли они исключение из этой тенденции и позволяют своим детям учиться программированию, остается только гадать.
Я ценю этот ответ, но мне немного неясны два момента. Во-первых, знаем ли мы, почему Джобс запретил доступ к мобильному телефону? Есть бесчисленное множество причин, чтобы ограничить это, но все же поощрять доступ к автономному домашнему ПК для изучения BASIC или чего-то еще. Во-вторых, мое ограниченное понимание школ Монтессори заключается в том, что они поощряют обучение тому, что хочет ученик. Если ребенок хотел научиться программировать, его поощряли. Я не уверен, являются ли эти вещи свидетельством против обучения детей программированию или просто некоторыми родителями, избегающими определенных технологий и государственных школ.
Предоставление им портативных устройств для потребления мультимедиа и общения в чате (в ваших цитатах приведены примеры «сотовых телефонов» и «iPad») — это не то же самое, что научить их программировать на ноутбуке или настольном компьютере.
@РобП. Я могу ответить только на вопрос Монтессори (и Вальдорфа). У обоих довольно четкие представления о развитии детей, вальдорфцы, возможно, более догматичны. На странице Википедии для Монтессори написано «Свобода в пределах » и «Природа в классе и за его пределами». Это задает тон. Но они кажутся действительно открытыми для интеграции компьютеров ограниченным образом (например, pebblecreekmontessori.org/… ). Я думаю, что ключ "ограничен". (продолжение)
(продолжение) Википедия цитирует один из постулатов Монтессори: «Ребенок первого уровня [0-6 лет] рассматривается как конкретный сенсорный исследователь», и материалы, с которыми нужно работать, должны отражать это.
@ Люк Правда. Но, как я уже сказал, такое отношение, похоже, отражает общий скептицизм по поводу знакомства детей с компьютерами в целом. В наши дни компьютер всегда является средством общения, развлечения и игры, что я могу подтвердить из первых рук. Знаешь, я должен работать прямо сейчас!
«Глядя на самодисциплину моего домашнего офиса как программиста, я очень сомневаюсь, что дошкольники лучше справляются с искушением, чем я» - это похоже на яблоки и апельсины. Я предполагаю, что это больше кодирование из-за обязательств (т.е. вашей работы), чем просто для развлечения, большинство детей довольно привыкли выполнять целый ряд действий ежедневно, они не так настойчивы в основном делать то, что им нравится больше всего. (кроме, может быть, капризничать) и позволять им программировать, не означает подвергать их воздействию Интернета, социальных сетей, захватывающих игр и других вещей, которые вы можете делать на компьютере.
Я не понимаю, как это отвечает на вопрос или как это даже отдаленно связано с ним.
@ Clay07g Это грустно.
@ Peter-ReinstateMonica Хорошо, я перефразирую. Это, объективно, не ответ на вопрос. Мнения руководителей корпоративных технических специалистов о сотовых телефонах не имеют отношения практически к любому разговору, не говоря уже о вопросах программирования. И совет о глубоких беседах не по теме, потому что это не вопрос «что, по вашему мнению, является лучшим способом поддерживать продуктивность ума ребенка?».
Это сводится к тому, что этот вопрос не только не требует мнения о компьютерах, но и явно просит вас не делиться им.
Я понимаю, что это ответ на вызов фрейма, но если совет в основном «как можно позже (или никогда)», для этого имхо требуются лучшие источники. Кстати, Вальдорф основан на идеологии эзотерической антропософии и, по крайней мере, частично связан с völkisch национализмом, поэтому он может быть не лучшей альтернативой классическому образованию.
@Peter-ReinstateMonica, tim, Clay07g: Спасибо, Питер, за очень вдумчивый ответ! ИМО, это не вызов кадра (кстати, вызовы кадра в порядке на Parenting. SE). Я понял этот ответ как не выступающий за раннее знакомство с кодированием из-за известных негативных побочных эффектов технологии. См. также фильм Социальная дилемма ( Википедия , киносайт , Нетфликс ). Вопросы, описанные в ответе Питера и в этом фильме, заслуживают внимания.
@ Clay07g Re «советы по поводу глубоких разговоров не по теме»: на первый взгляд так кажется. Но в данном контексте я считал это важным. Потому что что, по мнению технических магнатов, способствует развитию их детей? Не компьютеры, а практический опыт работы с физическими объектами в традициях Монтессори. И что, на мой взгляд, больше всего помогло моему сыну? Что выделяется, так это не компьютеры (с которыми он проводит много времени), а непосредственное общение лицом к лицу, которое было эмоционально вовлекающим и интеллектуально стимулирующим. Это сопоставление.
Джобс был не одинок — я уже несколько десятилетий запрещаю всем, кого знаю, пользоваться технологиями Apple! :D

«Код» — это не то же самое, что «программирование». Например, моя дочь играла в приложение под названием Coding Safari ( https://www.hopster.tv/coding-safari/ ), когда ей было около 3-4 лет. Это приложение основано на перетаскивании инструкций, которым может следовать «робот». Она проделывала подобные вещи в детском саду и начальной школе в том же возрасте с физическими роботами - я думаю, они называются Bee Bots.

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

Это сказало мне, нравится ей это или нет? Это трудно определить - маленькие дети очень гибки в своих предпочтениях, и косметика оказывает огромное влияние. В частности, при программировании конечный результат может быть довольно абстрактным (особенно для того, что достижимо новичком или отдельным человеком), из-за чего молодым людям сложнее понять, нравится им это или нет. Мы продолжим изучение компьютерных концепций (например, сейчас мы вместе играем в https://shapez.io ), хотя она пока не будет «кодировать». Конечно, у нее не развился тот рефлекс «страха» / «запугивания», который у многих пожилых людей есть в отношении технологий, и если это так далеко, я буду счастлив!

Хорошая точка зрения. Лично я начал «программировать», когда мне было 7 или 8 лет на Lego Mindstorms RCX, у которого был этот графический интерфейс программирования , где вы могли создавать программы из блоков. К сожалению, он был довольно ограничен, и мне не у кого было научить меня настоящему языку программирования.
Да, я согласен, что определенно существует опасность «разрыва» между такого рода вводными ресурсами и переходом к «правильному» языку программирования, такому как Python, и, в частности, к связанным с ним понятиям (например, объектная ориентация, отладка и т. д.). ). К счастью, я думаю, что другие люди тоже видят этот пробел, и для его заполнения начинают появляться такие ресурсы, как eraseallkittens.com , и хакактоны для детей.
Если бы я собирался провести различие между «кодированием» и «программированием», я бы сделал это наоборот, т.е. пошаговые инструкции любыми возможными способами.
@Brilliand Не могу не согласиться. Кодирование говорит с машиной; программирование думает о том, что сказать машине. Я вздрагиваю, когда вижу, как люди поощряют детей «программировать»: для меня это почти некритичный инструмент, который рано или поздно будет использован неправильно.

Этот ответ не имеет ничего общего с программированием, но...

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

Оттуда я взял такт ответа @DarrelHoffman по программированию сэндвичей с арахисовым маслом, но очень сдержанно - не так явно, как его ответ. Я думаю, у нас, возможно, даже была игра для празднования дня рождения в начальной школе, которая была чем-то средним между его усилиями по сэндвичу с арахисовым маслом, «приколите хвост на осле» и Roomba (один ребенок надевает повязку на глаза, а другой (или больше) напишите и произнесите «программу», чтобы ребенок с завязанными глазами обошел некоторые препятствия в выбранном месте).

Она никогда не любила программирование. Возможно, следовать за мамой и папой в инженерную школу было достаточно, но следовать за папой в бизнес по разработке программного обеспечения было слишком далеко. Она, конечно же, прошла курсы программирования как в старшей школе, так и в университете (и, я предполагаю, что она создает несколько полезных/сложных электронных таблиц Excel как часть своей работы). Если вы не думаете, что создание сложной электронной таблицы — это программирование, поищите «клеточный автомат».

Что бы вы ни делали, не подталкивайте к этому своих детей. Разработка программного обеспечения — это то, что некоторые любят, а некоторые ненавидят. Отказ от обучения «кодированию» в возрасте 8 лет не помешает ему/ей/им делать все, что они хотят, когда придет время решить, что они хотят делать.

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

Судя по всему, прошло около четырех месяцев, прежде чем у меня случился первый момент «Но почему бы вам не…», после чего она дала мне (чрезвычайно толстый) языковой справочник и дала мне доступ к старому компьютеру, чтобы я мог начать что-то делать сам. Она часто помогала, когда я просил, но большую часть времени я открывал для себя и узнавал то, что хотел узнать в то время.

Первоначально я в основном писал небольшие игры-лабиринты на основе ASCII. И, конечно же, я играл в паршивую версию понга.

И сейчас, спустя почти 30 лет, я все еще силен.

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

И да, это может очень легко произойти практически в любом возрасте. Для некоторых это может занять 3 года. Для некоторых это может занять 6 лет. У многих на это уходит 12 лет. Для большинства это никогда не происходит. И вы должны быть в состоянии принять это. Компьютеры действительно не очень интересны тем, кто не интересуется компьютерами.

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

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

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

Я имел в виду знакомить детей с программированием, чтобы посмотреть, нравится ли им это, а не решать, что делать дальше. Я намеревался «познакомить» с этой областью в том же смысле, в каком дети знакомятся (иногда в раннем возрасте) с ремеслами, рисованием, живописью, пением, игрой на музыкальных инструментах, выращиванием растений, разборкой бытовой техники. То есть, не принимая решения об их карьере, просто познакомить их со здоровым разнообразием навыков и занятий, чтобы посмотреть, нравятся ли они им. В длинном списке вещей, которые дети изучают в дошкольных учреждениях и школе, программирование также может вписаться. Мой вопрос в том, в каком возрасте, если вообще.
@TimurShtatland Если это так, то ничего страшного в этом, конечно, нет. Я предполагаю, что эти дети используют все виды электронных устройств, поэтому не должно быть большой проблемой спросить, хотят ли они узнать, как они работают и как управлять ими на более низком уровне. Нет возраста, в котором это становится возможным или желательным. Дети развиваются очень по-разному. Я знаю многих людей, которым далеко за двадцать, но которые все еще не в состоянии понять методы разработки программного обеспечения. Каждый приличный программист, которого я когда-либо встречал, учился почти полностью самостоятельно.

Во-первых и самое главное, я должен согласиться с некоторыми постами ниже, что когда начинать, зависит от ребенка. Я провел некоторое исследование «Technische Frühförderung», что несколько недостаточно переводится как ранняя поддержка или вмешательство в технологии, и выступил с докладом об этом в детском саду. Я также провел урок по информатике для детей 7-8 лет. (Но я программист, а не учитель) Я считаю, что с самого начала можно и нужно поддерживать детей в совершенствовании технического/программистского таланта. Такие вещи, как позволить детям экспериментировать с вещами, изучать причины и следствия, снабжать их игрушками для создания таких вещей, как строительные блоки и инструменты. Еще до года ребенок, играя с разными маленькими пластиковыми контейнерами, такими как чашки разного размера и водой, может многому научиться и получить массу удовольствия. (Игры Монтесори с разными контейнерами и водой) Возьмите за привычку позволять им принимать решения самостоятельно (в соответствующих возрасту вещах, например, на какую игровую площадку вы хотите пойти, какие фрукты, игрушку, пуловер вы хотите, .. ) Как ребенок, которому всегда четко говорят, что делать, может потом самостоятельно находить решения проблем? Соблюдение процедуры важно изучить, и наиболее легко сделать это, следуя простому рецепту приготовления. Важно работать с другими, разбивать задачи на части — все это можно сделать, решая какую-то домашнюю или строительную задачу вместе в вашей семье. Объясните детям с самого начала их понимания языка, почему и как все устроено, даже если это приведет к бесконечным вопросам, граничащим с «истязанием родителей». s игры с разными контейнерами и водой) Возьмите за привычку позволять им принимать решения самостоятельно (о соответствующих возрасту вещах, например, на какую игровую площадку вы хотите пойти, какие фрукты, игрушку, пуловер вы хотите, ..) Как ребенок, которому всегда четко говорят, что делать, может потом самостоятельно находить решения проблем? Соблюдение процедуры важно изучить, и наиболее легко сделать это, следуя простому рецепту приготовления. Важно работать с другими, разбивать задачи на части — все это можно сделать, решая какую-то домашнюю или строительную задачу вместе в вашей семье. Объясните детям с самого начала их понимания языка, почему и как все устроено, даже если это приведет к бесконечным вопросам, граничащим с «истязанием родителей». s игры с разными контейнерами и водой) Возьмите за привычку позволять им принимать решения самостоятельно (о соответствующих возрасту вещах, например, на какую игровую площадку вы хотите пойти, какие фрукты, игрушку, пуловер вы хотите, ..) Как ребенок, которому всегда четко говорят, что делать, может потом самостоятельно находить решения проблем? Соблюдение процедуры важно изучить, и наиболее легко сделать это, следуя простому рецепту приготовления. Важно работать с другими, разбивать задачи на части — все это можно сделать, решая какую-то домашнюю или строительную задачу вместе в вашей семье. Объясните детям с самого начала их понимания языка, почему и как все устроено, даже если это приведет к бесконечным вопросам, граничащим с «истязанием родителей».

Конечно есть талант. Хотя вышеперечисленное является хорошей тактикой для всех детей, есть дети с другими талантами, не подталкивайте их в другом направлении, если они не хотят туда идти. Как говорит Кнут, «у вас есть талант к программированию или нет». В завершение, фактическое программирование на языке программирования может быть выполнено в том возрасте, когда ваш ребенок может читать и писать в базовой форме. Кто-то может сделать это к 5, кто-то позже. Но кодирование вещей с визуальной поддержкой может начаться намного раньше, если у детей есть технические способности, в возрасте от 3 до 4 лет. Вы можете предложить им программирование, показав им, как использовать соответствующий инструмент программирования, научив их кодировать структуры, такие как повторение, условие, объекты. Для этого есть инструменты с похожими «персонажами», такими как пчелы, черепахи, роботы. Но пусть они сами выбирают, когда начать его использовать. Вы можете предложить им пойти на игровое занятие по программированию с другими детьми, если им это нравится. В любом случае, замечательно наблюдать, как они развивают этот талант, не правда ли! PS: Вы можете посмотреть на работу Линды Лиукас, например, для некоторых идей для начала кодирования.

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

Все это указывает на способность мозга преобразовывать символы в понятия и действия. История в виде книжки с картинками, по существу, аналогична языку программирования на основе значков, такому как Simulink или LabView.

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

Я не обязательно не согласен ни с чем из этого, но обратная сторона заключается в том, что навыки, необходимые для написания кода, часто больше связаны с планированием и поэтапным решением проблемы (или, по крайней мере, это навыки, которых не хватает нашим старшекурсникам). Часть символов->действия относительно проста
@ChrisH Нет аргументов. Обучение планированию и проектированию — это своего рода отдельный навык, который дети должны изучать для самых разных вещей, например: «Сколько конструкторов Lego мне понадобится, чтобы построить модель домика на дереве?»