Привет! Меня зовут Александр Шутай, я руководитель отдела PHP в AGIMA. Среди моих задач важное место занимают кадровые вопросы. Мы вынуждены постоянно искать новых специалистов, притом что на рынке их всегда не хватает. Пару лет назад мы поняли, что устали и что хотим оптимизировать процесс подбора. И вскоре начали готовить разработчиков самостоятельно.

По сути, мы открыли свой маленький заводик, на котором из зеленых стажеров делаем IT-специалистов уровня Junior. За последние пару лет мы запустили уже 9 направлений стажировок, подготовили 36 менторов и выпустили в мир более 100 новый специалистов. Почти все из них успешно трудятся у нас и у наших партнеров.

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

Зачем нужны стажеры

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

Но если совсем в двух словах, то:

  • стажеры потенциально закрывают кадровый вопрос;

  • стажеры более лояльны к компании — у нас они работают не менее 2–3 лет;

  • стажеры освобождают время более опытных сотрудников для более сложных задач;

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

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

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

Сколько стоит один стажер

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

Нам потребуются часы нескольких сотрудников:

Этап

Роль

Часы

Поиск стажеров

Рекрутер

4

Отбор кандидатов, собеседования

Ментор

4

Онбординг, мотивационные встречи

HR

4

Процесс обучения

Ментор

36

Онбординг в рабочую команду

Тимлид

4

Экзамены

Ментор

3

Также перед открытием направления стажировки вам потребуется такое время:

Этап

Роль

Часы

Разработка программы обучения

Эксперт направления

40

Отбор менторов

Руководитель

4

Подготовка менторов

Руководитель

12

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

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

Портрет кандидата

Перед открытием позиции, нужно сформировать портрет кандидата. 

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

А если вдаваться в детали, то, скорее всего, мы ищем студента последнего курса или выпускника онлайн-школы. Лучше ориентироваться либо на людей до 25 лет, либо на людей без странного бэкграунда. Конечно, вы можете поверить в 50-летнего сотрудника охранного предприятия, который решил круто изменить жизнь, но, по нашему опыту, шансов на успех в этом случае меньше.

Обращайте внимание на опыт: знание университетского курса по программированию, алгоритмам, базам. Классно, если он может показать учебные или собственные пет-проекты.

Стратегии поиска

Карьерные сайты

После размещения вакансии о стажировке вы за пару дней получите ~300 откликов. Круто, но радоваться рано. Только пара процентов из них будет валидна. А ваши рекрутеры будут часами фильтровать резюмешки. Но даже этот способ можно улучшить:

  1. Используйте авторазбор откликов. На каждом карьерном сайте есть такой инструмент. Он поможет сократить воронку на основе фильтров по возрасту, опыту и т. д.

  2. Перед отправкой отклика добавьте обязательным полем простое задание. Это не тестовое, а фильтр для отсеивания людей не из IT. Например — что такое IP-адрес?

Профильные телеграм-каналы

Попросите рекрутера составить подборку открытых каналов и групп профильных вузов. Поищите нишевые чаты по разработке — например, по фреймворку Laravel. Познакомьтесь с их админами. И если они не против, отправьте туда приглашение на стажировку или, например, ссылку на лендинг про карьеру в компании.

Платформы онлайн-образования

Все популярные платформы онлайн-образования рады партнерам, которые готовы трудоустраивать выпускников. Вы получите довольно хорошую воронку из подготовленных джунов. При этом, по нашим срезам, джун после курсов будет просить 60–80 тысяч. Это дорого и подходит не всем. Но если бюджеты позволяют, то выпускники курсов — надежный вариант. У этих людей высокая мотивация — они реально хотят влиться в IT.

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

Как отбирать

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

Тестовое задание

Наше тестовое состоит из двух частей. Первая — это вопросы и задачки в виде опросника, время на ответы ограничено. Для удобства можно использовать Google Forms с дополнением Form Timer.

Составьте нескольких теоретических задач по языку программирования:

  • Каковы отличия между одинарными (' ') и двойными (" ") кавычками при работе с строками в PHP?

  • Что такое сессии в PHP? Как они работают и зачем используются?

Мы хотим, чтобы потенциальный стажер знал теорию ООП:

  • Что такое конструктор класса? Какие задачи он выполняет?

  • Что такое инкапсуляция в ООП? Какие преимущества она предоставляет?

Также оцениваем навыки работы с БД. Здесь не рекомендуем давать сложные задачки с агрегациями и объединениями, потому что это всё проходится в универах на средних курсах и выветривается к концу обучения. Если человек умеет делать средние запросы, то точно вспомнит, как работать с джойнами, в процессе стажировки.

Пример задач на составление SELECT-запроса: 

  • Выберите из таблицы “users” всех пользователей старше 10 лет и проживающих в Berlin.

  • Выведите общую сумму всех заказов для каждого пользователя из таблицы “orders”.

Если ваше тестовое задание содержит фрагмент кода, который нужно исправить, дополнить либо объяснить — рекомендую предоставлять код в виде изображения, чтобы было сложнее его скопировать и прогнать через ChatGPT. Правда, сейчас нейросети классно распознают и содержание картинок. Так что делитесь в комментариях другими способами, которые затрудняют использование ИИ.

Вторая часть задания — практическая задача на разработку формы обратной связи с валидацией по полям и сохранением в файл. Еще можно предложить разработать простую систему бронирования билетов в кинотеатре.

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

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

Собеседование

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

Если вам всё нравится и вы видите перед собой заряженного человека — берите его под крыло.

Кто будет учить

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

Какие качества важны для ментора:

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

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

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

Как будем учить

Вот те принципы, которых мы придерживаемся при составлении программы:

  1. Вы предоставляете знания и инструменты, но студент осваивает их самостоятельно.

  2. У каждого раздела есть нормативный срок изучения.

  3. Теоретические блоки завершаются онлайн-тестом.

  4. Практические блоки — домашним заданием на выполнение схожего функционала.

  5. Стажер три раза в неделю встречается с ментором для обсуждения вопросов и проверки домашних заданий.

  6. Ментор старается не давать готовых ответов, а только направлять стажера по правильному пути. Если вопрос сложный — предлагает порассуждать. Если простой — дает перечитать материал.

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


Вот какую структуру программы для самостоятельного обучения мы предлагаем:

Подробная программа с примерами и необходимыми пояснениями — в полном тексте гайда.

Как интегрировать стажера в команду

Уже после второго экзамена стажер точно готов применять новые знания на практике. Поэтому внедряем его в проектную команду.

После онбординга в проект и документацию назначьте стажеру наставника. Им может стать разработчик уровня Middle+, который будет помогать новичку с решением задач. Его цель — направлять стажера в правильную сторону, валидировать декомпозицию и решение задач. Такого человека иногда называют бадди, и он не занимается обучением, а адаптирует нового коллегу.

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

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

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

Как мотивировать стажера

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

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

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

    После успешного прохождения первого экзамена мы, как правило, повышаем стипендию до 50% от ставки джуна. А после второго экзамена и выхода в проектную команду — до 75% ставки джуна.

  2. 1-to-1. HR-специалисты в нашей компании раз в две недели встречаются не только с менторами, но и со стажером. Так мы своевременно выявляем проблемы и неудобства, о которых стажер стесняется сказать ментору. Еще это позволяет узнать о трудностях в обучении — софт-скиллы HR-ов, как правило, помогают настроить человека на искренний разговор.

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

  3. Полная интеграция в компанию. Стажер с первого дня должен чувствовать себя членом классной компании и иметь доступ ко всем активностям: митапы, корпоративы, клубы, обучающие материалы, поддержка.


И не жалейте печенек на кухне! Стажеры это любят.

После обучения

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

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

  2. Выдавайте именные сертификаты, подтверждающие квалификацию по изученным материалам.

Теперь всё, вы выпустили в жизнь нового классного IT-специалиста.

Насущные вопросы

Что, если джун со временем уйдет из вашей компании, а вы вложили в него столько сил?

Это не страшно. Он был с вами как минимум два года. И скорее всего, за это время он успел окупиться. Кроме того, вы вывели его в IT, многому научили — у него от работы с вами останутся только хорошие впечатления. А значит, он посоветует вас друзьям и коллегам. В общем, одни плюсы.

Набирать толпу стажеров или под гарантированные проекты?

Мы набираем стажеров постоянно, но в адекватном объеме — по 4–5 человек в квартал по каждому направлению. Этого хватает. Через год-полтора новички компенсируют естественную текучку кадров.

Знакомые на рынке действуют иначе. Они набирают толпу стажеров, дают им материалы и учат. Но в итоге выбирают только 1–2 человек, которым предлагают работу. Остальные просто получают сертификаты.

Как монетизировать стажера в заказной разработке?

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

Закрепляем

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

  1. Первым делом определяете, кто вам нужен: где этот человек учится или учился, сколько ему лет, какие навыки и качества вам важнее всего. Думайте на перспективу, прогнозируйте свои потребности в будущем.

  2. Начинайте искать стажеров: тут лучше использовать не только работные и карьерные сайты, но и целевые площадки вроде социальных сообществ вузов, и сообщества онлайн-школ.

  3. Подготовьте не очень сложное тестовое, чтобы отсеять нерелевантных соискателей. Но самый важный этап — собеседование. Нам нужны люди, которые очень-очень-очень хотят учиться.

  4. Подберите в своей команде ментора — тимлида или старшего разработчика. Лучше, если это будет человек, который умеет объяснять сложные вещи просто и не будет злиться на новичка, когда тот будет что-то не понимать.

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

  6. Когда чувствуете, что падаван готов, интегрируйте его в команду реального проекта. Но не бросайте одного, а назначьте бадди — это не ментор, но более опытный товарищ, к которому можно обратиться со сложным вопросом.

  7. Не забывайте о мотивации. Любая работа должна оплачиваться, а учеба — та же работа. Это инвестиция в будущее, стажер должен чувствовать, что компания в нем заинтересована.

Желаю всем толковых стажеров и четких процессов. Готов ответить на любые вопросы в комментариях. Развернутая версия гайда — в GitHub. Также веду отдельный телеграм-канал про управление командой разработки — приходите читать.

Что еще почитать

Комментарии (1)


  1. nefone
    12.07.2024 21:48
    +1

    Есть ли у вас успешные кейсы со стажёрами в возрасте 40+ ?