Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Давай подробнее. На входе — односвязный список, никакого метода reverse у него нет.
А что у него есть?
НС>Предлагаешь на собеседовании давать задачку на многакодаибыстро?
Ну, вообще то так и делается нынче. Это я тут странный со своим побеседовать, поговорить.
Здравствуйте, Vzhyk, Вы писали:
V>Среди русскоязычных.
Среди русскоязычных "таких людей, кто окончил ВУЗ по технической специальности (кроме варианта купил диплом)"?
А ты, прости за нескромный вопрос, с гуманитарным образованием, купил диплом или нерусскоязычный?
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Или ты думаешь что человек, не справившийся с разворотом списка, топосорт при этом легко напишет?
Чушь полная, что "топосорты", что "развороты списка". Доказывают они ровно то, что HR и малейшего понятия не имеет, зачем он сидит с программистом и задаёт эти смехотворные вопросы.
Алгоритмы — это просто собранные в кучу решения каких-то задач. Их знание или незнание — всего лишь вопрос опыта и МИНУТЫ ГУГЛЕНИЯ.
Если я впервые решаю задачу, даденую на работе, я в офисе даже палец о палец не ударю, потому что тупо не могу думать в офисной помойке — я собираю материал, приношу домой и в тишине и спокойствии начинаю думать. Ну и что умного ты хочешь выяснить о человеке, когда он на нервах сидит в кабинете незнакомой организации и какое-то существо в свитере и с бородой задаёт с прищуром ему вопросы! Я и возраст-то вспоминаю секунд пять, что уж говорить про красно-чёрные деревья и ряды Фурье!
Просто в России, как типичной диктаторской стране чморения и выпежонства, принято, что соискатель — "никто и звать его никак", а работодатель — "и бог, и царь", отсюда абсолютно неадекватная обстановка "мальчик на экзамене", которая ещё больше усиливает тщеславные позывы вопрошающего на унижение "испытуемого".
В реальности есть контора, у которой есть задачи и есть люди, которые эти задачи могут выполнить. Рынок "купил-сделал", никто не выше другого. И если человек знает своё дело, он не обязан оправдываться перед упомянутыми прыщавыми "сеньорами" почему он не может написать потокобезопасный стек — просто дай задачу и не мозоль глаза; за пару дней можно решить любую среднюю задачу и по коду будет видно, что человек будет выдавать в продакшн.
При нынешнем маразме принятия на работу есть большой шанс, что как раз хороший спец (один на сто) пролетит, а "специалист по собеседованиям" будет сосать из вас зарплату до следующего собеседования. А всё лишь потому, что дилетант в HR прочёл про "задачки на собеседовании" и не применив даже капли мозга поехал "отсеивать". А контора, за свою расхлябанность при наёме "отдела кадров", терпит убытки и сортирует УГ, нанятое "по всем правилам". Что ж, кесарю — кесарево.
Здравствуйте, herethere, Вы писали:
H> и какое-то существо в свитере и с бородой
Вот не надо позорить нормальных людей.
H> ряды Фурье!
Ну если ты будешь занимать именно ЦОС, то вопрос логичный.
H>При нынешнем маразме принятия на работу есть большой шанс, что как раз хороший спец (один на сто) пролетит, а "специалист по собеседованиям" будет сосать из вас зарплату до следующего собеседования. А всё лишь потому, что дилетант в HR прочёл про "задачки на собеседовании" и не применив даже капли мозга поехал "отсеивать". А контора, за свою расхлябанность при наёме "отдела кадров", терпит убытки и сортирует УГ, нанятое "по всем правилам". Что ж, кесарю — кесарево.
Выживают те, кто лучше всего умеет приспосабливать к условиям окружающей среды.
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>95% приходящих на собеседование не справляются.
И вы их не берете. А другие берут. Потом они пишут код , от которого уши вянут. Потом этого кода становится много. Потом такой код становится нормой . Потом объяснить, что это не норма, а бог знает что, становится невозможным : тебя просто не понимают, все же так пишут.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Потом они пишут код , от которого уши вянут. ... Потом такой код становится нормой . Потом объяснить, что это не норма, а бог знает что, становится невозможным : тебя просто не понимают, все же так пишут.
О! Хорошо сказал! Вот примерно так я чувствую себя при общении с апологетами "паттернов проектирования" — думаешь, "где ж вы все такие умные были, когда 20 лет назад писали Винду?!" — ведь тогда никто не жаловался "ты не используешь фабрику!", люди просто РЕШАЛИ ЗАДАЧИ. Сами. Без "банды четырёх". А сейчас каждый задрот мне тыкает ехидно: "Какие паттерны ты знаешь?" (это я работу недавно искал) А я им: "Понятия не имею! Я пишу при помощи мозгов." — посмеялись, разошлись. Так, наверное, до сих пор и ищут "специалистов по паттернам"!
Здравствуйте, herethere, Вы писали:
H>О! Хорошо сказал! Вот примерно так я чувствую себя при общении с апологетами "паттернов проектирования"
Веселее, когда они это в код вляпывают.
Пффф, пока вы тут писали эту простыню, я взял листочек и ручку набросал схему ссылок и решил задачу двумя разными способами.
Первый способ O(n) с использованием нескольких вспомогательных ссылок.
Второй способ O(n*n)с использованием стека, чисто как эксперимент, так что публиковать его не буду.
class Element
{
public int Value { get; set; }
public Element Next { get; set; }
public Element(int val, Element next)
{
Value = val;
Next = next;
}
}
class Program
{
static void Main(string[] args)
{
Element list = new Element(1,new Element(2,new Element(3,new Element(4,null))));
ReverseOne(ref list);
Element root = list;
while (root != null)
{
Console.WriteLine(root.Value);
root = root.Next;
}
}
static void ReverseOne(ref Element list)
{
Element current = list;
Element previous = null;
Element result = null;
while (current!=null)
{
previous = current;
current = current.Next;
previous.Next = result;
result = previous;
}
list = result;
}
}
Эта метода:
— Я специалсит, я не буду писать велосипед, я могу дома сделать так, как хочу, все уже написано, давайте подставим стопицотую библиотеку в код, плевать, что мы ее будем использовать на 3% максимум.
Лично у меня уже в горле сидит. Знание алгоритмов и структур данных позволяет решать задачу более элегантно и понятно.
Я вообще изучая новый язык нынче всегда пытаюсь написать на нем связанный список.
Задача просто то, что надо, что бы быстро въехать в основную суть.
Поработать с объектами, с коллекциями, с ссылками(указателями если есть), модулями, интерфейсами,
собрать маленький проект, поработать со средой разработки и стандартными функциями.
Это вообще детские задачи. Вот я на работе решал задачку.
Нужно было создать коллекцию с динамическим ключом для хранения данных в памяти.
Производительность критически важна, так как данные поступают очень быстро, размер стека очень мал и что бы он не переполнился внезапно, нужно было реагировать практически молниеносно. Т.е. при добавлении нового значения все ключи у коллекции должны меняться.
Как это сделать? Я решил задачу где-то за день, но времени додуматься до решения мне потребовалось не очень много.
Здравствуйте, -n1l-, Вы писали:
N>Пффф, пока вы тут писали эту простыню, я взял листочек....
Зря не помял — так удобнее использовать.
N>...и решил задачу двумя разными способами.
Я так понимаю, ты ждёшь медаль "главный переворачиватель списков"?
N>Эта метода: N>- Я специалсит, я не буду писать велосипед, я могу дома сделать так, как хочу, все уже написано, давайте подставим стопицотую библиотеку в код, плевать, что мы ее будем использовать на 3% максимум.
Мне кажется, или ты только что на меня наехал?
N>Знание алгоритмов и структур данных позволяет решать задачу более элегантно и понятно.
Ну так слушай:
1. Ты ни струя ни знаешь ни первого, ни второго, иначе бы решил эту, с позволения сказать, "задачу" не "на бумажке", а сходу из головы — она тривиальна и тому, кто "знает алгоритмы", бумажки не нужны. Ты же себя таким всезнайкой выставляешь, правильно?
2. "Более элегантно" только шорты расстёгиваются, твоё решение — обычное, сотню раз описанное и непонятно, кому ты хотел его написать "более понятно".
3. Рукав вытри — в чём-то коричневом.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>И вы их не берете. А другие берут.
Подсобными рабочими, ага. В надежде что доучатся. У нас, к сожалению, на тот момент была очень скромная по размерам команда с довольно высокими требованиями. Впрочем, мы тоже пробовали брать — результат отрицательный.
PD> Потом они пишут код , от которого уши вянут. Потом этого кода становится много. Потом такой код становится нормой . Потом объяснить, что это не норма, а бог знает что, становится невозможным : тебя просто не понимают, все же так пишут.
Code review сильно помогает в такой ситуации. При наличии обратной связи человек либо быстро учится, либо уходит. Но это довольно дорогое удовольствие.
Здравствуйте, herethere, Вы писали:
H>Чушь полная, что "топосорты", что "развороты списка".
Сильный аргумент.
H> Доказывают они ровно то, что HR и малейшего понятия не имеет, зачем он сидит с программистом и задаёт эти смехотворные вопросы.
При чем тут ХР? Я не ХР даже близко.
H>Алгоритмы — это просто собранные в кучу решения каких-то задач. Их знание или незнание — всего лишь вопрос опыта и МИНУТЫ ГУГЛЕНИЯ.
Так речь то не про алгоритмы, а про то что надо понять, умеет ли моск собеседуемого нормально работать с концепцией ссылок.
H>Просто в России, как типичной диктаторской стране чморения и выпежонства, принято
В России, между прочим, в среднем интервью намного менее формальны, чем, к примеру, в США. Если ты даже в РФ собеседования не тянешь — тут уж не работодатели виноваты.