{"id":3973,"url":"\/distributions\/3973\/click?bit=1&hash=69c55e3031b7c5b32fd446d1bcadb4386d9d153a7ff5ac11e39b7566b22d4ce3","title":"\u041c\u0430\u0440\u043a\u0435\u0442\u043f\u043b\u0435\u0439\u0441 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0443\u0441\u043b\u0443\u0433 ","buttonText":"\u042d\u0442\u043e \u043a\u0430\u043a?","imageUuid":"06dd1ba1-1f1b-50d7-87e0-bba4328182c5","isPaidAndBannersEnabled":false}

Хочу в геймдев. Реалии сегодня - как устроен процесс найма разработчиков. Разберем на примере Unity Middle Developer

Всем привет! Меня зовут Илья - я работаю в TinyPlay и являюсь основателем Pixel Incubator - в нем мы бесплатно учим людей делать игры и разбираем множество аспектов, в том числе дальнейшее трудоустройство. В этой статье я хотел бы рассказать о том, как сегодня проходит процесс найма разработчиков, разобрать реальные кейсы и этапы собеседований, а также скинуть примеры тестовых заданий для разработчиков игр.

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

1. Размещение вашего резюме (обычно это HeadHunter, DTF, LinkedIn или что-то еще, но могут быть и различные геймдев конференции). Обычно занимает день.

2. Сбор откликов и назначение созвонов с HR. Обычно на этот этап может уйти до недели.

3. Первый контакт с HR (менеджером по подбору персонала). Созвон на 15-30 минут.

4. Созвон и интервью с лидом разработки. Созвон на 30-120 минут.

5. Выполнение тестовго задания (не всегда, но все же). Обычно не более нескольких часов - если занимает больше времени - задумайтесь.

6. Знакомство с менеджером проекта, другими лидами, главным HR. Обычно 15-30 минут.

7. Получение оффера / отказа. Практически сразу после знакомства с остальными менеджерами, если нет других кандидатов.

8. Трудоустройство и выход на работу. Обычно 2-3 дня.

Пункты 4-5 могут иногда меняться местами, а иногда некоторые из них отсутствуют. Но я описал общую схему. Итого - мы видим, что на весь процесс может уйти 1-2 недели, что конечно же не круто. Но в условиях нынешнего дефицита кадров - это процесс стараются адаптировать и ускорить (хотя пока не очень успешно).

Далее разберем все поэтапно, с примерами.

Подготовка и размещение резюме

Данный этап позволяет нам максимально рассказать о себе и своем опыте работы, показать примеры своих работ, а также помочь фильтровать вам работодателей, а работодателю - найти вас. Постарайтесь рассказать все как можно более подробно, чтобы избежать лишних вопросов на собеседовании.

Что следует рассказать в своем резюме:

- Ваши навыки. Если вы идете на Unity разработчика - то с чем больше всего работали и умеете (бизнес-логика, ui, графика или что-то еще);

- Ваш трудовой стаж и опыт работы, с подробным описанием того, что делали на предыдущих местах работы или в проектах;

- Знания языков, ожидания от работы, желаемый график;

- Готовы ли на удаленку, релокацию и прочее.

Сбор откликов и назначение созвонов с HR

После того, как вы разместили резюме, вы будете получать отклики, в которых будут указаны контакты HR, либо какая-то уточняющая информация.

Там же вы сможете назначить свои первые созвоны / встречи с вашими будущими коллегами по цеху.

Первый контакт с HR

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

Обычно этот этап занимает примерно 15 минут, после чего HR согласует дату и время интервью с лидом разработки, либо выдаст тестовое задание.

Здесь же у вас могут попросить любые ссылки, которые помогут вам для ускорения трудоустройства. Это могут быть ссылки на гит, ваши проекты в Google Play и др.

Интервью с лидом разработки

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

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

Например, вопросы на тему мобильной разработки для Middle Unity Developer:

  • Структуры данных, основы ООП и другие вещи на понимание C#;
  • Вопросы об оптимизации UI;
  • Вопросы по паттернам проектирования;
  • Вопросы по API Unity, в том числе корутинам;
  • Вопросы про различные подводные камни;

Если вы отвечаете на все это и лида все устраивает - он может дать вам тестовое задание, либо сразу пропустить на след. этап.

НО! Очень, блин, жирное НО!

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

Выполнение тестового задания

Здесь все довольно просто. Вам дают простенькое задание (в большинстве случаев. Если же дают что-то объемное - смело шлите этих людей за хлебом) и просят сказать, за сколько вы управитесь. Выполнив его, через некоторое время после проверки вас отправят на следующие этапы (ну или скажут досвидули).

Иногда, тестовых заданий нет. Иногда есть. Я приложу здесь пару примеров тестовых заданий для Unity Middle Developer в мобильном сегменте. Попробуйте свои силы, а то вдруг вы доросли, но не знаете об этом :D

Знакомство с руководством

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

После этого следует небольшая пауза и вам выносят финальный вердикт - либо оффер, либо - досвидули.

Получение оффера

Если вы успешно прошли все этапы интервью - для вас будет подготовлен оффер. Это некое предложение о выходе на работу с указаниями условий для будущего трудоустройства.

Примерно так может выглядеть оффер (для Unity Middle Developer):

Там же будут указаны условия вашего будущего трудоустройства. Как правило, вам будет дан какой-то испытательный срок (но не обязательно).

Трудоустройство

После всего этого, вы подаете документы, необходимые для трудоустройства и выходите на работу. Здесь вроде все просто и понятно.

Итоги

Примерно так выглядит полный флоу трудоустройства в наше время, в качестве Unity разработчика. Если у вас остались какие-либо вопросы - смело пишите и я отвечу.

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

0
109 комментариев
Написать комментарий...
Andrey Apanasik
Пункты 4-5 могут иногда меняться местами, а иногда некоторые из них отсутствуют. Но я описал общую схему. Итого - мы видим, что на весь процесс может уйти 1-2 недели, что конечно же не круто. Но в условиях нынешнего дефицита кадров - это процесс стараются адаптировать и ускорить (хотя пока не очень успешно).

Я бы сказал, что почти все пункты могут меняться или отсутствовать. Тут всё от уровня зависит. Специалистов уровня Синьор и выше хантят только в путь через знакомых без резюме и даже без части собеседований (после короткого с HR сразу с лидом/CTO).

Ответить
Развернуть ветку
Илья Сергеич
Автор

Ну да. Я примерно воркфлоу в среднем расписал :D

Ответить
Развернуть ветку
Andrey Apanasik
Постарайтесь рассказать все как можно более подробно, чтобы избежать лишних вопросов на собеседовании.

В целом да, но скрин с примером неудачный.
- Не нужно в навыках писать всё. Если идёте на Юнитишника, то нет толку писать, что знаете JS, ES6.
- Если вакансия мидла и выше, то нет смысла засорять список всякими базовыми вещами типа "знание ООП", "git". Их и так все знают. Эти вещи лишь отвлекают внимание.
- Опять же, если идёте Юнитишником, то нет смысла расписывать, что вы знаете MySQL. Достаточно одного SQL или просто "реляционные БД".

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
3 комментария
Xafe

Можно указать MySQL. Если ты с ним имел опыт либо просто изучал его, разница с PostgreSQL таки есть.

Ответить
Развернуть ветку
17 комментариев
Александр Сирота
Если идёте на Юнитишника, то нет толку писать, что знаете JS, ES6

если знанию уровня Hello World, то да толку нет, но я считаю все же лишним не будет, работа с разными API соцсетей и сервисов требует знания js

Ответить
Развернуть ветку
4 комментария
Илья Сергеич
Автор

Да, спасибо за уточнение.

Ответить
Развернуть ветку
Иван Колчин

Хорошая статья, которая, к сожалению, мало для кого может понадобится. Те, кто уже в индустрии, и так понимают, как будет проходить прием на работу Милла, а тем, кто только ищет первую работу, надо знать довольно много вещей, который не нашли отражения в статье. Например: какой проект делать для партфолио, чтобы не быть проигнорированным HR, как писать код так, чтобы тех лид не ловил фейспалмы, глядя на гит, и тд. Причем это вопросы, которые куда сильнее влияют на первое трудоустройство, чем информация о личных разговорах.
Я, когда искал первую работу, полтора месяца получал отказы от HR, не доживая до собеса. В какой-то момент за один день отправил резюме в 40 компаний. И все это время я думал, что у меня просто скиллов не хватает. А потом попал на свой первый технический собес и прошел его настолько хорошо, что меня ещё до его окончания позвали работать. Как мне потом сказал шеф, весь этот игнор был из-за отсутствия ссылки на проект в гуглплее

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
ДЕЛА ИГРОДЕЛА
а вот насчет мутозить 2-3-4 часа, расслабься и наслаждайся

Говорят у рубистов где-то так и происходит. Если всё проходит хорошо и все довольны, то потом что не день, то получение наслаждения. Шучу конечно, друзья рассказывали)

Ответить
Развернуть ветку
2 комментария
Денис Кадыков

что за говно? Выкладываешь портфолио (мы же мидлы), игноришь спам от HR у которых есть якобы вакансии, ждёшь письма от людей которые занимаются делами (технические директора, лиды, проджек менеджеры и т д), на вопрос о "тестовом задании" отвечаешь типа "-я начинаю работать сразу, через пару дней скажите остаюсь я или нет, если нет то не оплачиваете" Профит.

Профессия HR это видимо какое то разводилово, постоянно появляются новые девчёнки которые набивают себе "кадровый резерв" не имея никаких вакансий. Надоедают как работодателям, так и самим программистам. Может на западе как то по другому, но на пост Совестком пространстве именно так.

Ответить
Развернуть ветку
ДЕЛА ИГРОДЕЛА

Недавно смотрел статью про hr с очень откровенными фотографиями.
https://ebanoe.it/2021/11/12/hr-new-trends/

Ответить
Развернуть ветку
Государственный теркин30см

конечно, ведь техдиру, лиду и пму нечем заняться, кроме как общаться со всеми подряд.

Ответить
Развернуть ветку
Xafe

He xoдите дети в Game Dev гулять!
Also Unity это в 99% случаев мобильные дрочильни.

Ответить
Развернуть ветку
Илья Сергеич
Автор

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

Ответить
Развернуть ветку
4 комментария
Евгений Серегин

Зато хоть оптимизации научат.

Ответить
Развернуть ветку
1 комментарий
ДЕЛА ИГРОДЕЛА
6. Знакомство с менеджером проекта, другими лидами, главным HR. Обычно 15-30 минут.

Сам я последний раз проходил собеседования лет ХЗ-надцать лет назад, но слежу за процессом из рассказов знакомых. Вот реально даже сегодня списывался с подругой, которую мурыжили 3 часа. 15-30 минут? Покажите где?
Айти, где 90% или около того - это аутсорс и аутсаф, там процесс четко привязан к заказчику. Кандидата продают за деньги с накруткой и смотрят под хвостом целым отделом. С играми даже не знаю, лучше или хуже, но это уже продуктовое направление. И здесь человек нужен такой, чтобы доверять ему процесс продукта, а не услуги. Как за 15-30 минут можно этого добиться? Ну опять же, ХЗ.

Ответить
Развернуть ветку
Andrey Apanasik

It depends.
1. Я проходил собез к Совокотам. Там часа два обсуждали различные темы.
2. Текущие оферы получаю обычно после 20--40 минут разговора с лидом/CTO.
Всё очень зависит от компании и проектов.

Ответить
Развернуть ветку
3 комментария
Илья Сергеич
Автор

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

Ответить
Развернуть ветку
2 комментария
Илья Сергеич
Автор

Я не говорю про аутсорс. Я говорю про работу в студию над внутренними проектами

Ответить
Развернуть ветку
3 комментария
Непростой микроскоп

Про то, код во время интервью это прям смешно, конечно. Стоимость false positive гораздо выше, чем false negative.

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

При желании, кстати, вопросами можно закопаться так глубоко, что просьба реализовать какую потоко-безопасную очередь покажется просто раем. (Я хз, что там модно в Unity сейчас. Я смотрел на него, в основном, через IDA, ILDasm и исходники самого движка. Просто привел пример, который заменяет собой 333 вопроса)

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

Ответить
Развернуть ветку
Внезапный ящик
Попросить реализовать какую-то максимально простую штуку в конце интервью помогает

Увы, но это не помогает ¯\_(ツ)_/¯

Я хз, может у Вас просто какая-то зверская интуция, но я таким вещам не доверяю :-)

Более того, по моим наблюдениям техдрочево и лайвкодинг используется в 2 случаях:

А) Народ сам не знает чего хочет, но краем уха слышал про лайвкодинг.

Б) Максимально по возможности снизить самооценку соискателю, сбить его цену, ну а заодно оценить сколько на нем можно ездить.

Стоимость false positive гораздо выше, чем false negative.

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

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

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

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

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

В конце-концов можно будет сравнить решения (и подходы) разных людей. Сделанный человеком за пару вечеров небольшой проект говорит о нем куда лучше, чем его ответы во время дрочево-собеседования, т.к. IRL никто не работает в режиме лайв-кодинг и глупых вопросов. А вот решение какой-нибудь простенькой задачки на собеседовании за короткое время будет говорить только о том, что соискатель наверное умеет решать примитивные задачи за ограниченное время. В реальной же жизни человек на работе получает таску и пилит ее сам по себе какое-то время, и каждый может пилить по разному. На митингах все тоже будут обсуждать конкретные вопросы по проекту, а не пузырьковую сортировку, очереди и заполнение матрицы змейкой. Если надо оценить соискателя, то оценивание должно быть все же приближенным к реальным условиям.

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

В конце-концов по тестовому проекту потом и развернутый фидбэк легко написать.

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

Ну по крайней мере это вот все наиболее эффективные практики, а за 10+ лет я чего только не испробовал.

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

Ответить
Развернуть ветку
1 комментарий
Илья Сергеич
Автор

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

Ответить
Развернуть ветку
Илья Сергеич
Автор

Интересный опыт - даешь статью :D

Ответить
Развернуть ветку
3 комментария
777yur0k
Попробуйте свои силы, а то вдруг вы доросли, но не знаете об этом

Попробовал. Взял третье задание. За 2 часа сделать не успел. Реализовал контроллер персонажа, стрельбу и физику (чтобы игрок не выходил за границы сцены и снаряды исчезали при столкновении с объектом).

Ответить
Развернуть ветку
Dovatur

А есть ли, интересно, стратегии вкатывания в gamedev, не для технаря-программиста?

Ответить
Развернуть ветку
maxys146

Для PM или PO?

Ответить
Развернуть ветку
Valentin Izmalkov

Если вопрос про Арт'ов, то портфолио на artstation и т.п. решает.

Ответить
Развернуть ветку
2 комментария
Мятный Кот

А про найм джуниоров расскажете?

Ответить
Развернуть ветку
Евгений Серегин

Вижуал студио знаешь, как запускать? Принят.

Ответить
Развернуть ветку
7 комментариев
Artem Mordanov

Но ведь пример тестового совсем не сложный. Это действительно уровень middle? Видимо вариант "может быть вы доросли, но не знаете" имеет место быть.

Ответить
Развернуть ветку
Илья Сергеич
Автор

Да, но дьявол, кроется в деталях :) Ибо там будут смотреть на то, как ты проектировал проект, как пользовался API Unity, какие подходы и паттерны использовал.

Ответить
Развернуть ветку
6 комментариев
Сергей Вырво

Статья интересная, особенно после просмотра кучи подобных. Тут все в кучке, да и в принципе все так и есть. Было что попадал на всякие задания... из которых уже можно было слепить игру готовую, только аналитику прикрути и готово. На самом деле тебя могут просто не взять из-за того что твой стиль написания кода не соответствует стилю лида (если есть возможность лучше изучить его стиль). И в основном все как везде (в других сферах).

Ответить
Развернуть ветку
Евгений Васин

ТЗ фееричны.

"Здоровье = Здоровье - Урон * Защита (0 - 1)"
Что за бред в ТЗ написан? Защита обычно измеряется в целых, а не дробных числах. При росте защиты должен уменьшаться урон, а не наоборот. Наниматели не дружат с арифметикой.

Писать внутренний браузер в игре - глупость.

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

Давать игру типа "танк" на тестовом задании неправильно. Я либо потрачу на нее гораздо больше времени, чем тестовое задание заслуживает, либо сделаю очень урезанную ублюдскую игру. В компании принято так спешить?

Ответить
Развернуть ветку
Илья Сергеич
Автор

ТЗ всегда смех на палке)

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Иван Колчин

У меня на это ушло полтора года (причем из этого времени месяцев на 7 вообще забил и ничего не делал). До этого работал промышленным альпинистом. Скиллбокс и подобных лучше вообще не трогать (код у них даже не уровня Джуна, а уровня человека, который первый раз в жизни юнити открыл). Сам я учился у сакутина, курсы мне обошлись тысяч в 50, и они весьма хороши, особенно если навыков в программировании почти нет, но здесь есть 2 нюанса: 1.сейчас курсы эти стоят в 5 раз дороже, 2. Сакутин сам по себе крайне неприятный чувак, так что, устроившись на свою первую работу, очень раз, что больше с ним никаких отношений не имею.
Можно развиваться и самостоятельно, но тогда надо будет стремиться искать критику во всех доступных местах, так как без нее далеко не всегда просто увидеть свои проблемы. А самостоятельный поиск критики может восприниматься как форма мазохизма

Ответить
Развернуть ветку
Данил Свечков

"Вопросы по API Unity, в том числе корутинам"

А что это значит? API Unity это же справочник. Его нужно наизусть знать что ли?

Ответить
Развернуть ветку
Билл Гейтс

Меня спрашивали "а корутины в отдельном потоке выполняются или нет?"

Ответить
Развернуть ветку
8 комментариев
Креативный Директор
как устроен процесс найма разработчиков

легко устроен - годных берём, негодных заворачиваем (можно в ковёр)

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Роман К

Интересно а если научишься программировать в Bolt, который стал частью юнити 2021, то есть шансы устроиться или такие никому не нужны т.к. код никто не поймёт и не поправит/доработает кроме автора?

Ответить
Развернуть ветку
Илья Сергеич
Автор

Разве что в какую то инди команду, которая так же использует Bolt. Но в основном везде используют C#

Ответить
Развернуть ветку
Alexandr Soltys

Учите ECS, чуваки

Ответить
Развернуть ветку
Читать все 109 комментариев
null