Вопросы на интервью программиста unity3d

Общие вопросы о Unity3D

Re: Вопросы на интервью программиста unity3d

Сообщение getAlex 15 фев 2017, 10:59

В основном говно а не вопросы, хоть и ответил бы на большую их часть. Если бы я такие услышал на собеседовании, я бы сказал "извините, но мы зря тратим время друг-друга", встал и ушел бы. Пускай потом ещё пол года-год поищут специалиста на срочный проект.
Если бы это ещё были выебонщики, которые таким способом хотят тебя попустить и срезать зарплату, но эти вопросы просто неадекватные по той причине что сами вопросы какие-то джуны писали и сами не поняли что ляпнули. Не говоря уже о том, что вопросы не затрагивают предметную область гейм дева. Ещё и код на JS, при том что выше спрашивают C#.

Что спрашивают на реальных собеседованиях и так все знают: ооп, абстрактный vs интерфейс, коллекции, рантайм, event vs delegat, линейная алгебра, паттерны, оптимизация, шейдеры, физика, аниматор, сетевая игра, ассеты/соц сети/фреймворки и т.д. Эти вопросы можно легко найти в гугле. Они довольно таки стандартные.
getAlex
Адепт
 
Сообщения: 1775
Зарегистрирован: 10 авг 2013, 18:30

Re: Вопросы на интервью программиста unity3d

Сообщение snezhok_13 15 фев 2017, 17:04

getAlex писал(а):В основном говно а не вопросы, хоть и ответил бы на большую их часть. Если бы я такие услышал на собеседовании, я бы сказал "извините, но мы зря тратим время друг-друга", встал и ушел бы. Пускай потом ещё пол года-год поищут специалиста на срочный проект.


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

getAlex писал(а):Что спрашивают на реальных собеседованиях и так все знают: ооп, абстрактный vs интерфейс, коллекции, рантайм, event vs delegat, линейная алгебра, паттерны, оптимизация, шейдеры, физика, аниматор, сетевая игра, ассеты/соц сети/фреймворки и т.д. Эти вопросы можно легко найти в гугле. Они довольно таки стандартные.

Многие из моих вопросов как раз из этих областей. По графике, т.к. я ей интересуюсь вообще очень много вопросов, и они все хорошие.

Призываю не быть голословным и прокомментировать "говноту" вопросов. Вы сами приведите хотя бы один хороший вопрос, которого нет, я добавлю. (popcorn)
Разработка игр, немножко игровая журналистика, сейчас делаем Календарь: даты выхода игр
Аватара пользователя
snezhok_13
UNIверсал
 
Сообщения: 450
Зарегистрирован: 09 сен 2013, 11:12
Skype: s.coremission
  • Сайт

Re: Вопросы на интервью программиста unity3d

Сообщение Paul Siberdt 15 фев 2017, 17:55

Мне нравятся два вопроса:

- Какая зарплата вас бы устроила?
- Хорошо. Когда сможете выйти на работу?

Остальное... мне даже скучно пытаться ответить на них дома, в комфортной обстановке... да и не уверен, что на все бы ответил "удовлетворяюще". :)

Сделал усилие... прочел первый попавшийся на глаза:

- Каким образом отрицательные числа представляются в памяти компьютера? Как из положительного числа получить отрицательное в таком случае? А как обратно?
- Чиво? #-o

Я не знаю не только ответа, а вообще о чем речь тут идет. ;;)
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Вопросы на интервью программиста unity3d

Сообщение snezhok_13 15 фев 2017, 18:05

Paul Siberdt писал(а):Я не знаю не только ответа, а вообще о чем речь тут идет. ;;)

:D
Разработка игр, немножко игровая журналистика, сейчас делаем Календарь: даты выхода игр
Аватара пользователя
snezhok_13
UNIверсал
 
Сообщения: 450
Зарегистрирован: 09 сен 2013, 11:12
Skype: s.coremission
  • Сайт

Re: Вопросы на интервью программиста unity3d

Сообщение Tolking 16 фев 2017, 09:46

Paul Siberdt писал(а):Мне нравятся два вопроса:

- Какая зарплата вас бы устроила?
- Хорошо. Когда сможете выйти на работу?

Остальное... мне даже скучно пытаться ответить на них дома, в комфортной обстановке... да и не уверен, что на все бы ответил "удовлетворяюще". :)

Сделал усилие... прочел первый попавшийся на глаза:

- Каким образом отрицательные числа представляются в памяти компьютера? Как из положительного числа получить отрицательное в таком случае? А как обратно?
- Чиво? #-o

Я не знаю не только ответа, а вообще о чем речь тут идет. ;;)

Я знаю, но непонятно нафига оно мне нужно... Может не мелочится и узнать как память компьютера представляется на кристалле? "Удовлетворяющие" вопросы не означают что тебя возьмут, к сожалению...
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2716
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Вопросы на интервью программиста unity3d

Сообщение snezhok_13 16 фев 2017, 15:56

У меня сегодня собеседования было, не знаю результатов пока, но вопросов подобных моему списку навалили штук 20 по скайпу.
А я весь вечер перед ним сидел по интернетам искал "c++ interview questions", "senior c++ questions" и тп..
И это только предварительный отсев. Уверен техническое собеседование тет-а-тет будет еще больше вопросов содержать.

Я к тому, что глупо пыжиться, мол вопросы говняные, их все задают. И это нормально. Как еще выявить знания? ТЗ дать? Так хорошее ТЗ показать, что ты программируешь неделю занять может, кто его делать будет? Да и как проверить, что это именно тот человек, что к тебе пришел делал, может ему кто-то помог?
Разработка игр, немножко игровая журналистика, сейчас делаем Календарь: даты выхода игр
Аватара пользователя
snezhok_13
UNIверсал
 
Сообщения: 450
Зарегистрирован: 09 сен 2013, 11:12
Skype: s.coremission
  • Сайт

Re: Вопросы на интервью программиста unity3d

Сообщение getAlex 16 фев 2017, 17:51

snezhok_13 писал(а):Ну вот опять. Перейдите к конкретике, какой именно вопрос говно? Я уже писал даже, у вас одна из типичных реакций: "вопросы для джунов".

Окей.
•Рассказать о yield return, yield break и Coroutine в Unity
•В каком порядке вызываются события MonoBehaviour в процессе рендеринга кадра? Зачем нужны отдельные Update и FixedUpdate?

Одна и та же опера. На реальном собеседовании спрашивают про потоки и асинхронные операции, могут начать очень издалека типа "чем отличается управляемый код от неуправляемого", и туда входят короутины, апдейты, потоки, инвоки и прочие вещи. Нужно рассказать что и как работает. Вопрос чисто джуновский. А вот рендеринг вы туда зря впихнули. Такой вопрос может сильно запутать т.к. "процесс рендера" с апдейтом связан только посредством фпс, но вот люди которые раньше кодили на directX SDK, или которые работают с рендер комманд буфером на низком уровне, или просто любят заморочки в шейдерах - они 100% не так поймут вопрос и ответят тебе про этапы самого рендеринга т.е. всякие буферизации, отсечения поверхностей и тому подобное. Поэтому этот вопрос чем-то напоминает iq тесты, где только у среднячка есть шансы ответить на него так, как это подразумевал спрашивающий.
•Назовите функции преобразования из локальных координат в мировые и обратно (для точки и для направления). Как работают эти функции? Связано ли их время работы с расположением/вложенностью объекта в иерархии? Реализуйте собственные extension-методы для Transform, которые будут давать такой же результат, как и настоящие.

Опять же. Если спрашивают про линейную алгебру - то это будут вопросы о скалярном произведении, углах обзора, вектора вращения, смысла дот-а, правило правой руки и т.д. Никому не интересно услышать название стандартной функции. Вопрос про время работы вообще не понятно для чего задан.
•Необходимо интерполировать вектор из A в B за определенный промежуток времени. Каким образом реализовать?

Слишком изи. Не понятна вообще логика подбора вопросов. Вместо "расскажите про собак, кошек, крыс", вопросы звучат как "расскажите про собак, шерсть кошек в период весны, предателей и разносчиках чумы"
•Что такое drawcall, batching? Какие возможности предоставляет Unity?

Дравколы, батчиннг - стандартный, простой джуновский вопрос. А вот "Какие возможности предоставляет Unity?" - слишком абстрактный вопрос ни о чём.
•Что бы Вы изменили в данном коде для увеличения быстродействия? Как можно еще улучшить этот код? В чем его проблема?

Синтаксис:
Используется javascript
public class Test : MonoBehaviour {
 void Start () {
  gameObject.AddComponent();
   TComponent t = gameObject.GetComponent<TComponent>();
   t.DoSomething();
   t.variable = 5;
 }

 void Update () {
   TComponent t = gameObject.GetComponent<TComponent>();
   t.DoSomething();
   t.variable = 5;
 }
}


Начнём с того что AddComponent() должен содержать название самого компонета. После всех исправлений должно выглядеть так:
Синтаксис:
Используется csharp
public class Test : MonoBehaviour {
 void Awake()
{
   TComponent t = gameObject.AddComponent<TComponent>();
}

 void Update ()
{
   t.DoSomething(5);
 }
}

Хотя, если бы задача была более ясна, то уверен что можно было бы вообще убрать Update()

•Какие способы вызвать функцию из компонента, вы знаете/используете? Плюсы и минусы данных способов (Варианты: SendMessage, SendMessageUpwards, BroadcastMessage, вызов через GetComponent (GetComponent().SomeMethod() );

Последний раз я использовал SendMessage, BroadcastMessage 4 года назад. Вопрос морально устарел т.к. никто сейчас не использует эти методы. Про GetComponent вопрос достаточно стандартный.
•В чем отличия делегатов от стандартных C# events, UnityEvent и EventSystem? Что, где и для чего применяется?

Каким макаром сюда затесалась EventSystem? Если в корне слова есть "Event", это не значит что нужно их всех собрать в одну кучу. То ли вопрос с подвохом, то ли спрашивающий человек не отличает дверной ручки от пишущей ручки.
•Прокомментируйте разницу в нескольких способах получить первый элемент коллекции

Я то отвечу на вопрос, но каким образом знание .NET Framework связано с вопросами к unity3d?
•Напишите unit-test,

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

Senior Unity 3D
•Какие расширения редактора вы писали?
•Для чего используются классы SerializedObject, SerializedProperty, ScriptableObject, AssetDatabase?
•С какими проблемами производительности вы сталкивались и каким образом их решали?

Первый и третий вопрос на джуна-мидла. Второй вопрос на мидла.

Для Senior-а вопросов не существует! Senior предполагает широкие знания, к примеру, умение работать с MySQL, С++, php, написание шейдеров и т.д.
///
По C#/.Net вопросы более-менее нормальные. Не ответил бы на второй т.к. деревья и прочая блевотина это удел тех кто работает с высоконагруженными базами данных. В геймдеве эти знания даром не нужны. Разве что вы работаете над ММОRPG. Про partial классы и методы тоже не уверен что ответил бы правильно.
getAlex
Адепт
 
Сообщения: 1775
Зарегистрирован: 10 авг 2013, 18:30

Re: Вопросы на интервью программиста unity3d

Сообщение seaman 16 фев 2017, 19:02

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

Тут Вы не правы. Expression можно создавать рантайм и с их помощью сильно ускорять многие вещи. И базы данных тут совсем ни при чем.
Самое простое - вызов метода.
Посложнее - десериализатор
Не правы просто потому, что не знаете чем отличаются лямбда от Expression.
Лямбда - просто синтаксический сахар для анонимных методов. Они обрабатываются на этапе компиляции. Компилятор часто создает скрытый вложенный класс, в котором и будет скомпилированный метод.
Expression - создают деревья выражений рантайм и компилируют, выполняют их тоже рантайм.
Не уверен также, что тут Вы правы:
Вопрос про время работы вообще не понятно для чего задан.

Не знаю как внутри движка сделаны TransformDirection и подобные функции, но имхо трансформы все же не хранят результирующую матрицу. Следовательно чтобы ее получить нужно последовательно поднимаясь по иерархии до рута умножить матрицы преобразования. Получается чем глубже в иерархии объект, тем больше операций, чтобы получить результат.
Тут Вы тоже не правы:
Одна и та же опера. На реальном собеседовании спрашивают про потоки и асинхронные операции, могут начать очень издалека типа "чем отличается управляемый код от неуправляемого", и туда входят короутины, апдейты, потоки, инвоки и прочие вещи. Нужно рассказать что и как работает. Вопрос чисто джуновский. А вот рендеринг вы туда зря впихнули. Такой вопрос может сильно запутать т.к. "процесс рендера" с апдейтом связан только посредством фпс, но вот люди которые раньше кодили на directX SDK, или которые работают с рендер комманд буфером на низком уровне, или просто любят заморочки в шейдерах - они 100% не так поймут вопрос и ответят тебе про этапы самого рендеринга т.е. всякие буферизации, отсечения поверхностей и тому подобное. Поэтому этот вопрос чем-то напоминает iq тесты, где только у среднячка есть шансы ответить на него так, как это подразумевал спрашивающий.

Вы кого собираетесь брать - программиста Юнити, или создателя движка? Программист Юнити ОБЯЗАН знать жизненный цикл скрипта. Не знаете?- почитайте: https://docs.unity3d.com/Manual/ExecutionOrder.html
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Вопросы на интервью программиста unity3d

Сообщение Левш@ 16 фев 2017, 22:52

Zaicheg писал(а):выкипел и вернётся к нам через некоторое время.

А зря, он вобщем то в корень зрит...
Все реалии что мы сегодня имеем - прямое следствие того самого одобрямса.
И судя по всему это пока цветочки, то ли еще будет. (popcorn1)
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Вопросы на интервью программиста unity3d

Сообщение Woolf 17 фев 2017, 08:24

- Какая зарплата вас бы устроила?
- Хорошо. Когда сможете выйти на работу?


Я бы немножко заменил на:

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


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

А то получается, как на базаре в 90е, ценников нет,
-почем этот арбуз?
-эээ дарагой, а сколько дашь за него?
-рубль!
-Да ти што, дарагой! да ни меньше 100! Глянь какой арбуз!


по факту, что арбуз стоит 10 копеек.
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Вопросы на интервью программиста unity3d

Сообщение ikhtd 17 фев 2017, 08:38

Людей такого склада "смирившиеся", будь они другого пола , имели бы при приёме на работу, все кому не лень.


Можно и того же пола.
Скрытый текст:
Объективная реальность это - что в жизни не может быть более одного пути, который в свою очередь обусловлен максимальным существующим давлением. (второй _ttp://habrahabr.ru/post/202654/)
ikhtd
Адепт
 
Сообщения: 1124
Зарегистрирован: 24 мар 2014, 12:20

Re: Вопросы на интервью программиста unity3d

Сообщение Woolf 17 фев 2017, 08:49

Левш@ писал(а):
Zaicheg писал(а):выкипел и вернётся к нам через некоторое время.

А зря, он вобщем то в корень зрит...
Все реалии что мы сегодня имеем - прямое следствие того самого одобрямса.
И судя по всему это пока цветочки, то ли еще будет. (popcorn1)


Собственно, а вы предлагаете как-то по другому? Взял пулемет и пострелял всех?
Это капитализм, ребята, тут вам никто ничего не должен. Сдохнете на помойке и никто не почешется. И даже в партком не вызовут вашего бывшего начальника, потому, что всем на**ть на вас и ваши амбиции, да и парткома уж 25 лет, как нету. Пока вы сами не начнете что-то из себя представлять, никто вас ценить и не будет.
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Вопросы на интервью программиста unity3d

Сообщение snezhok_13 17 фев 2017, 11:40

seaman писал(а):Не знаю как внутри движка сделаны TransformDirection и подобные функции, но имхо трансформы все же не хранят результирующую матрицу. Следовательно чтобы ее получить нужно последовательно поднимаясь по иерархии до рута умножить матрицы преобразования. Получается чем глубже в иерархии объект, тем больше операций, чтобы получить результат.

Хранят. И работает все наоборот. Чем большую иерархию вы трансформируете (двигаете, вращаете, масштабируете) тем дороже это обходится. Потому что матрицы пересчитываются.
А устроены TransformPoint/TransformDirection внутри очень просто: умножаем на матрицу, которая всегда актуальна.
А вопрос очень полезный - он показывает насколько глубоко кандидат разбирается в движке - это раз, насколько комплексные задачи он решал - это два.
Любая даже карточная игра подразумевает перемещение объектов, часто это вопрос: "В координатах какого трансформа лететь?"
Разработка игр, немножко игровая журналистика, сейчас делаем Календарь: даты выхода игр
Аватара пользователя
snezhok_13
UNIверсал
 
Сообщения: 450
Зарегистрирован: 09 сен 2013, 11:12
Skype: s.coremission
  • Сайт

Re: Вопросы на интервью программиста unity3d

Сообщение Woolf 17 фев 2017, 12:08

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

Один только вопрос - а зачем кандидату, да и вам, это знать? Т.е. вот приходит к вам кандидат на должность водителя, 20 лет стажа, права на все категории, ни единой дырки в талоне, а вы ему "а напишите-ка мне формулу химической реакции окисления топлива в ДВС!? Не знаете? Извините, вы нам не подходите!".. Вам ехать или шашечки нужны? Вы понимаете, что если человек знает, как устроен внутри Transform и может написать ассемблерный код для 3D преобразований, с вероятностью в 99% не знает чего-то другого? Например, как организовать удобный и быстрый GUI и как, вообще, устроены изнутри игры? Я таких программеров встречал пачками - они отличные прогеры, с огромным багажом знаний, но, увы, совершенно не приспособлены делать игры, просто потому, что они в них никогда не играли. Вот, те же юнитехи, вы не задумывались, почему они не делают игры? Точнее, попытки были, но все, до единой, закончились фейлами, а их "примеры" почти всегда реализованы таким страшным кодом, за который надо отрезать руки по самые плечи? Да потому, что они не умеют делать игры. Им некогда, они движком занимаются.
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Вопросы на интервью программиста unity3d

Сообщение Левш@ 17 фев 2017, 12:22

Woolf писал(а):вы предлагаете как-то по другому? Взял пулемет и пострелял всех?

Я предлагаю для начала хотя бы покинуть мир иллюзий и осознать реальность во всей ее красе. :)

Woolf писал(а):Это капитализм, ребята

Это не капитализм - это классический беспредел. :ymsmug:
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Пред.След.

Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9