Задачи для IT интервью

User avatar
Poryadok
Уже с Приветом
Posts: 1383
Joined: 17 Jan 2005 22:33
Location: Minsk, Belarus - Beaverton, OR

Re: Задачи для IT интервью

Post by Poryadok »

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

Кстати, вопрос про виртуальные конструкторы очень помогает понять что из себя представляет кандидат.
Отлипай давай от форума и марш работать!
XpoH
Уже с Приветом
Posts: 2136
Joined: 08 Nov 2013 22:33
Location: SFBA

Re: Задачи для IT интервью

Post by XpoH »

Ну меня вчера попросили написать свой StringBuilder, потом долго удивлялись, когда я сказал что я у них работать не хочу.
User avatar
ALV00
Уже с Приветом
Posts: 1494
Joined: 08 Mar 2002 10:01
Location: NJ

Re: Задачи для IT интервью

Post by ALV00 »

berlagaB wrote:Старая, но очень хорошая задачка.

Хакер выбирает квартиру в 30ти этажном доме. Поскольку он хакер и перменентно ожидает визита полиции, то ему хочется точно знать, начиная с какого этажа выброшенный в окно жесткий диск разобьется вдребезги и тем скроет все улики. Для экспериментов у него есть два диска. Ну и, разумеется, хакер не очень хочет бегать вверх-вниз по этажам, поэтому он придумывает алгоритм, минимизирующий количество бросков.

Помогите Хакеру найти такой алгоритм.
Более точная формулировка: при каком минимальном количестве бросков можно гарантированно определить этаж. Хорошая задача на оптимизацию.
Falcon
Уже с Приветом
Posts: 775
Joined: 10 May 2003 17:55
Location: Minsk->NJ->PA->CA

Re: Задачи для IT интервью

Post by Falcon »

XpoH wrote:Ну меня вчера попросили написать свой StringBuilder, потом долго удивлялись, когда я сказал что я у них работать не хочу.
А почему вас удивляет нормальная реакция на ваше неадекватное поведение?
User avatar
valchkou
Уже с Приветом
Posts: 4195
Joined: 27 Apr 2011 03:43
Location: Сергели ->Chicago

Re: Задачи для IT интервью

Post by valchkou »

ALV00 wrote:Более точная формулировка: при каком минимальном количестве бросков можно гарантированно определить этаж. Хорошая задача на оптимизацию.
в моем случае начало звучало проще - есть 2 стеклянных стакана и 100 эт здание.
Не знаю оптимально ли решение, но я решил так:
Первый бросок стакана с 14 этажа, если разобъется, то со вторым стаканом спускаться вниз - итого 14 попыток.
если с 14 не разбился идем на 27 этаж, затем на 39 и тд - т.е ариф прогрессия
14, 27, 39, 50, 60, 69, 77, 84, 90, 95, 99, 100.
с сотого этажа - 12 попыток. со всех остальных не более 14.
Может математики подскажут формулу для правильно расчета распределения.
Я для себя считаю упрощенной формулой n = sqrt(2*m)
где n начальный этаж и соотв макс кол-во попыток, а m кол-во этажей.
100 - 14 (14.14...)
30 - 8 (7.7...)
User avatar
John Smith
Уже с Приветом
Posts: 1680
Joined: 04 Oct 2006 23:30
Location: Las Vegas

Re: Задачи для IT интервью

Post by John Smith »

valchkou wrote:
ALV00 wrote:Более точная формулировка: при каком минимальном количестве бросков можно гарантированно определить этаж. Хорошая задача на оптимизацию.
в моем случае начало звучало проще - есть 2 стеклянных стакана и 100 эт здание.
Не знаю оптимально ли решение, но я решил так:
Первый бросок стакана с 14 этажа, если разобъется, то со вторым стаканом спускаться вниз - итого 14 попыток.
если с 14 не разбился идем на 27 этаж, затем на 39 и тд - т.е ариф прогрессия
14, 27, 39, 50, 60, 69, 77, 84, 90, 95, 99, 100.
с сотого этажа - 12 попыток. со всех остальных не более 14.
Может математики подскажут формулу для правильно расчета распределения.
Я для себя считаю упрощенной формулой n = sqrt(2*m)
где n начальный этаж и соотв макс кол-во попыток, а m кол-во этажей.
100 - 14 (14.14...)
30 - 8 (7.7...)
только не спускаться вниз, а подниматься наверх
User avatar
valchkou
Уже с Приветом
Posts: 4195
Joined: 27 Apr 2011 03:43
Location: Сергели ->Chicago

Re: Задачи для IT интервью

Post by valchkou »

John Smith wrote:
valchkou wrote:
ALV00 wrote:Более точная формулировка: при каком минимальном количестве бросков можно гарантированно определить этаж. Хорошая задача на оптимизацию.
в моем случае начало звучало проще - есть 2 стеклянных стакана и 100 эт здание.
Не знаю оптимально ли решение, но я решил так:
Первый бросок стакана с 14 этажа, если разобъется, то со вторым стаканом спускаться вниз - итого 14 попыток.
если с 14 не разбился идем на 27 этаж, затем на 39 и тд - т.е ариф прогрессия
14, 27, 39, 50, 60, 69, 77, 84, 90, 95, 99, 100.
с сотого этажа - 12 попыток. со всех остальных не более 14.
Может математики подскажут формулу для правильно расчета распределения.
Я для себя считаю упрощенной формулой n = sqrt(2*m)
где n начальный этаж и соотв макс кол-во попыток, а m кол-во этажей.
100 - 14 (14.14...)
30 - 8 (7.7...)
только не спускаться вниз, а подниматься наверх
если разбился то вниз, если нет то прыгаем вверх на (n-1)
требуется найти этаж с которого стакан не разобъется
XpoH
Уже с Приветом
Posts: 2136
Joined: 08 Nov 2013 22:33
Location: SFBA

Re: Задачи для IT интервью

Post by XpoH »

Falcon wrote:
XpoH wrote:Ну меня вчера попросили написать свой StringBuilder, потом долго удивлялись, когда я сказал что я у них работать не хочу.
А почему вас удивляет нормальная реакция на ваше неадекватное поведение?
Что вы считаете неадекватным поведением?
После интервью с инженерами сказать hr что я не хочу работать в этой команде?
Расскажите как вы делаете это?
Falcon
Уже с Приветом
Posts: 775
Joined: 10 May 2003 17:55
Location: Minsk->NJ->PA->CA

Re: Задачи для IT интервью

Post by Falcon »

XpoH wrote:
Falcon wrote:
XpoH wrote:Ну меня вчера попросили написать свой StringBuilder, потом долго удивлялись, когда я сказал что я у них работать не хочу.
А почему вас удивляет нормальная реакция на ваше неадекватное поведение?
Что вы считаете неадекватным поведением?
После интервью с инженерами сказать hr что я не хочу работать в этой команде?
Расскажите как вы делаете это?
Неадекватным я считаю обидки на вопрос написать свой StringBuilder. Мне кажется что инженер всегда должен быть готов чего-нибудь написать на интервью - его берут на работу чтобы он писал код. Или именно StringBuilder является особенно богомерзким? Объясните свою позицию, что ли?
XpoH
Уже с Приветом
Posts: 2136
Joined: 08 Nov 2013 22:33
Location: SFBA

Re: Задачи для IT интервью

Post by XpoH »

Falcon wrote:
XpoH wrote:
Falcon wrote:
XpoH wrote:Ну меня вчера попросили написать свой StringBuilder, потом долго удивлялись, когда я сказал что я у них работать не хочу.
А почему вас удивляет нормальная реакция на ваше неадекватное поведение?
Что вы считаете неадекватным поведением?
После интервью с инженерами сказать hr что я не хочу работать в этой команде?
Расскажите как вы делаете это?
Неадекватным я считаю обидки на вопрос написать свой StringBuilder. Мне кажется что инженер всегда должен быть готов чего-нибудь написать на интервью - его берут на работу чтобы он писал код. Или именно StringBuilder является особенно богомерзким? Объясните свою позицию, что ли?
что никогда не приходилось на интервью говорить что не хотите у них работать или прерывать интервью по причине тупости/заносчивости "потенциального" коллеги?
моя позиция такая - интервью двусторонний процесс, причем для меня как кандидата этот процесс гораздо труднее. я нахожусь в неизвестном месте с неизвестными людьми, которые мне задают 100500 вопросов. мне приходится накануне перелапачивать кучу литературы, чтоб покрыть невероятное количество тем, для того чтоб подготовится к интервью. это мой выбор - я решил сменить работу. этого же я ожидаю от того, кто меня собеседует, а именно - подготовиться к интервью. к слову я когда собеседую то готовлюсь основательно, готовлю несколько тем (существует вероятность что кандидат вполне себе может что-то не знать вообще)
и когда заходит какой-то хер с горы, не представляется, не предлагает воды и тд, пялит в резюме пытаясь выдавить из себя хоть какой-то вопрос у меня появляется мысль - "зачем я свое время трачу?" я на интервью хожу не только чтоб получить плюс х% к 200к, а чтоб пощупать будущих коллег, они задают мне вопросы я задаю им. они задают мне отличные задачи и я их решаю, или сам или с их помощью, или мы обсуждаем вместе какую-нибудь очень актуальную для них задачу.
а те, кто хочет чтоб им LinkedList, SringBuilder или quicksort написали идут нахер.
User avatar
Poryadok
Уже с Приветом
Posts: 1383
Joined: 17 Jan 2005 22:33
Location: Minsk, Belarus - Beaverton, OR

Re: Задачи для IT интервью

Post by Poryadok »

У нас был кандидат, который на нас в hr пожаловался, что мы - заносчивые. Мы ему объяснили насколько у нас сложная система, и спросили работал ли он с системами такой сложности, а он решил, что мы кичимся и выпендриваемся перед ним. Видимо, по себе судит. Вобщем, хлопнул дверью, мы пожали плечами. К счастью, из полсотни мной проведеных интервью такой был только один.
К чему это я. Если я попрошу рассказать как писать стрингбилдер (писать весь код я просить не буду, у меня на глупости времени нет), а человек хлопнет дверью, я пожму плечами и попрошу в дальнейшем неадекватных на интервью не присылать. Пожалуйста, не принимайте на личный счёт, но у меня своя задача - выбрать хорошего кандидата и отсеять плохого, и она не такая простая как кажется.
Отлипай давай от форума и марш работать!
User avatar
valchkou
Уже с Приветом
Posts: 4195
Joined: 27 Apr 2011 03:43
Location: Сергели ->Chicago

Re: Задачи для IT интервью

Post by valchkou »

Poryadok, вы в следующий раз воды предложите то
Falcon
Уже с Приветом
Posts: 775
Joined: 10 May 2003 17:55
Location: Minsk->NJ->PA->CA

Re: Задачи для IT интервью

Post by Falcon »

XpoH wrote: что никогда не приходилось на интервью говорить что не хотите у них работать или прерывать интервью по причине тупости/заносчивости "потенциального" коллеги?
Как-то не приходилось, все больше удавалось с приятными и интересными людьми пообщаться :pain1:
XpoH wrote: а те, кто хочет чтоб им LinkedList, SringBuilder или quicksort написали идут нахер.
Ясно. Забудьте про 200к. Junior jerks стоят гораздо дешевле.
"Вы должны молчать. Иногда для важности надувайте щеки" (С)
XpoH
Уже с Приветом
Posts: 2136
Joined: 08 Nov 2013 22:33
Location: SFBA

Re: Задачи для IT интервью

Post by XpoH »

Poryadok wrote:Если я попрошу рассказать как писать стрингбилдер (писать весь код я просить не буду, у меня на глупости времени нет), а человек хлопнет дверью, я пожму плечами и попрошу в дальнейшем неадекватных на интервью не присылать
у вас нет времени на глупости, а у некоторых есть. и тогда человек напишет код и скажет hr что ему не подходит ваша команда.
Falcon wrote:Ясно. Забудьте про 200к. Junior jerks стоят гораздо дешевле.
"Вы должны молчать. Иногда для важности надувайте щеки" (С)
я ничего не знаю про Junior jerks, расскажите про ваш опыт?
Falcon
Уже с Приветом
Posts: 775
Joined: 10 May 2003 17:55
Location: Minsk->NJ->PA->CA

Re: Задачи для IT интервью

Post by Falcon »

XpoH wrote:
Falcon wrote:Ясно. Забудьте про 200к. Junior jerks стоят гораздо дешевле.
"Вы должны молчать. Иногда для важности надувайте щеки" (С)
я ничего не знаю про Junior jerks, расскажите про ваш опыт?
Опыт позитивный, вашу братию ко мне не пускает HR и рекрутеры :lol:
Наверное, они как-то научились отсеивать неумеющих себя вести. Завтра спрошу как они это делают.
XpoH
Уже с Приветом
Posts: 2136
Joined: 08 Nov 2013 22:33
Location: SFBA

Re: Задачи для IT интервью

Post by XpoH »

Falcon wrote:
XpoH wrote:
Falcon wrote:Ясно. Забудьте про 200к. Junior jerks стоят гораздо дешевле.
"Вы должны молчать. Иногда для важности надувайте щеки" (С)
я ничего не знаю про Junior jerks, расскажите про ваш опыт?
Опыт позитивный, вашу братию ко мне не пускает HR и рекрутеры :lol:
Наверное, они как-то научились отсеивать неумеющих себя вести. Завтра спрошу как они это делают.
какую братию?
вы решили что определили мой уровень и мою манеру поведения?
:D
часто пишете StringBuilder на интервью?
User avatar
Boriskin
Уже с Приветом
Posts: 18906
Joined: 30 Aug 2001 09:01
Location: 3rd planet

Re: Задачи для IT интервью

Post by Boriskin »

valchkou wrote: если разбился то вниз, если нет то прыгаем вверх на (n-1)
требуется найти этаж с которого стакан не разобъется
Если разбился - то надо начинать от предыдушего шага и по одному вверх, бо если двигать вниз от разбившегося (n) - можно разбить со следущего вниз (n-1) и ничего не найти.
Тупизна как Энтропия. Неумолимо растет.
Физик-Лирик
Уже с Приветом
Posts: 5106
Joined: 19 Oct 2004 01:46

Re: Задачи для IT интервью

Post by Физик-Лирик »

valchkou wrote: в моем случае начало звучало проще - есть 2 стеклянных стакана и 100 эт здание.
Не знаю оптимально ли решение, но я решил так:
Первый бросок стакана с 14 этажа, если разобъется, то со вторым стаканом спускаться вниз - итого 14 попыток.
если с 14 не разбился идем на 27 этаж, затем на 39 и тд - т.е ариф прогрессия
14, 27, 39, 50, 60, 69, 77, 84, 90, 95, 99, 100.
с сотого этажа - 12 попыток. со всех остальных не более 14.
Может математики подскажут формулу для правильно расчета распределения.
Я для себя считаю упрощенной формулой n = sqrt(2*m)
где n начальный этаж и соотв макс кол-во попыток, а m кол-во этажей.
100 - 14 (14.14...)
30 - 8 (7.7...)
Давайте формализуем. Оптимальным будет решение, когда на любом шаге количество попыток одинаково при условии плохого сценария. Т.е. если вначале подняться на n1 ступеньку, бросить стакан, и если он не разобьется начинать снизу вверх. Тогда максимальное количество попыток будет 1 (первый бросок) + n1-1 = n1. Если после броска на n1 ступеньке стакан не разобьется, поднимаемся еще на n2 ступенек (т.е. будем на n1+n2 ступеньке). Повторям процесс. В итоге при самом плохом сценарии имеем: 1 (первый бросок на n1 ступеньке) + 1 (вторoй бросок на n2 ступеньке) + n2 - 1 (броски снизу вверх) = n2 + 1. Потребуем n2+ 1= n1. Далее алгоритм повторяется и требуется, чтобы n_i + 1 = n_(i-1). Пусть n1 =n, тогда n_i = n - (i-1), i=1,2, ..., k. Второе условие оптимальности - n_k = n - k + 1 =1, т.е. n=k. Третье условие : SUM n_i = 100 = n*k - k*(k+1)/2 + k. Подставим n=k, получим
n^2 - n(n+1)/2 + n = 100. Решение (положительное): n = 0.5(sqrt(801) -1) ~ 13.65. Теперь надо сравнить 13 и 14. Таким образом, n = 14. Собственно, тот же ответ, просто более формализованное решение.
User avatar
Poryadok
Уже с Приветом
Posts: 1383
Joined: 17 Jan 2005 22:33
Location: Minsk, Belarus - Beaverton, OR

Re: Задачи для IT интервью

Post by Poryadok »

valchkou wrote:Poryadok, вы в следующий раз воды предложите то
Мы предлагаем чай и кофе.
Отлипай давай от форума и марш работать!
Физик-Лирик
Уже с Приветом
Posts: 5106
Joined: 19 Oct 2004 01:46

Re: Задачи для IT интервью

Post by Физик-Лирик »

Poryadok wrote:
valchkou wrote:Poryadok, вы в следующий раз воды предложите то
Мы предлагаем чай и кофе.
Неужели даже на ланч не сводите? Или все интервью меньше 3-х часов, чтобы сьекономить? :D
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15526
Joined: 27 Sep 2007 22:53

Re: Задачи для IT интервью

Post by Мальчик-Одуванчик »

Falcon wrote:
XpoH wrote:Ну меня вчера попросили написать свой StringBuilder, потом долго удивлялись, когда я сказал что я у них работать не хочу.
А почему вас удивляет нормальная реакция на ваше неадекватное поведение?
Странно - с каких это пор нежелание работать в свете обстоятельств, выявленных в ходе интервью, считается неадекватной реакцией? Хотя, признаюсь, тоже спрашиваю подобные вопросы, когда вижу что кандидат нервничает.
Просто как способ придать уверенности и нащупать точку, с которой можно двигаться дальше.
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15526
Joined: 27 Sep 2007 22:53

Re: Задачи для IT интервью

Post by Мальчик-Одуванчик »

Falcon wrote: Неадекватным я считаю обидки на вопрос написать свой StringBuilder. Мне кажется что инженер всегда должен быть готов чего-нибудь написать на интервью - его берут на работу чтобы он писал код. Или именно StringBuilder является особенно богомерзким? Объясните свою позицию, что ли?
Зависит от позиции. Вопрос такого уровня, заданный на сеньорскую позицию свидетельствует либо о полном неуважении к соискателю, либо в сомнениях о соответствии соискателя позиции.
Иными словами, такие вопросы с определенного уровня задавать невместно.
Могу предположить, что вопрос о том, в каких случаях стоит реализовывать самописный класс наподобие обсуждаемого, и конкретно какие методы и как стоило бы переписать был бы более уместным.
reality
Уже с Приветом
Posts: 256
Joined: 14 Jul 2011 09:07
Location: SaintP -> NYC

Re: Задачи для IT интервью

Post by reality »

По моему не такой уж и дурной вопрос. Можно начать с простого а потом и продолжить тем как сделать его thread-safe, какие есть стратегии, как можно оптимизировать для работы с многими потоками и тд и тп. Если конечно написать и просто перейти к след вопросу то как то тупо.
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15526
Joined: 27 Sep 2007 22:53

Re: Задачи для IT интервью

Post by Мальчик-Одуванчик »

reality wrote:По моему не такой уж и дурной вопрос. Можно начать с простого а потом и продолжить тем как сделать его thread-safe, какие есть стратегии, как можно оптимизировать для работы с многими потоками и тд и тп. Если конечно написать и просто перейти к след вопросу то как то тупо.
Это все равно что освежить в памяти таблицу умножения перед тем как перейти к абелевым пространствам.
Как-то неуважительно к собеседуемому. Либо косвенное свидетельство, что уровень подобных вопросов - потолок для экзаменатора.
Не стоит с них начинать вообще (если конечно не джуниора собеседуем) да и в дальнейшем стоит воздерживаться, если оппонент уверенно отвечает на более сложные.
berlagaB
Уже с Приветом
Posts: 344
Joined: 03 Dec 2014 23:49

Re: Задачи для IT интервью

Post by berlagaB »

reality wrote:Если конечно написать и просто перейти к след вопросу то как то тупо.
Не так уж много людей смогут в ситуации "личное интервью, код на доске" написать что-то приличное или даже внятное в ответ на такой вопрос. Я бы сказал, что он черезчур сложен. Никогда не спрашиваю ничего, что требует написания больше 20 строк кода.

В качестве домашнего задания вполне подойдет.

Return to “Работа и Карьера в IT”