С Чего Начать Программирование В Доп. Образование? Или Smallbasic И Все

Меня зовут Ростислав, вот уже семь лет я веду кружки по программированию для школьников 7-10 классов.

Последние несколько лет я веду курсы C++ в лаборатории робототехники Политехнического музея и Центре информационных технологий Gecko Club, а моя основная работа — веб-разработка и разработка мобильных приложений.

Мне наиболее интересно работать с медицинскими услугами.

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

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

Для начала стоит вспомнить, как я дошел до этого момента.

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

кричать «ребята, я сделал это».

сайт нашего класса на MyLivePage! Запишите адрес! Это было настоящее открытие – оказывается, это возможно, и совершенно бесплатно.

Тогда я решил сделать свой сайт и, конечно же, о компьютерах.

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

Мои одноклассники зашли на сайт и кто-то что-то прокомментировал.

Было очень вкусно! А потом понадобилось разместить информер Яндекса, оказалось, что это совсем нетривиально - пришлось копаться в куче непонятного кода.

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

Сказано - сделано! Солнечным зимним вечером я пошел в книжный магазин и на сэкономленные деньги купил свой первый учебник по HTML. Через пару недель обучения стало понятно, что HTML — это круто, но как обрабатывать формы — совершенно непонятно, а все говорят о каком-то PHP. Базовые вещи из книги я мог делать, но ООП мне тогда не поддавался и я решил пойти на курсы.

Я выбрал курс C++ в «Школе программирования» ДНТТМ.

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

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

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

Мы были как маленькая IT-компания.

Еще мне очень понравилась программа стажировки – благодаря ей я со временем сама стала преподавателем.

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

Например, об этом мне рассказал Леван Квирквелия, теперь еще школьник, разработчик популярного мобильного приложения «МРКО – независимый электронный дневник», стабильно удерживающего первые строчки в рейтингах AppStore и Play Market:

Во втором классе, когда я спросил свою учительницу информатики «как сделать сайтЭ», она ответила: HTML. С этим странным словом я пошел домой и очень скоро принял ужасное решение – пошел в книжный магазин.

Книги мне не нравились и не нравятся до сих пор, поэтому я выбрал самую тонкую книгу, на обложке которой было это слово — «HTML и CSS для создания веб-страниц»?.

Кастро.

Звучит круто, правда? Дома я скачал необходимые программы, опробовал их и поигрался с ними.

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

Затем последовало развитие.

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

Дальше я развивался как программист: два года искал себя, изучал Java и C++.

Всего за два года было создано очень многое.

Я делал огромное количество проектов, которые не взлетели (ничего тогда не продвигал, денег не было), свои первые 100 тысяч заработал, заказав сайт у родственника.

В конце концов я нашел себя.

Я понял, что мне нравится больше всего на свете:

  • делать крутые IT-проекты;
  • сделать что-то полезное для людей;
  • будь великолепен (я скажу поподробнее: мой продукт лучший, все должны быть от него в восторге).

А Сева Жидков, девятиклассник, победитель олимпиады НТИ, хакатона ВКонтакте 2016 и сотрудник Mail.ru (а также создатель стартапов LeonardBot и Sheldon.ai) говорит:
Во втором классе ходил в компьютерный кружок местного университета, там были логотипы миров или что-то в этом роде.

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

Я погуглил «Как создать веб-сайт» и выучил HTML. Первый сайт был для своего класса, потом хотелось как-то выделиться, «стать крутым»

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

    Что означает, что эти проекты должны быть завершены как можно раньше .

    Надо постараться стилизовать чисто образовательные проекты под реальные.

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

    Что значит сначала проблема, а только потом способ ее решения .

    И в идеале туда нужно добираться самостоятельно.

  3. Материал усваивается хорошо, если он вызывает сильный эмоциональный отклик.

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

    Рассказы о Лунтике, летающих «бугуртах», в бою все средства хороши.

    Главная задача – не превратить процесс в скучное, противное занятие.

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

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

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

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

    Это означает, что идеальный язык для изучения — это язык, на котором вы можете рисовать как можно раньше.

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

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

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

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

  3. Применимость в реальной жизни.

    Технология или хотя бы результат работы с ней должна быть «взрослой».

    Дети хотят работать на равных со взрослыми, чувствовать себя важными: настоящие сайты, реальные приложения и чтобы они могли прочитать программу собеседования на реальную должность и сказать «о, я это знаю!» Осталось только прочитать остальное!»

Большинство современных преподавателей сходятся во мнении, что идеальный первый «настоящий язык» (если не брать в расчет «игрушечный» Scratch или логотип школы) — это Python. А Python действительно крут! С одной стороны синтаксис читабелен, а с другой — можно создавать реальные проекты — будь то веб-сервисы или боты для Telegram. Но с моей личной точки зрения Python далек от идеального выбора первого языка.

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

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

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

Настолько правильно, что теперь я сама веду такой курс (программа курса на GitHub — первый И второй Часть).

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

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

Более того, каждый алгоритм и структуру данных можно сначала «придумать» самому, реализовать, а уже потом узнать о реализации из STL и использовать.

Методологически это очень правильно.

Однако многие преподаватели считают (и они абсолютно правы), что ставить плюсы как родной язык – это садизм.

Плюсы в том, что это действительно «взрослая технология»; при изучении очень легко последовательно излагать материал, чтобы в коде не было неизвестных структур, а вот с рисованием (да и вообще с красивыми заданиями) возникают явные проблемы, как бы вы ни старались сделать задания увлекательными .

Либо нужно использовать сторонние учебные библиотеки (а это не соответствует третьему критерию), либо ждать Qt — и это, извините, 36-й урок в спокойном темпе работы.

Выживают только самые стойкие.

Это означает, что преимущества на первом этапе исчезают; их нужно будет дать позже.

Есть еще более классические варианты — Basic, Pascal — но все это в наши дни уже не используется на практике.

Это означает, что оно исчезает и по третьему критерию.



С чего начать программирование в доп.
</p><p>
 образование? Или SmallBasic и все

Так что же вам выбрать? На первом этапе, с одной стороны, нужно что-то яркое и несложное, а с другой — что-то похожее на «взрослые языки» и со «взрослыми» возможностями.

И по моему опыту это Microsoft SmallBasic ( программа курса на GitHub ).

Почему он?

  1. Ограниченное количество дизайнов, каждый из которых виден при прокрутке.

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

  3. Рисовать и начинать делать свою игру можно уже с первого урока.

  4. Все основные структуры — условия, циклы, переменные, функции — на месте и работают как надо.

    Массивы тоже на своем месте.

    ну почти.

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

И в этот момент мы мягко намекаем, что это пора переходить на питон или плюсы.

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

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

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

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

Через 12 уроков ваша собственная игра будет готова! В конце концов станет ясно, что Smallbasic уже недостаточно для реализации всех планов, и в этот момент мы говорим о более сложных и «правильных» языках, мотивируя ребят развиваться дальше, чтобы продолжать разработку.



С чего начать программирование в доп.
</p><p>
 образование? Или SmallBasic и все

В каком возрасте можно давать SmallBasic? По моему опыту – с шестого класса.

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



С чего начать программирование в доп.
</p><p>
 образование? Или SmallBasic и все

Но после базового обучения C++ можно развиваться в любом направлении: можно выучить Python за час и нарезать проекты приложений, а можно уйти в Java и мобильную разработку.

Имея в арсенале такую подготовку, любая технология станет доступной.



С чего начать программирование в доп.
</p><p>
 образование? Или SmallBasic и все

Кстати, я использую именно эту схему.

курсы программирования для начинающих ЦМИТ «Клуб Гекко».

Этим летом мы запускаем насыщенный интенсивный курс по SmallBasic для детей, окончивших шестой класс.

В опросе могут участвовать только зарегистрированные пользователи.

Войти , Пожалуйста.

С чего начать изучение программирования? 18,37% Pascal 36 30,1% Python 59 19,9% C++/C 39 14,29% Java/C# 28 3,57% SmallBasic 7 4,59% Другое - в комментариях 9 6,12% BASIC :) 12 3,06% Javascript 6 Проголосовали 196 пользователей.

41 пользователь воздержался.

Теги: #образование #Малый базовый #школьное образование #начинающие #Образовательный процесс в IT

Вместе с данным постом часто просматривают: