Почему 9 из 10 соискателей не могут её решить? Причём у людей минимум от 3-х лет опыта разработки, позиционируют они себя, как сеньёр-девелоперы, ЗП вроде конкурентноспособная (немного выше, если отсортировать вакансии с HH по зарплате и пропустить жöлтенькие).
Может быть я что-то не понимаю в этой жизни? Не могли бы более опытные товарищи поделиться опытом и ответить на следующие вопросы:
1. Если человек не в состоянии обратить список, способен ли он вообще написать что-нибудь разумное или сразу нафиг?
2. Если сраз нафиг, то как грамотно построить интервью, чтобы дать эту задачу в самом начале, не слишком сильно человека шокировав, и распрощаться втечение пяти минут, не слишком обидев?
З.Ы. На прошлой работе HR заставляла соискателей решать задачи про переливание воды, цветные шары и гномов в кепках. По-моему очень хорошая практика была, полные идиоты сразу отсеивались, сейчас контора гораздо более бюрократичная, тонко настроить фильтры HR-ов гораздо сложнее, приходится фильтровать самому.
Здравствуйте, Паблик Морозов, Вы писали:
ПМ>Почему 9 из 10 соискателей не могут её решить?
потому-что большинство людей- идиоты
ПМ>1. Если человек не в состоянии обратить список, способен ли он вообще написать что-нибудь разумное или сразу нафиг?
On 24.02.2012 13:48, Паблик Морозов wrote:
> Почему 9 из 10 соискателей не могут её решить? Причём у людей минимум от > 3-х лет опыта разработки, позиционируют они себя, как сеньёр-девелоперы, > ЗП вроде конкурентноспособная (немного выше, если отсортировать вакансии > с HH по зарплате и пропустить жöлтенькие).
А как выглядит "правильное решение" этой задачи?
Часто про неё слышу, но то ли это задача с каким-то подвохом и я не
понимаю что действительно требуется (сам я по образованию не
программист, что такое "машина тьюринга" или там "конечный автомат" не
знаю — то есть когда-то для интереса читал, но давно и успешно забыл) то
ли действительно происходит что-то странное то ли одно из двух.
Раньше ещё была задача с "переворотом строки" — это случайно не про то
же самое?
Здравствуйте, hrensgory, Вы писали:
H>On 24.02.2012 13:48, Паблик Морозов wrote:
>> Почему 9 из 10 соискателей не могут её решить? Причём у людей минимум от >> 3-х лет опыта разработки, позиционируют они себя, как сеньёр-девелоперы, >> ЗП вроде конкурентноспособная (немного выше, если отсортировать вакансии >> с HH по зарплате и пропустить жöлтенькие).
H>А как выглядит "правильное решение" этой задачи?
H>Часто про неё слышу, но то ли это задача с каким-то подвохом и я не H>понимаю что действительно требуется (сам я по образованию не H>программист, что такое "машина тьюринга" или там "конечный автомат" не H>знаю — то есть когда-то для интереса читал, но давно и успешно забыл) то H>ли действительно происходит что-то странное то ли одно из двух.
H>Раньше ещё была задача с "переворотом строки" — это случайно не про то H>же самое?
Я так понимаю это базовый принцип построения алгоритмов используя рекурсию.
Здравствуйте, Паблик Морозов, Вы писали:
ПМ>Почему 9 из 10 соискателей не могут её решить? Причём у людей минимум от 3-х лет опыта разработки, позиционируют они себя, как сеньёр-девелоперы, ЗП вроде конкурентноспособная (немного выше, если отсортировать вакансии с HH по зарплате и пропустить жöлтенькие).
Потому что это задача не практическая, как и программирование сортировки. Все уже давно в либах есть и на практике никогда (в смысле вообще никогда) не приходится её писать.
А если человек не делает что-то постоянно, то просто теряется навык.
Собеседование при этом — стрессовая ситуация и далеко не каждый сможет вспомнить как такое делать.
ПМ>Может быть я что-то не понимаю в этой жизни? Не могли бы более опытные товарищи поделиться опытом и ответить на следующие вопросы: ПМ>1. Если человек не в состоянии обратить список, способен ли он вообще написать что-нибудь разумное или сразу нафиг? ПМ>2. Если сраз нафиг, то как грамотно построить интервью, чтобы дать эту задачу в самом начале, не слишком сильно человека шокировав, и распрощаться втечение пяти минут, не слишком обидев?
Бред. Отсеивать человека по одной задаче — крайне неудачная идея, как и спрашивать про крышки люков, гору фудзи или количество шариков в автобусе.
На собеседовании в первую очередь надо проверить что человек справится с той работой, которой его нагрузят. Для этого можно предложить ему задачу и пусть расскажет ход решения. Или напрмиер тестовое задание (небольшое) заранее дать.
А вот потом уже спрашивать про такую хрень чтобы проверить фундаментальные знания и соображалку.
ПМ>З.Ы. На прошлой работе HR заставляла соискателей решать задачи про переливание воды, цветные шары и гномов в кепках. По-моему очень хорошая практика была, полные идиоты сразу отсеивались, сейчас контора гораздо более бюрократичная, тонко настроить фильтры HR-ов гораздо сложнее, приходится фильтровать самому.
Такие бредовые задачи пропускают профессиональных ходоков по собеседованиям и отсеивают профессионалов, которые не знают решения.
Ты подумай какой процент этих задач на собеседованиях решается соображалкой, а какой — предварительным гуглением?
Здравствуйте, Паблик Морозов, Вы писали:
ПМ>Может быть я что-то не понимаю в этой жизни? Не могли бы более опытные товарищи поделиться опытом и ответить на следующие вопросы:
Кого ищите то? Те же плюсисты, обычно, решают в лет. У разработчиков более высокоуровневых языков часто вызывает проблемы, сам не знаю почему.
ПМ>1. Если человек не в состоянии обратить список, способен ли он вообще написать что-нибудь разумное или сразу нафиг?
Сразу нафиг.
ПМ>2. Если сраз нафиг, то как грамотно построить интервью, чтобы дать эту задачу в самом начале, не слишком сильно человека шокировав, и распрощаться втечение пяти минут, не слишком обидев?
Давай в самом начале.
Re[3]: Задача на собеседовании - обращение списка.
Здравствуйте, Kernan, Вы писали:
H>>Раньше ещё была задача с "переворотом строки" — это случайно не про то H>>же самое? K>Я так понимаю это базовый принцип построения алгоритмов используя рекурсию.
Какая рекурсия?! Тупо цикл от начала до середины с перествалением i-того от начала элемента с i-м с конца.
Re[2]: Задача на собеседовании - обращение списка.
Здравствуйте, Sni4ok, Вы писали:
S>конечно сразу нафиг
Но как-то они же работали на предыдущих работах несколько лет? Или от того новую работу и ищут, что так набыдлокодили, что теперь легче работу сменить, чем разбираться?
Re[3]: Задача на собеседовании - обращение списка.
Здравствуйте, Kernan, Вы писали:
K>Я так понимаю это базовый принцип построения алгоритмов используя рекурсию.
Не совсем.
Конечно наивная реализация — рекурсивна, но при некоторых ухищрениях рекурсия оказывается хвостовой и её можно переписать в цикл, получи Θ(1) по памяти и Θ(n) по времени.
Я вот сходу не напишу вариант с циклом, а из рекурсии выведу. Но на собеседовании и без компа — вряд ли, стрессовая ситуация, ограничено время и вообще на собеседовании впадлу таким заниматься.
Re[4]: Задача на собеседовании - обращение списка.
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, Kernan, Вы писали:
H>>>Раньше ещё была задача с "переворотом строки" — это случайно не про то H>>>же самое? K>>Я так понимаю это базовый принцип построения алгоритмов используя рекурсию.
L>Какая рекурсия?! Тупо цикл от начала до середины с перествалением i-того от начала элемента с i-м с конца.
А в java\c#?
Это задача дается для проверки понимания как алгоритмы отображаются на конкретные особенности системы типов и рантайма.
Re[4]: Задача на собеседовании - обращение списка.
On 24.02.2012 14:11, Lloyd wrote:
> H>>Раньше ещё была задача с "переворотом строки" — это случайно не про то > H>>же самое? > K>Я так понимаю это базовый принцип построения алгоритмов используя > рекурсию. > > Какая рекурсия?! Тупо цикл от начала до середины с перествалением i-того > от начала элемента с i-м с конца.
Ну вот я тоже так думаю, что никакая рекурсия тут не нужна и задача
очень простая. Но не может быть чтобы 9 из 10 на этом отваливалось,
наверное что-то всё-таки ещё требуется.
Потому и хочется узнать у ТС в чём подвох.
--
WBR,
Serge.
Posted via RSDN NNTP Server 2.1 beta
Re[2]: Задача на собеседовании - обращение списка.
Здравствуйте, hrensgory, Вы писали:
H>А как выглядит "правильное решение" этой задачи?
Да никакого подвоха. Просто дан односвязный или двусвязный список, и надо его обратить (развернуть указатели на элементы), или как-нибудь поменять элементы местами (я обычно делаю небольшие вариации, чтобы не заучивали). Алгоритм — цикл на 4-5 строчек. Никаких специальных знаний не требуется. Можно и с рекурсией написать, если человеку так удобнее, но за этим последуют дополнительные вопросы. Переворот строки — из той же серии, просто я её уже не дают, поскольку уже не все помнять, что такое null-terminated строки и как писать на Си, а на джаве или сишарпе её писать не интересно.
Re[2]: Задача на собеседовании - обращение списка.
Здравствуйте, Vzhyk, Вы писали:
V>Сколько платишь за решение этой задачи?
>немного выше, если отсортировать вакансии с HH по зарплате и пропустить жöлтенькие
Здравствуйте, Паблик Морозов, Вы писали:
ПМ>Почему 9 из 10 соискателей не могут её решить? Причём у людей минимум от 3-х лет опыта разработки, позиционируют они себя, как сеньёр-девелоперы, ЗП вроде конкурентноспособная (немного выше, если отсортировать вакансии с HH по зарплате и пропустить жöлтенькие). ПМ>Может быть я что-то не понимаю в этой жизни?
всё правильно понимаешь.. задача не настолько сложная, чтобы её вообще нельзя было решить за короткое время..
ПМ>1. Если человек не в состоянии обратить список, способен ли он вообще написать что-нибудь разумное или сразу нафиг?
может и способен, а эту задачу не может решить именно сейчас, т.к. голова занята другим..
но статистика удивляет..
ПМ>2. Если сраз нафиг, то как грамотно построить интервью, чтобы дать эту задачу в самом начале, не слишком сильно человека шокировав, и распрощаться втечение пяти минут, не слишком обидев?
спросить о последней работе, дать задачу, если решил, то спрашивать остальное
...coding for chaos...
Re[5]: Задача на собеседовании - обращение списка.
Здравствуйте, gandjustas, Вы писали:
L>>Какая рекурсия?! Тупо цикл от начала до середины с перествалением i-того от начала элемента с i-м с конца.
G>А в java\c#?
Ровно так же.
G>Это задача дается для проверки понимания как алгоритмы отображаются на конкретные особенности системы типов и рантайма.
Чего?
Re[6]: Задача на собеседовании - обращение списка.
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, gandjustas, Вы писали:
L>>>Какая рекурсия?! Тупо цикл от начала до середины с перествалением i-того от начала элемента с i-м с конца. G>>А в java\c#? L>Ровно так же.
G>>Это задача дается для проверки понимания как алгоритмы отображаются на конкретные особенности системы типов и рантайма. L>Чего?
Ну напиши работающий код, который string в C# разворачивает.
Re[5]: Задача на собеседовании - обращение списка.
Здравствуйте, hrensgory, Вы писали:
H>Ну вот я тоже так думаю, что никакая рекурсия тут не нужна и задача H>очень простая. Но не может быть чтобы 9 из 10 на этом отваливалось, H>наверное что-то всё-таки ещё требуется.
H>Потому и хочется узнать у ТС в чём подвох.
Меня однажды спросили про то, как интеграл численно считается. Выяснилось, что процентов 80 соискателей не в состоянии ответить на вопрос из школьной программы.
Здравствуйте, Паблик Морозов, Вы писали:
ПМ>Почему 9 из 10 соискателей не могут её решить? Причём у людей минимум от 3-х лет опыта разработки, позиционируют они себя, как сеньёр-девелоперы, ЗП вроде конкурентноспособная (немного выше, если отсортировать вакансии с HH по зарплате и пропустить жöлтенькие).
ПМ>Может быть я что-то не понимаю в этой жизни? Не могли бы более опытные товарищи поделиться опытом и ответить на следующие вопросы: ПМ>1. Если человек не в состоянии обратить список, способен ли он вообще написать что-нибудь разумное или сразу нафиг? ПМ>2. Если сраз нафиг, то как грамотно построить интервью, чтобы дать эту задачу в самом начале, не слишком сильно человека шокировав, и распрощаться втечение пяти минут, не слишком обидев?
ПМ>З.Ы. На прошлой работе HR заставляла соискателей решать задачи про переливание воды, цветные шары и гномов в кепках. По-моему очень хорошая практика была, полные идиоты сразу отсеивались, сейчас контора гораздо более бюрократичная, тонко настроить фильтры HR-ов гораздо сложнее, приходится фильтровать самому.
Могу лишь сказать что я в студенчестве свои первые собеседования плохо помню, и выходил с них как громом поражённый, не мог решить 2+2, а дома конечно осеняло. Это может и мои тараканы, но вы всё таки программистов набираете а не спецназ.
ПМ>2. Если сраз нафиг, то как грамотно построить интервью, чтобы дать эту задачу в самом начале, не слишком сильно человека шокировав, и распрощаться втечение пяти минут, не слишком обидев?
5 минут это слишком долго, никто такого времени не стоит. Только заходит — воды в лицо плесните. Если продолжает разговор значит ваш человек, готов на многое ради работы, будет терпеть и потеть. На всё про всё 30 секунд. Вперёд!
Re[3]: Задача на собеседовании - обращение списка.
ПМ>Переворот строки — из той же серии, просто я её уже не дают, поскольку уже не все помнять, что такое null-terminated строки и как писать на Си
тут можно поспорить. Переворот строки это принципиально иная задача. И задача с переворотом списка, действительно, содержит элемент, который может ввести в ступор в стрессовых условиях собеседования.
В случае со строкой мы имеем random-access линейную область памяти. В случае со списком никакого random-access нет.