Чтобы вам за это ничего не было


Пару лет назад к нам в 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)


  1. EnotovaMorda
    28.12.2018 15:05
    +1

    Классно. Когда я учился в МЭИ у нас была так называемая «практика». Я на нее не забил, а честно прошел и работал по том там же. Это колоссальный опыт.
    Qiwi — круто! Современной молодежи очень не хватает вот таких инкубаторов.
    P.S. Холивар: так расширяться вширь или вглубь. Раньше делал вширь (считай, фулстек)… Теперь ощущения, что ты тогда будешь извечным миддлом. Сейчас ощущение, что правильнее было бы вглубь.


    1. GEG Автор
      29.12.2018 01:58

      Спасибо! Правильный фулстек очень востребованная и нужная история, которую многие недооценивают, т.к. чаще всего боятся, вступив, например, из сервера в клиент, резко стать junior. Хорошим fullstack разработчиком стать очень сложно и это требует множества лет экспериментов, исследований и вызовов для себя. У нас было разделение на DBD и серверных разработчиков. Совместная разработка получалась долгой, решения перегруженные. В итоге, приняли решение, что компетенции объединяются. Было много несогласных, но спустя год люди вырасли, разработка значительно ускорилась, а бонусом компания получила несколько крутых тимлидов.


  1. Oxoron
    28.12.2018 18:25

    Школьники-стажеры по скиллу не сильно отличаются от студентов-стажеров. Но с ними больше проблем.

    1. Стажировка — это время. Вполне возможно, время перед экзаменами. И если самим школьникам на это может быть наплевать, их родителям — нет.
    2. Нынешний школьник — завтрашний студент. Вполне возможно, студент в другом городе.
    3. Менторы далеко не всегда горят желанием учить. Один из моих знакомых честно и радостно учил своего стажера, а затем осознал: «я ращу себе конкурента».


    1. GEG Автор
      29.12.2018 01:32
      +1

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


    1. Cerberuser
      29.12.2018 07:05

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


    1. EnotovaMorda
      29.12.2018 10:14

      Ну насчет конкурента… Это он зря. Можно узнать технологию, но стиль мышления и инструментарий мышления нарабатывается годами. И да, знаниями надо делиться, такое в нашей профессии возвращается. Проверено ;)


  1. FragCounter
    29.12.2018 12:57

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

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


    1. GEG Автор
      29.12.2018 13:41

      Редко можно найти специалистов, которых прет с их работы. Это же было ключевое ожидание от стажеров, т.к. без огня в глазах невозможно самостоятельно освоить новые технологии, подходы, влиться в коллектив и сделать что-то полезное за месяц. Был приятно удивлен. :) Был один школьник, который сказал, что может работать только под нажимом. Дави на него, контролируй сроки, и он сделает. Разбежались сразу.