Пару лет назад к нам в QIWI пришли добрые люди с предложением немного поэксплуатировать детей. В смысле, заключить с нами договор, по которому мы берем школьников на стажерские программы, смотрим, насколько им (и нам) это интересно, и можно ли сделать из всей этой затеи что-то полезное.
Затея была в том, чтобы брать школьников и забрасывать их в отделы или продуктовые команды. Продуктологи, само собой, встретили это без должного огня в глазах с ожидаемым девизом «А на кой хрен нам это вообще, все работает, не трогай».
Под катом — подробности про наши программы стажировок, отзывы двух ребят, один из которых после стажировки уже работает с нами в штате, а второй пока стажер (парням сейчас 16 и 18 лет, кстати) и впечатления лидов от процесса.
С чего все вообще началось
До этого существовала программа под названием QIWI FINTEEN — там мы обучали школьников финансовой грамотности, рассказывали им о QIWI, о картах, показывали, как чего работает. Опыт признали успешным и раскатали программу на всю Россию, начав обучать детей в Артеке и других лагерях. Причем не только финансовой грамотности, но и основам информационной безопасности. Программа, кстати, продолжает брать премии как неплохой образовательный проект. По ней мы обучили более 150 000 человек.
Итак, мы пригласили школьников с любыми практическими навыками программирования. У некоторых были даже профили на github. Договорились, что возьмем в качестве пилота 4 человек (примерно из 40 прошедших предварительный отбор). Все стажеры выходили в разные отделы, от SMM и аналитики до разработки и терминалов.
Как понять, в какие задачи погрузить школьника на месяц? Мы взяли тестовое задание (причем реальное тестовое задание для аналитиков), которое позволяло в общих чертах оценить уровень знаний школьников и, что главное, их предпочтения. Решили в процессинг и Java-разработку не подключать, а выбрали команду fullstack JavaScript. Подобрали небольшие, но реальные задачи, результаты которых можно было выдать в open source, чтобы у каждого был репозиторий, проревьюенный техническим ментором. Мы закинули ребят сразу в код.
Из проектов, которые они осилили сделать, был механизм расшара в соцсетях и сервис сравнения служебных таблиц боевой и тестовой баз данных.
А что лиды? Оказалось, что общение со школьниками поднимает боевой дух текущих сотрудников. Когда ты как наставник объясняешь новичку, чего и как устроено, ты начинаешь в том числе и немного критичнее смотреть на собственную работу. Главное, что мы вынесли для себя из этого, это то, что нужно подбирать задачи под людей, а не людей под задачи. В больших компаниях довольно часто делают наоборот.
А теперь — слово парням.
Женя, 18 лет, младший разработчик
С моей стороны это выглядело вот так: год назад я проходил обучающую программу в Школе ИТ-решений во время учебного года, и там нам явно намекали, что у кого будут крутые проекты, те смогут пойти на стажировку в реальную компанию, вот прямо сейчас договариваемся с QIWI. В итоге прислали ссылку на регистрацию, там была здоровенная анкета с несколькими мини-эссе. Заполнял час почти.
Потом пригласили на очное собеседование, со всеми сразу, с руководителями направлений. Я думал, что буду долго ждать ответа, но мне позвонили уже на следующий день и сказали, в какие из отделов QIWI я могу пойти стажироваться. Я пошел к Гоше GEG, который пугал всех кодом. Хотел идти именно к нему, потому что у него были реальные проекты. Другие отделы — это аналитика и дизайн, это не мое.
Очень порадовало, что была полная свобода действий. Сам выбираешь, когда приходишь и когда заканчиваешь. Месяц проработал в QIWI очно, потом какое-то время еще поддерживал свой проект в течение учебного года, ну и прилетали задачки иногда разные. А сейчас, год спустя, я уже в штате и работаю младшим программистом.
Здесь классно, те ценности, которые давала стажировка, остались и после выхода на работу, то есть никакой бюрократии и человеческое отношение. До QIWI я стажировался в одной мелкой компании, которая делала образовательные проекты. Нас там с еще двумя стажерами посадили за компы и сказали — вы разрабатывали ваш проект на Unity, продолжайте, может, нам этот движок подойдет. В общем, мы около месяца что-то делали, а потом это, скорее всего, выкинули нафиг. И это не круто, такое отношение к работе, мы сидели над этим по 4-5 часов в день, и никуда не пригодилось.
А тут по-другому, сразу пришел — и вот реальные задачи. Рассказали, какие есть проблемы, сказали, зачем вообще им нужен этот сравнятор баз данных. То есть это реальная боевая задача была, на технологии, которая используется в компании. И эта штука полезна людям, мы ей пользуемся даже сейчас, а не просто забили как на тестовый проект. Когда я ее только разрабатывал, сказали, что будут запускать ее раз в пару месяцев. А ее до сих пор активно используют и включили в процесс релизов.
Потом на очередной встрече мне предложили выбор — или устроиться в QIWI и совмещать это с учебой в 11 классе, или годик подождать и прийти потом. Я выбрал подождать и не жалею — все-таки, на ЕГЭ и прочее тратилось много времени, я был бы не так продуктивен в работе в это время.
А потом мне стукнуло 18 и меня взяли на работу. Это было очень круто — понимать, что после стажировки тебя продолжают ждать в компании.
О стажировках и графике
Тут стоит еще рассказать о том, какую же именно штуковину написал Женя. У нас есть тестовый контур и боевой. От релиза к релизу данные в служебных таблицах меняются, из-за чего приходится вносить кучу ручных изменений. А база крупная. А в релиз должно попадать только все самое свежее, так что нужен еще и адекватный процесс ревью этих изменений. Вот Женя и написал нам утилитку, которая берет тестовую схему, берет боевую, выводит отличия и потом генерит нужные DML-скрипты для INSERT / UPDATE.
В самом начале стажировки мы сразу говорим ребятам, что она не оплачивается (мы компенсируем только питание в офисе). Это скорее обучение, потому что время квалифицированных спецов тоже стоит для компании определенную сумму, да и процесс такого код-ревью от лидов уже сам по себе ценен. Школьников берем сейчас на лето, примерно на месяц довольно продуктивной работы. Вообще, даже месяца маловато — если говорить о состоявшемся разрабе с опытом, он потратит этот месяц на то, чтобы нормально влиться в сформировавшуюся команду и понять, как все устроено.
А со школьниками сложнее. Какое-то время ты тратишь на то, чтобы понять, какие вещи ему вообще интересны и какие задачи ему стоит давать. Потом вводишь в курс дела по используемым технологиям. В общем, хватает всякого.
Количество мест на стажировку напрямую зависит от открытых вакансий. Навскидку на 2019 — будет примерно 30-40. Может, больше.
С графиком у нас все довольно лояльно. Главное (и очевидное) требование — будучи стажером, старайся просто быть в офисе с полудня до удобного тебе времени, но чтобы непосредственно пересекаться с командой, с которой работаешь. Конкретно у Жени сейчас история немного другая, он уже студент, старается сам адекватно оценивать, чего там как у него с загрузкой и сколько ему надо времени. Если надо — приходит пораньше, что-то релизит, уходит на пары в институт. Потом иногда сидит тут до 10 вечера со своими задачками. Мы пытались его выгонять домой, но пока не очень получается.
Сейчас у него будет сессия, само собой, он станет немного меньше успевать по работе. Зато потом в феврале каникулы (читай — привет, фултайм).
Менторство и сомнения
На самом деле, сомневается в менторстве довольно большой процент разрабов. Все сидят и думают, да нафига мне вообще школьники, спасибо, следующий. Если так к java-мидлу прийти, то так и уйдешь.
У нас получилось все чуток иначе, потому что конкретно в команде, куда направили стажеров, нет Java. Вообще, сама архитектура проекта и используемые языки в какой-то степени определяют, насколько можно просто взять человека с улицы и погрузить в работу за месяц. Наш стек это позволяет, плюс мы не кидали ребят в какие-то критичные корневые штуки. Не процессинг, в общем. Но это не отменяет нужности и важности задач.
Можно было бы тут сказать про то, что система у нас высоконагруженная, но сам термин хоть и модный, но ИМХО используется не совсем верно. Мы считаем, что если приложение хреновое изначально, то для него там какая-то серьезная нагрузка — это уже highload. А если ты сделал все нормально, то даже серьезные цифры должны быть в разряде «штатная ситуация». Потому что на Node.JS, typescript, PostgreSQL можно писать любые сервисы. Фронты обычно разрабатываем на React, но есть и проект на Angular.
И во все это можно без особого труда взять человека и за месяц сделать так, что он поймет, что вообще происходит. Например, есть какая-то фича, которую условный мидл будет сидеть и пилить неделю. Причем фича не очень срочная, она никому не нужна прямо завтра. Значит, можно отдать ее школьнику, который будет попиливать ее уже месяц. В худшем случае это будет с нашей стороны потеря времени. В нормальном — взаимовыгодная эксплуатация школьника.
За каждым ментором обычно закрепляем 2 школьников максимум. Это сильно зависит от текущей загрузки самого ментора и его умения распределять свое время, а также от самостоятельности стажеров. Кстати, Женя в этом году неслабо втянулся — он сейчас активно помогает новичкам настраивать рабочее окружение и понять наши процессы, знакомит со стеком технологий.
То есть серьезно и без шуток — парень, который за год прошел путь от стажера-школьника до младшего программиста, сегодня сам помогает двигаться по этому пути другим людям. Круто же.
А насчет технологий — тут важно сразу вложить в голову новичкам, что есть технологии, которые позволяют решать задачи. Любую из них просто надо взять и правильным местом приложить к делу. У каждого из школьников довольно разный бэкграунд — кто-то что-то делал на Паскале, кто-то на Си и прочее. Я стараюсь дать им понимание того, что программист в течение своей профессиональной жизни сменит кучу языков, их надо осваивать. Выбор правильного стека на всю жизнь — это иллюзия. Развиваетесь вы вширь.
Эмиль, 16 лет, стажер
Я искал на лето всякие летние школы, связанные с программирование, и случайно наткнулся на FINTEEN. До этого я самостоятельно год учился программировать, но хотел попробовать себя в чем-то большем. Заполнил заявку, где-то через месяц мне позвонили и сказали приходить в офис на собеседование, посмотрим, чего ты умеешь делать. Ну я и пришел. После собеседования сказали, что оформят пропуск и можно через неделю выходить.
Через неделю дали тестовую задачу по базам данных делать, сделал ее за день. На следующий день уже дали что-то более или менее боевое делать (статичную кнопку). Для этого уже пришлось погружаться в стек технологий и понимать, как чего деплоится, какие процессы в компании. А приходил я вообще с нуля почти. Так что все учил уже здесь.
А потом было демо. Это был необычный для меня день, потому что я не понимал, что такое демо и зачем. Я пришел, мне сказали просто рассказать о том, что я делал всю эту неделю. Я полдня готовился, потом мы пошли в конференц-холл и выступали перед остальными программистами. Я сказал, что прикрутил кнопку и что мне 16 лет. Теперь на демо выступающие часто выходят и начинают свою речь словами «Привет, меня зовут так-то, и мне не 16».
Потом мне стали давать более сложные задачи уже. Самая длинная задача была на две недели — интернационализация + колорпикер. Фронтендом я занимался потому, что мне было это интересно, были атомарные задачки, которые команда могла мне дать.
Мне очень понравилась атмосфера, тут классные люди. А еще бесплатный кофе и горячий шоколад.
QIWI дало мне хороший старт, я понял, как распределяются задачи, для чего все эти сборы. Сейчас я веду свою команду, участвуем в хакатонах и в Школе ИТ-решений. А еще стал часто пользоваться гитхабом.
Итого
Вот еще что. У нас в тестовом задании была база на Амазоне. И совпало все это дело с попыткой РКН поблочить телеграм, в итоге чего поблочилось полинтернета, кроме телеграма. Включая нашу базу. Так что для ребят, которые шли делать тестовое, была внесена вот такая стихийная корректировка — чтобы сделать тестовое, надо было уметь еще и обходить подобные вещи.
Для нас как для компании стажерская программа стала еще одним стимулом в развитии нашего опенсорс-движения — все задачки мы закидывали туда. Причем тестовая задачка для разрабов сразу дает понять человеку, с какой именно инфраструктурой ему придется у нас работать, все задания — живые, это не сферическая фигня в вакууме.
Кстати, хочешь быть крутым наставником в новом году? Вливайся в нашу команду. :)
Комментарии (8)
Oxoron
28.12.2018 18:25Школьники-стажеры по скиллу не сильно отличаются от студентов-стажеров. Но с ними больше проблем.
- Стажировка — это время. Вполне возможно, время перед экзаменами. И если самим школьникам на это может быть наплевать, их родителям — нет.
- Нынешний школьник — завтрашний студент. Вполне возможно, студент в другом городе.
- Менторы далеко не всегда горят желанием учить. Один из моих знакомых честно и радостно учил своего стажера, а затем осознал: «я ращу себе конкурента».
GEG Автор
29.12.2018 01:32+11. Школьники проходили стажировку летом. Родители, наоборот, были рады такой возможности.
2. Это не найм. Это возможность за месяц сделать что-то большее и обогатить стажеров и наставников новым опытом.
3. Если кто-то боится конкуренции со стороны студентов, то это очень странный специалист. Всю свою карьеру ищут людей, которые знают больше меня, а свои знания передаю другим, чтобы терять незаменимость и получать возможность создавать что-то новое.
Cerberuser
29.12.2018 07:05К сожалению, да, родителям часто формальный успех важнее фактической прокачки навыков. Это, правда, в основном проблемы самого школьника...
EnotovaMorda
29.12.2018 10:14Ну насчет конкурента… Это он зря. Можно узнать технологию, но стиль мышления и инструментарий мышления нарабатывается годами. И да, знаниями надо делиться, такое в нашей профессии возвращается. Проверено ;)
FragCounter
29.12.2018 12:57Эх, жаль, когда я был школьником в сельской школе у меня не было возможности так практиковаться в программировании. Только книжка по Паскалю. Хотя, скорее всего, я не искал этих возможностей.
Школы учат не поиску возможностей, а выученной беспомощности. И получается, что только в зрелом возрасте начинаешь работать над собой, чтобы убрать эти психологические блоки и вырасти в целостную личность.GEG Автор
29.12.2018 13:41Редко можно найти специалистов, которых прет с их работы. Это же было ключевое ожидание от стажеров, т.к. без огня в глазах невозможно самостоятельно освоить новые технологии, подходы, влиться в коллектив и сделать что-то полезное за месяц. Был приятно удивлен. :) Был один школьник, который сказал, что может работать только под нажимом. Дави на него, контролируй сроки, и он сделает. Разбежались сразу.
EnotovaMorda
Классно. Когда я учился в МЭИ у нас была так называемая «практика». Я на нее не забил, а честно прошел и работал по том там же. Это колоссальный опыт.
Qiwi — круто! Современной молодежи очень не хватает вот таких инкубаторов.
P.S. Холивар: так расширяться вширь или вглубь. Раньше делал вширь (считай, фулстек)… Теперь ощущения, что ты тогда будешь извечным миддлом. Сейчас ощущение, что правильнее было бы вглубь.
GEG Автор
Спасибо! Правильный фулстек очень востребованная и нужная история, которую многие недооценивают, т.к. чаще всего боятся, вступив, например, из сервера в клиент, резко стать junior. Хорошим fullstack разработчиком стать очень сложно и это требует множества лет экспериментов, исследований и вызовов для себя. У нас было разделение на DBD и серверных разработчиков. Совместная разработка получалась долгой, решения перегруженные. В итоге, приняли решение, что компетенции объединяются. Было много несогласных, но спустя год люди вырасли, разработка значительно ускорилась, а бонусом компания получила несколько крутых тимлидов.