aruslan: (Default)
[personal profile] aruslan
[livejournal.com profile] kunaifusu сегодня двинул сильно правильную мысль про неадекватные интервью как фермент глобального bozo explosion в индустрии.

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


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

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

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

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

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

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

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

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

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

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

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

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

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

Date: May. 11th, 2007 15:45 (UTC)
From: [identity profile] kunaifusu.livejournal.com
Саттер - чувак из комитета по стандартизации С++, и извини, конечно, если он целую главу в своей книжке назвает так, а потом кто-то в ЖЖ мне пишет, что переменных нет, то у меня даже палец не пошевелиццо выяснять.

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

Кому как.

Т.е. можно, но для этого надо прикинуть что ты имел ввиду.

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

Date: May. 11th, 2007 16:38 (UTC)
From: [identity profile] aruslan.livejournal.com
Если ты думаешь, что в комитете святые агнцы сидят - ты не вполне в теме. И Саттер, кстати, стандарту цену знает.

И если Саттер говорит "переменная" - то это означает "переменная".
Только не в C++-смысле "а вообще".
А "вообще" - оно всё что угодно может означать.

Ты сам-то ответ на свой первый вопрос готов дать?

Замечу, с определением "переменной" в С++ у тебя видимо случилось слабо ;)

Date: May. 11th, 2007 18:13 (UTC)
From: [identity profile] kunaifusu.livejournal.com
if( int i = f() )
{
// block 1
...
}
else
{
// block 2
...
}

По определениям мне с тобой тереть просто не интересно, если тебе Саттер не авторитет, то о чем говорить?

Date: May. 11th, 2007 18:23 (UTC)
From: [identity profile] http://users.livejournal.com/_winnie/
Любой твой вопрос - это слоёный пирог подвохов. И интервьювируемый класса Саттера или Руслана просто не знает, до какого слоя ты имел ввиду. Поэтому - "только для начала побеседовать".

Date: May. 11th, 2007 18:26 (UTC)
From: [identity profile] aruslan.livejournal.com
Дядя, в блоках 1 и 2 переменную i не декларировали.
А при использовании её тупо находит name lookup.

Если по твоей логике, то можно тупо и проще:
int var;
и дальше любой код.

Во всех блоках кода будет продекларирована var.
Так?

Date: May. 11th, 2007 18:30 (UTC)
From: [identity profile] kunaifusu.livejournal.com
В блоках не декларировали, однако она задекларирована как переменная в каждом блоке и только в них существует. Просто int var нельзя потому что такая переменная существует только в одном блоке (или нэймспейсе) и будет убита только при выходе из него, засоряя нэймспейс без нужды.

Date: May. 11th, 2007 19:16 (UTC)
From: [identity profile] aruslan.livejournal.com
Нет, она существует не в блоках, а в statementе уровнем выше. И exceptions и временные объекты легко могут это показать. И "задекларирована как переменная в каждом блоке" - это неправда.

Она не декларируется в этих блоках, но доступна по name lookup в скопах этих блоков, поскольку оба substatement находятся в скопе if.
И запрещена к редекларации в substatement.

Но декларация - одна.
И если это то, что ты имел ввиду, то я разочарован.
int var не надо в namespace, можно например так:

void foo( int var )
{
{ first block }
{ second block }
}

и тысячью других способов.

А правильный ответ на твой вопрос, на самом деле - это использование extern и using.
Единственно правильный.
Если тебе, конечно, это интересно.

Date: May. 11th, 2007 19:31 (UTC)
From: [identity profile] kunaifusu.livejournal.com
Это переменная которая убьется при завершении любого блока из двух (если тип с деструктором), твоя тысяча способов такого эфекта не дает.

Date: May. 14th, 2007 16:01 (UTC)
From: [identity profile] aruslan.livejournal.com
Почему это не дает? :)

Ну и плюс обращу внимание - "задекларировать в блоке" это таки совсем не то, что ты написал.
Жаль, по определениям тереть не получается - ты их опасаешься.
Ну и name lookup с declaration путаешь.

Date: May. 14th, 2007 17:23 (UTC)
From: [identity profile] kunaifusu.livejournal.com
Да, как вообще можно рассуждать о переменных, которые просто плод больного воображения Саттера и прочих комитетичков?

Profile

aruslan: (Default)
aruslan

January 2014

S M T W T F S
   1234
56789 1011
12131415161718
19202122232425
262728293031 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 28th, 2025 06:31
Powered by Dreamwidth Studios