Секрет #1 в обучении детей коду: используйте их интересы как топливо. Мой ученик Миша любил детективы и теории заговора и совсем не интересовался программированием. Мы создали приложение «шифратор-дешифратор» для того, чтобы «засекретить его переписку с друзьями от спецслужб». И так он незаметно для себя выучил ветвления, циклы и списки. Какое хобби у вашего ребенка, которое можно превратить в первый проект?
Преподаватель программирования
1367
подписчиков
И прочей информатики Романьков Вячеслав Николаевич. Преподаю в школе, веду кружки, репетиторствую. Люблю Creative Computing.
Отдельная трудность для некоторых людей, которые хотят обучиться чему-то новому: новые знания и умения потребуют отказаться от старых
Не получается научиться чему-то? Часто проблема в том, что вы не умеете что-то более базовое. Чтобы программировать, неплохо уметь более-менее читать, писать, печатать, анализировать, абстрактно мыслить, логически рассуждать, уметь разделять действия на шаги и т.д. и т.п. Если с чем-то из этого проблемы, то в программировании будете расти медленно, потому что вместо программирования как раз будете учиться, например, абстрактно мыслить. Прямо во время занятий программированием
Начали с учеником изучать новый движок, Roblox, он рвётся вперёд, на большой проект. Я его осаживаю немного, говорю, что начинать нужно с очень простого проекта. Да, конечно, он большой молодец, он уже изучил азы нескольких языков программирования, в том числе C++ — массивы и подпрограммы ему вполне себе дались. Но я сам тоже не лыком шит, и при этом новый язык программирования, движок, библиотеку всегда начинаю с очень минималистичных проектов, постепенно раскручивая сложность, очень постепенно. Это самый эффективный способ, так гораздо меньше времени придётся тратить на неожиданные пробелы, проблемы и т.д. Помаленьку обучаю ученика с азов, но он рвётся всё равно сделать проект, который ему выложить в открытый доступ нестыдно будет. Ну, позволю ему набить немного шишек, пусть попробует, это полезно. Накопятся вопросы, проблемы — будем их разбирать.
По домашним заданиям. Большинство учеников у меня загружены/перегружены. Поэтому им приходится задавать задание немного. Обычно я даю задание и говорю точное время — делайте 10, 15 минут, возможно 30 — в зависимости от ситуации. Если ученик ничего не делает раз, другой — сообщаю, что должен буду сообщить родителям, если это продолжится, о таком. Так как это снижает эффективность. В некоторых случаях с родителями договариваемся об отсутствии ДЗ
Как я выгнал ученика с занятий
Одного ученика пришлось выгнать с занятий. Нет, он не плохо учился — он учился отлично. После полутора месяцев обучения я ему сказал: — Всё, хватит тебе сюда ходить, я тебе не нужен.
— Да как это, ну...
— Ты прекрасно владеешь английским. Ты на 3D-моделировании натренировал мышление. Базовую программу, которую я даю за год, ты освоил за месяц. И уже сделал неплохой проект на Unity по англоязычным видео с YouTube. Не страдай ерундой — делай свои проекты. Что-то будет получаться, что-то нет — тогда упрощай, вырезай...
Как правильно сочетать теорию и практику в программировании? 5 % — теория. Потом 95% — практика. Иначе теория в голове не задерживается. Ну программирование практическая дисциплина. Кто только теорию изучает, читает, смотрит видео, тот потом ничего сделать не может всё равно. Поэтому узнал что-то — сразу попрактикуйся.
JavaScript: когда баги сходу в самом языке
Программисты часто пишут программы с багами, особенно если программа большая. Но JavaScript — тот случай, когда баг официально присутствует в самом языке и в простой операции Есть в JavaScript простая операция typeof. Она может проверить любые данные на то, какого они типа. typeof 2 напишет, что мы имеем дело с числом, typeoff "привет" сообщит, что это строка(так текстовые данные в программировании называются). НО! Если мы напишем typeoff null, то неожиданно получим заявление, что этот самый null это самый настоящий объект...
Вообще, не только Николай Константинович был глыбой из моих преподавателей. Мне как-то очень повезло, что тогда в родимом педе кучу мест по преподаванию математики занимали выпускники НГУ. Которые не пошли в науку по каким-то причинам, или пошли и преподавали дополнительно к основной деятельности. А с другой стороны, программированию нас учили бизнес-практики. Лектор рассказывал бедным педовцам про стек, кучу, очередь, односвязные-двусвязные списки и т.д. Про вектор рассказывал (способ создать динамический массив). Не знаю, почему, но я это ещё и запомнил. Потом его японцы забрали себе работать (программистом, не преподавателем). HTML, CSS, JavaScript и C# нам преподавали веб-разработчики. Все семинары вели тоже какие-нибудь разработчики, которые потом чисто в разработку ушли. Я сейчас вспоминаю и понимаю, что круто нам программирование и математику давали. Спрашивали, правда, по педовским методам очень небольшую часть. Но учили от души. Кстати, тогда я и обнаружил, насколько математики и программисты могут быть весёлыми людьми.
На олимпиадном движении по программированию меня обучал Чжан-Южков Николай Константинович. Глыба, не человек. Организовывал олимпиады по всей Сибири, отказывался от переезда в Москву, где за это хорошо платили. Решал любые задачи. Математические щёлкал круче многих математиков, код мог писать в блокноте. Иногда ради интереса участвовал так в онлайн-олимпиадах — и его решения проходили все тесты, пусть и не всегда с первой попытки. Называл нас любя лентяями и бездельниками. Потому что книг по программированию уже тогда было полно, а мы не слишком старались учиться. А он и его ровесники изучали программирование по справке в среде разработки. Повезло мне, короче говоря, с ним. Тогда я этого не понимал. Может, когда-нибудь сам стану не такой, но другой глыбой.
Почему ребёнок решил заниматься программированием? Большинство детей приходят в это через одну тему — желание сделать свои видеоигры. Какая-то группа детей, небольшая, приходит по старому пути — это ребята, которым нравится технарство в любом проявлении, и они узнали, что программирование это тоже часть этого самого технарства.
С какого возраста можно обучаться программированию? Смотрите: 4-8 лет — пропедевтика. Закладываем основы программирования, чтобы в будущем это было легче. Scratch, Scratch Junior, детская робототехника 9-13 лет — обучение моделированию. В программировании это важная составляющая наравне с алгоритмами. 14 и старше — мозг дозрел до алгоритмов уже точно. У кого-то и в 9 дозревает, но большинству есть смысл изучать их, начиная с этого возраста. И уже можно посмартивать в сторону профессии. Как видите, обучаться можно и с 4 лет, но моделированию нет смысла обучаться раньше 8, алгоритмам нет смысла обучаться раньше 12. Для большинства людей так.