Статьи
Нужны ли логические задачи на собеседовании?
Не так давно я занялся поисками работы на должность web-программиста. Скажу сразу, что мой опыт работы в этой области составляет 2 года. Я просмотрел все имеющиеся вакансии в интернете, разослал свое резюме.
Ответ не заставил себя долго ждать, уже через 2 дня меня пригласили на собеседование.
В вакансии от соискателя требовался стандартный набор навыков:
- PHP
- MySQL
- JavaScript
- ООП
Думаю каждый web-разработчик обладает этими навыками. Однако времени на подготовку и повторение всего того, что я знаю, у меня совсем не было, да и на первое собеседование я шел скорее с целью "разведать обстановку" — какие вопросы на собеседованиях сейчас задают я совершенно не знал.
Интерес к этой вакансии у меня был огромный - в описании к ней было указано, что компания работает в игровой индустрии и производит различные MMORPG и flash игры, а к играм я с детства неравнодушен.
Добираясь до офиса я прокручивал у себя в голове все возможные вопросы, которые мне могут задать. Мысленно я для себя готовил ответы на различные вопросы, связанные с тем, что было перечислено в вакансии.
Придя в офис, меня сразу же направили к старшему программисту, который должен был проводить со мной собеседование. Усадили меня прямо за его столом и сказали немного подождать. Когда он пришел, то к моему удивлению предложил мне 2 задачи на логику и дал 10 минут на их решение.
Привожу эти задачи с собеседования.
- В стакан положили бактерии. Каждую секунду бактерии увеличиваются в 2 раза. Известно, что стакан заполняется полностью за минуту. За какое время стакан наполнится наполовину?
- Представьте себе, что земной шар обмотали веревкой по экватору. Потом веревку увеличили на 1 метр и расположили так, что любая точка экватора равноудалена от веревки. Сможет ли между веревками пролезть мышь?
Вообще в школе и в университете у меня с математикой проблем не было, поэтому не думал, что задачи вызовут какие-то проблемы. Однако, за отведенное время я их не решил.
По моему 10 минут — это слишком мало для таких задач, тем более на собеседовании, где человек в любом случае волнуется.
Понятно, что это задачи с подвохом на проверку сообразительности и работодатель тем самым хочет отсеить простых кодировщиков, которые программируют не думая ни о каких алгоритмах. К кодировщикам я себя не отношу.
Придя домой, я решил их и потратил на поиски решения примерно час.
Первая задача очень понравилась, к ней как бы надо подойти с особой стороны.
Вторая — это просто обычная математика, решается применением всем известных формул.
Понятно, что собеседование я не прошел, хотя на вопросы, связанные с программированием отвечал довольно неплохо.
После этого собеседования у меня возникли следующие вопросы:
- Достаточное ли время 10 минут, чтобы решить такие задачи?
- Кому бы этого времени хватило?
- Вообще нужны ли каверзные вопросы на проверку логики на собеседовании, ведь никто не даст соискателю достаточное время на поиски решения?
Также жду варианты решений задач.
|
|
0 | Tweet | Нравится |
|
На эту статью оставлено 54 комментария
-
-
Алекс
08 Июль 2009 07:02:52 (ссылка)10 минут за глаза.
I-я: 59 секунд. Объяснять думаю не надо.
II-я: экватор - окружность. Точки, равноудаленные от любой его точки, лежат на прямой, проходящей через центр, и перпендикулярной его плоскости. Под таким образом расположенной веревкой проползет мышь размером с небоскреб. -
Паха
08 Июль 2009 10:08:46 (ссылка)>> Под таким образом расположенной веревкой проползет мышь размером с небоскреб
И как же такая мышь там пролезет? Т.е. длину веревки увеличили на метр и под ней пролезет 100 метров?
10 минут по-моему именно на собеседовании не хватит для решения таких задач. Все-таки волнение.
-
Jana
08 Июль 2009 14:59:44 (ссылка)1-я задача - 59 секунд, согласна.
2-я: экватор - окружность (допустим). Но то, что "любая точка экватора равноудалена от веревки", может иметь самые неожиданные трактовки. Т.к. веревка - сама по себе протяженный объект. Что значит "равноудалены от веревки"? от какого места веревки? или от всех ее точек сразу? Последнее как минимум означает, что веревку просто перенесли на северный или южный полюс и вытянули вдоль, например, земной оси. Или вообще пробурили земной шар от полюса до полюса и пропустили ее там
или свернули веревку в одну точку и расположили где угодно на прямой, идущей вдоль земной оси...Веревку в итоге можно расположить так (в полном соответствии с условиями задачи), что пролезть "под ней" сможет не только мышь, но и пара галактик с туманностью Андромеды в придачу. Впрочем, термин "под веревкой", а еще и "между веревками" (откуда-то взялась еще веревка?) в этом случае теряет смысл полностью. Какая-то тут фигня в начальных условиях задачи.
-
Pablo Monteagudo
09 Июль 2009 18:26:32 (ссылка)2-ю задачу можно сформулировать по другому:
У нас есть земной шар. На его поверхности по линии экватора лежит протянутая веревка. Т.е. получается Землю обмотали один раз этой веревкой. Потом ее длину (веревки) увеличили на один метр и на сколько могли приподняли на одинаковое расстояние от поверхности земли.Сможет ли в этот зазор - между землей и веревкой - пролезть мышь? -
Artem
14 Июль 2009 22:36:07 (ссылка)1-я задача - очевидно 59 сек.
2-я задача:
Длинна окружности равна L = 2PiR
увеличиваем длину на один метр и соответсвенно на x увеличивается радиус окружности:
L + 1 = 2Pi(R+X)Выразим формулу через X:
2PiR + 1 = 2PiR + 2PiX
X = 1/2Pi = ~16смдля мышки вполне достаточный зазор
-
-
-
-
-
-
Митяй
26 Июль 2009 12:31:51 (ссылка)50 кг.
Интересная задача думаю минут на 20: Жили 1000 репликонов, каждый репликон иммет уникальный возраст. У репликонов было золото и они решили его поделить. Условие дележки: если половина или более репликонов согласна поделить, то золото делят между всеми поровну, если меньше половины согласно на раздел то самого младшего репликона исключают из претендентов на золото и процес повторяется. Вопрос на сколько репликонов поделят золото.
-
Владимир
03 Август 2009 14:32:59 (ссылка)Про репликонов - не совсем корректная задача. Не сказано как они действуют (стратегия).
т.е. 2 варианта.
Либо 1000, либо 2.
Видимо ожидаемый ответ 2.
На каждом шаге, всем хочется выкинуть лишнего и все кроме самого младшего голосуют против дележки.
когда остается 2, второй голосует за, и таким образом выполняется условие дележки.Задача минуты на 2 в спокойной обстановке. А вообще - это бред спрашивать такие вещи у человека который и так в состоянии стресса.
Лучше давать задачки близкие к жизни, у которых может быть множество решений. Таким образом стресс у кандидата будет меньше, т.к. несколько тривиальных решений будет на поверхности.Квалифицированный кандидат (мое мнение) задачки решит, но в компанию не пойдет (с неадекватным начальством дела иметь не захочет). Либо компенсация должна оправдывать все издевательства
. -
-
-
-
-
-
Pablo Monteagudo
11 Август 2009 13:17:35 (ссылка)>> про веревки просто, про огурцы как 50 кг получили непонял…
Сначала у нас было 100 кг огурцов, содержание воды в которых 99%. Соответственно, содержание именно массы самих "чистых" огурцов, было 1% или 1кг. После того, как они подсохли, воды стало 98%, т.е. "концентрат"
огурцов составил 2%, но их масса осталась по прежнему 1 кг => 2% - это 1 кг => общая масса огурцов стала равна 50 кг. -
-
-
Иван
11 Август 2009 13:55:51 (ссылка)Изначально огурцы весили 100 кг и 100% - 99% = 1% их массы составляло "сухое" вещество. Высохнув, огурцы потеряли только воду, а количество "сухого" вещества осталось неизменным. И теперь этот 1 кг составляет 100% - 98% = 2% от массы уже сухих огурцов. Составляем пропорцию:
1 кг - 2%
x кг - 100%
x = 100*1/2 = 50 кг -
-
-
-
Pablo Monteagudo
12 Август 2009 10:54:34 (ссылка)Такая задача:
Виктор, выходя с работы и заходя в метро, всегда находился в раздумьях, куда ему ехать - домой или к девушке. Домой ехать в одну сторону, к девушке - в противоположную. Поезда и туда, и обратно ходят каждые пять минут. И вот Виктор принял решение по приходу просто садится в первый приехавший поезд. Через месяц выяснилось, что к девушке он попадал в четыре раза чаще, чем домой. Почему?
-
Иван
12 Август 2009 12:01:33 (ссылка)Ответ:Потому, что отправления поездов сдвинуты на одну минуту относительно друг друга. Поезд в сторону дома всегда отходит спустя ровно минуту после отправления поезда в сторону девушки.
Решение:
Виктор может прийти на перон после отправления поезда до девушки и до отправления поезда до дому, либо после отправления поезда до дому и до отправления поезда до девушки. Но второй временной промежуток в 4 раза больше первого. Значит и вероятность попадания в него также в 4 раза будет больше. Именно поэтому Виктор в 4 раза чаще уезжал к девушке. -
Tiger
25 Август 2009 12:50:51 (ссылка)На собеседованиях не только задают задачи на логику. Я выложил интересную задачу по SQL: http://job-interview.ru/articles/post/12#comments
Кто решит? -
-
-
Dmytro
17 Сентябрь 2009 19:48:29 (ссылка)В задаче про огурцы сказано, что воды стало 98%. Дословно "Через месяц огурцы подсохли, и содержание воды в них уменьшилось до 98%", а не на 98 %). Если уменьшилось до 98 %, то значит воды стало 98 кг.
было:
1 кг "сухих" огурцов + 99 кг. воды
стало:
1 кг сухих огурцов + 98 кг. воды -
Thistle
18 Сентябрь 2009 21:08:35 (ссылка)Нет, огурцов осталось 50 кг. Задачи, представленные в начале темы мне лично довелось решать. Считаю, что программист просто обязан на первую дать ответ мгновенно, т.к. цифра 2 должна быть у него в крови, а мгновенно, потому что решать надо задом наперед ))) - сколько бактериям понадобится времени для того, чтобы из полстакана стать полным? Для решения второй все, что необходимо знать это формулу длины окружности, если знаешь, то решения на 20-30 секунд.
-
Michael
23 Октябрь 2009 15:26:01 (ссылка)Господа про огурцы такое рассуждение в корне не верно
"В задаче про огурцы сказано, что воды стало 98%. Дословно “Через месяц огурцы подсохли, и содержание воды в них уменьшилось до 98%”, а не на 98 %). Если уменьшилось до 98 %, то значит воды стало 98 кг."
Поясню: т.е. от новой массы огурцов воды стало 98% а не от старой, т.е. изменилась и общая масса и процентное соотношение, а считать что воды осталось 98кг это значит считать что общая масса так и осталась 100кг.
50кг верный ответ 1 кг ("огурцового вещества" абсолютная масса сохранилась в процентном соотношении увеличилась 2%) и 49 кг воды -
-
web master
12 Март 2010 02:34:25 (ссылка)На собеседованиях надо проверять те качества человека которые необходимы для выполнения его прямых обязанностей, а не тестировать его как школьника при поступлении в какую то престижную школу.
Я лично считаю что для программиста наиболее важно:
1. способность писать "чистый" и хорошо спроектированный код, что показывает его способность *думать* как программист
2. способность понять что хочет заказчик этого кода, а не просто тупо следовать ТЗ, что показывает его способность *решать* реальную задачу (а не ту которую ему кажется что надо решить)
3. быть корректным и выдержанным, что показывает его способность ладить с остальными членами команды
И тесты и вопросы должны быть соответствующие этому, соответствующие его прямым профессиональным обязанностям.
Поэтому я лично отношусь с крайней неприязнью к
подобным логическим и математическим задачкам, ибо они в первую очередь показывают неграмотность HR. -
Андрей
29 Август 2010 12:05:17 (ссылка)Такая точка зрения логична, но не подходит для всех программистов.
Я выбираю эти задачи подходят для первого собеседования, чтобы отобрать кандидатов на работу. Потому что их решение может проверить менеджер по персоналу, который не может анализировать код. + показывают как человек может мыслить в стрессовой для него ситуации(например постоянно решать незнакомые задачи у клиента, не всегда очень тяжелые, но иногда требующие смекалки). И они не требуют на решение много времени. Любая более менее интересная задача на программирование может решаться час и более, к этому прибавьте хотя бы полчаса на оставшуюся часть собеседования, получается держать человека надо 1,5 часа, это уже не вариант. Я согласен, что эти задачки не главные при собеседовании, но они могут дать доп. информацию о кандидате. Понятно, что на следующем собеседовании с непосредственным руководителем или специалистом нужно дать более конкретные задачи, возможно на дом. -
grichenco
08 Январь 2011 08:54:08 (ссылка)А студенты возмущаются, когда я на предмете "Алгоритмизация и программирование" такие задачки даю решать. Про себя не скажу, все задачки, приведенные в статье и некоторые из комментарев, я знаю. И за сколько я бы их решила, не знаю, мгновенно бы ответ сказала. А вот про студентов сильно сомневаюсь.
И теперь понимаю, почему некоторые перед собеседованием звонят, и просят побольше подобных задачек проорещать. Ну я чуть-ччуть репититорством занимаюсь. А я не верила.
Хотя я лично считаю, что 10 минут на эти задачки - много. -
Tiger
08 Январь 2011 22:12:00 (ссылка)Возможно, эти задачи и показывают определенный уровень кандидата, но они и близко не выявляют на сколько человек специалист в своей области. Соображает то он может и быстро, но что он будет предпринимать в стрессовых ситуациях, когда лежит сервер, например? Сколько он будет затрачивать времени на реальные задачи? На сколько качественно он выполняет свою работу? Нравится ли ему вообще его работа? Вот вопросы, на которые должно отвечать собеседование прежде всего.
-
-
-
-
Виктор
28 Июнь 2011 23:35:16 (ссылка)Да можно проверить как быстро человек соображает: если он претендует на роль web-программиста можно задать ему вопрос из генетики: попросить исключить/подтвердить наследственный характер патологии с помощью специальных генетических методов исследования (родословная, кариотип, анализ на ломкую Х-хромосому, генетический скрининг, ДНК-диагностика некоторых наследственных синдромов). А что такого? Может ему понадобиться сайт для генетиков делать.
-
-
-
-
-
-
-
Дмитрий
14 Март 2012 15:28:13 (ссылка)про бактерии можно и так решать количество бактерий N, которые заполнят стакан за время t, N = m*2^t, где m - начальное количество бактерий, t - время в секундах. Отсюда N/2 = m*2^t / 2 = m*2^(t-1). Если t = 60 то время заполнения половины = 60 - 1 = 59 секунд.
-
Олег
15 Март 2012 23:37:46 (ссылка)По моему задачка о бактериях имеет совсем другой ответ по логике вещей.
В задаче же сказано так -
"В стакан положили бактерии.
Каждую секунду бактерии увеличиваются в 2 раза.
Известно, что стакан заполняется полностью за минуту.
За какое время стакан наполнится наполовину?"
Количество бактерий нам было бы интересно если бы мы знали объем стакана, а так речь идет только о времени и нам известно что весь стакан заполняется за минуту, отсюда следует - если минута 60 сек = Весь стакан, то 60/2= пол стакана. И ответ получается 30 секунд = пол стакана, а бактерии тут не причем, так чтоб запутать. -
-
Kritik
03 Апрель 2012 21:06:06 (ссылка)Задачки классные. Только для собеседований не годятся - этих задач только ленивый не знает. Их обсуждают по всему интернету, например, http://math.all-tests.ru/node/109. И еще десяток ссылок легко найду.
Вот та компания, что сама сможет придумывать такие задачи - молодец. -
-






