Pull to refresh

Comments 35

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

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

 ребенок пока еще не дорос до текстовых языков

Вообще-то "текстовые языки" бывают разные. Например, "текстовый" язык для самых маленьких вполне может быть устным ;-)

Действительно, раньше Pascal и Basic были в ходу, но с течением времени они были вытеснены языками, которые представлены в статье, так как они применяются сейчас в том числе и в профисианальной сфере (С#, Python), а также из-за связи со сферой GameDev. Визуальные языки (по типу Scratch) более привлекательны для детей, так как программы очень наглядные и позволяют геймифицировать процесс обучения.

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

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

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

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

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

P.S. Зато подобное "обучение" и подобные рекламные статьи обеспечивают российским "курсам программирования" (большинство из которых откровенно мошеннические) максимальную доходность. Что и объясняет нескончаемых поток таких материалов в рунете.

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

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

А вот это уже зависит от того, какую задачу Вы перед ним поставите. По моим впечатлениям, некоторые задачи, требующие довольно сложного (из нескольких шагов!) алгоритма действий, дети могут решать уже в 2++. Но, важный нюанс, - сперва это те задачи, которые они ставят для себя сами. Например, чтобы посмотреть на трактор за окошком, надо забраться на стул (с пола не видно, голова ниже окна). Это типичная алгоритмическая задача: надо

1) сообразить, что нужна табуретка
2) найти детскую табуретку где-то в другой части квартиры
3) принести ее к подоконнику,
4) развернуть и ровно установить (она у нас складная)
5) залезть и увидеть трактор (любовь к тракторам у ребенка с момента первой близкой встречи в год с небольшим, когда он ночью, мигая разноцветными лампочками, чистил снег во дворе)

По-моему, все свойства, присущие алгоритмам,

присутствуют

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

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

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

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

Так в том то и дело: обычные бытовые задачи редко когда требуют продуманых десятков шагов (десятков строк кода), или же шаги будут объеденены в уже существующие процедуры (шаблоны действий) и всё равно алгоритм сократится в единицы линейных шагов. Даже ветвление работает не совсем так.

Далее. Понятие переменной. Очень непростое, вводится в 4 классе, 5 классе, и далеко не так просто для понимания. Посчитать кубики можно, заменить количество кубиков на Х - сложно. Понятие цикла - в жизни нет возврата к той же "строке кода", тому же моменду действия. Каждое действие - новый момент жизни, новая строка "кода". Это тоже очень сложная абстракция. Без переменных сложно уйти в функции/процедуры, они выглядят довольно сомнительным решением. Так что не надо, какие-то примитивные основы осваиваются и с кубиками скретча в игровой форме, а что-то сложное - нужны готовые абстракции в мозге.

в жизни нет возврата к той же "строке кода", тому же моменду действия.

«Вот где вы карточку получали, туда же и жалуйтесь».

Да! Именно так и работает мышление ребенка. Это потом уже, реализовав первый наивный ("детский") алгоритм, можно задуматься как сделать лучше "по взрослому".

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

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

Если же говорить про программирование, то начинать обучать детей надо не с языков программирования (даже если это будет Scratch), а вот с такого: https://www.youtube.com/watch?v=cDA3_5982h8. И решать алгоритмические задачи дошкольник может - если эти задачи сформулированы на доступном дошкольнику уровне.

В позднесоветские времена в журнале "Знание-сила" (если память не подводит) была серия статей человека, обучавшего пятилеток математике. И, например, чтобы они поняли, что такое параллельный перенос, центральная и осевая симметрии, оказалось достаточно обычной детской мозаики.

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

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

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

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

Чтобы научить программированию, учить надо совсем не написанию кода. И именно это автор статьи не понимает (или сознательно делает вид, что не понимает). А когда именно начинать учить, совершенно не важно. Более того, я выше прямым текстом говорю о том, что детские конструкторы куда лучше попыток навязать ребёнку программирование.

В моё время программированию начинали обучать в 17 лет - на первом курсе ВУЗа. И это никому не мешало становиться профессиональными программистами. Но, с другой стороны, познакомился с идеей программирования я за много лет до этого: в книге "Кибернетика без математики" (с мамонтом на обложке), не содержащей ни одной строчки программного кода. И прочитанная в подростковом возрасте книга "Принцесса или тигр" (которая совсем не про программирование) дала мне, как будущему программисту, несравнимо больше, чем любой самоучитель языка программирования.

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

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

Если подобрать для ребенка подходящий язык программирования, который будет прежде всего интересен самому ребенку, то проблем с обучением не будет. Для самых маленьких есть такие варианты, как ScratchJR и Kodu Game Lab.

Извините, а какого года эта статья?

Она поддерживает множество языков программирования: C#, JavaScript и Boo

Интернет подсказывает:

  • что Boo использовался ДО Unity 5;

  • в Unity использовался UnityScript и его тоже уже давно выпилили

Зачем в семье сразу два (или даже больше) IT-шника. Пусть лучше учится на врача или адвоката - в случае чего семье реальная польза.

Знакомство с программированием может начинаться (...) с пяти лет. (...) можно использовать различные языки программирования, например, Скретч, Пайтон, ДжаваСкрипт и другие

Мой ребенок пока еще не дорос до текстовых языков (...)

Буквально на днях я тут выложил описание языка собственной разработки, который позволяет начать занятия еще раньше. В моем случае обучаемому было два года и два месяца; сейчас, после пары недель эпизодических тренировок, язык освоен более, чем на 2/3. Конечно, первый вариант языка еще очень сырой, за что его уже раскритиковали. Тем не менее, я надеюсь, что упомянутый выше коммент может подсказать некоторые идеи тем, кто готов заниматься со своими детьми с минимального возраста ;-)

Проблема не в тексте как таковом. Проблема в том, что ребенку младшешкольного возраста очень трудно выйти за рамки прямых значений и линейного алгоритма, в мозгу еще не дозрели области абстрактного мышления, которые нужны для перевода задачи и её решения в абстрактное алгоритмическое описание. Конечно, регулярно сталкиваясь с задачами и их частными решениями соотвествующие абстрактные методы разовьются раньше, но есть и риски: 1) Закрепить "программирование это что-то там такое сложное, это не мое, я ничего не понимаю" 2) выработать "стандартные" ритуалы решения без понимая сути (как случается с ранним чтением: сложить из букв слово получается, а понять, о чем был текст нет), а диагностика ошибок и выработка понимания будет отдельной не самой простой задачей, переучивать сложнее чем учить с нуля. Я предпочитаю подождать естественного развития. А пока есть и другие заняия, и способы поддержания интереса. Оформление программы в виде кубиков помогает визуально формировать алгоритм, более наглядное представление, освобождая мозг от еще и такого формирования абстракций.

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

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

Закрепить "программирование это что-то там такое сложное, это не мое, я ничего не понимаю" 

Ну не надо до крайностей доводить, как в армии. Разумеется, никакого насилия быть не должно. Потому и игровая форма, и занятия только пока есть желание. С одним ребенком подстраиваться под него вполне возможно (а вот в группе гораздо сложнее). И, разумеется, всегда надо ставить решаемые задачи. Да, возможно, решаемые не с первой попытки, но по итогам любого занятия общее количество решенных задач должно быть много больше

количества нерешенных

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

 Я предпочитаю подождать естественного развития

Так для этого (для развития) как раз и нужно подбрасывать новые (нестандартные) задачи. А не просто "закреплять пройденное".

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

Меня во всяком случае именно так учили. В результате на вступительных экзаменах в МГУ я забыл, как доказывается теорема Пифагора (хотя это был профильный экзамен). Но посидел, кое-как доказал. Потом оказалось, что доказал нестандартным способом (хотя и правильно), за что получил дополнительный плюсик. Боюсь, что в обычной школе не всякий учитель такое бы оценил...

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

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

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

Со 4-го класса C/C++, алгебра Буля, целочисленная арифметика, вычисления целочисленной арифметики на логических элементах.

Как по мне, начинать нужно с выработки критериев. Например, так

  • не учить ненужное

  • быстро видеть результат

  • не требовать сидячего положения

  • не требовать специального места

  • не портить вкус омерзительными зрелищами

  • позволить показать сделанное друзьям

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

Дальше надо было бы приписать каждому требованию веса и каждому языку выдать очки по каждому требованию, но все дети разные и уже веса определить невозможно, а очки тяжело по той же причине. Значит, язык должен хорошо удовлетворять всем требованиям сразу. И внезапно оказывается - однозначно либо JavaScript, либо и JavaScript и Python. В зависмости от того, ставить ли Termux, искать ли бесплатный хостинг, есть ли домашний сервер...

Смартфон у ребёнка и так заведомо есть. Всё обучение сводится к тому, чтобы докупить планшет и ВТ клавиатуру. И немного показать с чего начать. Если ребёнок не заинтересовался - не надо его мучить. Если ребёнок заинтересовался - заодно и читать английский текст научится.

Если верить профессору Савельеву с YouTube и книгам его, особенно при приверженности врачебному "не навреди", все кто лезет с дополнитнльным обучением, особливо компьютерным, до того как ребёнку стало безопасно много читать - злобные и подлые шарлатаны.

Увы, но я могу возразить сам себе

  • айпадному ребёнку может больше подойти swift, чистый или на замену Python

  • игровому ребёнку придётся купить комп, разрешить за ним сидеть, и учить он будет C# или С++ или Lua, для него это не главное

  • художественному ребёнку тоже придётся купить комп пораньше и учить он будет Python потому, что на нём скриптуется Blender. И Krita. Но GIMP скриптуется на С...

  • как распознать этих аномальных детей, особенно последние два типа, до того как - я не знаю.

Если в доме уже есть компьютер, то доступ к нему у ребенка должен быть. Общая компьютерная грамотность нужна всем поголовно. Но при этом безусловно нужно соблюдать цифровую гигиену и безопасность. А вот с этим у родителей часто большая беда, и научить детей они тоже не могут. Интересно, если на хабре провести опрос типа "у меня есть ребенок и я <запрещаю доступ к смартфону или компьютеру|использую родительский контроль устройств|смартфон ребенка это смартфон ребенка, я не лезу туда> то какой будет результат? У однокласников дочки явно превалирует последний вариант, еще небольшая часть выбирает первый. Но здесь аудитория более граммотная, может результаты будут отличаться?

Если в доме уже есть компьютер, то доступ к нему у ребенка должен быть.

Ещё в досмартфонную эпоху мне дали совет старшие товарищи. Совет оказался дельным, делюсь

Ребёнок должен иметь свой компьютер

Обоснование при выдаче: ну, это, как-то так получается, да и бояться что-то испортить он не должен. Показал как переустановить Windows всего один раз.

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

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

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

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

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

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

Поэтому в исходном посте я и пишу, или пытаюсь писать, про необходимый и достаточный минимум - смартфон, планшет, ВТ клавиатура. Никаких столов не требуется. Цена вопроса 15+15+5=35 тысяч рублей года на 3, это 1 тысяча рублей в месяц (сейчас). Результат - доступ в мир JavaScript где возможно всё кроме систем реального времени. И много разных частностей бонусами.

Есть альтернатива дешевле - звонилка и что-то вроде DEXP Aquilon (8/256 Intel Celeron N4020C Windows 11 Home которая всё портит), сейчас в DNS за 17399. Вообще хоть заизучайся, но мне кажется - это хуже, зато уже 600 рублей в месяц но нужен стол.

На одном смартфоне кроме отупения ничего не добиться ибо ничего не видать, ещё глазки убрать можно. Исключение - смартфон дороже компьютера, с DeX, и малость удивительный дом богатый ни к чему не подключенными мониторами.

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

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

pydroid3 можно запустить 3.11 версию и jupyer

Всё смешалось люди, кони. Вы хоть понимаете, что ребёнок 10 летний, это не тот что 9-й, а если 12-й, ууу и так далее - это для начала, для каждого возраста свой нужен подход, помню когда в школе ввели информатику прям после развала СССР, то младшим классам давали учиться на динозаврике, а мы перед тем как сели за БК и начали изучение бейсика, целый год ходили тренировались просто нажимать клавиши. Да прогресс шагнул вперед, но вот сознание детей нет, да может из 10 летнего получится что? не ясно и будет он один из 100, ну научите Вы его питону и что? Но у остальные это будет вызывать рвотный рефлекс. Детям должно быть интересно. Это в 11-м классе можно что-то серьезное давать с прицелом на будущее да и то...

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

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

Sign up to leave a comment.

Articles