Здравствуйте, -n1l-, Вы писали:
U>>Все равно не понял. Как десятичность/двоичность представления числа влияет на возможность/невозможность переполнения? N>Ооо....
Что ооо?
U>>Зачем знать? Придумать самому при необходимости, да, это полезный навык. Знание экзотики бесполезный. N>Что придумать самому? Наложение маски, адресную арифметику, базовые алгоритмы?
Односвязный список это экзотика. Его переворот тем более. Адресная арифметика в C# это антинавык. Накладывать маски уметь желательно, но не критично, т.к. если человек этого не умеет, но умеет программировать обучение занимает минут 15.
Вопрос по маскам на собеседовании будет нормальным, если кандидат утверждает, что, например, программировал парсеры бинарных протоколов. Если же человек говорит, что занимался допустим чисто программированием форм, то вопрос будет странным.
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, gandjustas, Вы писали:
G>>>>Тебе лично сколько раз приходилось писать разворот списка в настоящем проекте? G>>>>Вот мне ровно 0. Думаю подавляющему большинству посетителей форума — также. V>>>Да причем тут это? Есть большая толпа что хочет крутую зарплату. Ка прикажешь их отсеивать? По сути для работы пофиг кого брать. G>>Давайте задачу близкую к реальной работе.
G>>Мы берем SharePoint программистов, просим написать SharePoint код. Буквально 7 строк, но куча тонкостей, 30% на нем и отсеивается.
I>Опаньки ! Практически аналог реверса для SharePoint — программиста.
Да, но разница только в том, что это реально используется в работе. Я же говорил что подобный код минимум пару раз в неделю писать приходится.
В отличие от разрворотов списка.
I>Ты похоже делаешь выводы по своему частному случаю.
Причем тут частый случай? Основной криетрий полезности той или иной задачи — насколько она близка к той работе, которую нужно делать.
Развороты списка в реальном приложении не пишет никто.
Рукопашную сортировку видел один раз, и что потому что программист был не в курсе что такое comparer.
Поэтому спрашивают все это на собеседовании чтобы потешить самолюбие собеседующего, не более того.
I>Баззворд SharePoint в вакансии сам по себе фильтрует неплохо и на собеседования новички практически не приходят.
А вот ценник притягивает тех, кто полкнижки только успел прочитать.
Здравствуйте, SimpleQuestion, Вы писали:
SQ>Примерно так: рекурсивно уходим в Next, на текущей итерации достаем Name. Условие выхода — Next == null. Оптимизируем в цикл, если нужно.
Я вроде конкурс на самый извратный алгоритм не объявлял
Здравствуйте, Undying, Вы писали:
U>Можно узнать для каких практических задач целесообразно использовать однонаправленный список?
Ни для каких. Эта задача предназначена для выяснения того, насколько собеседуемый способен в голове держать концепцию ссылок. Иногда стоит прочесть весь топик, прежде чем задавать вопросы, ответы на которые в топике уже есть.
Здравствуйте, gandjustas, Вы писали:
I>>Ну да. Если человек умеет кодить, то он сумеет закодить любой алгоритм. При этом знания алгоритмов проверяется несколько другим способом. G>С чего ты взял что человек, не умеющий написать на бумаге разворот списка на собеседовании не умеет кодить?
Из опыта.
I>>'99% смогут написать разворот списка имея компьютер и час времени.' I>>'Обход дерева — 4 часа, ни раз не писав обходы до этого.'
I>>Если человек не писал ни одного обхода, это примерно студент 1го курса университета или по скилам приравненый к такому студенту. G>И? Все равно он может с помощью гугла написать код на нужном языке за полдня.
Ага, у гугла есть такая функция "код который обходит мою структуру".
Когда делается обход, всегда нужно знать свойства этого обхода и всякие разные нюансы. Гугл тебе ничего такого не даст.
G>Если не умеет гуглить, то ему в ИТ вообще нельзя.
Умение находить решения с гуглом плохо стыкуется. Решение находится в уме, а вот с реализацией конкретного варианта кое где может помочь гугл.
Для того, что бы найти решение, в голове должно быть много всего и сразу. Без этого поиск решения не работает.
Если ты ничего не знаешь про некоторое семейство алгоритмов, то ты никогда не найдешь вариант, который сводится к такому алгоритму.
Всё — приехали. Гугл тебе не поможет. Поможет только другой специалист, возможно на форуме.
Скажем, если человек хорошо умеет всевозможные сортировки, то практически искаропки он будет как минимум представлять что такое пирамиды, дерамиды и всякие деревья запросто так, включая сбалансированые, B, R, квадро и прочие.
Отсюда ясно, почему Кнут написал целый том про сортировки.
НС>Ни для каких. Эта задача предназначена для выяснения того, насколько собеседуемый способен в голове держать концепцию ссылок.
Время занимательных историй. Одолевали меня раньше рекрутеры из Люксофта, к пятому собеседованию уже вызубрил все их логические головоломки, к концу пятого собеседования в очередной раз задают разворот списка, и тут силы меня покинули. Как потом оказалось начинал грипповать. Минут 10 протупил и зафейлил. Больше они ко мне не звонили.
Здравствуйте, gandjustas, Вы писали:
G>не понял, в чем реальность?
В том, что этот алгоритм точно так же требует опририрование ссылками.
G>>>Мы используем разворот строки на C#. Причем любой. НС>>Там нет ссылок. G>Нет, они и не нужны.
Значит умение оперировать ссылками этой задачкой не проверяется.
G>Задаем вопрос про value и reference типы в .NET.
Здравствуйте, Undying, Вы писали:
U>Это не говоря уж о проблеме разного понимания терминологии на собеседовании. Т.к. в шарпе термин "список" всеми понимается как List, т.е. динамический массив. В классическом значении им никто не пользуется, т.к. на практике классические списки это никому не нужная экзотика.
Если работодятел ожидает, что его мысли прочитают или просто не задумывается о таком варианте это уже клиника.
Такой случай проходит уже по другой статье чем "неэффективные методы собеседование".
Откуда же его [независимый суд] взять, если в нем такие же как мы? (c) VladD2
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Здравствуйте, gandjustas, Вы писали:
G>>не понял, в чем реальность? НС>В том, что этот алгоритм точно так же требует опририрование ссылками.
G>>>>Мы используем разворот строки на C#. Причем любой. НС>>>Там нет ссылок. G>>Нет, они и не нужны. НС>Значит умение оперировать ссылками этой задачкой не проверяется.
G>>Задаем вопрос про value и reference типы в .NET. НС>Это другое, это знание платформы.
Так именно знание платформы и нужно, а не абстрактное умение "оперировать ссылками". Вообще не очень понимаю зачем нужно это абстрактное знание\умение.
Здравствуйте, Ikemefula, Вы писали:
I>Вообще сортировка это практически дедушка всех алгоритмов, если специалист по алгоритмам здесь плавает, то дальше его можно и не спрашивать.
А зачем вы ищете специалистов по алгоритмам, а не специалистов по решению алгоритмических задач?
Здравствуйте, Undying, Вы писали:
I>>Вообще сортировка это практически дедушка всех алгоритмов, если специалист по алгоритмам здесь плавает, то дальше его можно и не спрашивать.
U>А зачем вы ищете специалистов по алгоритмам, а не специалистов по решению алгоритмических задач?
А в чем разница ? Я чтото не понимаю твоей терминологии.
Здравствуйте, gandjustas, Вы писали:
I>>Опаньки ! Практически аналог реверса для SharePoint — программиста. G>Да, но разница только в том, что это реально используется в работе. Я же говорил что подобный код минимум пару раз в неделю писать приходится. G>В отличие от разрворотов списка.
Если надо писать пару раз в неделю, что 100% это есть в гугле.
I>>Ты похоже делаешь выводы по своему частному случаю. G>Причем тут частый случай? Основной криетрий полезности той или иной задачи — насколько она близка к той работе, которую нужно делать.
Задача близка и задачу надо решь пару раз в неделю это вещи мягко говоря разные.
G>Развороты списка в реальном приложении не пишет никто.
Код он большей частью весь уникальный. Типовые задачи смысла давать решать, проще задать несколько вопросов.
G>Рукопашную сортировку видел один раз, и что потому что программист был не в курсе что такое comparer.
Так что, обсуждать 'широту' твоего опыта ?
G>Поэтому спрашивают все это на собеседовании чтобы потешить самолюбие собеседующего, не более того.
Вероятно это у тебя такая цель.
I>>Баззворд SharePoint в вакансии сам по себе фильтрует неплохо и на собеседования новички практически не приходят. G>А вот ценник притягивает тех, кто полкнижки только успел прочитать.
Здравствуйте, cosimo, Вы писали:
НС>>Ни для каких. Эта задача предназначена для выяснения того, насколько собеседуемый способен в голове держать концепцию ссылок. C>Время занимательных историй. Одолевали меня раньше рекрутеры из Люксофта, к пятому собеседованию уже вызубрил все их логические головоломки, к концу пятого собеседования в очередной раз задают разворот списка, и тут силы меня покинули. Как потом оказалось начинал грипповать. Минут 10 протупил и зафейлил. Больше они ко мне не звонили.
Здравствуйте, Undying, Вы писали:
U>Односвязный список это экзотика. Его переворот тем более. Адресная арифметика в C# это антинавык. Накладывать маски уметь желательно, но не критично, т.к. если человек этого не умеет, но умеет программировать обучение занимает минут 15.
Нужны не конкретные знания, а умение их применить правильно и быстро.
Односвязный список это ни разу не экзотика, это основы структур данных. Не бывает человека, который хорошо понимает структуры данных и не знает что такое связный список.
U>Вопрос по маскам на собеседовании будет нормальным, если кандидат утверждает, что, например, программировал парсеры бинарных протоколов. Если же человек говорит, что занимался допустим чисто программированием форм, то вопрос будет странным.
Ничего странного. Часто люди отвечают на такие вопросы и это всегда большой плюс.
Здравствуйте, Undying, Вы писали:
U>Это именно оптимизация. Т.е. без списка код хеш таблицы будет проще, хоть и несколько проиграет в производительности и памяти. Но т.к. хэш таблицы это стандартные структуры данных, то все оптимизации в коде их реализации уже сделаны.
Наоборот, хештаблица по методу цепочек, т.е. код со списком будет проще, ибо
1. хеширование проще
2. список оформлен явно
Метод прямой адресации сложнее, ибо
1. хеширование намного сложнее и надо понимать как именно разрешаются коллизии
2. список так же есть, только он оформлен неявно, например переход к следующему элементу не по прямой ссылке, а через вычисление хешкода.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Тогда уж добавь — "никогда не слышавший про деревья". Как можно хоть что-то знать про деревья и не знать про самый простой алгоритм в дереве — не понимаю.
PD>А если он и впрямь о них никогда не слышал — так учиться надо. Впрочем, изучение темы двоичных деревьев с нуля и до способов обхода едва ли и в этом случае потребует 4 часов. Максимум час.
Час на изучение и от силы 5 минут что бы продемонстрировать это знание. На собеседовании обычно дается 15-20 минут аккурат из за стресса, бумаги и непривычной обстановки. Если решения нет, то деревья если и есть, то пользоваться ими кандидат не умеет или устойчивость к стрессу ниже плинтуса.