Советы по собеседованию с разработчиком Unity3D |
За последние 13 лет я наблюдал за процессом собеседования по обе стороны стола. Следующие советы можно применять для различных технологий, но в основном они предназначены для тех, кто проходит собеседование на должность разработчика Unity3D на полный рабочий день или по контракту.
Процесс найма обычно можно разбить на четыре основных препятствия:
- Введение
- Быстрая оценка
- Тщательная оценка
- Предложение
Шаг 1: Введение
Работа в Unity3D обычно предназначена для очень желательных должностей, таких как разработка игр или виртуальная реальность. Это означает, что конкуренция может быть довольно высокой за хороший контракт с Unity3D или штатную должность. Чтобы продвинуться в процессе собеседования, вам нужно будет выделиться из массы, используя свое портфолио, резюме и сопроводительное письмо. Резюме и сопроводительные письма довольно стандартны для большинства отраслей; существует множество онлайн-ресурсов, посвященных им, поэтому я остановлюсь на каждом из них, а затем сосредоточусь на портфолио Unity3D.
Один пункт, который я хотел бы убедиться, что вы не упустите из виду в резюме, заключается в том, чтобы убедиться, что он находится в формате файла, который может легко просматривать каждая ОС, например PDF. Работодателя может разочаровать попытка открыть документ «Страницы» на своем ПК только для того, чтобы в нем отсутствовали шрифты и он был странно отформатирован из-за преобразования файлов.
Один пункт, который я бы удостоверился, что вы не упустите из виду в сопроводительном письме, — это на самом деле написать его. Я понимаю, что гораздо проще просто отправить резюме, но сопроводительное письмо — это ваш большой шанс продать себя. Вы должны изучить компанию, в которую вы подаете заявку, и адаптировать свое письмо к их идеалам и потребностям. Это ваш шанс подчеркнуть свой прошлый опыт, который иллюстрирует навыки, которые они ищут. Если вы не можете собраться с силами, чтобы написать сопроводительное письмо для потенциальной работы, возможно, эта работа вам не подходит. В идеале вы должны быть взволнованы работой, и ваше волнение должно быть отражено в сопроводительном письме.
Хотя сопроводительное письмо и резюме важны, именно портфолио поможет вам пройти этот шаг для работы в Unity3D. Я преподавал целый курс под названием «Онлайн-портфолио» в качестве адъюнкт-лектора в Университете Батлера. Мы не можем рассказать здесь обо всем, но ключевыми моментами являются демонстрация вашей прошлой работы, четкое определение вашего вклада и, в конечном счете, доказательство того, что вы будете полезным для их команды. Портфолио может быть чем угодно: от интерактивного веб-сайта с примерами, которые они могут загрузить и воспроизвести, до документа со скриншотами и краткими абзацами, описывающими несколько проектов и ваш вклад. Если у вас нет проектов, которыми вы могли бы поделиться, пришло время погрузиться в хакатон или начать хобби-проект. Кроме того, если у вас есть код, которым вы можете поделиться, я бы также включил ссылку на ваш github как часть вашего портфолио.
Шаг 2: Быстрая оценка
Если вы успешно выполните шаг 1, вас, как правило, попросят пройти собеседование по телефону или онлайн-тест. В обоих этих случаях компания пытается проверить вас, чтобы убедиться, что вы стоите времени и денег для более тщательной оценки. Это особенно актуально для собеседований за пределами штата, поскольку выезд на место в этом случае может быть дорогостоящим.
Телефонные интервью и онлайн-тесты обычно связаны с техническими проблемами кодирования. Лучшее, что вы можете сделать, это практиковаться. Для этого есть сайты, например ХакерРанг которые предоставляют примеры задач кодирования. Все те, что я пробовал, включают опцию C#, поэтому их можно применить к Unity3D. Пройдите столько, сколько сможете, чтобы подготовиться к тесту, никогда не переусердствуйте. Попытайтесь охватить общие структуры данных, алгоритмы поиска и алгоритмы сортировки, а также плюсы и минусы использования каждого из них.
Помимо общего кодирования, вы также захотите освежить свои знания в конкретных темах Unity. Вот несколько примеров того, что вам следует знать: наборы ресурсов, пакетная обработка, сопрограммы, вызовы отрисовки, объекты с поддержкой сценариев, шейдеры (фрагментированные и вершинные), отбраковка, отладка и профилирование. Отладка и профилирование — моя любимая тема для вопросов, когда я беру интервью у потенциального сотрудника. Я хочу убедиться, что вы знаете, как устранять неполадки. Вы знаете, как добавить точки останова в вашу IDE? Знаете ли вы, как диагностировать всплески кадров в секунду? Вы знаете, как отследить утечку памяти? Если вы ответили «нет» на любой из этих вопросов, уделите некоторое время изучению профилирования и отладки перед следующим собеседованием.
Наконец, рассмотрим некоторые шаблоны проектирования, которые обычно используются в Unity3D. «Объектный пул» — отличный шаблон для уменьшения задержек при создании экземпляров. «Цепочка ответственности» используется в большинстве систем ввода, чтобы предотвратить запуск нескольких коллайдеров в событиях взаимодействия с пользователем. «Наблюдатель» обычно используется для прослушивания событий, отправляемых низкоуровневыми объектами, такими как уничтожение врага. «Фабрика» часто используется в пользовательских интерфейсах для создания общих элементов, таких как списки для таблиц лидеров и экраны выбора инвентаря.
Шаг 3: Тщательная оценка
Если вы дошли до этого момента, то они заинтересованы, и вы, скорее всего, один из их лучших кандидатов. Они либо пригласят вас на место и проведут несколько сеансов, либо дадут вам небольшой проект, который нужно завершить в течение следующих нескольких дней.
Если вам дадут выезд на место, вы захотите купить следующую книгу и поработать с примерами из каждой главы. Я посетил Amazon и был поражен тем, что два из четырех вопросов для интервью были взяты прямо из этой книги:Взлом кода интервью‘. Вы также должны знать, что они не просто оценивают ваш код. Они также оценивают, подходите ли вы для работы и команды. Я прошел техническую часть собеседования в Facebook, но затем мне отказали, потому что они не думали, что я хочу эту работу. Это тоже было правдой. Меня больше интересовала другая компания, но я был удивлен, что дал им понять это во время интервью. Урок усвоен: то, как вы действуете, так же важно, как и то, что вы говорите. Убедитесь, что вы проявляете интерес к компании, ее сотрудникам, проекту и задаете массу вопросов.
Если вам дали проект, то это ваш шанс показать себя. На протяжении многих лет мне приходилось переделывать Asteroids, создавать вариант Donkey Kong, создавать игровой автомат и викторину. Когда вы получаете проект Unity3D для завершения, вы должны сначала очень внимательно прочитать его требования и убедиться, что вы попали в каждый пункт списка. Они будут судить вас не только по конечному продукту, но и по тому, что находится под капотом. Разбейте задачу на классы и уделите особое внимание тому, как вы используете наследование и композицию, чтобы придерживаться принципов объектно-ориентированного проектирования SOLID. Одним из ключевых моментов является отделение логики данных от представления с помощью объектов, доступных для сценариев. Другой — убедиться, что ваш проект и сцены организованы, а имена переменных и методы названы правильно. Как всегда, прокомментируйте свой код и убедитесь, что ему легко следовать.
Если у вас есть время в конце, добавьте немного любви в проект. Вызов астероидов, который мне дали, был для Playfish Studio EA. Я решил сделать игру про подводные астероиды, используя их рыбный логотип в качестве корабля. Викторина-викторина была задана мне в преддверии Хэллоуина, поэтому я сделал ее на тему классических фильмов ужасов и даже добавил в конце дешевую страшилку с кричащим клоунским лицом. Эти штрихи имеют большое значение для того, чтобы выделиться на фоне других кандидатов.
Шаг 4: Предложение
На протяжении всего процесса вы должны убедиться, что компания, проводящая собеседование с вами, подходит вам. Предложение — это то, где вы действительно можете перевернуть столы и заставить их продать вас. Например, они, скорее всего, спросят вас, что вы сейчас делаете. Старайтесь изо всех сил избегать ответа на этот вопрос и вместо этого ответьте на настоящий вопрос: сколько они должны предложить вам, чтобы вы согласились на эту работу. Это может быть трудным вопросом, но вы можете получить достойное представление о том, сколько вы стоите, посетив такие сайты, как ‘Стеклянная дверь‘ или просматривая похожие объявления о вакансиях на таких сайтах, как ‘Ангел‘, включая зарплату. Обычно я имею в виду два числа: мой идеал и мой нижний этаж. Ответьте на вопрос о зарплате своим идеалом и не соглашайтесь на уровень ниже нижнего этажа. Иногда полезно запросить общие ориентировочные данные в начале собеседования. Проведя пару дней в челлендже «Викторины на Хэллоуин», мне предложили зарплату, равную половине того, что я зарабатывал в то время. Если бы мы обсудили бейсбольные стадионы раньше, это сэкономило бы мне пару дней работы.
Вывод
Подготовка к собеседованиям в Unity3D аналогична большинству технических вакансий с добавлением портфолио, а также освежением некоторых ключевых концепций Unity3D. Независимо от того, получите ли вы желаемую работу или нет, извлеките уроки из этого опыта и используйте его на следующем собеседовании. Если вы будете постоянно учиться, совершенствоваться и пополнять свое портфолио, то в конечном итоге вам удастся получить контракт или должность в Unity3D.