?

Log in

No account? Create an account
Экзамен интервьюирующим - Valse oubliée [entries|archive|friends|userinfo]
aruslan

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]
[ delicious | aruslan's delicious ]

Links
[Links:| Tags Profile Friends FG1 PP gamedev XNA FF Entries Comments Memories ]

Экзамен интервьюирующим [May. 10th, 2007|12:11 pm]
aruslan
[Tags|, , , , ]

kunaifusu сегодня двинул сильно правильную мысль про неадекватные интервью как фермент глобального bozo explosion в индустрии.

А любое интервью - это, очевидно, способ оценить компанию.


Лично меня, например, жутко забавляют гипернавороченные тестовые задания, составленные коварным задротом-иезуитом, который почти дочитал стандарт C++, но еще не приступил к чтению его дефект репортов.

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

"Сильнее всего прикрывают самое слабое место".
"У вас специальный инструмент, чтобы на модели материалы назначить? Да что вы говорите!"

Спрашивают люди про SFINAE да ADL - а где их применять-то надо будет в реальном коде?
Спрашивают про базовые или высокоуровневые паттерны? Дык значит пытались наспех прооперировать 75 мегабайт легаси кода и неймспейсы туда насажали и по сто одинаковых имен в каждом. И теперь там реальные ужасы творятся, в которых без знания тонкостей ADL вообще не разобраться.

Вам часто приходится декларировать одну и ту же переменную (кстати, что такое "переменная"?) в двух блоках? А вот если вы её, например, externом в двух блоках задекларировали - вам руки за это нужно отпилить или ноги, как сами думаете?

А, скажем, код, на которым все компиляторы кроме Comeau тупо падают или неприличности всякие вытворяют, - такой код вам в профессиональной деятельности нужен регулярно? И разбираться в подобном коде тоже нужно регулярно?

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

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

Но наиболее осмысленным способом приглядеться к кандидату - было, есть и остается радикальное "Можешь? Сделай!".

Реальная полноценная задача часа на четыре.
Тетрис написать. Или там чтобы танк поехал по земле и объехал что-нибудь.
Имеет смысл даже давать на выполнение задачи заведомо слишком большое количество времени.
С обязательными майлстоунами - типа смотрим что через три часа, а потом в течение недели присылаешь улучшенную версию. Если интересно. Чтобы стресс снять.

Тем самым отсекаются те, кому работа не нужна. Кто неспособен организоваться. Кому времени жаль. Кому тетрис слабо написать.

Ну и те, кто считает, что в геймдеве недостаточно хорошо платят специалистам по C++.

Потому что специалисты по C++ в геймдеве действительно нужны нечасто.
И гораздо чаще - нужны специалисты по разработке игр.
LinkReply

Comments:
[User Picture]From: justy_tylor
2007-05-10 10:24 am (UTC)
И откуда их взять?

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

Кстати, по плюсам обычно достаточно вопроса про char* и const. :)
(Reply) (Thread)
[User Picture]From: alll
2007-05-10 10:52 am (UTC)

Re: Рассмотреть кандидата, и дать ему возможность рассм

Кстати "как на интервью оценить нанимающую контору" - тема не раскрытая никем из тех, кого я читал. Хотя имхо в последнее время гораздо более актуальная, чем стандартная "как добиться, чтобы взяли на работу".
(Reply) (Thread)
[User Picture]From: thereaver
2007-05-10 11:27 am (UTC)

Re: Рассмотреть кандидата, и дать ему возможность рассм

Помоему по вопросам всегда понятно, насколько адекватна компания в данном направлении и насколько для нее важна позиция, на которую вас принимают на работу.
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: alll
2007-05-10 10:53 am (UTC)
И совсем уж редко нужны специалисты и в том и в другом одновременно... :)
(Reply) (Thread)
[User Picture]From: execve
2007-05-10 01:16 pm (UTC)
> Но наиболее осмысленным способом приглядеться к кандидату - было, есть и остается радикальное "Можешь? Сделай!".

Имеет смысл только если компания предлагает заведомо не худшие по сравнению с конкурентами условия.

Иначе можно распугать кандидатов.
(Reply) (Thread)
From: lodoshneg
2007-05-14 03:05 pm (UTC)
не худшие? гораздо лучшие условия надо предлагать! Ибо если давать тесты как небезызвестаня аелита - то потом нечего уддивляться что народ просто отказывается их делать и тупо уходит к другим.

А зачем??? что там, медом намазано?
(Reply) (Parent) (Thread)
From: ex_alexeych
2007-05-10 01:48 pm (UTC)
Подобные вопросы - замечательная отправная точка для "чисто поболтать".

Хм, я вот на собеседованиях, вопрос 'сколько вы хотите' - задавал два раза.
В начале и в конце. Дык вот, подобные вопросы очень хороший способ вернуть человеку чувство реальности и соотнести свои запросы со способностями. =)

А вообще, ИМХО, собеседование для программера должно начинатьться с относительно простой, маленькой, но хитрой задачи, желательно с несколькими уровнями сложности ошибок/решений. Сильно экономит время на понимание о чём, за чем и на каких условиях разговаривать с кандидатом. Или не разговаривать =)

(Reply) (Thread)
[User Picture]From: rahal
2007-05-10 02:33 pm (UTC)
семён, мой мозг эта идея просто убила. тетрис писать пофиг на чём?
попробую в выходные за 4 часа управиться, посмеюсь.
(Reply) (Thread)
From: neteraser
2007-05-10 04:45 pm (UTC)
>> семён, мой мозг эта идея просто убила.
:)))
комплимент.
(Reply) (Parent) (Thread)
From: mxax
2007-05-10 03:08 pm (UTC)
Я от многих слышал мысли о том, что C++ -- это фильтр для не очень сообразительных людей и что на C++ легко проверить вменяемость человека\насколько он способен понимать сложные вещи и пользоваться ими. С другой стороны, я знаю очень вменяемого и толкового человека, который на собеседовании не знал что такое виртуальное наследование, но это скорее исключение, чем правило.

На самом же деле знаний мало не бывает... Человек, который разбирается в C++ лучше человека, который знает его кое-как.
(Reply) (Thread)
[User Picture]From: glebedev
2007-05-10 03:10 pm (UTC)
года полтора назад сидел на интерьвьюировании, так как остался один из изначальной команды. вообщем-то так и делали - говорили за жизнь, а потом вместе писали чего-нить "близко к тексту будущего приложения". Самое смешное что я на C# сам только сел и поэтому писали именно вместе с интересом разбираясь что и как :)
(Reply) (Thread)
[User Picture]From: kunaifusu
2007-05-10 06:01 pm (UTC)
Это же вопросы по знанию С++, если оно тебя интересует, а не по общей профпригодности. Если не интересует это знание, то можно и не спрашивать - я видел чувака, который вообще ни на С, ни на С++ не писал то ли принципиально, то ли от общей тупости, а писал чуть ли не на паскале и к нему были приставлены специальные люди, егойный паскаль потом переписывающие.

Опять же, разные степени этого знания нужны для разных позиций - если ты пишешь мидлварь, например, то лучше бы тебе писать хотя бы так, чтобы твой код работал как минимум на двух разных компиляторах, нет? Ну а если танчики двигаешь и твой код никто, кроме танкистов в них не видит - то, действительно, чего тут задрачивать?
(Reply) (Thread)
[User Picture]From: aruslan
2007-05-11 08:11 am (UTC)
Это вопросы про знание C++ так, как ты его себе представляешь.
Обоюдоострый меч, очевидно.

Если не говорить (не в живом общении) - грошь им цена.
Потому что можно просто operator new/delete и всё будет хорошо.
И размер, замечу, тебе там не нужен - его underlying subsystem знает.

И переменных в C++ нет.
Про что вопрос - про референсы, про extern, про алиасы?

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

А без этого - многое теряется.
Если миддлварь - пусть напишет парсер простой, микрокалькулятор.
И API придумает.
Но это - замечу - опять про поговорить.

И это правильно.
(Reply) (Parent) (Thread) (Expand)
From: daradiboga
2007-05-11 02:46 am (UTC)
Тетрис - 2ч с запасом. Это если с абсолютного нуля начинать, т.е. с чистой студии на голой винде. Я проверял.
(Reply) (Thread)
[User Picture]From: sim0nsays
2007-05-11 07:29 am (UTC)
Мое мнение такое. Дядя kunaifusu написал хорошие вопросы, которые вполне можно задавать. Задавать кандидату, у которого в резюме написано "C++ mastah". Если сам в С++ понимаешь - чего бы приятно не поговорить. По остальному - можно в Борином стиле спрашивать азбуку, добираясь до его или твоих пределов знаний, whichever comes first.

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

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

(Reply) (Thread)
[User Picture]From: aruslan
2007-05-11 08:03 am (UTC)
Ну я как раз о том же.
Без живого общения подобные "экзамены" ничего не дают ни одной из сторон.
Я вроде говорил уже про разговорный "можешь - расскажи", который взаимообогащает и как раз про пределы.
Вроде бы у Дамира в его небезызвестной ветке.

А дядя kunaifusu предлагает метрический тест: знаешь - +1, не знаешь 0. Что лично меня расстраивает.
И спрашивать про то, что "тебе надо", а не про то, "что умеет" - это безысходно. Особенно если оно будет не в живом общении - ибо весь смысл теряется.

Например, я как неспециалист в C++ вопроса про "декларацию переменной в C++" не понимаю. Нет там такого ;)

Про whiteboard в MS я как-то смотрел на channel 9, про палиндром, мне понравилось.

За исключением того, что интервьюирующий не знал, как палиндром пишется.
Но там живое общение, и даже сигнатуру BOOL IsPalendrome(TCAR* tszString) можно пережить.
(Reply) (Parent) (Thread) (Expand)
From: sleepy_drago
2007-05-12 05:19 pm (UTC)
(еще не дочитал). За extern/ноги спасибо. Давно так не смеялся. даже усидеть не сумел - пришлось сделать круг по квартире.
best regards
(Reply) (Thread)