LOGOFALPROG Telegram 206
Начинал интервью я всегда с объяснения, что чёткого списка обязательных вопросов нет. Что я буду прыгать с темы на тему, что можно чего-то не знать, и можно об этом так и сказать — мы тогда просто не пойдём углубляться в эту тему, а поговорим о чём-то другом. Идея состояла в том, чтобы нащупать общее представление об уровне кандидата в разных сферах (С#, математика, С++, графика).

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

Секцию C# я почти всегда начинал с вопроса «что такое виртуальная функция?». Разминочный вопрос, на который отвечали практически все, но даже на нём уже видно уровень: кто-то начинает рассказывать, как устроена vtable или рассказывать про производительность в сравнении с обычными функциями, а у кого-то знания ограничены ключевым словом. Далее я старался спрашивать более сложные вопросы, хотя по C# трудно спросить что-то сложное. Чтобы не сочинять каждый раз на ходу и чтобы не повисало пауз, у меня всегда перед глазами был файлик с накиданными заранее вопросами, из которых я уже выбирал. Чтобы пройти на мидла надо было хотя бы отличать стек и кучу, знать в чём опасность float’ов, знать размер байта, отличать Dictionary от List и оценивать стоимость их операций, представлять в общих чертах, как работает GC. Да в общем-то и всё. Бонусные очки давались, если человек может внятно рассказать, как устроены флоаты, хэшмапа, когда и почему происходит boxing.

Вторая обязательная секция была математика. Минимальный джентльменский набор здесь это понимание тригонометрии, знание отличий векторного и скалярного произведений, хотя бы приблизительное представление о том, как работают матрицы трансформации. Иногда я также спрашивал примитивный тервер или комбинаторику. Ну типа: «пушка попадает с вероятностью 50%, какова вероятность попасть 3 раза подряд?». Если у человека не хватает интуиции это посчитать без формул, то скорее всего это красный флаг. Иногда также мог спросить чего-нибудь про графы (здесь ничего конкретного не требовалось, но хорошо, если человек содержательно может поговорить за Дейкстру, А* или чего-нибудь такое).

Остальные секции по большому счёту были опциональные, но знания в них были большим преимуществом. В первую очередь это, конечно, С++. Тут можно было бы много всякого интересного спрашивать в правой части бинарного поиска: всякие там универсальные ссылки, value-категории, guaranteed copy elision или, прости господи, SFINAE (последнее это очень локальный мем — по случаю передаю привет). Но, к сожалению, так далеко мы ни разу не добирались. Всё-таки вакансия была по C#.

Что касается графики, то первым пристрелочным вопросом был «что такое depth buffer?». Далее я мог поспрашивать про освещение и нормали, инстансинг, всякие кулинги, как реализуются тени или какой-нибудь моушн-блюр. Мой любимый вопрос по графике это классический «назовите как можно больше причин, почему экран может быть чёрным?». Но, по-моему, я так ни разу его и не задал (вопрос классный, но его надо задавать чуваку, который не только шарит в графике, но и который чувствует себя уверенно на интервью — иначе перенервничает и поплывёт).



tgoop.com/logofalprog/206
Create:
Last Update:

Начинал интервью я всегда с объяснения, что чёткого списка обязательных вопросов нет. Что я буду прыгать с темы на тему, что можно чего-то не знать, и можно об этом так и сказать — мы тогда просто не пойдём углубляться в эту тему, а поговорим о чём-то другом. Идея состояла в том, чтобы нащупать общее представление об уровне кандидата в разных сферах (С#, математика, С++, графика).

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

Секцию C# я почти всегда начинал с вопроса «что такое виртуальная функция?». Разминочный вопрос, на который отвечали практически все, но даже на нём уже видно уровень: кто-то начинает рассказывать, как устроена vtable или рассказывать про производительность в сравнении с обычными функциями, а у кого-то знания ограничены ключевым словом. Далее я старался спрашивать более сложные вопросы, хотя по C# трудно спросить что-то сложное. Чтобы не сочинять каждый раз на ходу и чтобы не повисало пауз, у меня всегда перед глазами был файлик с накиданными заранее вопросами, из которых я уже выбирал. Чтобы пройти на мидла надо было хотя бы отличать стек и кучу, знать в чём опасность float’ов, знать размер байта, отличать Dictionary от List и оценивать стоимость их операций, представлять в общих чертах, как работает GC. Да в общем-то и всё. Бонусные очки давались, если человек может внятно рассказать, как устроены флоаты, хэшмапа, когда и почему происходит boxing.

Вторая обязательная секция была математика. Минимальный джентльменский набор здесь это понимание тригонометрии, знание отличий векторного и скалярного произведений, хотя бы приблизительное представление о том, как работают матрицы трансформации. Иногда я также спрашивал примитивный тервер или комбинаторику. Ну типа: «пушка попадает с вероятностью 50%, какова вероятность попасть 3 раза подряд?». Если у человека не хватает интуиции это посчитать без формул, то скорее всего это красный флаг. Иногда также мог спросить чего-нибудь про графы (здесь ничего конкретного не требовалось, но хорошо, если человек содержательно может поговорить за Дейкстру, А* или чего-нибудь такое).

Остальные секции по большому счёту были опциональные, но знания в них были большим преимуществом. В первую очередь это, конечно, С++. Тут можно было бы много всякого интересного спрашивать в правой части бинарного поиска: всякие там универсальные ссылки, value-категории, guaranteed copy elision или, прости господи, SFINAE (последнее это очень локальный мем — по случаю передаю привет). Но, к сожалению, так далеко мы ни разу не добирались. Всё-таки вакансия была по C#.

Что касается графики, то первым пристрелочным вопросом был «что такое depth buffer?». Далее я мог поспрашивать про освещение и нормали, инстансинг, всякие кулинги, как реализуются тени или какой-нибудь моушн-блюр. Мой любимый вопрос по графике это классический «назовите как можно больше причин, почему экран может быть чёрным?». Но, по-моему, я так ни разу его и не задал (вопрос классный, но его надо задавать чуваку, который не только шарит в графике, но и который чувствует себя уверенно на интервью — иначе перенервничает и поплывёт).

BY Log of Alprog


Share with your friend now:
tgoop.com/logofalprog/206

View MORE
Open in Telegram


Telegram News

Date: |

Telegram has announced a number of measures aiming to tackle the spread of disinformation through its platform in Brazil. These features are part of an agreement between the platform and the country's authorities ahead of the elections in October. ‘Ban’ on Telegram A Telegram channel is used for various purposes, from sharing helpful content to implementing a business strategy. In addition, you can use your channel to build and improve your company image, boost your sales, make profits, enhance customer loyalty, and more. The visual aspect of channels is very critical. In fact, design is the first thing that a potential subscriber pays attention to, even though unconsciously. How to create a business channel on Telegram? (Tutorial)
from us


Telegram Log of Alprog
FROM American