Знакомый манагер из Новой Империи Зла (G$$gle) под рождество совсем опечалился, потому как Самый Главный Злодей (HR) бьется головой об стену и просит в качестве выходного пособия выдать ему веревку и ведро мыло.
А все потому что претендентам на Senior C/C++, Senior Java, Senior JavaScript, etc... было предложено следующее задание в стиле "блиц" для решения на бумаге за 30 сек.
Привожу вариант для сишников:
foo(TYPEA a){ return ((a + 1) == a); }
1) определить TYPEA;
2) объяснить смысловую нагрузку данного кода;
3) назвать (без компьютера) хотя бы одно 'a' при котором условие истинно;
hint: ЦП без багов, язык ансишный, по стандарту.
вариант для JS отличался только тем, что там нету TYPEA
function foo(a){ return ((a + 1) == a); }
ВОПРОС:
Как вы считаете, сколько кандидатов прошло тест даже когда им предоставили комп и минут с полчаса для раздумий и экспериментрв?
ЗЫ. Действие происходило в долине сисек.
ЗЫ.ЗЫ. и это не индусы.
ЗЫ.ЗЫ.ЗЫ. а вы говорите, что за рубежом наших спецов не надо. уверен, что тут на форуме это решат влет (у меня ушло ~5 сек)
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re: # как манагеров достали те, кого достали манагеры
Здравствуйте, мыщъх, Вы писали:
М>ЗЫ.ЗЫ.ЗЫ. а вы говорите, что за рубежом наших спецов не надо. уверен, что тут на форуме это решат влет (у меня ушло ~5 сек)
Ну осмысленным этот код выглядит, если TYPEA — float или double (проверяет, что значение столь велико, что прибавление 1 тонет в округлении).
Для bool'ов тоже должно работать, но смысл не улавливается.
Re[2]: # как манагеров достали те, кого достали манагеры
Здравствуйте, Pzz, Вы писали:
Pzz>Здравствуйте, мыщъх, Вы писали:
М>>ЗЫ.ЗЫ.ЗЫ. а вы говорите, что за рубежом наших спецов не надо. уверен, что тут на форуме это решат влет (у меня ушло ~5 сек)
Pzz>Ну осмысленным этот код выглядит, если TYPEA — float или double (проверяет, что значение столь велико, что прибавление 1 тонет в округлении).
Не обязательно велико. При сильно мало тоже. Но и это ещё не всё.
Pzz>Для bool'ов тоже должно работать, но смысл не улавливается.
Если не поможет, будем действовать током... 600 Вольт (C)
Re[2]: # как манагеров достали те, кого достали манагеры
Здравствуйте, Pzz, Вы писали:
Pzz>Здравствуйте, мыщъх, Вы писали:
М>>ЗЫ.ЗЫ.ЗЫ. а вы говорите, что за рубежом наших спецов не надо. уверен, что тут на форуме это решат влет (у меня ушло ~5 сек)
Pzz>Ну осмысленным этот код выглядит, если TYPEA — float или double (проверяет, что значение столь велико, что прибавление 1 тонет в округлении).
вот видите. все просто. но люди режутся на этом только так. кстати, вы число не назвали для которого это выражение истино. а на размышления 30 сек и под рукой только бумага и авторучка.
Pzz>Для bool'ов тоже должно работать, но смысл не улавливается.
на си есть bool?
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[3]: # как манагеров достали те, кого достали манагеры
Pzz>>Ну осмысленным этот код выглядит, если TYPEA — float или double (проверяет, что значение столь велико, что прибавление 1 тонет в округлении). М>вот видите. все просто.
То есть проверяется опыт работы с вещественными?
Re[4]: # как манагеров достали те, кого достали манагеры
Pzz>>>Ну осмысленным этот код выглядит, если TYPEA — float или double (проверяет, что значение столь велико, что прибавление 1 тонет в округлении). М>>вот видите. все просто. Z_>То есть проверяется опыт работы с вещественными?
Имхо кто-то выпендривается.
Re: # как манагеров достали те, кого достали манагеры
М>Привожу вариант для сишников: М>foo(TYPEA a){ return ((a + 1) == a); }
М>1) определить TYPEA; М>2) объяснить смысловую нагрузку данного кода; М>3) назвать (без компьютера) хотя бы одно 'a' при котором условие истинно; М>hint: ЦП без багов, язык ансишный, по стандарту.
Практическая ценность сего вопроса?
ЗЫ. Где return type?
Re[4]: # как манагеров достали те, кого достали манагеры
Здравствуйте, Олег К., Вы писали:
М>>Привожу вариант для сишников: М>>foo(TYPEA a){ return ((a + 1) == a); }
М>>1) определить TYPEA; М>>2) объяснить смысловую нагрузку данного кода; М>>3) назвать (без компьютера) хотя бы одно 'a' при котором условие истинно; М>>hint: ЦП без багов, язык ансишный, по стандарту. ОК>Практическая ценность сего вопроса? ОК>ЗЫ. Где return type?
Имхо кто-то выпендривается.
Re[3]: # как манагеров достали те, кого достали манагеры
М>>>Привожу вариант для сишников: М>>>foo(TYPEA a){ return ((a + 1) == a); }
М>>>1) определить TYPEA; М>>>2) объяснить смысловую нагрузку данного кода; М>>>3) назвать (без компьютера) хотя бы одно 'a' при котором условие истинно; М>>>hint: ЦП без багов, язык ансишный, по стандарту. ОК>>Практическая ценность сего вопроса? ОК>>ЗЫ. Где return type? Z_>Имхо кто-то выпендривается.
Вопрос кто?
Re: # как манагеров достали те, кого достали манагеры
М>А все потому что претендентам на Senior C/C++, Senior Java, Senior JavaScript, etc... было предложено следующее задание в стиле "блиц" для решения на бумаге за 30 сек. М>Привожу вариант для сишников: М>foo(TYPEA a){ return ((a + 1) == a); } М>1) определить TYPEA; М>2) объяснить смысловую нагрузку данного кода; М>3) назвать (без компьютера) хотя бы одно 'a' при котором условие истинно;
Смысла в этом 0. За такие вопросы на интервью нужно выгоднять манагеров, а не претендентов.
Это из серии — быстро в уме подсчитайте что будет после ++i--i++i--++ или (*p++)-- и
подобный удивительные конструкции. Да это можно в С++, да бывает нужно — ну так и код
тогда должен быть соответствующий.
Тип тут придумать можно. Смысловая нагрузка как-то теряется.
Встречный вопрос — зачем и кто придумал писать код так, чтобы у другого этот код вызывал
размышнения даже на 30 сек? Пишите по-человечески! Так чтобы при чтении кода не возникал вопрос WTF!
P.S. Я манагер. Такие вопросы не задавал и никогда не буду.
Re[2]: # как манагеров достали те, кого достали манагеры
Здравствуйте, Pzz, Вы писали:
Pzz>Ну осмысленным этот код выглядит, если TYPEA — float или double (проверяет, что значение столь велико, что прибавление 1 тонет в округлении).
Для меня этот код не выглядит осмысленным, даже если TYPEA — float или double.
if(foo(myDoubleVariable))
{
//значение myDoubleVariable столь велико, что прибавление 1 тонет в округлении
//факт, конечно, забавный, но что с этим делать в production code - непонятно.
}
Re: # как манагеров достали те, кого достали манагеры
Здравствуйте, мыщъх, Вы писали:
М>Привожу вариант для сишников:
М>foo(TYPEA a){ return ((a + 1) == a); }
М>1) определить TYPEA;
Double, long double или float
М>2) объяснить смысловую нагрузку данного кода;
Проверка на то превысило ли число допустимый диапазон? Фигня какая то, для финансов надо использовать фиксированную точку или десятичные цифры, для остальной математики не имеет смысла.
М>3) назвать (без компьютера) хотя бы одно 'a' при котором условие истинно;
Бесконечность? Её вроде можно было сравнивать на равенство.
Re[3]: # как манагеров достали те, кого достали манагеры
Здравствуйте, мыщъх, Вы писали:
М>вот видите. все просто. но люди режутся на этом только так. кстати, вы число не назвали для которого это выражение истино. а на размышления 30 сек и под рукой только бумага и авторучка.
чтобы назвать число, человек должен знать, как плавучка внутри себя устроена. думаю, современные соискатели понятия об этом не имеют
Pzz>>Для bool'ов тоже должно работать, но смысл не улавливается. М>на си есть bool?
на c99 есть
Re[4]: # как манагеров достали те, кого достали манагеры
А все потому что претендентам на Senior C/C++, Senior Java, Senior JavaScript, etc... было предложено следующее задание в стиле "блиц" для решения на бумаге за 30 сек.
Я Senior C/C++. Задачу не решил, потому как ни разу за более чем пятнадцатилетнюю карьеру не пытался переполнить float. Доктор, что я делаю не так?
P.S. Интересно, а вы сами diamond problem наизусть помните?
Re[4]: # как манагеров достали те, кого достали манагеры
Здравствуйте, Pzz, Вы писали:
Pzz>чтобы назвать число, человек должен знать, как плавучка внутри себя устроена. думаю, современные соискатели понятия об этом не имеют
Смутно вспоминается что-то про 11 бит на мантиссу и 29 на порядок.
Интересно, массовый уход сотрудников из Гугла начался до или после введения этих задачек?
И почему бы не просить собеседуемого реализовать swap командой xor?
Или там спеть, станцевать, постоять на голове, показать слона.. по степени осмысленности примерно равнозначно будет.