Здравствуйте, artevseev, Вы писали:
A>Ну вот давайте представим такую ситуацию. Вы в течение 3-5 лет занимаетесь разработкой каких-то внутренних компонентов системы, "забыв" немного при этом как работать с базами и как строить SQL-запросы. Ничего плохого нет в том, чтобы подготовиться к собеседованию и освежить это в памяти.
Да конечно ничего нет плохого. Еще освежить в памяти работук с графикой, обход графов двумя поинтерами, контролы(хотя-бы сандартные), протоколы ну и мат. бекграунд подвспомнить... Что-бы на новой работе на 3-5 лет засеть за разработку каких-то внутренних компонентов системы.
ОК>>Ориентируйся лучше на финансовую индустрию где и платят существенно лучше и задачи есть не менее интересные.
DB>Ты уже в этой финансовой индустрии работаешь?
Я в ней давно.
DB>Если устраиваться на qant-dev (именно там и начинают платить существенно лучше), то задачки будут не только про "списки", но ещё и по теории вероятностей, математике и т.д. и т.п..
А это уже ошибочное мнение что только квантам хорошо и платят. Полно чисто технических ролей. И средние зарплаты в финансах будут получше чем большинство хороших зарплат не в финансах.
ОК>>Тем не менее, даже тестовые задачки можно и нужно сделать интересными и не оторванными от реальной жизни. Я могу представить что пишу atoi для какого-нибудь нового компилятора, но я в упор не могу представить зацикленный связанный список.
D>значит вы просто не работаете с графами.
А ты каждый день прямо работаешь с графами?
D>вообще вы себя показываете не с лучшей стороны сейчас.
Я тоже так о тебе считаю.
D>я не про то, что МС это рай на земле, нет, но попытки вынести _личное_ незнание как догму это странно.
А с чего ты решил что я не знаю? Наоборот, я знаю и вижу тупость этой задачки.
D>что до задачек, когда вам придется собеседовать по сотне человек в месяц и при этом еще и работать, то пыл по поводу задач как-то утихает. Сколько вы отсобеседовали человек? По опыту нескольких сотен собеседований могу сказать что самое то давать совершенно простые задачи на подступах.
Я давал еще проще. Просто перевернуть строку. И, по-мне, развернуть связанный список будет получше чем этот идиотизм с двумя пойнтерами в зацикленности.
ОК>>И потом. Тут происходит подмена понятий. Хороший инженер — это тот кто решит задачу просто и понятно а не тот кто вые...ся с двумя пойнтерами.
D>в данном случае два поинтера как раз просто и понятно, есть другой способ решить?
Вообще-то я уже сказал другой способ. Добавить в каждый узел bool visited и проверять ее. Другое решение — добавлять адрес пройденног узла в какой-нибудь сет. Оба этих решения — straightforward.
ОК>>И потом. Тут происходит подмена понятий. Хороший инженер — это тот кто решит задачу просто и понятно а не тот кто вые...ся с двумя пойнтерами.
S>Собственно, одни из основных задач интервью — это увидеть, как человек умеет думать, оценить problem solving и coding skills.
Я как бы этого и не отрицаю.
S>Учитывая ограниченное время, любая небольшая задача с заковыкой подходит для этого великолепно.
Любитель заковырок? По-моему как раз-таки такие любители заковырок и понтуются на интервью (когда они собеседуют) а не пытаются понять может человек делать работу или нет, и если да то как.
S>Если ты не знаешь про два поинтера — это же здорово! Есть возможность подумать.
Это именно что не здорово. Это изврат. Самое просто решение это с дополнительной переменной в узле либо заносить адреса пройденых нодов в какой-нибудь сет. Все. Думать больше не надо. Вместо этого какие-то извращенцы хотят изврат в виде двух пойнтеров.
S>А заодно ответить на вопрос: почему и когда добавление bool в список может быть плохо? S>И кто добавляет эти элементы в список? И кто их инициализирует?
Ну как бы предполагается что если ты пишешь функцию к связанному списку, то уже есть необходимая функциональность для твоей функции. Ты ведь не пишешь весь связанный список?
S>Даже если не додуматься о двух поинтерах, а список менять нельзя, есть варианты разной сложности и разных требований к ресурсам.
Второе простое решение — заносить адреса в какой-нибудь сет. И никакие пойнтеры тут не нужны.
S>Ну а если ты знаешь ответ про два поинтера, то можно приподнести тебе сюрприз в виде некоторой модификации исходной задачи.
Абстрактные слова.
S>Задача на интервью — это всегда всего лишь повод для дискуссии, и способ проследить, как человек думает, принимает решения, ну и потом пишет код. Ну и оценивает еще, что и при каких условиях может не работать.
Какие-то напыщенные слова. Те интервьюеры с которыми лично мне было очень интересно пообщаться никогда не давали эту задачку и требовали бы два пойнтера.
S>Нет одного правильного ответа, есть оценка, как человек может думать.
Ты не понял моего пойнта. Мой пойнт в том что эта задачка уж никак не проверяет как человек может думать.
ОК>>На счет atoi ничего не буду говорить, но нахождение цикла в связанном списке — глупость какая-то. Никакой ценности задачка не имеет. Решение в лоб — добавить в каждый узел bool visited и проверять при обходе, но нет, нужен какой-то изврат с двумя пойнтерами.
E>Как раз очень хорошая задачка. И имеющая (лично для меня) прикладное значение. Скажем так, лет 10 назад я писал chkdsk для FAT12/16/32 под аналогом DOS-а. Одна из задачек там — это поиск циклов в цепочках кластеров. Так вот решение через "добавим bool" (добавим битовую табличку) было очень плохим, но за неимением лучшего таки реализована. Да тогда я не знал об двух машинках/"поинтерах". А вообще А.А.Степанов, когда приезжал в Мск., прочел по этому поводу целую лекцию, очень даже хорошую.
Ты не считаешь что это все-таки несколько другая задача, даже не смотря на то что в них прослеживается связанный список? Ну и конечное решение все-таки зависит от конкретной задачи.
Эта битовая таблица — то что я называю сет выше — и есть straightforward решение. В упор не вижу зачем тут циклы.
Здравствуйте, Олег К., Вы писали:
S>>Если ты не знаешь про два поинтера — это же здорово! Есть возможность подумать. ОК>Это именно что не здорово. Это изврат. Самое просто решение это с дополнительной переменной в узле либо заносить адреса пройденых нодов в какой-нибудь сет. Все. Думать больше не надо. Вместо этого какие-то извращенцы хотят изврат в виде двух пойнтеров.
Зато этот изврат дает линейное время и не требует никаких дополнительных затрат памяти.
Я не имею никакого отношения к обсуждаемому интервью, но все-таки, откуда взялась уверенность, что хотели именно про два поинтера?
Если бы я задал такую задачу, для меня было бы главнми проследить рассуждения. Добавить флажок в список — это самое что ни наесть влоб. Следующий вопрос: чем это плохо? Если чел. не может ответить, это означает, что он имеет не очень богатый опыт работы с существующими системами. Когда надо что-то сделать новое, и не сломать старое.
Ок, "сет", это уже лучше. А в чем его недостаток?
А если мне скорость выполнения не так важна, но важно, чтобы ноль лишней памяти? (предполагая, что не зная про 2 поинтера, чел. не догадается... пусть напишет мне решение влоб без использования доп. памяти — хотя бы примитивынй кодинг скиллз можно проверить).
Ну и т.д.
S>>А заодно ответить на вопрос: почему и когда добавление bool в список может быть плохо? S>>И кто добавляет эти элементы в список? И кто их инициализирует? ОК>Ну как бы предполагается что если ты пишешь функцию к связанному списку, то уже есть необходимая функциональность для твоей функции. Ты ведь не пишешь весь связанный список?
А если это чужой список?
S>>Ну а если ты знаешь ответ про два поинтера, то можно приподнести тебе сюрприз в виде некоторой модификации исходной задачи.
ОК>Абстрактные слова.
Можно-можно Только я конкретных слов давать не буду.
Кстати, вариант вопроса на интервью: а теперь, придумай мне задачу на основе этой, чтобы те индусы, которые все как один знают про два поинтера, подзатупили и им пришлось задуматься?
ОК>Какие-то напыщенные слова. Те интервьюеры с которыми лично мне было очень интересно пообщаться никогда не давали эту задачку и требовали бы два пойнтера.
S>>Нет одного правильного ответа, есть оценка, как человек может думать.
ОК>Ты не понял моего пойнта. Мой пойнт в том что эта задачка уж никак не проверяет как человек может думать.
Это смотря чего требовать. Если требовать правильного ответа — два поинтера, то не проверяет, конечно.
Однако, существует масса других подходов — см. выше.
S>>>Если ты не знаешь про два поинтера — это же здорово! Есть возможность подумать. ОК>>Это именно что не здорово. Это изврат. Самое просто решение это с дополнительной переменной в узле либо заносить адреса пройденых нодов в какой-нибудь сет. Все. Думать больше не надо. Вместо этого какие-то извращенцы хотят изврат в виде двух пойнтеров.
S>Зато этот изврат дает линейное время и не требует никаких дополнительных затрат памяти.
В ущерб понятности.
S>Я не имею никакого отношения к обсуждаемому интервью, но все-таки, откуда взялась уверенность, что хотели именно про два поинтера?
А эта задача именно что на дво пойнтера. Другие решения "они не хотят."
S>Если бы я задал такую задачу, для меня было бы главнми проследить рассуждения. Добавить флажок в список — это самое что ни наесть влоб. Следующий вопрос: чем это плохо? Если чел. не может ответить, это означает, что он имеет не очень богатый опыт работы с существующими системами. Когда надо что-то сделать новое, и не сломать старое.
Я уж не знаю как тут можно не ответить.
S>Ок, "сет", это уже лучше. А в чем его недостаток? S>А если мне скорость выполнения не так важна, но важно, чтобы ноль лишней памяти? (предполагая, что не зная про 2 поинтера, чел. не догадается... пусть напишет мне решение влоб без использования доп. памяти — хотя бы примитивынй кодинг скиллз можно проверить). S>Ну и т.д.
Скажи, к чему эти искусственные ограничения?
S>>>А заодно ответить на вопрос: почему и когда добавление bool в список может быть плохо? S>>>И кто добавляет эти элементы в список? И кто их инициализирует? ОК>>Ну как бы предполагается что если ты пишешь функцию к связанному списку, то уже есть необходимая функциональность для твоей функции. Ты ведь не пишешь весь связанный список?
S>А если это чужой список?
Опять-таки, ты как бы пишешь функцию к своему классу. Если хочешь услышать что-то другое в ответ, то может стоит тогда давать более конкретную задачу чем абстрактный список в памяти?
S>>>Ну а если ты знаешь ответ про два поинтера, то можно приподнести тебе сюрприз в виде некоторой модификации исходной задачи.
ОК>>Абстрактные слова.
S>Можно-можно Только я конкретных слов давать не буду. S>Кстати, вариант вопроса на интервью: а теперь, придумай мне задачу на основе этой, чтобы те индусы, которые все как один знают про два поинтера, подзатупили и им пришлось задуматься?
Зачем мучить человека на интервью? Если он тебе не нравится, то просто прекрати интервью вместо очередных понтов.
ОК>>Какие-то напыщенные слова. Те интервьюеры с которыми лично мне было очень интересно пообщаться никогда не давали эту задачку и требовали бы два пойнтера.
S>>>Нет одного правильного ответа, есть оценка, как человек может думать.
ОК>>Ты не понял моего пойнта. Мой пойнт в том что эта задачка уж никак не проверяет как человек может думать.
S>Это смотря чего требовать. Если требовать правильного ответа — два поинтера, то не проверяет, конечно. S>Однако, существует масса других подходов — см. выше.
Не вижу ничего что эта задача дает.
Да, кстати, объясни, при каких таких обстоятельствах у тебя может получиться зацикленный список в памяти?
Здравствуйте, Олег К., Вы писали:
S>>Если бы я задал такую задачу, для меня было бы главнми проследить рассуждения. Добавить флажок в список — это самое что ни наесть влоб. Следующий вопрос: чем это плохо? Если чел. не может ответить, это означает, что он имеет не очень богатый опыт работы с существующими системами. Когда надо что-то сделать новое, и не сломать старое.
ОК>Я уж не знаю как тут можно не ответить.
Ну вот, ты, зная про возможные проблемы с предлагаемым решением, это решение сам же раньше и предложил.
Как-то не совсем стыкуется.
ОК>Скажи, к чему эти искусственные ограничения?
В общем, мой ответ на большинство встречных вопросов на эту тему:
Вообще, абстрактное мышление полезно.
А если твое мнение таково, что это не так (типа не могу/не хочу абстрагироваться от конкретной задачи конкретного заказчика), то не очем больше и спортить по этой теме.
S>>>Если бы я задал такую задачу, для меня было бы главнми проследить рассуждения. Добавить флажок в список — это самое что ни наесть влоб. Следующий вопрос: чем это плохо? Если чел. не может ответить, это означает, что он имеет не очень богатый опыт работы с существующими системами. Когда надо что-то сделать новое, и не сломать старое.
ОК>>Я уж не знаю как тут можно не ответить.
S>Ну вот, ты, зная про возможные проблемы с предлагаемым решением, это решение сам же раньше и предложил. S>Как-то не совсем стыкуется.
Это где ты тут проблемы увидел? Я говорил о простом списке автором которого бы ты являлся.
ОК>>Скажи, к чему эти искусственные ограничения?
S>В общем, мой ответ на большинство встречных вопросов на эту тему:
S>Вообще, абстрактное мышление полезно.
S>А если твое мнение таково, что это не так (типа не могу/не хочу абстрагироваться от конкретной задачи конкретного заказчика), то не очем больше и спортить по этой теме.
Ты лучше ответь на последний вопрос. При каких таких обстоятельствах у тебя может получиться зацикленный список в памяти?
Здравствуйте, __kot2, Вы писали:
__>Здравствуйте, Klatu, Вы писали: K>>С каких пор возможность работать быдлокодером стала считаться удачей? __>с тех пор как за это стали хорошо платить
Здравствуйте, Klatu, Вы писали: K>Здравствуйте, __kot2, Вы писали: __>>Здравствуйте, Klatu, Вы писали: K>>>С каких пор возможность работать быдлокодером стала считаться удачей? __>>с тех пор как за это стали хорошо платить K>Быдлокодерам? Хорошо платить?
ну, каким бы там я быдлокодером не был, а з.п. они предложили в разы больше, чем предлагает самая пафосная московская контора в самый известный проект.
K>>Быдлокодерам? Хорошо платить? __>ну, каким бы там я быдлокодером не был, а з.п. они предложили в разы больше, чем предлагает самая пафосная московская контора в самый известный проект.
блин, мне всего лишь на 60% больше чем текущая зарплата в москве (если чистыми считать из 30% налогов). Зато по многим предметам там цена/качество лучше.
Здравствуйте, dilmah, Вы писали: D>блин, мне всего лишь на 60% больше чем текущая зарплата в москве (если чистыми считать из 30% налогов). Зато по многим предметам там цена/качество лучше.
с неработающей женой говорят 25. ну и цена/качество там это само собой. я москву вообще никогда не рассматривал — я себя там как по колено в навозе в циганском таборе ощущаю. все страшно дорого и жутко некачественно.
K>>>Быдлокодерам? Хорошо платить? __>>ну, каким бы там я быдлокодером не был, а з.п. они предложили в разы больше, чем предлагает самая пафосная московская контора в самый известный проект.
D>блин, мне всего лишь на 60% больше чем текущая зарплата в москве (если чистыми считать из 30% налогов). Зато по многим предметам там цена/качество лучше.