Здравствуйте, antigravity, Вы писали:
Б>>что вам лично нравится в компании, что вас держит здесь
A>
A>1. Почему вы выбрали именно нашу компанию?
A>Вы идиот(ка), да? Я, как и все кандидаты до меня и после меня, направил резюме в десяток мест. Где устроюсь быстрее и выгоднее — там и хорошо.
Смех смехом, но когда я уже был в Штатах, то мне на почту написала рекрутерша одного из российских банков и очень настойчиво желала поговорить. В итоге я ей выслал свой американский номер телефона и она позвонила. После распроса про текущее место она задала вопрос, почему я хочу вернуться и работать у них в банке Я чуть не поперхнулся...
Здравствуйте, PlusMyTwitterFace, Вы писали:
PMT>Интересуют, прежде всего, вопросы на вакансию программиста C/C++, а также алгоритмические задачи.
На собеседованиях нужно не задачки решать, а о жизни говорить.
Самые интересные вопросы, это, например, показать какой-нибудь сайт и спросить, что вы о нем думаете в плане удобства использования. Вот тут будет интересно. По ответу можно очень многое узнать о человеке.
А с моей стороны вопрос собеседующему — что вам лично нравится в компании, что вас держит здесь. По ответу тоже можно многое понять.
Re[3]: Наиболее интересные вопросы на собеседованиях
Здравствуйте, PlusMyTwitterFace, Вы писали:
тс>>Написать пример программы, которая скомпилируется C-компилятором, но не скомпилируется C++-компилятором. Ответ лежит на поверхности, не требует знания никаких нюансов. Я не смог ответить)
PMT>Знаю лишь два варианта:
PMT>- При помощи препроцессора (макрос __cplusplus)
Это чит.
PMT>- С учётом того, что sizeof(/* any character literal */) == sizeof(char) равно true только в C++, но не в C
Это никак не гарантируется.
PMT>— Рекурсивный вызов main
Это UB, но не обязано проверяться.
PMT>— В C89/C90 нельзя достигать конца функции main без return
Это неверно. C89:5.1.2.2.3 Program termination:
1: If the return type of the main function is a type compatible with int, a return from the initial call to the main function is equivalent to calling the exit function with the value returned by the main function as its argument;(*10) reaching the } that terminates the main function returns a value of 0.[…]
PMT>— Необходимость явного каста из void* PMT>— Использование ключевых слов C++
А вот это решения. Причём с ключевыми словами — простейшее и, вероятно, ожидаемое.
int main(int class, char** throw) {}
Re[2]: Наиболее интересные вопросы на собеседованиях
M>"как перемножить 3 на 7 если у нас нет операции умножения ?" Долго не мог понять в каком контексте задавался вопрос, потом уже понял что это была проверка знаний на битовые сдвиги и т.п.
в такой постановке вопрос абсолютно идиотский. Ответ является константой времени компиляции.
Нужно задавать такой вопрос, четко отмечая, что может быть переменной величиной.
Re[2]: Наиболее интересные вопросы на собеседованиях
Здравствуйте, minorlogic, Вы писали:
M>Не думаю , что открою секрет а вопрос показался веселым.
M>"как перемножить 3 на 7 если у нас нет операции умножения ?" Долго не мог понять в каком контексте задавался вопрос, потом уже понял что это была проверка знаний на битовые сдвиги и т.п.
Без контекста самый очевидный вариант — цикл со сложением, не? Или тут все с бородой и бритву не используют?
Re[9]: Наиболее интересные вопросы на собеседованиях
M>"как перемножить 3 на 7 если у нас нет операции умножения ?" Долго не мог понять в каком контексте задавался вопрос, потом уже понял что это была проверка знаний на битовые сдвиги и т.п.
Какие н... битовые сдвиги!
int res = 0;
for(int cnt=0; cnt<3; ++cnt)
res+=7;
Re[2]: Наиболее интересные вопросы на собеседованиях
_>сам любил задавать под конец собеседования тупые задачки типа "Буратино дали 5 яблок, потом 2 забрали, сколько яблок осталось у Буратино", но сразу предупреждал что задачки программерско-кодерские, и решение надо искать именно с точки зрения программерской.
Приведите решение задачи. Планируем давать задачу кандидатам, но сами не знаем правильного решения с программерской точки зрения. Анализ задачи показал, что счетчик яблок не переполняется даже на 32 битной арифметике. В дабл арифметике может конечно получиться 3,000000000000000001 яблок. Опять таки, можно решить задачу метапрограммированием на этапе компилляции. В общем, задача сложная и требует аналитического ума.
Re[6]: Наиболее интересные вопросы на собеседованиях
Здравствуйте, dilmah, Вы писали:
M>>>>Сильно зависит от разрядности и процессора DP>>>Не думаю... M>>Уверенны? учитывая "максимально производительным способом?"
D>может он предполагает, что sufficiently smart compiler(TM) догадается о том что делает данный цикл (что, в принципе, не очень сложно..), и подставит то что нужно..
Здравствуйте, blackwater, Вы писали:
M>>>Уверенны? учитывая "максимально производительным способом?"
D>>может он предполагает, что sufficiently smart compiler(TM) догадается о том что делает данный цикл (что, в принципе, не очень сложно..), и подставит то что нужно..
B>Я думаю ждут это: http://en.wikipedia.org/wiki/Hamming_weight
Че то я сразу не подумал насколько серьезную задачу решаю. Углубился в тему... Да это Hamming weight или Population Count. Тут ниже ссылку привели на разные алгоритмы http://chessprogramming.wikispaces.com/Population+Count
В итоге мой код оказался реализацией метода Брайна Кернинга, а он является одной из лучших реализаций этой задачи "this is still one of the fastest approaches for sparsely populated bitboards." (См. ссылку выше).
Основня идея — "обнуляем младший бит" x&(x-1). Кто изучал\писал ассемблер тот почти навернякак пользовался таким трюком.
Re[4]: Наиболее интересные вопросы на собеседованиях
Здравствуйте, minorlogic, Вы писали:
M>Вспомнил. Недавно спросили "что такое виртуальный деструктор , и в чем его особенности". Я блин долго тупил и не мог понять какие у него особенности, вспомнил тольок что во время выполнения деструктора он ведет себя как невиртуальная функция и вызывает всех предков.
Что курите? Виртуальный деструктор ведет себя именно как виртуальная функция. Единственное назнвчение — убивать объект по указателю приведенному к базовому классу.
Весь топик прочел — одни унылые вопросы
Re[8]: Наиболее интересные вопросы на собеседованиях
Какие самые интересные вопросы на собеседованиях за всё время вашего опыта Вы слышали? Или какие наиболее интересные / необычные задаёте Вы на собеседованиях?
Интересуют, прежде всего, вопросы на вакансию программиста C/C++, а также алгоритмические задачи.
Здравствуйте, PlusMyTwitterFace, Вы писали:
PMT>Приветствую.
PMT>Какие самые интересные вопросы на собеседованиях за всё время вашего опыта Вы слышали? Или какие наиболее интересные / необычные задаёте Вы на собеседованиях?
PMT>Интересуют, прежде всего, вопросы на вакансию программиста C/C++, а также алгоритмические задачи.
PMT>Заранее благодарю.
На форуме уже много таких тем, там и интересные вопросы и задачки и всё что душе угодно
Re[2]: Наиболее интересные вопросы на собеседованиях
Здравствуйте, Балбес, Вы писали:
Б>что вам лично нравится в компании, что вас держит здесь
1. Почему вы выбрали именно нашу компанию?
Вы идиот(ка), да? Я, как и все кандидаты до меня и после меня, направил резюме в десяток мест. Где устроюсь быстрее и выгоднее — там и хорошо.
Здравствуйте, PlusMyTwitterFace, Вы писали:
PMT>Приветствую.
PMT>Какие самые интересные вопросы на собеседованиях за всё время вашего опыта Вы слышали? Или какие наиболее интересные / необычные задаёте Вы на собеседованиях?
PMT>Интересуют, прежде всего, вопросы на вакансию программиста C/C++, а также алгоритмические задачи.
PMT>Заранее благодарю.
Мне больше всего по c++ понравилось:
Написать пример программы, которая скомпилируется C-компилятором, но не скомпилируется C++-компилятором. Ответ лежит на поверхности, не требует знания никаких нюансов. Я не смог ответить)
Re[2]: Наиболее интересные вопросы на собеседованиях
тс>Написать пример программы, которая скомпилируется C-компилятором, но не скомпилируется C++-компилятором. Ответ лежит на поверхности, не требует знания никаких нюансов. Я не смог ответить)
Знаю лишь два варианта:
— При помощи препроцессора (макрос __cplusplus)
— С учётом того, что sizeof(/* any character literal */) == sizeof(char) равно true только в C++, но не в C
Есть какие-то ещё?
Re[2]: Наиболее интересные вопросы на собеседованиях
тс>Написать пример программы, которая скомпилируется C-компилятором, но не скомпилируется C++-компилятором. Ответ лежит на поверхности, не требует знания никаких нюансов. Я не смог ответить)
А, не скомпилируется? Тогда извиняюсь.
Ну, вариантов много ведь:
— Необходимость явного каста из void*
— Рекурсивный вызов main
— В C89/C90 нельзя достигать конца функции main без return
— Использование ключевых слов C++
И т.д.
Re[2]: Наиболее интересные вопросы на собеседованиях
Здравствуйте, тс, Вы писали:
тс>Мне больше всего по c++ понравилось: тс>Написать пример программы, которая скомпилируется C-компилятором, но не скомпилируется C++-компилятором. Ответ лежит на поверхности, не требует знания никаких нюансов. Я не смог ответить)
С99 считать за C-компилятор? Тогда restrict и динамические массивы.
А так можно просто приведение типов где-то опустить
Re[3]: Наиболее интересные вопросы на собеседованиях
— В C++ нельзя вызывать функции без их прототипа или определения (в том числе, и без включения соответствующих заголовочных файлов)
— variable-length arrays из C99 и, например, _Noreturn из C11
Re[4]: Наиболее интересные вопросы на собеседованиях
Не думаю , что открою секрет а вопрос показался веселым.
"как перемножить 3 на 7 если у нас нет операции умножения ?" Долго не мог понять в каком контексте задавался вопрос, потом уже понял что это была проверка знаний на битовые сдвиги и т.п.
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[3]: Наиболее интересные вопросы на собеседованиях
Здравствуйте, PlusMyTwitterFace, Вы писали:
тс>>Написать пример программы, которая скомпилируется C-компилятором, но не скомпилируется C++-компилятором. Ответ лежит на поверхности, не требует знания никаких нюансов. Я не смог ответить)
PMT>- Использование ключевых слов C++
Ответ не требовал особых знаний нюансов стандарта, поэтому был про использование ключевых слов как идентификаторов. Например int main(){int class; return 0;}
И кстати он тоже сработает для других расширений C, например objective c.
Re[4]: Наиболее интересные вопросы на собеседованиях
Ну да, но смотря с какой точки зрения посмотреть.
PMT>>- С учётом того, что sizeof(/* any character literal */) == sizeof(char) равно true только в C++, но не в C
C>Это никак не гарантируется.
Как это?
Annex C (informative)
Compatibility [diff]
2.14.3
Change: Type of character literal is changed from int to char
Rationale: This is needed for improved overloaded function argument type matching. For example:
int function( int i );
int function( char c );
function( ’x’ );
It is preferable that this call match the second version of function rather than the first.
Effect on original feature: Change to semantics of well-defined feature. ISO C programs which depend
on
sizeof(’x’) == sizeof(int)
will not work the same as C++ programs.
Difficulty of converting: Simple.
How widely used: Programs which depend upon sizeof(’x’) are probably rare.
C>Это UB, но не обязано проверяться.
Да, точно, извиняюсь.
C>Это неверно. C89:5.1.2.2.3 Program termination:
C>
1: If the return type of the main function is a type compatible with int, a return from the initial call to the main function is equivalent to calling the exit function with the value returned by the main function as its argument;(*10) reaching the } that terminates the main function returns a value of 0.[…]
Здравствуйте, PlusMyTwitterFace, Вы писали:
PMT>>>- С учётом того, что sizeof(/* any character literal */) == sizeof(char) равно true только в C++, но не в C
C>>Это никак не гарантируется.
PMT>Как это?
PMT>Change: Type of character literal is changed from int to char
PMT>Effect on original feature: Change to semantics of well-defined feature. ISO C programs which depend on
PMT>sizeof(’x’) == sizeof(int)
PMT>will not work the same as C++ programs.
Глупости. Предположим платформу типа PDP-10, с минимально адресуемым словом в 36 бит и 36-битными же регистрами общего назначения. Тогда 1 == sizeof(char) == sizeof(int), несмотря на то, что int и char — разные типы и что 'x' в C имеет тип int, а в C++ — char.
Re[2]: Наиболее интересные вопросы на собеседованиях
Здравствуйте, minorlogic, Вы писали:
M>"как перемножить 3 на 7 если у нас нет операции умножения ?" Долго не мог понять в каком контексте задавался вопрос, потом уже понял что это была проверка знаний на битовые сдвиги и т.п.
Если есть сложение и вычитание, то как-то так, видимо:
Здравствуйте, A.Lokotkov, Вы писали:
AL>божеж мой, какой же бред я изобразил . no hire, однозначно.
Я начал отвечать думая как оптимальнее построить обобщенный алгоритм умножений жалея что не учил низкоуровневые алгоритмы. Когда дошел для до решений через небольшой LUT интервьюер начал меня понимать , со смехом перебил и просто попросил ответить как сдвигами умножить на 7. Тогда я врубился в контекст и ответил (3<<3) — 3.
Здравствуйте, PlusMyTwitterFace, Вы писали:
PMT>Приветствую.
PMT>Какие самые интересные вопросы на собеседованиях за всё время вашего опыта Вы слышали? Или какие наиболее интересные / необычные задаёте Вы на собеседованиях?
PMT>Интересуют, прежде всего, вопросы на вакансию программиста C/C++, а также алгоритмические задачи.
PMT>Заранее благодарю.
Обычно, действительно интересные вопросы начинаются с определенного уровня вакансии/соискателя.
Практически, уже разговор "за жизнь" идет. Например, "можно ли увидеть миллиард молекул невооруженным взглядом?".
Ну или "Так вы хотите, чтобы четвертая производная вашего дохода была неотрицательной?!"
Re[6]: Наиболее интересные вопросы на собеседованиях
Вспомнил. Недавно спросили "что такое виртуальный деструктор , и в чем его особенности". Я блин долго тупил и не мог понять какие у него особенности, вспомнил тольок что во время выполнения деструктора он ведет себя как невиртуальная функция и вызывает всех предков.
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[3]: Наиболее интересные вопросы на собеседованиях
Здравствуйте, minorlogic, Вы писали:
V>>как посчитать биты в числе, максимально производительным способом?
M>Сильно зависит от разрядности и процессора
Не думаю...
int fun(int x)
{
int res = 0;
while ( (x &= x-1) != 0 )
res++;
return res;
}
Re[4]: Наиболее интересные вопросы на собеседованиях
M>>>Сильно зависит от разрядности и процессора DP>>Не думаю... M>Уверенны? учитывая "максимально производительным способом?"
может он предполагает, что sufficiently smart compiler(TM) догадается о том что делает данный цикл (что, в принципе, не очень сложно..), и подставит то что нужно..
Re[6]: Наиболее интересные вопросы на собеседованиях
Здравствуйте, PlusMyTwitterFace, Вы писали:
PMT>Из того, что ещё вспомнилось:
PMT>- В C++ нельзя вызывать функции без их прототипа или определения (в том числе, и без включения соответствующих заголовочных файлов) PMT>- variable-length arrays из C99 и, например, _Noreturn из C11
Если "ответ на поверхности и не требует знаний ньюансов", то приходит в голову такое:
int main(void)
{
/*
// */return 0;
}
Re[5]: Наиболее интересные вопросы на собеседованиях
V>Практически, уже разговор "за жизнь" идет. Например, "можно ли увидеть миллиард молекул невооруженным взглядом?".
Специалистов по подсчёту молекул подбирают?
Б>>>что вам лично нравится в компании, что вас держит здесь
A>>
A>>1. Почему вы выбрали именно нашу компанию?
A>>Вы идиот(ка), да? Я, как и все кандидаты до меня и после меня, направил резюме в десяток мест. Где устроюсь быстрее и выгоднее — там и хорошо.
A>Смех смехом, но когда я уже был в Штатах, то мне на почту написала рекрутерша одного из российских банков и очень настойчиво желала поговорить. В итоге я ей выслал свой американский номер телефона и она позвонила. После распроса про текущее место она задала вопрос, почему я хочу вернуться и работать у них в банке Я чуть не поперхнулся...
Ну а ты что в ответ?
Re[4]: Наиболее интересные вопросы на собеседованиях
тс>>>Написать пример программы, которая скомпилируется C-компилятором, но не скомпилируется C++-компилятором. Ответ лежит на поверхности, не требует знания никаких нюансов. Я не смог ответить)
PMT>>- Использование ключевых слов C++
тс>Ответ не требовал особых знаний нюансов стандарта, поэтому был про использование ключевых слов как идентификаторов. Например int main(){int class; return 0;} тс>И кстати он тоже сработает для других расширений C, например objective c.
Да по-моему это все очевидно но только разве это интересный вопрос?
Re[2]: Наиболее интересные вопросы на собеседованиях
M>Не думаю , что открою секрет а вопрос показался веселым.
M>"как перемножить 3 на 7 если у нас нет операции умножения ?" Долго не мог понять в каком контексте задавался вопрос, потом уже понял что это была проверка знаний на битовые сдвиги и т.п.
Это тоже что ли интересный вопрос?
Re[2]: Наиболее интересные вопросы на собеседованиях
PMT>>Интересуют, прежде всего, вопросы на вакансию программиста C/C++, а также алгоритмические задачи. PMT>>Заранее благодарю.
V>как посчитать биты в числе, максимально производительным способом?
Неужели и это интересный вопрос?
Re[2]: Наиболее интересные вопросы на собеседованиях
M>Вспомнил. Недавно спросили "что такое виртуальный деструктор , и в чем его особенности". Я блин долго тупил и не мог понять какие у него особенности, вспомнил тольок что во время выполнения деструктора он ведет себя как невиртуальная функция и вызывает всех предков.
Пацаны, вы чего? Какие ж это интересные вопросы?
Re[5]: Наиболее интересные вопросы на собеседованиях
Здравствуйте, Олег К., Вы писали:
A>>Смех смехом, но когда я уже был в Штатах, то мне на почту написала рекрутерша одного из российских банков и очень настойчиво желала поговорить. В итоге я ей выслал свой американский номер телефона и она позвонила. После распроса про текущее место она задала вопрос, почему я хочу вернуться и работать у них в банке Я чуть не поперхнулся...
ОК>Ну а ты что в ответ?
Да ничего особенного, поинтересовался почему она решила, что я вообще возвращаться собираюсь. — Ну как же, вы же поговорить согласились.
Re[2]: Наиболее интересные вопросы на собеседованиях
Здравствуйте, volodya777, Вы писали:
PMT>>Интересуют, прежде всего, вопросы на вакансию программиста C/C++, а также алгоритмические задачи. PMT>>Заранее благодарю.
V>как посчитать биты в числе, максимально производительным способом?
POPCOUNT, а вообще вариантов куча, успевай только считать: Population Count
Re[2]: Наиболее интересные вопросы на собеседованиях
тс>Мне больше всего по c++ понравилось: тс>Написать пример программы, которая скомпилируется C-компилятором, но не скомпилируется C++-компилятором. Ответ лежит на поверхности, не требует знания никаких нюансов. Я не смог ответить)
так это идиотен-тест
int new = 1;
Re[2]: Наиболее интересные вопросы на собеседованиях
Здравствуйте, D. Petrov, Вы писали:
DP>Основня идея — "обнуляем младший бит" x&(x-1). Кто изучал\писал ассемблер тот почти навернякак пользовался таким трюком.
А через сдвиги вроде быстрее
int fun(int x)
{
int res = 0;
while (x != 0 )
{
res += x & 1;
x >> 1;
}
return res;
}
Re[9]: Наиболее интересные вопросы на собеседованиях
Здравствуйте, Handie, Вы писали:
DP>>Основня идея — "обнуляем младший бит" x&(x-1). Кто изучал\писал ассемблер тот почти навернякак пользовался таким трюком.
H>Младший бит обнуляется x & 0xFE (0xFFFE, 0xFFFFFFFE).
Несовсем корректно выразился — обнуляем младший единичный бит.
Здравствуйте, PlusMyTwitterFace, Вы писали:
PMT>Приветствую.
PMT>Какие самые интересные вопросы на собеседованиях за всё время вашего опыта Вы слышали? Или какие наиболее интересные / необычные задаёте Вы на собеседованиях?
PMT>Интересуют, прежде всего, вопросы на вакансию программиста C/C++, а также алгоритмические задачи.
PMT>Заранее благодарю.
Чем отличается c# от java, какие преимущества и недостатки у обоих?
Здравствуйте, PlusMyTwitterFace, Вы писали:
PMT>Интересуют, прежде всего, вопросы на вакансию программиста C/C++, а также алгоритмические задачи.
Есть одна задачка, на понимание SQL. Предполагается давать кандидатам, заявившим об отличных знаниях SQL, но на практике я применял его буквально два раза.
Дано:
Резервуар заданного объема с одной in/out трубой известной пропускной способности. На трубе есть кран который может принимать три состояния: in, out, close. Записи об изменениях состояния кранов пишутся в SQL DB в формате: timestamp, новое состояние.
2012-01-01 00:00:00 | in
2012-01-01 00:10:10 | close
2012-01-02 00:05:37 | out
Задача:
Необходимо по этому логу одним SQL запросом получить средний уровень воды в резервуаре если на момент 0 краны закрыты, а резервуар пуст. На три достаточно запроса. На четыре нужен запрос с проверкой граничных условий. На пять -- понимание того что реально происходит в СУБД при выполнении этого запроса и предложения об оптимизации. На пять с плюсом тот же запрос + время которое резервуар простоял пустым + количество воды, которое вылилось из переполненного резервуара. С учетом того, что из-за несовершенства аппаратуры одно и то же событие может быть зарегистрировано несколько раз подряд с отличающимися отметками времени. Например так:
2012-01-01 00:00:00 | in
2012-01-01 00:10:10 | close
2012-01-01 00:21:00 | close
2012-01-01 00:23:30 | close
2012-01-02 00:05:37 | out
Задачка, если что, из реальной практики.
Re[2]: Наиболее интересные вопросы на собеседованиях
PMT>>Заранее благодарю. BH>Чем отличается c# от java, какие преимущества и недостатки у обоих?
А чего интересного то?
С# только винда (моно для любителей фетишизма), стандартная платформа для гуя на винде.
Java — кроссплаформенная штука, чаще исползуется на серваках
Re[2]: Наиболее интересные вопросы на собеседованиях
M>Есть одна задачка, на понимание SQL. Предполагается давать кандидатам, заявившим об отличных знаниях SQL, но на практике я применял его буквально два раза.
90% кандидатов заявлявших что отлично знаю SQL не могли сказать что делает
SELECT * FROM table t1, table t2;
Многие говорили что это невалидный SQL, другие считали что это inner join.
Re[2]: Наиболее интересные вопросы на собеседованиях
>С учетом того, что из-за несовершенства аппаратуры одно и то же событие может быть зарегистрировано несколько раз подряд с отличающимися отметками времени. Например так:
M>2012-01-01 00:00:00 | in M>2012-01-01 00:10:10 | close M>2012-01-01 00:21:00 | close M>2012-01-01 00:23:30 | close M>2012-01-02 00:05:37 | out
M>Задачка, если что, из реальной практики.
А какое время события close в данном случае брать за рабочее? Первое?
Задачка любопытная, можно помучать людей
Только самому сначала сделать
Re[2]: Наиболее интересные вопросы на собеседованиях
Здравствуйте, TMU_1, Вы писали:
TMU>А какое время события close в данном случае брать за рабочее? Первое? TMU>Задачка любопытная, можно помучать людей TMU>Только самому сначала сделать
Ну что за мышление, а?
Тьфу.
Не допускайте программистов до собеседований, делать им там — нечего!
Менеджеру надо вакансию закрыть, а таким вот товарищам — людей помучать, идиотскими задачами.
Re[2]: Наиболее интересные вопросы на собеседованиях
H>90% кандидатов заявлявших что отлично знаю SQL не могли сказать что делает
Я попадаю в остальные 10%, но не считаю, что знаю SQL на отлично.
И о чем это говорит?
1. Люди никогда не использовали этой конструкции;
2. Собеседование для них стресс;
3. У них хорошая привычка не запоминать то, как писать не надо.
Re[2]: Наиболее интересные вопросы на собеседованиях
— Изменение содержимого hi1 ведёт к UB. Например, hi1[0] = 'a';
— Длину строки hi2 можно измерить в compile-time при помощи sizeof, в отличие от hi1 и strlen
Или интересует что-то другое?
Re[3]: Наиболее интересные вопросы на собеседованиях
Здравствуйте, PlusMyTwitterFace, Вы писали:
PMT>- Изменение содержимого hi1 ведёт к UB. Например, hi1[0] = 'a';
А почему ? можно подробнее ?
PMT>- Длину строки hi2 можно измерить в compile-time при помощи sizeof, в отличие от hi1 и strlen
PMT>Или интересует что-то другое?
ХЗ
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[4]: Наиболее интересные вопросы на собеседованиях
мне из собеседований понравилась задачка написать скелет классов для моделирования такой системы как "океан" с рыбами, камнями и водорослями. И самому было прикольно, и потом обсуждение предложенного мною решения. как мне кажется очень полезная задача, так как по решению видно и как собеседуемый умеет проектировать классы, продумывать стратегию работы программы, и как защищать свое решение.
сам любил задавать под конец собеседования тупые задачки типа "Буратино дали 5 яблок, потом 2 забрали, сколько яблок осталось у Буратино", но сразу предупреждал что задачки программерско-кодерские, и решение надо искать именно с точки зрения программерской.
Re[3]: Наиболее интересные вопросы на собеседованиях
Здравствуйте, Handie, Вы писали:
_>>сам любил задавать под конец собеседования тупые задачки типа "Буратино дали 5 яблок, потом 2 забрали, сколько яблок осталось у Буратино", но сразу предупреждал что задачки программерско-кодерские, и решение надо искать именно с точки зрения программерской.
H>Приведите решение задачи. Планируем давать задачу кандидатам, но сами не знаем правильного решения с программерской точки зрения. Анализ задачи показал, что счетчик яблок не переполняется даже на 32 битной арифметике. В дабл арифметике может конечно получиться 3,000000000000000001 яблок. Опять таки, можно решить задачу метапрограммированием на этапе компилляции. В общем, задача сложная и требует аналитического ума.
а разве известно сколько у Буратино было яблок до?
Re[3]: Наиболее интересные вопросы на собеседованиях
Здравствуйте, PlusMyTwitterFace, Вы писали:
тс>>Написать пример программы, которая скомпилируется C-компилятором, но не скомпилируется C++-компилятором. Ответ лежит на поверхности, не требует знания никаких нюансов. Я не смог ответить)
PMT>Знаю лишь два варианта: PMT>Есть какие-то ещё?
мой вариант:
main(){printf("hello\n");}
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[4]: Наиболее интересные вопросы на собеседованиях
H>>Приведите решение задачи. Планируем давать задачу кандидатам, но сами не знаем правильного решения с программерской точки зрения. Анализ задачи показал, что счетчик яблок не переполняется даже на 32 битной арифметике. В дабл арифметике может конечно получиться 3,000000000000000001 яблок. Опять таки, можно решить задачу метапрограммированием на этапе компилляции. В общем, задача сложная и требует аналитического ума.
P>а разве известно сколько у Буратино было яблок до?
Аполитично рассуждаешь, не по программерски. Главное в задаче что? Правильно — выбрать язык программирования и применить паттерны, показать так сказать класс программирования. Тут есть несколько походов.
1) Объектно ориентированный. Во первых надо создать класс Apple и переопределить оператор складывания яблок. Но ведь современные проги создаются по идеологии MVC а Apple это Model. Надо еще View — это будет класс AppleInspector и контроллер AppleAccountingManager. Тут мы применили и объектно ориентированный дизайн и паттерны программирования. Не раскрыта тема метапрограммирования.
2) Метапрограммирование. В предыдущем случае мы написали класс Apple, но что будет если заказчику понадобятся груши? Правильно, класс Apple надо переименовать в класс AccountableAsset и сделать щаблоном. Во вторых, надо сделать инстанциацию количества ассетов на этапе компилляции, это на C++ делается через частичную специализацию когда у Буратино было 0 яблок, дали 5 и забрали 3. Частичная специализация шаблона даст нам частное решение на этапе компилляции. Общее решение останется в рантайме, но что делать, кто сказал что будет легко.
3) Функциональный подход. Императивные языки — вчерашний день. Компилятор сам должен вывести сколько у Буратино яблок. Мы должны задать только начальное состояние, представив подсчет яблок как совокупность последовательных состояний вычислительного процесса. Это же конечный автомат! Каждое добавление яблок изменят внутреннее состояние Буратино, каждый отъем яблок тоже сказывается на нем, причем отрицательно. Особенно полезен функциональный подход в связи с возможностью использования массового парралелизма, что позволит загрузить многопроцессорную систему.
В общем, No Hire по вашей кандидатуре
Re[5]: Наиболее интересные вопросы на собеседованиях
H>1) Объектно ориентированный. Во первых надо создать класс Apple и переопределить оператор складывания яблок. Но ведь современные проги создаются по идеологии MVC а Apple это Model. Надо еще View — это будет класс AppleInspector и контроллер AppleAccountingManager. Тут мы применили и объектно ориентированный дизайн и паттерны программирования. Не раскрыта тема метапрограммирования.
Дальнейшие изыскания в объектно ориентированном дизайне показали — что буратино это контроллер! Тогда становится все ясно — яблоко это модель, Буратино это контроллер. Но контроллером яблок (в генерализованном виде AccountableAsset) может являться не только Буратино но и Бармалей. Тогда Буратино надо тоже генерализовать в виде ControllingActor. Ну осталось генерализовать View и у нас получается супергибкая модель, не не только Буратино может управлять владением яблок, но и Бармалей может владеть кокосами. Это же ахрененная гибкость получается, мы создали Univerasal Asset Management System. Это же практически архитектура логистического приложения!
Осталось только решить вопрос с финансированием. На месте кандидата я бы поинтересовался, готова ли контора оплатить дальнейшие изыскания в области управления ассетами
Re[6]: Наиболее интересные вопросы на собеседованиях