Можно ли стать программистом, если вы гуманитарий и вам 39 лет?
Как я развеяла миф о том, что программирование — только для гениев
В конце 90-х все хотели быть менеджерами и юристами, а бум программирования еще не начался. В школе на уроках информатики мы рисовали скучные квадратики со стрелочками, которые назывались алгоритмами. Никто ничего не понимал, в том числе и учитель. Компьютер был один на весь класс, и пацаны по очереди играли в стрелялки, а остальные просто сидели и убивали время. Мало кто хотел быть разработчиком, другое дело — менеджером или юристом. Я не стала исключением и отучилась на менеджера в Русско-немецком университете в Новосибирске.
Во времена учебы в универе у меня появилось несколько друзей-программистов — они делали простые сайты на заказ, и им довольно много платили. Помню, я удивлялась: «Ничего себе, на этом можно зарабатывать!», — но и тогда идея стать разработчиком не пришла мне в голову.
Казалось, программисты — это какие-то умные супербоги, а я могу только наблюдать со стороны, потому что мне среди них не место.
Долгий путь к профессии разработчика начался только в 2017 году. Тогда я работала в отделе маркетинга в большой компании — это была сеть магазинов товаров для дома по всей России. По работе мне приходилось плотно сотрудничать с дизайнерами, что-то делать в Photoshop, а иногда даже самой принимать дизайнерские решения. При этом я не понимала, что будет дальше с красивой картинкой, которую я нарисовала: как она окажется на сайте и как будет выглядеть? В то время у меня и возник вопрос: а как вообще делаются сайты?
Сначала я прочла книгу про дизайн «Не заставляйте меня думать» Стива Круга. Потом прошла бесплатный курс по верстке. Затем даже сверстала несколько лендингов. Но мысли перейти в IT у меня пока что не было — я относилась к верстке как к хобби.
Мой брат в то время работал программистом и дополнительно брал заказы на фрилансе. Однажды он посоветовал мне: «Сходи на Хекслет, попробуй пройти курсы, может, зайдет». Я зарегистрировалась и просто из любопытства начала проходить курс, который сейчас называется «Основы JavaScript». Некоторые задачи я решала по два дня, не понимая, почему они тяжело идут. Но когда все-таки тесты завершались успешно, помню, верещала от радости.
Именно тогда начала рождаться мысль: «Да, мне ужас как сложно, но все-таки у меня получается. Я могу!». Однако жизнь повернула в другую сторону. Я продолжила работать в маркетинге, потом родился второй ребенок. Долгое время я не занималась программированием — но мысль об этом все равно сидела в голове.
PHP-разработчик — с нуля до трудоустройства за 10 месяцев
- Постоянная поддержка от наставника и учебного центра
- Помощь с трудоустройством
- Готовое портфолио к концу обучения
- Практика с первого урока
Вы получите именно те инструменты и навыки, которые позволят вам найти работу
Бросить все привычное ради IT
К мысли об IT я вернулась, когда выгорела на работе. Однотипные задачи, отсутствие развития, ощущение, что я хожу по кругу, — так я думала о своей карьере в маркетинге. Чтобы разобраться, уходить мне с работы или нет, я задала себе тот же вопрос, какой обычно задают на собеседованиях: «Что я буду делать через пять лет? А через десять?».
Конечно, можно было бы поменять компанию. Но кто бы что ни говорил, во многих сферах кандидатов от сорока не рассматривают, даже ставят фильтры, чтобы автоматически отклонять резюме по возрасту. Так что я понимала, что в реалиях нашего рынка я могу только оставаться в той же компании — или рискнуть и сменить сферу деятельности.
Я хотела работать спокойно. Иметь более свободный график, потому что на тот момент я работала хорошо если с 9 до 18, и еще пара часов уходила на дорогу по пробкам. Хотела, наконец, других задач — маркетинговые окончательно достали.
По всем преимуществам — зарплата, общение с умными людьми, свободный график, удаленная работа — программирование выигрывало. Я уже знала, что у меня получается, — так почему бы и нет?
Среди всех языков программирования я выбрала PHP. Здесь снова последовала за братом: он специализируется на бэкенде, PHP — его основной язык. Так, в 2021 году я, наконец, вернулась на Хекслет и купила профессию «PHP-разработчик» в групповом формате.
Уже на практике я выяснила, что бэкенд дается мне проще, чем фронтенд. Возможно, пафосно прозвучит, но бэкенд-разработчики видят красоту кода. Когда ты элегантно, чистенько все сделал и данные туда-сюда летают очень быстро, это тоже красиво с точки зрения программирования.
Про трудности, психологический барьер в учебе и еще одно выгорание
Первое время я одновременно училась и работала руководителем отдела маркетинга. Заниматься старалась каждый день, но не всегда получалось. Бывало, если совсем уставала за неделю, то просто не могла даже встать в субботу и что-то сделать. Но если неделя была более-менее спокойной, я просиживала за уроками и субботу, и воскресенье, параллельно уделяя время домашним делам.
Конечно, не все получалось с первого раза. Например, тяжело дались темы «Хвостовая рекурсия» и «Деревья». Бывало, я думала: «Черт, ничего не получается, ненавижу эту задачу проклятую», — но в конце концов справлялась. Часто помогали ответы на вопросы других студентов в разделе «Обсуждения», наводили на верное решение.
Были сложности и с общением с наставником в группе. Наставники говорили нам не стесняться спрашивать, если что-то непонятно. Но мне казалось, что все вокруг уже всё знают и только я задаю лишние вопросы. Это чисто психологический барьер, кажется, еще со времен школы, когда очень боишься при всех выйти к доске.
Я все равно старалась писать вопросы в группу — ответы здорово помогали экономить время и нервы. А бонусом я еще подружилась с такими же активными сокурсниками, как и я.
В целом, несколько месяцев обучение шло ровно — до тех пор, пока на основной работе мне не поручили новый сложный проект. Так на середине обучения я выгорела снова — на этот раз до тошноты от мыслей и о работе, и о программировании.
Про увольнение и сложное тестовое задание
Чтобы прийти в себя, понадобилось три месяца — и увольнение. Три месяца я не программировала и не училась, но лучше не становилось: я работала за троих и физически не могла уделять время программированию. Тогда я и приняла решение увольняться, потому что понимала: в любом случае я не вернусь в маркетинг.
Постепенно я пришла в себя, снова начала учиться и, наконец, завершила обучение. И вот, на дворе 2022 год, у меня в «копилке»: четыре учебных проекта, резюме на Hexlet CV и практика в опенсорс-проекте Хекслета. Пора становиться разработчицей!
Поиск работы — это тоже отдельный навык, который надо прокачивать. Так как прошлые работы находили меня сами, я этот навык утратила, и было довольно трудно заставить себя стартовать. К счастью, мне повезло. Резюме я выложила только на Hexlet CV, а потом написала пост в Twitter, что ищу работу, и попросила о репосте. Так меня и нашел мой работодатель.
Мне прислали тестовое задание, которое было очень похоже на четвертый учебный проект, но более сложное. Тестовое я делала очень долго, три недели. Сейчас, конечно, сделала бы быстрее, но тогда многое было непонятно — например, понадобился JavaScript, а я его уже подзабыла.
В конце концов я справилась и подумала, что отправлять, наверное, нет смысла: я так долго копалась, что вакансию наверняка уже закрыли. Тогда брат мне сказал: «Отправь задание, что ты теряешь-то вообще? Ничего не теряешь». После долгих сомнений я набралась смелости и все-таки отправила тестовое.
Долгожданный оффер и работа в IT
После проверки тестового мы созвонились с работодателем и буквально 10 минут поговорили. Руководитель задавал довольно общие вопросы: почему нравится фреймворк Laravel и почему тестовое я сделала именно так. Но больше всего внимания он обратил на специальный файл Makefile — инструмент для универсальной автоматизации часто повторяющихся задач. В том числе благодаря этой фиче, про которую рассказывал Кирилл Мокевнин, CPO Хекслета, и которая используется в учебных проектах, меня взяли на работу. Причем, как я и хотела, взяли сразу на удаленку.
Сейчас я работаю бэкенд-программистом в компании, которая продвигает проект по поиску работы — сайт sfera-rabota.ru. Команда у нас небольшая, работаем все удаленно. Наш стек: PHP, JavaScript, Docker, Laravel, Gitlab, ClickHouse, Postgress, Vue. Для задач используем Trello. Обязательно пишем тесты и используем CI/CD, пишем документацию к коду.
У нас довольно строгие требования к качеству кода, поэтому знания, полученные на Хекслете, очень помогают в работе. В первые месяцы на работе было очень сложно разобраться, но спустя полгода все становится не таким страшным, а учебные проекты Хекслета, над которыми я мучилась неделями, теперь кажутся совсем простыми.
Сейчас я вернулась на Хекслет и самостоятельно прохожу профессию «Фронтенд-разработчик», чтобы расширить горизонты и понимать, как все работает и на фронтенде, и на бэкенде.
Что я поняла, став разработчиком
- Ни возраст, ни пол, ни образование не смогут вам помешать стать программистом, если это вам действительно нравится и у вас есть упорство в достижении цели. Не сдавайтесь, даже если очень трудно.
- Обязательно найдите наставника. И используйте возможность обратиться к наставникам Хекслета. Ищите единомышленников, вместе вы — сила!
- Очень важно отдыхать. Следите за своим состоянием, выгорание — не миф, а очень неприятная штука.
- Обязательно практикуйтесь в опенсорс-проектах (у Хекслета они есть). Учебные проекты — это только первая ступенька. На работе вас ждут приложения с тысячами строк кода и кучей библиотек, надо быть морально готовым к такому. Вряд ли кто-то будет за ручку вводить вас в проект и долго ждать, пока вы втянетесь в работу. Больше практики в настоящих проектах с пользователями — легче адаптация на первой работе.
- Получайте знания из дополнительных источников. На Хекслете есть список рекомендованных книг, особенно рекомендую «Грокаем алгоритмы» Адитьи Бхаргава. Еще советую хороший, подробный и понятный курс по работе сетей. Также интересно послушать истории программистов на канале «Как мы попали в айти».
- Используйте разные каналы для поиска работы своей мечты. Пусть у вас все получится!
Вот уже больше года я работаю программистом и ни разу не пожалела о своем решении перейти в IT. Было, конечно, очень сложно, и в минуты отчаяния хотелось все бросить. Но мысль, что тогда придется «застрять» в текущем состоянии подталкивала двигаться дальше несмотря ни на что. Я благодарна всем, кто помог мне добиться этой цели: Хекслету, сокурсникам, команде нашего проекта, моей семье. Без поддержки вряд ли бы все получилось.
PHP-разработчик — с нуля до трудоустройства за 10 месяцев
- Постоянная поддержка от наставника и учебного центра
- Помощь с трудоустройством
- Готовое портфолио к концу обучения
- Практика с первого урока
Как гуманитарию стать программистом?
Я начал писать этот пост два месяца назад еще до появления цикла постов «Хочешь быть программистом, стань им». Я читал комментарии к статьям, переписывал статью. В конечном счете, учтя все замечания от людей, которые убеждены, что для программирования нужны какие-то специальные мозги, мой им ответ: «Для нежелания чего-либо делать, сгодится любое оправдание».
Итак, как гуманитарию научиться программировать?
Ответ. Надо следовать принципу: «Глаза боятся, руки делают».
Картинка для привлечения внимания. Заменил на котика, предыдущая напоминала воспаленный мозг.
Далее вы найдете сборник полезных советов, которые мне помогли. Пару слов об авторе: я гуманитарий, окончивший исторический факультет.
Вводное слово
Представим историка, который решил написать книгу о знаменитой битве. Первое, что он делает — собирает все известные факты. Второе, он анализирует полученный материал и делает выводы. Что сделал человек, который стал программистом? Фактически тоже самое, что сделал историк написавший книгу о знаменитой битве. Одинаковый и похожий процесс.
В основе любого интеллекта лежат операции сравнения и сортировки. Любые знания, которые мы получаем, первым делом стараемся их упорядочить в какую-то иерархическую схему, на уровне подсознания. И когда знания уже упорядочены, мы стараемся их начать использовать.
Это означает, что человек может познать любую область знаний от археологии до астрономии. Все зависит от двух факторов:
1) Личное желание
2) И то, сколько времени вы готовы на это потратить.
Какой язык изучать?
Можно начать сразу с нескольких. Вам нужно найти тот, что вам понравится. Тот, который вы поймете, от которого не будет отторжения.
В этом есть польза. Иногда в одном языке вы можете найти необходимые объяснения, которые забыли добавить авторы в том языке, что вам понравился.
Вы выбрали язык, как же быть с остальными?
Вы боитесь, что изучаете не модный язык, или который выйдет из моды и потом вы не будете нужны с этими не модными знаниями. Не бойтесь этого. Главный плюс, который вы получите при изучении хотя бы одного языка. Вы перестроитесь, вы научитесь мыслить, как программист. Вы получите концепцию, как все устроено. Имея такой опыт, вам не сложно будет изучить новый язык за очень короткие сроки.
Найдите толстый учебник
Какой учебник читать? Найдите все учебники, которые сможете найти. Начните читать все сразу, обязательно найдется тот, где все очень подробно рассказано. Не стоит стеснятся книг: «Изучаем за 24 часа», вы предоставлены сами себе, кого стеснятся? Не пытаетесь читать правильные книги, потому что они правильные по мнению вашего знакомого. Может быть эта правильная книга понятна только вашему знакомому.
Как все это запомнить?
А запоминать не надо. Просто вбивайте примеры из книжек и смотрите как это работает. Если вы будете усиленно зубрить, то ваш мозг начнет ненавидеть это. Изучать предмет надо в спокойных условиях. Говорите себе: «Дай-ка я это попробую, ничего страшного не случится».
Ниже вы прочитаете как все запомнить.
Записывайте рабочие фрагменты
Вбили код, запустили, работает? Запишите его. Я для этого использую docs.google.com Чтобы иметь доступ из любого места. Там я все распределяю по папкам, каждый документ — это пример небольшого кода. Каждый раз обращаюсь, как к шпаргалке. В конечно счете, вы достигните такого уровня, когда будете все помнить.
В основе этого метода лежит обычное конспектирование материала. Разворачивать svn, как порекомендовали программисты в комментариях, для гуманитария станет камнем преткновения, который возможно остановит его навсегда.
Записывайте правильное решение
Допустим вы бились над решением какой-то проблемы. Решили ее, запишите код рабочей программы с подробным описанием в чем была проблема и как вы ее решили. Согласно закону подлости, на следующий день, когда решите улучшить код, вы сломаете свое рабочее решение и потом долго будете недоумевать, а как же оно вчера работало?
Сделайте ошибку
Если вы нашли небольшой рабочий пример, выполняется без ошибок, то сделайте ошибку специально. Запишите какую ошибку вам покажет отладчик, как будет она именоваться. Это в будущем пригодится, когда напишите более серьезную программу и столкнетесь с ошибкой, имея опыт, сразу поймете, где надо искать. Не бойтесь экспериментировать. Улучшайте код, вносите изменения. Это ведет к пониманию изучаемого предмета.
Набивайте код
При чтении учебника, часто возникает такая ситуация. Вам показывают код, видите вы его впервые, но вы понимаете, как он работает и читаете дальше. В этом таится большая опасность. Набейте код из книжки и сделайте его выполнение. Пока вы будете его вбивать, ваш мозг задействует разные отделы, от получения информации до ее передачи для использования в опорно-двигательной системой (руки, в данном случае). Что означает — информация пройдет через разные отделы мозга. И следовательно она будет восприниматься по-другому. Реальный случай, пока читаешь, говоришь себе: «Да, понятно, это работает вот так», а после того как вбил и запустил исполнение, увидев результат, восклицаешь: «Эврика!». Вот поэтому написанная информация запоминается лучше, чем та, которую вы просто прочитали.
Предупреждения
Отчаяние
Время от времени, вас будет посещать отчаяние. Вам будут приходить мысли, что материала слишком много, вы не сможете это изучить. Элементарная усталость. В таких случаях, просто открывайте учебник и смотрите его 10 минут, листайте разные разделы. Польза от этого действия будет такова, что даже в этом случае ваш мозг будет запоминать материал. Подсознательно, незаметно для вас. Однажды вы столкнетесь с проблемой и неожиданно для себя вспомните, что кажется видели ее решение на 536 странице.
Плохая документация
Порой из документации совсем ничего не понятно. Потому что автор владеет несколькими языками, у него большой опыт, ему кажется, что он пишет вполне понятно, не вникая в детали, не приводя даже примеры. Будьте готовы к этому, это будет постоянно встречаться. Порой помогает чтение примера из другого языка программирования. Например, общая библиотека используется в двух разных языках, вот в другом языке сообщество побольше, документация лучше. Но вам важно понять сам принцип работы. Почитайте как это делается в другом языке, постепенно поймете, как найти решение в своем языке.
Часто бывает, когда документацию пишет залетный программист из другого языка. Сам в деталях не разобрался и других запутал.
Ваши знакомые и друзья
Среди ваших знакомых найдутся люди, которые зададут вам такой вопрос: «А зачем ты изучаешь программирование?».
Я был немало удивлен таким вопросом. Придумайте для них какие-нибудь дебильные отмазки, чтобы отстали. Например: «Я хочу найти работу программиста. Средняя зарплата программиста… бла бла бла».
Что самое интересное, спустя какое-то время, когда вы добьетесь серьезного результата, их почему-то это совсем не впечатлит. Не знаю, что это такое, зависть?
Гуру из интернета
«Гуру» на всяких форумах порой говорят что-то про кодеров, новички пугаются, задают вопросы: «А как не стать кодером?». Вы должны знать, что когда научитесь серьезно программировать, у вас появится столько оптимизма, вы себя почувствуйте таким супергероем, что будете рассуждать, как пилот боевого истребителя. Вскоре, вы тоже начнете на форумах что-то писать про индусов и быдло-кодеров.
Ну и последнее
Сколько времени у вас займет обучение? Если каждый день тратить по 10 минут, то через полгода заметите за собой, что кое-что уже можете. А через два года сможете уже искать работу. А может быть даже раньше, зависит от вас.
Всем благ, спасибо, что дочитали. Я уверен, что статья кому-то поможет, как мне в свое время помогли такие же невинные мотивирующие статьи.
Update 1: Судя по комментариям, некоторые бегло пробежались по статье. И некоторые вопросы вызваны невнимательностью. Про 10 минут также говорится под заголовком «Отчаяние». Суть 10 минут, чтобы человек не бросил изучение, когда у него нет уже сил. Иначе, если вы дадите себе неделю отдыха не прикасаясь к материалу, то за неделей последует вторая, и третья…
Личный опыт
Попросили добавить личный опыт. Обучение началось с языка TurboPascal в школе, язык понравился. Но дома не было компьютера. После школы я поступил в университет, на истфак, где у меня тоже были успехи. На факультет по прикладному программированию, я бы не смог поступить, так как не смог бы сдать экзамены по математике.
После университета, найдя работу, я купил компьютер и попытался изучать Делфи. Поставил перед собой задачу, как написали некоторые в комментариях, но как оказалось, Дельфи не смог справится с ней. На этом мое обучение прекратилось. Следующая попытка была предпринята через несколько лет. Решил наброситься сразу на несколько: Delphi.NET, Php, С, С++, С Sharp, ObjC, Assembler, Python, Ruby, Perl, Javascript, Java.
Результат: Python очень хорошо пошел. Остальные языки знаю понемногу. Но сейчас их изучать стало намного легче, так как нет прежнего страха и неуверенности.
Как из гуманитария стать программистом — отвечают эксперты
Как кардинально сменить свой род деятельности и из нетехнического специалиста стать айтишником? Эксперты делятся опытом и дают практические советы.
Живёт себе человек спокойно, никого не трогает, и вдруг приходит ему мысль: «Хочу быть программистом!». Спрашиваем у экспертов, с чего начать.
Как из гуманитария стать программистом?
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
Следите за новыми постами по любимым темам
Подпишитесь на интересующие вас теги, чтобы следить за новыми постами и быть в курсе событий.
Как я учил гуманитариев программировать и что из этого вышло
Привет, Хабр! Сегодня я тебе расскажу историю о том, как я взял на себя ответственность за обучение программированию трех разных человек, которые казались абсолютно безнадежными и никто (даже их самые близкие родственники) в них не верил. Важно то, что каждый из них уже проявлял интерес к программированию раньше, но ни один из доступных методов обучения не давал результата. Сегодня эти люди свободно делают программы без моей помощи (работают над «проектами мечты»), а один из них даже устроился в хорошую IT-компанию.
В чем заключались проблемы каждого из учеников, как я их преодолевал и что они теперь из себя представляют – рассказываю в этой статье.
Как я пришел к надобности учить гуманитариев программированию
Я не могу себя назвать супер-программистом, явно не дотягиваю до великих мастеров, но за свои 12+ лет карьеры прошел через многое. Когда я работал в одной из Российских IT-компаний, мне доверили проводить тренинги для заказчиков, благодаря чему я почувствовал в себе интерес к обучению других людей, что продолжил делать на своих следующих местах работы.
Довольно быстро я загорелся наставничеством и начал обучать программированию знакомых молодых ребят. Самым важным правилом для меня было: брать «под крыло» только тех, кто уже хоть что-то умеет и проявляет реальный интерес к разработке, а не тех, которые кричат «Крута, пограмисты много зарабатывают, хочу так же».
«Если хочешь рассмешить Бога, расскажи ему о своих планах»: 2020 внес много корректировок в планы каждого. Онлайн школы начали появляться с такой скоростью, что очень быстро количество моих падаванов сократилось. А так как я уже не мог представить свою жизнь без наставничества, мне пришлось начать соглашаться учить тех, кто ничего не умеет и хочет «только срубить бабла и быстрее переехать за бугор». Примечательно, что «первая тройка игроков» появилась в моей жизни почти одновременно, тем самым сделав мне вызов.
Статус-кво на начало обучения
Каждый из моих учеников имел свой бэкграунд, и единственное, что их объединяло – катастрофическая нелюбовь к техническим наукам (на самом деле и гуманитарии из них были так себе). При этом все они пришли ко мне не сразу, а попробовав начать свою карьеру в IT другими способами.
Я дорожу своими учениками и не хочу, чтобы кто-то из их знакомых понял о ком идет речь, поэтому назову их так, чтобы никто не догадался
Рамсес знал, что в Интернете есть всё, он даже смог найти несколько видеокурсов по программированию (на ютубе), нашел всякие полезные справочники, установил себе несколько IDE и принялся изучать программирование именно таким образом. Стоит похвалить Рамсеса – ведь среди всех моих учеников из этой статьи он продвинулся дальше всех в плане умения писать код, однако, не мог объяснить что и зачем он пишет (по сути просто отлично писал по памяти то, что уже видел).
Гильгамеш хорошо общался со школьным учителем Информатики, который был опытным программистом, отработавшим несколько лет в крупных компаниях. Заработав первые деньги работая барменом-официантом, Гильгамеш отдал их учителю для того, чтобы тот посидел с ним и «погонял» по программированию. Как оказалось, если человек мастер в программировании и умеет читать школьный материал – он далеко не всегда умеет действительно научить программировать.
Ахилл не имел навыков поиска в Интернете, да и в школе у него учитель был откровенно слаб, зато он видел классные рекламные ролики и читал красивейшие сайты одной популярной онлайн-школы, которая обещала за полгода сделать из него джуниора и устроить на работу. У Ахилла богатые родители, поэтому инвестировать пару сотен тысяч рублей в обучение сыночка для них не было проблемой… Вот только после прохождения обучения, как оказалось, Ахилл не мог даже объяснить мне «А что такое переменная?»
Как я нашел подход к каждому ученику
Дело в том, что почти все технические специалисты привыкли строить повествование по схеме «Что (О чем я говорю) -> Как (применять то, о чем я говорю) -> Зачем (вообще это нужно)». Но как оказалось — это не очень правильный подход, и гораздо продуктивнее идти от обратного: сначала ищем «Зачем» это ученику, после чего объясняем «Как» мы будем это делать и уже только потом начинаем «что-то» делать.
Если вам интересна эта тема — можете погуглить «Why How What»
Казалось бы, что может быть проще, чем определить «Зачем»… Однако, на практике это не быстрый процесс, требующий нескольких сессий совместного общения, а также времени на переваривание и осмысление собственных желаний учениками. С каждым падаваном нам потребовалось разное время на выявление своего «Зачем», но в итоге мы определились кому что интересно разрабатывать и придумали индивидуальные проекты, соответствующие желаниям. Дальше встал вопрос «Как» — и здесь мы встретились с камнем преткновения в виде языков программирования.
Визуальная несостоятельность языков программирования и визуальное решение проблемы
Мои ученики отлично всё схватывали в визуальном формате, то есть понимали схематичное представление (блок-схемы), но вот понять и принять текстовый вариант написания кода им было очень сложно.
И тут мне пришла в голову мысль: «А почему бы нам не попробовать визуальное программирование?».
После детально проведенного анализа мой взгляд упал на RPA-платформу UiPath, которая мне показалась интересной по следующим причинам:
- Можно визуально программировать в виде последовательности действий
- Можно визуально программировать в виде блок-схем
- Есть машины состояний (ВАУ!), которые так же настраиваются визуально
- Есть переменные с типами данных из .NET, что позволяет научить работе с разными типами данных
- Можно использовать готовые блоки с действиями, которые позволяют не писать много строчек кода для выполнения понятного действия
- Можно писать выражения с использованием операций, методов, функций, классов на языках программирования VB.NET и C#
- Можно писать целые блоки кода на языках программирования VB.NET и C#
- Можно использовать любые NuGet-пакеты и создавать свои собственные точно так же, как и в Visual Studio
- Можно использовать готовые блоки действий для взаимодействия с различными веб-сервисами, которые можно настраивать даже без знания основ программирования (а при желании никто не мешает написать собственный блок кода взаимодействия с веб-сервисами на VB.NET или C#)
- Есть серверные компоненты, благодаря которым можно научиться разрабатывать клиент-серверные приложения, обрабатывать большие очереди заданий и понимать тонкости работы с сетью
Как выбор повлиял на процесс обучения
Скорость обучения визуальному программированию с поверхностным изучением типов данных меня поразила – уже после первого занятия мои ученики сделали простенькие программы и могли объяснить в них каждое действие.
Еще через пару занятий они делали уже более сложные программы, разбивали код на разные файлы (благо платформа это позволяет), комбинировали блок-схемы с последовательностями, и могли «защитить» свое решение обосновав почему они сделали так, а не иначе. Само собой, в их программах были огрехи, это были очень слабые работы, подверженные различным ошибкам (о которых ученики еще не знали), но важно понимать, что они получили результат «здесь и сейчас», а это дало им мотивацию двигаться дальше.
После того, как я обращал внимание падаванов на неполноценность их разработок, они загорелись желанием улучшать их: разбираться в типах данных глубже, сокращать количество действий, обрабатывать ошибки, писать программный код самостоятельно вместо использования готовых блоков. Честно признаться — по началу я и сам не ожидал такого результата, но это не погрешность и не исключение, а реальный факт для всех трех учеников.
Какие перспективы у визуального программирования?
RPA-платформы только набирают обороты, а уже на сегодняшний день в России UiPath используется в более чем 150 ведущих компаний (это не считая почти 10 тысяч компаний по всему миру). На сайтах по поиску работы можно обнаружить, что количество вакансий с требованием знания именно этой платформы постоянно увеличивается, а это означает, что всё больше молодых специалистов, начавших путь именно с UiPath, могут войти в дело довольно легко. Кроме того, один из моих учеников благодаря освоению визуального программирования смог самостоятельно освоить и «классическое» программирование на языке C#, после чего устроился джуниором в одну из небольших IT-компаний.
Отдельно важно отметить то, что согласно публикациям Кто такие citizen developers, Роботы для каждого (ГазПромБанк) крупные организации используют именно UiPath для обучения своих специалистов из не-IT подразделений для разработки собственных роботов-помощников, а это означает, что навыки, которым я научил своих учеников, им точно пригодятся, даже если они не пойдут именно в программисты.
И тут можно было бы завершить мысли о будущем визуального программирования ограничившись корпоративным сектором, но лично мне очень интересно было узнать от одного из учеников о том, что оказывается в современном игровом движке Unreal Engine тоже присутствует возможность визуального программирования. Честно признаюсь – я не работал с этим движком, но судя по тому, что я увидел в разных статьях и видеороликах, это очень похоже на RPA.
А что вы думаете про графическое программирование и технологию RPA в частности?