История о том, как мы искали одного Junior Unity разработчика, а в итоге взяли двух

Давайте для начала представлюсь - меня зовут Илона, я из Питера.

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


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

Эта статья не претендует на истину в последней истанции. Это опыт одной небольшой студии и наше видение всего этого процесса.

В других компаниях это может сильно отличаться.


Был составлен план:

1. Определиться с требованиями к вакансии,
2. Решить, на каких основаниях мы будем отбирать кандидатов на собеседование (тестовое),
3. Что будет в тестовом,
4. Как удобно построить процесс отбора так, чтобы не задолбать нашего старшего разработчика (всё равно в итоге задолбала),
5. Как построить собеседование по итогам тестового, и что спрашивать,
6. Что на самом деле повлияло на наш выбор.

Всего 6 пунктов на одного маленького скромного Джуниора. Но затянулось это почти на 1,5 месяца.

0. ТУТ БУДЕТ ОТВЕТ О ТОМ, ПОЧЕМУ JUNIOR

На тот момент мы были еще маленькими (настолько, что диздок писала я, а не геймдизайнер, которого у нас тогда еще не было).

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


Как? Бюджет ограничен, требований много. Значит, надо сокращать требования к будущему сотруднику и думать, каким образом не ввязываться в сложные проекты ближайшие полгода (всё равно ввязались).


Окей, решено, значит берем Джуниора, даем ему сперва простые задачи и постепенно усложняем (и повышаем зп). Принято.

1. ОПРЕДЕЛИТЬСЯ С ТРЕБОВАНИЯМИ К ВАКАНСИИ

Просто приведу текст вакансии:

История о том, как мы искали одного Junior Unity разработчика, а в итоге взяли двух Gamedev, Разработка, Игры, Работа, Студенты, Длиннопост, IT, Собеседование

2. РЕШИТЬ, НА КАКИХ ОСНОВАНИЯХ МЫ БУДЕМ ОТБИРАТЬ КАНДИДАТОВ (ТЕСТОВОЕ)

Опыт разработки и ответы на устные вопросы мало что скажут. Если нет своего проекта, значит нужно тестовое.


Но тогда одни пойдут делать тестовое, а другие не факт, что сделали свою игру сами.


Поэтому для всех соискателей равные условия:


• Кому-то будет хоть какая-то практика (таких было больше половины),

• Кто-то покажет себя во всей красе (4 человека из ~50 соискателей),

• А кто-то осознает, что это не его, бросит всё и займется интернет-маркетингом (остальные).


Для нас (работодателя и будущей команды) это:


• Оценить адекватность (боже мой, какие кадры только не попадались!),

История о том, как мы искали одного Junior Unity разработчика, а в итоге взяли двух Gamedev, Разработка, Игры, Работа, Студенты, Длиннопост, IT, Собеседование

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

• Увидеть ход мыслей (логику) при решении задачи,

• Увидеть код,

• И самое важно для всех - то, насколько красиво человек сделал свою работу (ниже поясню).

Еще мы всем давали фидбек по коду, с указанием, что хорошо, а что и как можно сделать лучше (со ссылками на мануалы).


Вернемся к красоте


Игру всегда сперва открывала я. Если она не запускалась, запускалась криво, то давали еще один шанс.


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


Если игра запускается, играется, то на ревью нашему старшему.


НО!


Если игра выглядела отвратительно, если использовались цвета вырви глаз, если не было элементарно UI - игра сразу минусилась. Жестко. И навсегда.


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

Я же не дизайнер!

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

Тестовое - это твоя самопрезентация.

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

Сделай красиво. И работодатели к тебе потянутся.


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

Мы его взяли. В его исполнении всегда всё было четко.

3. ЧТО БУДЕТ В ТЕСТОВОМ

История о том, как мы искали одного Junior Unity разработчика, а в итоге взяли двух Gamedev, Разработка, Игры, Работа, Студенты, Длиннопост, IT, Собеседование

Схема задания

Тестовое задание на Junior Unity разработчика:

1) Шарик якобы двигается по коридору, но по факту это пол с потолком двигаются по экрану
2) В полу и потолке есть дыры. Нажатие на экран меняет гравитацию и шарик перепрыгивает с пола на потолок
Повторное нажатие возвращает его вниз
3) Задача игрока - не допустить, чтобы шарик провалился в дырку
4) Необходим минимальный игровой интерфейс: пауза, старт, подсчет очков и пр.
5) Писать на Unity, можно 3D, можно псевдо-2D
Рандомный размер дыр и платформ
Главное, чтобы игралось, работало и не ломалось
Никакой физики и настоящей гравитации не требуется. Должен быть только работающий прототип.
По предварительным прогнозам, тестовое задание должно занять несколько часов.
Когда будешь делать задание, опиши этапы, и сколько часов что заняло
Когда выполнишь, заливаешь исходники в облако и даешь ссылку

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

4. КАК УДОБНО ПОСТРОИТЬ ПРОЦЕСС ОТБОРА ТАК, ЧТОБЫ НЕ ЗАДОЛБАТЬ НАШЕГО СТАРШЕГО РАЗРАБОТЧИКА (ВСЁ РАВНО В ИТОГЕ ЗАДОЛБАЛА)

Часть этого процесса я описала выше - перед ревью разраба программу на элементарные действия всегда тестировала я.


Не кидала программы по одной, а раз в 3-4 дня выделялось несколько часов на разбор тестовых и написание комментариев, отдельно от основного рабочего процесса. Но, это получалось далекооо не всегда :)


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

История о том, как мы искали одного Junior Unity разработчика, а в итоге взяли двух Gamedev, Разработка, Игры, Работа, Студенты, Длиннопост, IT, Собеседование

Именно этого мы и добивались - оскорбить и унизить как можно больше людей

История о том, как мы искали одного Junior Unity разработчика, а в итоге взяли двух Gamedev, Разработка, Игры, Работа, Студенты, Длиннопост, IT, Собеседование

Да!

История о том, как мы искали одного Junior Unity разработчика, а в итоге взяли двух Gamedev, Разработка, Игры, Работа, Студенты, Длиннопост, IT, Собеседование

А это мимими^^


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

5. КАК ПОСТРОИТЬ СОБЕСЕДОВАНИЕ ПО ИТОГАМ ТЕСТОВОГО И ЧТО СПРАШИВАТЬ

Несколько общих вопросах о человеке, увлечениях, такой small talk, чтобы расслабиться и настроиться на волну - собеседование будет долгим.


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


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

В какие игра играет на телефоне, консольные, какие нравятся больше всего? Почему? А какая для тебя игра самая красивая? А самая крутая механика? А монетизация? А почему? А какую игру ты бы сам хотел сделать? Почему вообще геймдев?


И на десерт, список вопросов для собеседования по Unity:

1. Пул объектов, знакомы? Работали, представляете, что это такое и для чего делается?
2. Знакомы с разными Update? (FixedUpdate, Update, Late Update)
3. Работали с Coroutine? (IEnumerator) Для чего они нужны? Можно ли прерывать их выполнение извне?
4. Чем плох метод Find?
В чем ошибки и как можно оптимизировать следующий код:
История о том, как мы искали одного Junior Unity разработчика, а в итоге взяли двух Gamedev, Разработка, Игры, Работа, Студенты, Длиннопост, IT, Собеседование
5. Работали ли с Particle System?
6. Работали с анимациями?
7. Работали ли с Joint'ами?
8. Unity UI? Canvas Group?
9. Для чего нужны Layers в Unity?
10. Services (реклама и пр.)
11. AI
12. Profiler
13. Frame Debuger

6. ЧТО НА САМОМ ДЕЛЕ ПОВЛИЯЛО НА НАШ ВЫБОР

Помните идеального кандидата, которого мы не взяли?


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

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

Так и сказал.


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


Оставшиеся 3 кандидата:

1. Хороший код, хорошие ответы.

Своя игра в сторе приносит небольшие деньги, ему ее продвигают. Пишет еще одну. И всё. У него даже хобби никаких нет.

Человек одновременно в геймдеве и одновременно вне его. Сам по себе. И ему хорошо. Я даже не помню, как он выглядел и что у него была за игра.

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

История о том, как мы искали одного Junior Unity разработчика, а в итоге взяли двух Gamedev, Разработка, Игры, Работа, Студенты, Длиннопост, IT, Собеседование

Feed me!

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

Итоговые оценки у первого были значительно выше, чем у второго. Ответы второго были вообще самыми слабыми из всех.

И мы взяли их обоих.

Потому что можем.


На самом деле, я у директората требовала первого. А они хотели второго (Варгейминг же). Вот такое субъективное мнение.

И разразился горячий спор. И длился он 7 дней и 7 ночей. Всё окружающее было испепелено, а наши разработчики с художниками сбежали к конкурентам, а хозяева БЦ выставили счет за поджог.

Пока директорат не стукнул по столу и не рявкул:

- Берем обоих! Одного тебе, другого мне!

На проекты мы их реально потом так и делили. Пока я одинаково не полюбила обоих.


Что еще объединяло этих 4 кандидатов?

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

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

3. Наличие ссылок на GitHub. Да, мы их смотрели.

ВЫВОДЫ

1. Внимательно читайте требования к резюме и подгоняйте резюме под конкретную компанию (и себя тоже).


2. Соглашайтесь на тестовое. Особенно если вы джун. Разберитесь, сделайте красиво и положите в свое портфолио. Мне написали несколько человек с просьбами просто скинуть тестовое, без претензий на вакансию. Это круто


3. Делайте красиво! Делайте лучше, чем можете. Каждый новый проект делайте лучше всех своих предыдущих вместе взятых. Даже если это просто тестовое.

Рано или поздно это окупится.


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

Это раздражает и уже настраивает сотрудника против вас.

Соберите все вопросы в одно сообщение, не отправляйте их по одному.

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


5. Готовьтесь к собеседованию. Не нервничайте на нем.

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

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


6. Даже если вы всё сделали идеально, всё равно не факт, что вас возьмут. Грустно, но факт.

Личностный фактор всегда будет ролять.

Мы ищем людей в команду под себя. Чтобы не только будущему сотруднику в компании было комфортно, но и компании было комфортно с ним. И не всегда выигрывают знания.

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


7. Делайте собственные проекты, вписывайтесь в хакатоны, в бесплатные курсы, стажировки, собирайте свою команду в универе, создавайте пет-проекты, и обязательно показывайте их потенциальному работодателю.


Мой канал в Телеграме @job_junior


Там же можете задавать мне вопросы про первую работу @ viis_w

Лига Разработчиков Видеоигр

6.6K поста22.1K подписчика

Добавить пост

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

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

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

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


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"

Вы смотрите срез комментариев. Показать все
12
Автор поста оценил этот комментарий

- Постоянно вижу вот такого формата вакансии.

1. Что бесит, это их одинаковость, вот прямо под копирку. Все одинаковые. Такие конторы сразу нахер послать хочется.

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


ИМХО Если джуниор может за 3-4 часа с чистого блокнотика навоять код, гармонично подставить граф, накатить пару уникальных фич, запилить поключение рекламных партнерок и вечеров выставиться в Стор. То у меня вопрос, а какого фига ему Ваша контора? Углубить знания, на врятли он сможет, развиваться в других направлениях, конечно, но не в тех в которые ему были бы нужны, если он захочет получить знания по 3Д моделированию, Ваша дирекция костями ляжет, но не подпустит его к спецам по 3Д моделированию, за то познакомит с уборщиком, поваром и девочкой на побегушках. Чтоб он им помогал.

Звучит бредово, знаю, но это правда жизни. Компания хочет охуеть как много и платить за это в формате "стол, стул, кипяток и вид из окна на психбольницу".


3. Чтобы выбирать спеца не только по знаниям, но по единению мыслей. По духу. Вы сначала себя покажите, в каком направление Вы думаете. Опять же 80% сотрудников проводящих собеседования, сидят и думаю о всякой фигне, как его все заебало, зарплаты не хватает и т.д И этот тут сидит хуйню несет, надо его выпроводить и пойти перекурить. Вы даже не слушаете их и отправляете завуалировано на 4 стороны.


ИМХО Был у меня опыт устраиваться вот в аналогичную компанию. Только по другому ЯП.

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

Соглашаются.

Дают листочек бумаги и карандаш, мол пиши. Были посланы матом, бумагу порвал, карандаш закинул за шкаф.

На удивление, принесли ноут с открытым редактором.

Налили кофе, сахар положили и дали 2 часа на творение. Не мешали от слов совсем.

Запилил простенькую программку из разряда "конструктор-аналитик".

Добавил пару "вредных" фич, которые видны опытному разработчику. Но не тестировщикам.

Хотел еще простенький ИИ запилить, но начали торопить, над душой стоять, в итоге получилось кривоватенький ИИ-график. Оставил пометку, что мол иногда кривит душой и посылает "нахер" пользователя.

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

- В итоге предложили 15к руб. на стажировку и 20к после неё. Работать по 60, а потом по 40 часов, раб.место в коридоре возле выхода стол поставят (там уже сидело несколько таких несчастных, которые взяли на стажировку).

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

раскрыть ветку (8)
10
Автор поста оценил этот комментарий

Ждал в конце истории сказ о том, как тебя взяли СТО в варгейминг или ты запилил инди поделку на мульён. А то сказка про дартаньяна не законченная какая-то вышла.

1
Автор поста оценил этот комментарий

Судя по вашим постам в профиле, вы либо сказочник, либо просто странный тип

раскрыть ветку (6)
2
Автор поста оценил этот комментарий

просто странный тип. это история из прошлого этапа моей жизни.

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

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

раскрыть ветку (3)
Автор поста оценил этот комментарий

Тем не менее общей сказочности и вашего незнания что такое разработка это не меняет :)

раскрыть ветку (2)
Автор поста оценил этот комментарий

- Краткий рассказ не всегда может отражать истинную суть. Доказывать, что либо я не буду. 

раскрыть ветку (1)
Автор поста оценил этот комментарий

Уже и не надо, все ж понятно :)

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку