Как я учил гуманитариев программировать и что из этого вышло

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

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

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

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

Я не могу себя назвать супер-программистом, явно не дотягиваю до великих мастеров, но за свои 12+ лет карьеры прошел через многое. Когда я работал в одной из Российских IT-компаний, мне доверили проводить тренинги для заказчиков, благодаря чему я почувствовал в себе интерес к обучению других людей, что продолжил делать на своих следующих местах работы.

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

Довольно быстро я загорелся наставничеством и начал обучать программированию знакомых молодых ребят. Самым важным правилом для меня было: брать «под крыло» только тех, кто уже хоть что-то умеет и проявляет реальный интерес к разработке, а не тех, которые кричат «Крута, пограмисты много зарабатывают, хочу так же».

«Если хочешь рассмешить Бога, расскажи ему о своих планах»: 2020 внес много корректировок в планы каждого. Онлайн школы начали появляться с такой скоростью, что очень быстро количество моих падаванов сократилось. А так как я уже не мог представить свою жизнь без наставничества, мне пришлось начать соглашаться учить тех, кто ничего не умеет и хочет «только срубить бабла и быстрее переехать за бугор». Примечательно, что «первая тройка игроков» появилась в моей жизни почти одновременно, тем самым сделав мне вызов.

Статус-кво на начало обучения

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

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

Рамсес знал, что в Интернете есть все, он даже смог найти несколько видеокурсов по программированию (на ютубе), нашел всякие полезные справочники, установил себе несколько IDE и принялся изучать программирование именно таким образом. Стоит похвались Рамсеса – ведь среди всех моих учеников из этой статьи он продвинулся дальше всех в плане умения писать код, однако, не мог объяснить что и зачем он пишет (по сути просто отлично писал по памяти то, что уже видел).

Гильгамеш хорошо общался со школьным учителем Информатики, который был опытным программистом, отработавшим несколько лет в крупных компаниях. Заработав первые деньги работая барменом-официантом, Гильгамеш отдал их учителю для того, чтобы тот посидел с ним и «погонял» по программированию. Как оказалось, если человек мастер в программировании и умеет читать школьный материал – он далеко не всегда умеет действительно научить программировать.

Ахилл не имел навыков поиска в Интернете, да и в школе у него учитель был откровенно слаб, зато он видел классные рекламные ролики и читал красивейшие сайты одной популярной онлайн-школы, которая обещала за полгода сделать из него джуниора и устроить на работу. У Ахилла богатые родители, поэтому инвестировать пару сотен тысяч рублей в обучение сыночка для них не было проблемой… Вот только после прохождения обучения, как оказалось, Ахилл не мог даже объяснить мне «А что такое переменная?»

Как я нашел подход к каждому ученику

Дело в том, что почти все технические специалисты привыкли строить повествование по схеме «Что (О чем я говорю) -> Как (применять то, о чем я говорю) -> Зачем (вообще это нужно)». Но как оказалось - это не очень правильный подход, и гораздо продуктивнее идти от обратного: сначала ищем «Зачем» это ученику, после чего объясняем «Как» мы будем это делать и уже только потом начинаем «что-то» делать.

Если вам интересна эта тема - можете погуглить «Why How What»

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

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

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

Примерно так видели код мои ученики
Примерно так видели код мои ученики

И тут мне пришла в голову мысль: «А почему бы нам не попробовать визуальное программирование?».

После детально проведенного анализа мой взгляд упал на RPA-платформу UiPath, которая мне показалась интересной по следующим причинам:

  1. Можно визуально программировать в виде последовательности действий

  2. Можно визуально программировать в виде блок-схем

  3. Есть машины состояний (ВАУ!), которые так же настраиваются визуально

  4. Есть переменные с типами данных из .NET, что позволяет научить работе с разными типами данных

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

  6. Можно писать выражения с использованием операций, методов, функций, классов на языках программирования VB.NET и C#

  7. Можно писать целые блоки кода на языках программирования VB.NET и C#

  8. Можно использовать любые NuGet-пакеты и создавать свои собственные точно так же, как и в Visual Studio

  9. Можно использовать готовые блоки действий для взаимодействия с различными веб-сервисами, которые можно настраивать даже без знания основ программирования (а при желании никто не мешает написать собственный блок кода взаимодействия с веб-сервисами на VB.NET или C#)

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

Как выбор повлиял на процесс обучения

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

Простейшая программа в виде последовательности действий на UiPath - прочитать таблицу клиентов из Excel-файла и отправить письмо каждому клиенту. Просто как "Раз-Два-Три". Сколько строчек кода вам понадобится, чтобы сделать тоже самое на классическом языке программирования?
Простейшая программа в виде последовательности действий на UiPath - прочитать таблицу клиентов из Excel-файла и отправить письмо каждому клиенту. Просто как "Раз-Два-Три". Сколько строчек кода вам понадобится, чтобы сделать тоже самое на классическом языке программирования?

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

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

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

Какие перспективы у визуального программирования?

RPA-платформы только набирают обороты, а уже на сегодняшний день в России UiPath используется в более чем 150 ведущих компаний (это не считая почти 10 тысяч компаний по всему миру). На сайтах по поиску работы можно обнаружить, что количество вакансий с требованием знания именно этой платформы постоянно увеличивается, а это означает, что все больше молодых специалистов, начавших путь именно с UiPath, могут войти в дело довольно легко. Кроме того, один из моих учеников благодаря освоению визуального программирования смог самостоятельно освоить и «классическое» программирование на языке C#, после чего устроился джуниором в одну из небольших IT-компаний.

Отдельно важно отметить то, что согласно публикациям Кто такие citizen developers, Роботы для каждого (ГазПромБанк) крупные организации используют именно UiPath для обучения своих специалистов из не-IT подразделений для разработки собственных роботов-помощников, а это означает, что навыки, которым я научил своих учеников, им точно пригодятся, даже если они не пойдут именно в программисты.

И тут можно было бы завершить мысли о будущем визуального программирования ограничившись корпоративным сектором, но лично мне очень интересно было узнать от одного из учеников о том, что оказывается в современном игровом движке Unreal Engine тоже присутствует возможность визуального программирования. Честно признаюсь – я не работал с этим движком, но судя по тому, что я увидел в разных статьях и видеороликах, это очень похоже на RPA.

Источник: https://www.reddit.com/r/unrealengine/comments/nlm8pj/ue5_blueprints_ui_looks_sexy/
Источник: https://www.reddit.com/r/unrealengine/comments/nlm8pj/ue5_blueprints_ui_looks_sexy/

А что вы думаете про графическое программирование и технологию RPA в частности? 

Источник: https://habr.com/ru/post/599329/


Интересные статьи

Интересные статьи

Привет, хабр! Меня зовут Полина. Я несколько лет занималась настройкой и развитием инцидент-менеджмента для eLama.Благодаря работе нашей команды, управление инцидентами с...
Когда в вашем распоряжении одновременно оказывается мощное облако с инфраструктурой в США, Евросоюзе, СНГ, Азии и Австралии и CDN со 100 точками присутствия в 70+ городах на пяти континен...
27 января 2010 года один Крупный Мыслитель объявил о смерти ПК. Прошло десять лет, и ПК здравствует, хотя путешественник во времени из 2010 года мог бы и не узнать его. Вот, как этот вымирающий в...
Битрикс24 — популярная в малом бизнесе CRM c большими возможностями даже на бесплатном тарифе. Благодаря API Битрикс24 (даже в облачной редакции) можно легко интегрировать с другими системами.
Обезьяна (шимпанзе) достает термитов из термитника при помощи палки. Навторой фотографии горилла использует палку для сбора нужной ей травы Разработчики из США создали специализированный ал...