Quantcast
Channel: Найцікавіше на DOU
Viewing all articles
Browse latest Browse all 8115

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

$
0
0

[Об авторе: Николай Лотоцкий — более 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, интегрировались в проект и остались частью нашей команды.

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

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

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

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


Viewing all articles
Browse latest Browse all 8115

Trending Articles