В последнее время на Хабре наметился мощный тренд, начало которому дал пост «необразованная молодежь» — обсуждаем молодых специалистов, как с позиции работодателя, то есть бизнеса, так и с позиции самих спецов, вчерашних или настоящих студентов. Посмотреть можно здесь и здесь.
Мы бы хотели поделиться аналитикой по подбору персонала на стажерские позиции, проекты по разработке продуктов и сервисов ИБ. Мы постарались подойти к описанию процесса максимально безоценочно, не вдаваясь в сложные моральные дилеммы формата «отцы и дети». Все мы когда-то были стажерами, молодыми/неопытными и все рано или поздно сталкиваемся с тем, что как в балете говорят, «приходит опыт — уходит прыжок».
В начале сентября было открыто 2 вакансии: стажер-исследователь и стажер-разработчик.
Кто нам был нужен
В обязанности стажера-исследователя входил анализ уязвимостей и написание сигнатур, а также участие в расследовании инцидентов, требуемый опыт: знание средств защиты информации, стека TCP/IP, знание регулярных выражений, желательно было иметь навыки работы с инструментами анализа трафика.
Для стажера-разработчика, соответственно, на первом месте были такие навыки, как владение языками программирования (Python и C++), плюсом был опыт в области исследований, анализа данных и трафика.
Условия работы: оформление по договору гражданско-правового характера, занятость 20 часов в неделю по гибкому графику и оплата питания.
Первоначально мы планировали отдавать преимущество кандидатам с профильным образованием в области ИБ. Позже предпочтения плавно сместились в сторону резюме, авторы которых могли логично и связно описать, чем они занимались и чем хотели бы заниматься. И дело тут совсем не в технике владения эпистолярным жанром и красоте изложения.
Пример хорошего, годного резюме стажера (с разрешения автора).
Это резюме студента 3-его курса, у которого отсутствует опыт работы. Тем не менее, по резюме можно сделать выводы о его навыках, бекграунде, интересах и общей целеустремленности. Из резюме понятно, что человек хочет программировать, у него есть свои проекты, он не жалеет времени на обучение.
Кандидат успешно сделал тестовое задание и прошел собеседование, но, к сожалению, отказался от нашего предложения, потому что не смог совместить учебу и работу.
Всем, кто скажет, что кандидат в ИТ не обязан писать красивое резюме, я могу сказать:
- Об опытном разработчике говорят его проекты, у стажера их нет (пока).
- Резюме помогает сэкономить время руководителя. Нужно посчитать стоимость часа работы ведущего разработчика, который будет собеседовать всех подряд.
- Первоначально я рассылала тестовое задание почти всем, невзирая на степень лаконичности резюме, но откликались именно авторы «красивых».
Тестовые задания
Начинающим исследователям предлагался вот такой достаточно простой вопрос:
Позже мы заменили задание на более сложное — надо было написать регулярное выражение, которое получает все URL картинок с главной страницы определенного сайта. Неделю после усложнения тестового не было вообще ни одного отклика, и мы уже подумали, не много ли мы требуем, как начали приходить выполненные задания.
Будущим разработчикам мы отправляли следующее тестовое задание:
Вам необходимо создать докер образ для проведения соревнования типа CTF(https://en.wikipedia.org/wiki/Capture_the_flag) на тему IPC в системах UNIX. Образ должен содержать в себе приложение(-я) реализующие следующие задания:
1) Серверное приложение, слушает UDP порт 7777 и при любом запросе выдает ФЛАГ №1 и текстовую информацию где искать второй флаг (shmkey).
2) Приложение использует IPC Shared memory и записывает по адресу shmkey ФЛАГ №2 и инструкции по поиску флага №3.
3) Приложение использует IPC Signals, при поступлении сигнала SIGUSR2 выдает ФЛАГ3.
Результатом выполнения тестового задания является Docker/docker-compose файл и образ с проброшеным 7777 портом + исходные коды задач.
Можете использовать любой язык программирования.
Из 64 стажеров, которым было выслано тестовое задание, выполненное (полностью или частично) прислали 15 человек.
Знакомимся с кандидатами
Первое собеседование проводила я, менеджер по персоналу. В мою задачу входило:
- рассказать о компании, о наших проектах, об условиях работы, вкратце о позиции;
- первоначально оценить мотивацию, модели поведения и навыки;
- донести свое компетентное и обоснованное мнение до руководителя.
Поскольку у большинства стажеров профессионального и жизненного опыта маловато (им просто немного лет), вопросы из области кросс-функциональной работы и взаимоотношений в коллективе задавались более в теоретическом ключе.
Далее на собеседование приглашались руководитель отдела и будущий руководитель стажера.
Небольшая ремарка: почти каждый будущий стажер начинал рассказ о своем в опыта в ИБ с описания попытки подбора пароля от вай-фая соседа при помощи одной из утилит kali linux :)
Эта картинка никогда не бывает лишней.
А теперь я хочу предоставить слово старшему разработчику Алексею tugric.
На самом деле у меня было не много опыта проведения технического собеседования у студентов и самым сложным было снизить планку технических требований к кандидату. Поэтому вопросы были совершенно разные, и не всегда они носили технический характер. В итоге, как бы банально не звучало, мне было важно не сколько проверить огромный багаж технических знаний и навыков (который стажеры-студенты указывают в своих резюме), а понять, как человек мыслит, рассуждает и понять его мотивацию.
Абстрактно беседа состояла из следующих стадий:
1) Знакомство с кандидатом и оценка его психоэмоционального состояния.
Если видно, что человек сильно волнуется, я старался говорить с ним на темы, которые для него максимально комфортны: расспросить о хобби, о прошлых проектах (по информации из гита).
2) Далее следовал детальный разговор по резюме.
Когда дело доходило до навыков, если список слишком большой, предлагал выбрать и побеседовать о тех, в которых кандидат лучше всего ориентируется.
3) Каверзные вопросы или попытка оценить глубину реальных знаний и умение решать проблемы. Самая интересная часть) Спрашивал у кандидата об опыте решения сложных, на его взгляд, проблем и как он их решал. Иногда задавал какой-нибудь вопрос, по типу «Вы разрабатываете какой-либо продукт на вашем любимом языке и встречает ошибку Error 342345. Какие ваши дальнейшие действия?» И смотрю как человек рассуждает.
4) Разбор тестового задания. Задавал следующие вопросы: Какие сложности возникли при выполнении? Что нового узнали? Как вы оцениваете качество своего кода и что могли бы улучшить? и похожие… Иногда просил запустить, скомпилировать, и объяснить некоторые моменты в тестовом задании. Просил сравнить 2 примера ТЗ и описать сильные и слабые стороны каждого.
Константин руководит направлением исследования компьютерных атак. Он проводил собеседования со стажерами на должность исследователя.
Константин считает, что:
Нужна золотая середина между уровнем технических знаний и мотивацией, я бы сказал, что соотношение 60/40 мотивации к техническим знаниям будет идеальным. Мотивация будет отвечать за стремление соискателя развиваться и совершенствоваться в компании, а технические знания определят, какой уровень задач он начнет решать сразу после поступления на работу. Как хороший плюс расцениваю умение решать сложную проблему: сложная задача покажет и сообразительность человека, и ход его мыслей. Конечно, желательно чтобы соискатель рассказывал, как он приходит к своим выводам во время решения тестовых задач, быстрый ответ без объяснений на сложную задачу наводит на мысль что человек ее уже знает.
Как оценить стажера, у которого почти нет практического опыта? Например, предложить ему решить недавний практический кейс из вашей практики. Узнать, как часто ему приходилось работать в команде. Попросить рассказать самые стрессовые ситуации в учебе/работе и как он подходил к их решению.
Вопрос, по которому разошлись мнения наших руководителей: кто лучше, теоретик или практик? Константин отдает предпочтение теоретикам, поскольку отсутствие практики скажется на стажёре лишь в увеличении необходимого времени на выполнение задачи, к тому же, при адекватной нагрузке, практика наработается довольно быстро на хорошую теоретическую базу. В то время как практик без хороших знаний в теории рискует потерять качество своей работы. Мнение Алексея: если бы речь шла об опытном специалисте, то конечно важнее практика, т.к люди обладающие практическим опытом, чаще всего знаком и с теорией. Обратное, не всегда верно.
Оба они единодушны в таком вопросе: чтобы к 4-му — 5-му курсу найти интересную стажировку в перспективной компании, начинать программировать и пробовать ходить по собеседованиям надо как можно раньше. Вот что говорит Константин:
Выберите себе конкретную специальность как можно раньше и постоянно совершенствуйтесь в ней. Поищите сообщества по данной специальности, зачастую они являются огромным источником полезной практической информации. Больше читайте вне университетских задач. Постоянно практикуйтесь в английском языке, для любой IT-специальности это необходимость.
В итоге мы приняли на работу 2-х стажеров. Новички полностью удовлетворяют нашим ожиданиям, показали хороший уровень профессиональной подготовки, втянулись. Мы уверены, что они внесут свой вклад и принесут большую пользу компании.
А теперь предоставим слово самим стажерам, Александру и Михаилу mikeademchenko. После 2-х недель работы в компании мы задали им следующие вопросы:
1. Как готовились к собеседованию?
2. Страшно было?
3. Ожидания от работы?
4. Что повлияло на решение выбрать нашу компанию?
5. Какой вопрос был самым сложным?
6. Оправдались ли ожидания?
7. Какие задачи/работы были интересными.
Александр:
1. Не гарантирую, что этот ответ будет корректен для тех, кто не учился или учится в университете по направлениям, связанным с безопасностью. В первую очередь надо было вспомнить те смежные требованию вакансии дисциплины, которые не отскакивают с языка. По всем вопросам и группам вопросов пробежаться по Википедии. Если в Википедии написано непонятно – копал серьёзную литературу, значит, тема забыта напрочь и вляпаться в неё будет больно. Стандарты, положения, рекомендации, как российские, так и мировые – минимум открыть и пробежать по диагонали, чтобы вспомнить, о чём они и что в них.
2. Не особо. Было скорее нервозно. Может быть, это связано с тем, что я лично не сильно пугливый по природе. Не страшно, что могут не взять (всё же высоко целился и понимал это), но очень не хочется фэйлиться на вопросах, особенно на банальных.
3. Мне кажется, легче особо не выстраивать ожидания, чтобы потом не перенастраиваться на что-то другое. Я только знал, что это должно быть интересно. Ну, надеялся. Таки оказалось.
4. Тут много факторов. Наверное, кроме субъективного (иногда смотришь на сайты компаний и не хочется туда подавать резюме, глючно и нелогично) самое важное это известность компании. Если ты, условно говоря, знаешь, что круто это Cisco, Microsoft, Group-IB, InfoTeCS, Positive Technologies и Касперский, когда тебя туда зовут, “КОНЕЧНО!” это практически автоматический ответ, рефлекторный. Откуда я их знаю? Я слышу о них, натыкаюсь на информацию о них случайно, вижу их на конференциях, знаю об их программах для студентов, читаю их Хабр и т.д. Ну и очевидное типа наличия интересной вакансии, я вот не люблю какое-то направление, а крутой компании нужно только оно. Ну что поделать, значит, нет. А конкретно ПМ исключительно хорошо подходит под то, что мне очень нравится. Это уже субъективная часть, естественно.
5. Я бы не сказал, что такой можно выделить. Когда задаётся вопрос, я обычно или вообще не знаю на него ответа и так и говорю, или знаю достаточно хорошо, чтобы попытаться дать полный и точный ответ. Соответственно в первом случае нельзя определить его сложность, а во втором он для меня всегда простой.
6. Ну… пока не уверен, что уже могу говорить об этом, т.к. присоединился даже не относительно недавно, а ОЧЕНЬ недавно, но пока скорее да. Корректнее будет так – мои страхи НЕ сбылись. Похоже, всего того, чего я боялся, здесь нет. Всё, что могло пойти не так, пошло как надо.
7. Как недавно присоединившийся я пока не занимаюсь большим количеством задач, так что тут полностью корректного ответа дать нельзя. На данный момент я нисколько не скучаю и уже выполняемые задачи для меня не менее интересны, чем то, чем я бы занимался по собственной инициативе у себя дома из чистого интереса.
Михаил mikeademchenko:
1. Повторил материал по темам, указанным в описании вакансии, и по предполагаемым мной направлениям деятельности.
2. Да немного, если говорить об уровне стресса, то я бы описал его как чуть выше ожидаемого.
3. Ожидания оправдались в течении первой недели, я занимался тем, чем и рассчитывал заниматься.
4. Для молодых специалистов в моей области деятельности доступно не много вакансий, так что упускать шанс было не простительно. Также интерес подстегнуло наличие предварительного задания. Оно позволило со всей серьёзностью отнестись к подготовке и сильно увеличило вовлеченность. Задание хорошо отразило характер предстоящей работы, так сказать «триальная» версия будущей деятельности на рабочем месте.
5. Общий уровень стресса в течении собеседования не позволял оперативно оценить сложность вопроса.
6. Да, абсолютно.
7. Интересна вся рабочая деятельность.
В заключение хочу пожелать нашим новичкам удачи и закончить пост описанием собеседования из бессмертных «Стажеров» братьев Стругацких:
Ильинский Игорь Александрович
Он поставил Юру перед собой, отступил на шаг и спросил страшным голосом: — Водку пьешь? — Нет, — испуганно ответил Юра. — В бога веруешь? — Нет. — Истинно межпланетная душа! — удовлетворенно сказал Жилин. — Когда прибудем на «Тахмасиб», дам тебе поцеловать ключ от стартера.
Автор: Ana2121