Переквалификация IT-специалистов: обучение фултайм внутри компании за 1 месяц

[Об авторе: Николай Лотоцкий — более 15 лет занимается разработкой программного обеспечения. Знаком со всеми этапами работы на проекте и развил карьеру от должности QA Engineer до Technology Expert. Несколько лет был JavaScript Software Architect и принимал активное участие в разработке сложных масштабируемых приложений. Кроме того, есть опыт работы с PHP, .NET, Python. Более трех лет проводит различные курсы и тренинги]

... Да, были люди в наше время
Не то, что нынешнее племя:
Богатыри не вы!

Чем Intermediate PHP отличается от Intermediate .NET или Intermediate JavaScript? Мое мнение, разница лишь в инструментах, а месяц обучения может вооружить и PHP-специалиста, и .NET-разработчика необходимыми знаниями, чтобы стать универсальным Software Developer и успешно педалить на JS. Теорию подтвердила практика: 37 программистов из 42 присоединились к проектным командам после месяца учебы в режиме 8 часов в день 5 дней в неделю. Как организовать процесс переквалификации, почему целый месяц обучения стоит оплачивать как рабочее время и относиться с той же серьезностью, каким должен быть преподаватель для такого курса — узнайте из статьи.

Потребность в специалистах

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

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

Следующая идея — сотрудничество с профессиональными курсами, которые, следуя запросу рынка, должны готовить специалистов нужного нам уровня. Звучит здорово, но есть одно «но». Это бизнес. И золотой жилой является не IT-компания, а люди, готовые вложить деньги и освоить заветную профессию...

По моему опыту преподавания, на коммерческих курсах только 10% прилежных студентов способны добиться успеха при условии наличия рядом опытного ментора. Ими можно попытаться закрыть дыры на проектах. Риски: нагрузка на ментора будет расти с увеличением количества приходящих «выпускников», производительность команды будет падать пропорционально. Квалифицированные кадры отвлекаются на менторство, а «педалить» как intermediate trainee, даже самый перспективный, не может.

Выход — обучить новым инструментам специалистов с опытом

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

Чем, по сути, отличается Intermediate .NET разработчик от своего коллеги, использующего PHP? Если отбросить вопросы окружения и типизации — разница между теми же PHP, .NET, Java или JavaScript специалистами не такая уж и большая. Я уверен, что если человек способен успешно решать задачи на PHP, то овладев инструментарием JavaScript, он так же успешно справится и с JS-тасками. Курсы не решат всех ваших проблем. Они не повысят seniority-level специалиста. Но в вашей команде появятся необходимые кадры!

Эту идею мы воплотили в Dev-Pro. Мы решили брать в команду людей, которых мы готовы месяц обучать на условиях, что это время будет оплачено, будто программист уже работает на проекте. Отбирая студентов Intermediate-специалистов на наши внутренние курсы, я обращаю внимание на зрелость человека как разработчика. В результате мы уходим от роли .NET, Java, JavaScript Developer, а приходим к позиции Software Engineer.

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

Обучающий курс — это такой же полноценный проект, как и другие в IT-компании. У него должны быть процессы: их разработкой и нужно заняться в первую очередь. Необходимо выбрать тренера, способного создать уникальную программу, которая соответствует требованиям компании и проекта. Я советую такие критерии выбора преподавателя:

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

Составление программы:

  • Общие знания технологии можно получить из бесплатных видеокурсов. Сосредоточьтесь на нуждах проекта.
  • На разработку курса уходит в среднем в три раза больше времени, чем на его вычитку. Например, если у меня курс, рассчитанный на 32 часа, то на его подготовку я потрачу в среднем 90 часов рабочего времени.
  • Каждое изменение — не прихоть, а результат тщательной проработки требований проекта и компании.
  • Создайте детальный план каждого занятия с презентационными материалами. Можно обойтись без презентаций, однако четкий план необходим! Без него вы рискуете потратить уйму времени студентов на незначительные темы, так и не уделив внимания важным вопросам.
  • Важная часть обучения — домашние задания. Без них все лекции исчезнут из памяти студентов через несколько часов после занятия. Задания должны быть максимально привязаны к потребностям проекта.Тогда и вы, и ученики понимаете зачем их выполнять.
  • Учтите, разработка домашних заданий тоже требует времени. В среднем на разработку домашнего задания, оптимальное время выполнения которого — 2 часа, уходит 1 час преподавательского времени.
  • Автоматизируйте проверку домашних заданий. Определяйте контракты — те сигнатуры методов, название классов, полей и т. д., которые вы будете отдавать вашим студентам. Пишите два набора тестов. Один — смоук-тест для учеников, второй — для вас, который проверяет не только функциональные требования. Сразу настраивайте линтеры и тулы, проверяющие стиль кодирования данных студентов. В идеале, возьмите конфиг линтеры у разработчиков проекта-заказчика, на который вы готовите студентов, чтобы они привыкали к стилю кодирования будущих коллег. Задания, нарушающие код стайл, идут сразу на переделку. То же самое касается заданий, которые не проходят ваши тесты. Очень часто в IT-школах делается упор на вычитку материала. По моему субъективному мнению, выполнение домашних заданий и их адекватная проверка важнее вычитки курса.
  • Оптимальное время лекции — это два академических часа с перерывом в 10 минут между ними. Как показывает моя практика, стоит избегать длительных занятий. Максимальное время, которое студенты будут вас воспринимать, — 4 часа. Дальше, вне зависимости от того, как хорошо и интересно вы рассказываете, будут стеклянные глаза с мольбой «Отпусти, мил человек, нас отсюда».

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

Берите во внимание опыт высшей школы: лабораторные работы, лекции, домашние задания, журналы успеваемости и т. д. — полезные штуки.

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

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

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

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

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

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

Подытожим

В Dev-Pro под моим руководством 37 разработчиков за 10 месяцев успешно овладели новой для себя технологией. Среди студентов были PHP, .NET, Java, Ruby специалисты — теперь они педалят на JavaScript, интегрировались в проект и остались частью нашей команды.

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

Итак, если в компании появляется проект, который стремительно растет и требует качественные, сложные решения, неподвластные новичкам — подготовьте специалистов самостоятельно!

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

Рассчитывайте найти преподавателя-практика на фултайм. Он должен глубоко погрузиться в проект, к которому вы готовите людей, чтобы составить программу, основываясь на будущих задачах. Уделите особое внимание домашнему заданию, которое должно быть максимально привязано к потребностям проекта. Следите за успеваемостью студентов и готовьте детальный отчет по каждому участнику курса, чтобы избежать обид и репутационных потерь. Идеальным завершением курса станет тестовый проект. Собеседование участников курса стоит доверять техническим специалистам того проекта, на который они пойдут после завершения программы по их переподготовке. Ждите в команде опытных специалистов с креативным решением — ведь у них бэкграунд из другой технологии!

Похожие статьи:
Компания Gionee представила модель ультратонкого смартфона Elife S6 относящегося к среднему ценовому сегменту. Аппарат обладает 5,5-дюймовым...
На сайте бенчмарка GFXBench была замечена информация о планшете HTC IV5001-A. Эта модель еще не была официально представлена и не ясно, под каким...
Технология экрана, который распознает не только само нажатие, но определяет еще и его силу, стала трендом нового поколения мобильных...
If you on the lookout for a unique gift for someone special, but you are unsure what to buy, then we have a great idea for you. Have you considered creating your own Personalised Star Map? Maybe you don’t know what these are, so let’s...
Усім привіт, це вже другий випуск подкасту DOU. Мене звати Влада, я головред DOU та одна з ведучих цього подкасту. Окрім мене, його...
Яндекс.Метрика