Наиболее интересные вопросы на собеседованиях
От: PlusMyTwitterFace  
Дата: 10.06.12 10:53
Оценка:
Приветствую.

Какие самые интересные вопросы на собеседованиях за всё время вашего опыта Вы слышали? Или какие наиболее интересные / необычные задаёте Вы на собеседованиях?

Интересуют, прежде всего, вопросы на вакансию программиста C/C++, а также алгоритмические задачи.

Заранее благодарю.
Re: Наиболее интересные вопросы на собеседованиях
От: leff61  
Дата: 10.06.12 11:57
Оценка:
Здравствуйте, PlusMyTwitterFace, Вы писали:

PMT>Приветствую.


PMT>Какие самые интересные вопросы на собеседованиях за всё время вашего опыта Вы слышали? Или какие наиболее интересные / необычные задаёте Вы на собеседованиях?


PMT>Интересуют, прежде всего, вопросы на вакансию программиста C/C++, а также алгоритмические задачи.


PMT>Заранее благодарю.


На форуме уже много таких тем, там и интересные вопросы и задачки и всё что душе угодно
Re: Наиболее интересные вопросы на собеседованиях
От: Балбес  
Дата: 10.06.12 12:26
Оценка: +2 -1
Здравствуйте, PlusMyTwitterFace, Вы писали:

PMT>Интересуют, прежде всего, вопросы на вакансию программиста C/C++, а также алгоритмические задачи.


На собеседованиях нужно не задачки решать, а о жизни говорить.

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

А с моей стороны вопрос собеседующему — что вам лично нравится в компании, что вас держит здесь. По ответу тоже можно многое понять.
Re[2]: Наиболее интересные вопросы на собеседованиях
От: antigravity blog
Дата: 10.06.12 12:36
Оценка:
Здравствуйте, Балбес, Вы писали:

Б>что вам лично нравится в компании, что вас держит здесь


1. Почему вы выбрали именно нашу компанию?
Вы идиот(ка), да? Я, как и все кандидаты до меня и после меня, направил резюме в десяток мест. Где устроюсь быстрее и выгоднее — там и хорошо.

http://www.rsdn.ru/forum/humour/4433515.flat.aspx
Автор: AndrewN
Дата: 26.09.11
Re: Наиболее интересные вопросы на собеседованиях
От: тс  
Дата: 10.06.12 14:27
Оценка:
Здравствуйте, PlusMyTwitterFace, Вы писали:

PMT>Приветствую.


PMT>Какие самые интересные вопросы на собеседованиях за всё время вашего опыта Вы слышали? Или какие наиболее интересные / необычные задаёте Вы на собеседованиях?


PMT>Интересуют, прежде всего, вопросы на вакансию программиста C/C++, а также алгоритмические задачи.


PMT>Заранее благодарю.


Мне больше всего по c++ понравилось:
Написать пример программы, которая скомпилируется C-компилятором, но не скомпилируется C++-компилятором. Ответ лежит на поверхности, не требует знания никаких нюансов. Я не смог ответить)
Re[2]: Наиболее интересные вопросы на собеседованиях
От: PlusMyTwitterFace  
Дата: 10.06.12 14:33
Оценка:
тс>Написать пример программы, которая скомпилируется C-компилятором, но не скомпилируется C++-компилятором. Ответ лежит на поверхности, не требует знания никаких нюансов. Я не смог ответить)

Знаю лишь два варианта:

— При помощи препроцессора (макрос __cplusplus)
— С учётом того, что sizeof(/* any character literal */) == sizeof(char) равно true только в C++, но не в C

Есть какие-то ещё?
Re[2]: Наиболее интересные вопросы на собеседованиях
От: PlusMyTwitterFace  
Дата: 10.06.12 14:35
Оценка:
тс>Написать пример программы, которая скомпилируется C-компилятором, но не скомпилируется C++-компилятором. Ответ лежит на поверхности, не требует знания никаких нюансов. Я не смог ответить)

А, не скомпилируется? Тогда извиняюсь.

Ну, вариантов много ведь:

— Необходимость явного каста из void*
— Рекурсивный вызов main
— В C89/C90 нельзя достигать конца функции main без return
— Использование ключевых слов C++

И т.д.
Re[2]: Наиболее интересные вопросы на собеседованиях
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 10.06.12 14:39
Оценка:
Здравствуйте, тс, Вы писали:

тс>Мне больше всего по c++ понравилось:

тс>Написать пример программы, которая скомпилируется C-компилятором, но не скомпилируется C++-компилятором. Ответ лежит на поверхности, не требует знания никаких нюансов. Я не смог ответить)

С99 считать за C-компилятор? Тогда restrict и динамические массивы.
А так можно просто приведение типов где-то опустить
Re[3]: Наиболее интересные вопросы на собеседованиях
От: PlusMyTwitterFace  
Дата: 10.06.12 14:40
Оценка:
Из того, что ещё вспомнилось:

— В C++ нельзя вызывать функции без их прототипа или определения (в том числе, и без включения соответствующих заголовочных файлов)
— variable-length arrays из C99 и, например, _Noreturn из C11
Re[4]: Наиболее интересные вопросы на собеседованиях
От: PlusMyTwitterFace  
Дата: 10.06.12 14:45
Оценка:
А вообще можно посмотреть сюда:

Annex C (informative)
Compatibility [diff]
C.1 C++ and ISO C [diff.iso]


Например:

3.6
Change: Main cannot be called recursively and cannot have its address taken

Re: Наиболее интересные вопросы на собеседованиях
От: minorlogic Украина  
Дата: 10.06.12 15:12
Оценка:
Не думаю , что открою секрет а вопрос показался веселым.

"как перемножить 3 на 7 если у нас нет операции умножения ?" Долго не мог понять в каком контексте задавался вопрос, потом уже понял что это была проверка знаний на битовые сдвиги и т.п.
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[3]: Наиболее интересные вопросы на собеседованиях
От: тс  
Дата: 10.06.12 16:21
Оценка:
Здравствуйте, PlusMyTwitterFace, Вы писали:

тс>>Написать пример программы, которая скомпилируется C-компилятором, но не скомпилируется C++-компилятором. Ответ лежит на поверхности, не требует знания никаких нюансов. Я не смог ответить)


PMT>- Использование ключевых слов C++


Ответ не требовал особых знаний нюансов стандарта, поэтому был про использование ключевых слов как идентификаторов. Например int main(){int class; return 0;}
И кстати он тоже сработает для других расширений C, например objective c.
Re[3]: Наиболее интересные вопросы на собеседованиях
От: Centaur Россия  
Дата: 10.06.12 16:28
Оценка: 5 (2)
Здравствуйте, 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[4]: Наиболее интересные вопросы на собеседованиях
От: PlusMyTwitterFace  
Дата: 10.06.12 16:40
Оценка:
C>Это чит.

Ну да, но смотря с какой точки зрения посмотреть.

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.[…]


Прочитал об этом в C Programming: A Modern Approach — K. N. King
ISBN-10: 0-393-97950-4
ISBN-13: 978-0-393-97950-3

У самого стандартов C89/C90 нет. У вас не найдётся?
Re[5]: Наиболее интересные вопросы на собеседованиях
От: Centaur Россия  
Дата: 10.06.12 17:33
Оценка:
Здравствуйте, 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]: Наиболее интересные вопросы на собеседованиях
От: A.Lokotkov Россия http://www.linkedin.com/pub/alexander-lokotkov/a/701/625
Дата: 10.06.12 17:38
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>"как перемножить 3 на 7 если у нас нет операции умножения ?" Долго не мог понять в каком контексте задавался вопрос, потом уже понял что это была проверка знаний на битовые сдвиги и т.п.


Если есть сложение и вычитание, то как-то так, видимо:
3 * 7 => 3 * ( 3 * 3 - 2) => 3 * (3 * 3 - 3 + 1) => 3 * 3 * 3 - 3 * 3 + 3 => (3 << 2) - (3 << 1) + 3

Или нет?
bloß it hudla
Re[3]: Наиболее интересные вопросы на собеседованиях
От: minorlogic Украина  
Дата: 10.06.12 17:41
Оценка:
Здравствуйте, A.Lokotkov, Вы писали:

AL>Если есть сложение и вычитание, то как-то так, видимо:

AL>
AL>3 * 7 => 3 * ( 3 * 3 - 2) => 3 * (3 * 3 - 3 + 1) => 3 * 3 * 3 - 3 * 3 + 3 => (3 << 2) - (3 << 1) + 3
AL>

AL>Или нет?

я ответил как (3<<3)-3
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[4]: Наиболее интересные вопросы на собеседованиях
От: A.Lokotkov Россия http://www.linkedin.com/pub/alexander-lokotkov/a/701/625
Дата: 10.06.12 17:56
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>я ответил как (3<<3)-3


И правильно сделал. Я вот сделал не задумываясь и получил неправильно .
bloß it hudla
Re[4]: Наиболее интересные вопросы на собеседованиях
От: A.Lokotkov Россия http://www.linkedin.com/pub/alexander-lokotkov/a/701/625
Дата: 10.06.12 18:16
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>я ответил как (3<<3)-3


божеж мой, какой же бред я изобразил . no hire, однозначно.
bloß it hudla
Re[5]: Наиболее интересные вопросы на собеседованиях
От: minorlogic Украина  
Дата: 10.06.12 18:24
Оценка:
Здравствуйте, A.Lokotkov, Вы писали:

AL>божеж мой, какой же бред я изобразил . no hire, однозначно.


Я начал отвечать думая как оптимальнее построить обобщенный алгоритм умножений жалея что не учил низкоуровневые алгоритмы. Когда дошел для до решений через небольшой LUT интервьюер начал меня понимать , со смехом перебил и просто попросил ответить как сдвигами умножить на 7. Тогда я врубился в контекст и ответил (3<<3) — 3.
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[2]: Наиболее интересные вопросы на собеседованиях
От: dilmah США  
Дата: 10.06.12 18:33
Оценка: 2 (2)
M>"как перемножить 3 на 7 если у нас нет операции умножения ?" Долго не мог понять в каком контексте задавался вопрос, потом уже понял что это была проверка знаний на битовые сдвиги и т.п.

в такой постановке вопрос абсолютно идиотский. Ответ является константой времени компиляции.
Нужно задавать такой вопрос, четко отмечая, что может быть переменной величиной.
Re[2]: Наиболее интересные вопросы на собеседованиях
От: vshemm  
Дата: 10.06.12 20:00
Оценка: 2 (2)
Здравствуйте, minorlogic, Вы писали:

M>Не думаю , что открою секрет а вопрос показался веселым.


M>"как перемножить 3 на 7 если у нас нет операции умножения ?" Долго не мог понять в каком контексте задавался вопрос, потом уже понял что это была проверка знаний на битовые сдвиги и т.п.


Без контекста самый очевидный вариант — цикл со сложением, не? Или тут все с бородой и бритву не используют?
Re: Наиболее интересные вопросы на собеседованиях
От: vshemm  
Дата: 10.06.12 20:17
Оценка:
Здравствуйте, PlusMyTwitterFace, Вы писали:

PMT>Приветствую.


PMT>Какие самые интересные вопросы на собеседованиях за всё время вашего опыта Вы слышали? Или какие наиболее интересные / необычные задаёте Вы на собеседованиях?


PMT>Интересуют, прежде всего, вопросы на вакансию программиста C/C++, а также алгоритмические задачи.


PMT>Заранее благодарю.


Обычно, действительно интересные вопросы начинаются с определенного уровня вакансии/соискателя.
Практически, уже разговор "за жизнь" идет. Например, "можно ли увидеть миллиард молекул невооруженным взглядом?".
Ну или "Так вы хотите, чтобы четвертая производная вашего дохода была неотрицательной?!"
Re[6]: Наиболее интересные вопросы на собеседованиях
От: Трололоша  
Дата: 11.06.12 04:12
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>как сдвигами умножить на 7. Тогда я врубился в контекст и ответил (3<<3) — 3.


А там как только множитель в двоичном виде представляешь то решение само так и просится.
... << RSDN@Home>>
Да, йа зелёный тролль!
Re: Наиболее интересные вопросы на собеседованиях
От: volodya777  
Дата: 11.06.12 07:10
Оценка:
PMT>Интересуют, прежде всего, вопросы на вакансию программиста C/C++, а также алгоритмические задачи.
PMT>Заранее благодарю.

как посчитать биты в числе, максимально производительным способом?
Re[2]: Наиболее интересные вопросы на собеседованиях
От: minorlogic Украина  
Дата: 11.06.12 07:47
Оценка:
Здравствуйте, volodya777, Вы писали:

V>как посчитать биты в числе, максимально производительным способом?


Сильно зависит от разрядности и процессора
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re: Наиболее интересные вопросы на собеседованиях
От: minorlogic Украина  
Дата: 11.06.12 07:49
Оценка:
Вспомнил. Недавно спросили "что такое виртуальный деструктор , и в чем его особенности". Я блин долго тупил и не мог понять какие у него особенности, вспомнил тольок что во время выполнения деструктора он ведет себя как невиртуальная функция и вызывает всех предков.
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[3]: Наиболее интересные вопросы на собеседованиях
От: D. Petrov США  
Дата: 11.06.12 09:08
Оценка:
Здравствуйте, minorlogic, Вы писали:

V>>как посчитать биты в числе, максимально производительным способом?


M>Сильно зависит от разрядности и процессора


Не думаю...

int fun(int x)
{
   int res = 0;
   while ( (x &= x-1) != 0  )
      res++;
   return res;
}
Re[4]: Наиболее интересные вопросы на собеседованиях
От: minorlogic Украина  
Дата: 11.06.12 10:44
Оценка:
Здравствуйте, D. Petrov, Вы писали:

DP>Здравствуйте, minorlogic, Вы писали:



M>>Сильно зависит от разрядности и процессора


DP>Не думаю...


Уверенны? учитывая "максимально производительным способом?"
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[5]: Наиболее интересные вопросы на собеседованиях
От: dilmah США  
Дата: 11.06.12 10:49
Оценка:
M>>>Сильно зависит от разрядности и процессора
DP>>Не думаю...
M>Уверенны? учитывая "максимально производительным способом?"

может он предполагает, что sufficiently smart compiler(TM) догадается о том что делает данный цикл (что, в принципе, не очень сложно..), и подставит то что нужно..
Re[6]: Наиболее интересные вопросы на собеседованиях
От: PlusMyTwitterFace  
Дата: 11.06.12 11:13
Оценка:
Спасибо за ссылку, но это C99 ведь, а не C89/C90. Их у Вас нет?
Re[4]: Наиболее интересные вопросы на собеседованиях
От: Панда Россия  
Дата: 11.06.12 13:15
Оценка:
Здравствуйте, PlusMyTwitterFace, Вы писали:

PMT>Из того, что ещё вспомнилось:


PMT>- В C++ нельзя вызывать функции без их прототипа или определения (в том числе, и без включения соответствующих заголовочных файлов)

PMT>- variable-length arrays из C99 и, например, _Noreturn из C11

Если "ответ на поверхности и не требует знаний ньюансов", то приходит в голову такое:

int main(void)
{
/*
// */
   return 0;
}
Re[3]: Наиболее интересные вопросы на собеседованиях
От: Abalak США  
Дата: 11.06.12 15:47
Оценка: :))) :))) :)))
Здравствуйте, antigravity, Вы писали:

Б>>что вам лично нравится в компании, что вас держит здесь


A>

A>1. Почему вы выбрали именно нашу компанию?
A>Вы идиот(ка), да? Я, как и все кандидаты до меня и после меня, направил резюме в десяток мест. Где устроюсь быстрее и выгоднее — там и хорошо.


Смех смехом, но когда я уже был в Штатах, то мне на почту написала рекрутерша одного из российских банков и очень настойчиво желала поговорить. В итоге я ей выслал свой американский номер телефона и она позвонила. После распроса про текущее место она задала вопрос, почему я хочу вернуться и работать у них в банке Я чуть не поперхнулся...
Re[5]: Наиболее интересные вопросы на собеседованиях
От: PlusMyTwitterFace  
Дата: 11.06.12 15:49
Оценка:
П>Если "ответ на поверхности и не требует знаний ньюансов", то приходит в голову такое:

П>
П>int main(void)
П>{
П>/*
П>// */
П>   return 0;
П>}
П>


Разве такой код должен вызвать проблемы?

gcc 4.7.0 и Comeau 4.3.10.1 Beta2 скомпилировали без проблем.
Re[6]: Наиболее интересные вопросы на собеседованиях
От: blackwater  
Дата: 11.06.12 19:24
Оценка: 1 (1)
Здравствуйте, dilmah, Вы писали:

M>>>>Сильно зависит от разрядности и процессора

DP>>>Не думаю...
M>>Уверенны? учитывая "максимально производительным способом?"

D>может он предполагает, что sufficiently smart compiler(TM) догадается о том что делает данный цикл (что, в принципе, не очень сложно..), и подставит то что нужно..


Я думаю ждут это: http://en.wikipedia.org/wiki/Hamming_weight
Re[6]: Наиболее интересные вопросы на собеседованиях
От: Панда Россия  
Дата: 11.06.12 19:35
Оценка:
Здравствуйте, PlusMyTwitterFace, Вы писали:

П>>Если "ответ на поверхности и не требует знаний ньюансов", то приходит в голову такое:


П>>
П>>int main(void)
П>>{
П>>/*
П>>// */
П>>   return 0;
П>>}
П>>


PMT>Разве такой код должен вызвать проблемы?


PMT>gcc 4.7.0 и Comeau 4.3.10.1 Beta2 скомпилировали без проблем.


Видимо, ошибся. Почему-то подумал, что C++ не найдет, где закрывается комментарий /* */, если его заэкранировать комментарием //
Re[2]: Наиболее интересные вопросы на собеседованиях
От: Qwazar Россия http://qwazar.ru
Дата: 11.06.12 19:54
Оценка:
V>Практически, уже разговор "за жизнь" идет. Например, "можно ли увидеть миллиард молекул невооруженным взглядом?".
Специалистов по подсчёту молекул подбирают?
Мой блог:qwazar.ru
Re[4]: Наиболее интересные вопросы на собеседованиях
От: Олег К.  
Дата: 12.06.12 02:14
Оценка:
Б>>>что вам лично нравится в компании, что вас держит здесь

A>>

A>>1. Почему вы выбрали именно нашу компанию?
A>>Вы идиот(ка), да? Я, как и все кандидаты до меня и после меня, направил резюме в десяток мест. Где устроюсь быстрее и выгоднее — там и хорошо.


A>Смех смехом, но когда я уже был в Штатах, то мне на почту написала рекрутерша одного из российских банков и очень настойчиво желала поговорить. В итоге я ей выслал свой американский номер телефона и она позвонила. После распроса про текущее место она задала вопрос, почему я хочу вернуться и работать у них в банке Я чуть не поперхнулся...


Ну а ты что в ответ?
Re[4]: Наиболее интересные вопросы на собеседованиях
От: Олег К.  
Дата: 12.06.12 02:16
Оценка:
тс>>>Написать пример программы, которая скомпилируется C-компилятором, но не скомпилируется C++-компилятором. Ответ лежит на поверхности, не требует знания никаких нюансов. Я не смог ответить)

PMT>>- Использование ключевых слов C++


тс>Ответ не требовал особых знаний нюансов стандарта, поэтому был про использование ключевых слов как идентификаторов. Например int main(){int class; return 0;}

тс>И кстати он тоже сработает для других расширений C, например objective c.

Да по-моему это все очевидно но только разве это интересный вопрос?
Re[2]: Наиболее интересные вопросы на собеседованиях
От: Олег К.  
Дата: 12.06.12 02:17
Оценка:
M>Не думаю , что открою секрет а вопрос показался веселым.

M>"как перемножить 3 на 7 если у нас нет операции умножения ?" Долго не мог понять в каком контексте задавался вопрос, потом уже понял что это была проверка знаний на битовые сдвиги и т.п.


Это тоже что ли интересный вопрос?
Re[2]: Наиболее интересные вопросы на собеседованиях
От: Олег К.  
Дата: 12.06.12 02:18
Оценка:
PMT>>Интересуют, прежде всего, вопросы на вакансию программиста C/C++, а также алгоритмические задачи.
PMT>>Заранее благодарю.

V>как посчитать биты в числе, максимально производительным способом?


Неужели и это интересный вопрос?
Re[2]: Наиболее интересные вопросы на собеседованиях
От: Олег К.  
Дата: 12.06.12 02:21
Оценка:
M>Вспомнил. Недавно спросили "что такое виртуальный деструктор , и в чем его особенности". Я блин долго тупил и не мог понять какие у него особенности, вспомнил тольок что во время выполнения деструктора он ведет себя как невиртуальная функция и вызывает всех предков.

Пацаны, вы чего? Какие ж это интересные вопросы?
Re[3]: Наиболее интересные вопросы на собеседованиях
От: minorlogic Украина  
Дата: 12.06.12 06:31
Оценка: :)
Здравствуйте, Олег К., Вы писали:

ОК>Пацаны, вы чего? Какие ж это интересные вопросы?


Забавный вопрос
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[5]: Наиболее интересные вопросы на собеседованиях
От: Abalak США  
Дата: 12.06.12 14:36
Оценка:
Здравствуйте, Олег К., Вы писали:

A>>Смех смехом, но когда я уже был в Штатах, то мне на почту написала рекрутерша одного из российских банков и очень настойчиво желала поговорить. В итоге я ей выслал свой американский номер телефона и она позвонила. После распроса про текущее место она задала вопрос, почему я хочу вернуться и работать у них в банке Я чуть не поперхнулся...


ОК>Ну а ты что в ответ?


Да ничего особенного, поинтересовался почему она решила, что я вообще возвращаться собираюсь. — Ну как же, вы же поговорить согласились.
Re[2]: Наиболее интересные вопросы на собеседованиях
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 12.06.12 21:01
Оценка:
Здравствуйте, volodya777, Вы писали:

PMT>>Интересуют, прежде всего, вопросы на вакансию программиста C/C++, а также алгоритмические задачи.

PMT>>Заранее благодарю.

V>как посчитать биты в числе, максимально производительным способом?


POPCOUNT, а вообще вариантов куча, успевай только считать: Population Count
Re[7]: Наиболее интересные вопросы на собеседованиях
От: D. Petrov США  
Дата: 12.06.12 21:44
Оценка: 1 (1)
Здравствуйте, 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[2]: Наиболее интересные вопросы на собеседованиях
От: Handie  
Дата: 13.06.12 09:08
Оценка:
тс>Мне больше всего по c++ понравилось:
тс>Написать пример программы, которая скомпилируется C-компилятором, но не скомпилируется C++-компилятором. Ответ лежит на поверхности, не требует знания никаких нюансов. Я не смог ответить)

так это идиотен-тест
int new = 1;
Re[2]: Наиболее интересные вопросы на собеседованиях
От: Handie  
Дата: 13.06.12 09:10
Оценка: +1 -1
M>"как перемножить 3 на 7 если у нас нет операции умножения ?" Долго не мог понять в каком контексте задавался вопрос, потом уже понял что это была проверка знаний на битовые сдвиги и т.п.

Какие н... битовые сдвиги!

int res = 0;
for(int cnt=0; cnt<3; ++cnt)
    res+=7;
Re[2]: Наиболее интересные вопросы на собеседованиях
От: Handie  
Дата: 13.06.12 09:12
Оценка:
V>как посчитать биты в числе, максимально производительным способом?

LUT — lookup table. По частям, естественно
Re[2]: Наиболее интересные вопросы на собеседованиях
От: Handie  
Дата: 13.06.12 09:13
Оценка: -1
Здравствуйте, minorlogic, Вы писали:

M>Вспомнил. Недавно спросили "что такое виртуальный деструктор , и в чем его особенности". Я блин долго тупил и не мог понять какие у него особенности, вспомнил тольок что во время выполнения деструктора он ведет себя как невиртуальная функция и вызывает всех предков.


Что курите? Виртуальный деструктор ведет себя именно как виртуальная функция. Единственное назнвчение — убивать объект по указателю приведенному к базовому классу.

Весь топик прочел — одни унылые вопросы
Re[8]: Наиболее интересные вопросы на собеседованиях
От: Handie  
Дата: 13.06.12 09:16
Оценка: :)
DP>Основня идея — "обнуляем младший бит" x&(x-1). Кто изучал\писал ассемблер тот почти навернякак пользовался таким трюком.

Младший бит обнуляется x & 0xFE (0xFFFE, 0xFFFFFFFE).
Re[8]: Наиболее интересные вопросы на собеседованиях
От: Glas  
Дата: 13.06.12 09:31
Оценка:
Здравствуйте, 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]: Наиболее интересные вопросы на собеседованиях
От: D. Petrov США  
Дата: 13.06.12 19:08
Оценка: 1 (1) +1
Здравствуйте, Glas, Вы писали:

G>А через сдвиги вроде быстрее


Таким образом число 16384 (0100000000000000) придется двигать 15 раз, а через x&(x-1) за одну операцию обнулите единичный бит.
Re[9]: Наиболее интересные вопросы на собеседованиях
От: D. Petrov США  
Дата: 13.06.12 19:10
Оценка:
Здравствуйте, Handie, Вы писали:

DP>>Основня идея — "обнуляем младший бит" x&(x-1). Кто изучал\писал ассемблер тот почти навернякак пользовался таким трюком.


H>Младший бит обнуляется x & 0xFE (0xFFFE, 0xFFFFFFFE).


Несовсем корректно выразился — обнуляем младший единичный бит.
Re: Наиболее интересные вопросы на собеседованиях
От: gBopHuk Россия  
Дата: 14.06.12 09:37
Оценка:
Здравствуйте, PlusMyTwitterFace, Вы писали:

PMT>Приветствую.


PMT>Какие самые интересные вопросы на собеседованиях за всё время вашего опыта Вы слышали? Или какие наиболее интересные / необычные задаёте Вы на собеседованиях?


PMT>Интересуют, прежде всего, вопросы на вакансию программиста C/C++, а также алгоритмические задачи.


PMT>Заранее благодарю.

Чем отличается c# от java, какие преимущества и недостатки у обоих?
Re: Наиболее интересные вопросы на собеседованиях
От: Miroff Россия  
Дата: 14.06.12 10:10
Оценка:
Здравствуйте, 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]: Наиболее интересные вопросы на собеседованиях
От: Handie  
Дата: 14.06.12 10:12
Оценка:
PMT>>Заранее благодарю.
BH>Чем отличается c# от java, какие преимущества и недостатки у обоих?

А чего интересного то?
С# только винда (моно для любителей фетишизма), стандартная платформа для гуя на винде.
Java — кроссплаформенная штука, чаще исползуется на серваках
Re[2]: Наиболее интересные вопросы на собеседованиях
От: Handie  
Дата: 14.06.12 10:58
Оценка:
M>Есть одна задачка, на понимание SQL. Предполагается давать кандидатам, заявившим об отличных знаниях SQL, но на практике я применял его буквально два раза.

90% кандидатов заявлявших что отлично знаю SQL не могли сказать что делает

SELECT * FROM table t1, table t2;

Многие говорили что это невалидный SQL, другие считали что это inner join.
Re[2]: Наиболее интересные вопросы на собеседованиях
От: TMU_1  
Дата: 14.06.12 12:48
Оценка:
>С учетом того, что из-за несовершенства аппаратуры одно и то же событие может быть зарегистрировано несколько раз подряд с отличающимися отметками времени. Например так:

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]: Наиболее интересные вопросы на собеседованиях
От: os24ever
Дата: 14.06.12 12:52
Оценка:
M>Задачка, если что, из реальной практики.

Шестьсот рублей.

<?php
$days_total = 31;
$hours_total = 8 * $days_total;
$code_monkey_avg_salary = 80000; /* todo: -> ~/data/config.ini */

$s_per_h = round ($code_monkey_avg_salary / $hours_total);

print $s_per_h * 2;
Re: Наиболее интересные вопросы на собеседованиях
От: minorlogic Украина  
Дата: 17.06.12 07:37
Оценка:
Наброшу.


В чем отличие при использовании hi1 и hi2 ?

char* hi1 = "hi";
char hi2[] = "hi";
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[3]: Собеседователь во всей красе
От: BlackStone  
Дата: 17.06.12 07:46
Оценка:
Здравствуйте, TMU_1, Вы писали:

TMU>А какое время события close в данном случае брать за рабочее? Первое?

TMU>Задачка любопытная, можно помучать людей
TMU>Только самому сначала сделать

Ну что за мышление, а?
Тьфу.

Не допускайте программистов до собеседований, делать им там — нечего!
Менеджеру надо вакансию закрыть, а таким вот товарищам — людей помучать, идиотскими задачами.
Re[2]: Наиболее интересные вопросы на собеседованиях
От: namespace  
Дата: 17.06.12 08:41
Оценка:
Да, задачка интересная, особенно если учесть, что timestamp не время, а автоинкрементное поле.
Re[3]: Наиболее интересные вопросы на собеседованиях
От: namespace  
Дата: 17.06.12 08:47
Оценка:
H>90% кандидатов заявлявших что отлично знаю SQL не могли сказать что делает
Я попадаю в остальные 10%, но не считаю, что знаю SQL на отлично.
И о чем это говорит?
1. Люди никогда не использовали этой конструкции;
2. Собеседование для них стресс;
3. У них хорошая привычка не запоминать то, как писать не надо.
Re[2]: Наиболее интересные вопросы на собеседованиях
От: PlusMyTwitterFace  
Дата: 17.06.12 09:01
Оценка:
M>char* hi1 = "hi";
M>char hi2[] = "hi";

— Изменение содержимого hi1 ведёт к UB. Например, hi1[0] = 'a';
— Длину строки hi2 можно измерить в compile-time при помощи sizeof, в отличие от hi1 и strlen

Или интересует что-то другое?
Re[3]: Наиболее интересные вопросы на собеседованиях
От: minorlogic Украина  
Дата: 17.06.12 10:09
Оценка:
Здравствуйте, 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]: Наиболее интересные вопросы на собеседованиях
От: PlusMyTwitterFace  
Дата: 17.06.12 10:15
Оценка: 1 (1)
M>А почему ? можно подробнее ?

Потому что такие строковые литералы заносятся в область памяти, предназначенную только для чтения. Нет?
Re[4]: Наиболее интересные вопросы на собеседованиях
От: dilmah США  
Дата: 17.06.12 10:43
Оценка:
PMT>>- Изменение содержимого hi1 ведёт к UB. Например, hi1[0] = 'a';

M>А почему ? можно подробнее ?


hi1 это указатель на string literal.

The effect of attempting to modify a string literal is undefined.

Re: Наиболее интересные вопросы на собеседованиях
От: ssp_alex Россия  
Дата: 21.06.12 13:55
Оценка:
Здравствуйте, PlusMyTwitterFace, Вы писали:

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

сам любил задавать под конец собеседования тупые задачки типа "Буратино дали 5 яблок, потом 2 забрали, сколько яблок осталось у Буратино", но сразу предупреждал что задачки программерско-кодерские, и решение надо искать именно с точки зрения программерской.
Re[2]: Наиболее интересные вопросы на собеседованиях
От: Handie  
Дата: 21.06.12 18:45
Оценка: +1 :)
_>сам любил задавать под конец собеседования тупые задачки типа "Буратино дали 5 яблок, потом 2 забрали, сколько яблок осталось у Буратино", но сразу предупреждал что задачки программерско-кодерские, и решение надо искать именно с точки зрения программерской.

Приведите решение задачи. Планируем давать задачу кандидатам, но сами не знаем правильного решения с программерской точки зрения. Анализ задачи показал, что счетчик яблок не переполняется даже на 32 битной арифметике. В дабл арифметике может конечно получиться 3,000000000000000001 яблок. Опять таки, можно решить задачу метапрограммированием на этапе компилляции. В общем, задача сложная и требует аналитического ума.
Re[3]: Наиболее интересные вопросы на собеседованиях
От: Piko  
Дата: 21.06.12 21:08
Оценка:
Здравствуйте, Handie, Вы писали:

_>>сам любил задавать под конец собеседования тупые задачки типа "Буратино дали 5 яблок, потом 2 забрали, сколько яблок осталось у Буратино", но сразу предупреждал что задачки программерско-кодерские, и решение надо искать именно с точки зрения программерской.


H>Приведите решение задачи. Планируем давать задачу кандидатам, но сами не знаем правильного решения с программерской точки зрения. Анализ задачи показал, что счетчик яблок не переполняется даже на 32 битной арифметике. В дабл арифметике может конечно получиться 3,000000000000000001 яблок. Опять таки, можно решить задачу метапрограммированием на этапе компилляции. В общем, задача сложная и требует аналитического ума.


а разве известно сколько у Буратино было яблок до?
Re[3]: Наиболее интересные вопросы на собеседованиях
От: мыщъх США http://nezumi-lab.org
Дата: 22.06.12 01:58
Оценка:
Здравствуйте, 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]: Наиболее интересные вопросы на собеседованиях
От: Handie  
Дата: 22.06.12 06:43
Оценка:
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]: Наиболее интересные вопросы на собеседованиях
От: Handie  
Дата: 22.06.12 06:52
Оценка:
H>1) Объектно ориентированный. Во первых надо создать класс Apple и переопределить оператор складывания яблок. Но ведь современные проги создаются по идеологии MVC а Apple это Model. Надо еще View — это будет класс AppleInspector и контроллер AppleAccountingManager. Тут мы применили и объектно ориентированный дизайн и паттерны программирования. Не раскрыта тема метапрограммирования.

Дальнейшие изыскания в объектно ориентированном дизайне показали — что буратино это контроллер! Тогда становится все ясно — яблоко это модель, Буратино это контроллер. Но контроллером яблок (в генерализованном виде AccountableAsset) может являться не только Буратино но и Бармалей. Тогда Буратино надо тоже генерализовать в виде ControllingActor. Ну осталось генерализовать View и у нас получается супергибкая модель, не не только Буратино может управлять владением яблок, но и Бармалей может владеть кокосами. Это же ахрененная гибкость получается, мы создали Univerasal Asset Management System. Это же практически архитектура логистического приложения!

Осталось только решить вопрос с финансированием. На месте кандидата я бы поинтересовался, готова ли контора оплатить дальнейшие изыскания в области управления ассетами
Re[6]: Наиболее интересные вопросы на собеседованиях
От: Трололоша  
Дата: 22.06.12 22:47
Оценка:
Здравствуйте, Handie, Вы писали:

Энтерпрайзненько!
... << RSDN@Home>>
Да, йа зелёный тролль!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.