Re[11]: offtopic
От: Vzhyk  
Дата: 23.09.13 14:46
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Давай подробнее. На входе — односвязный список, никакого метода reverse у него нет.

А что у него есть?

НС>Предлагаешь на собеседовании давать задачку на многакодаибыстро?

Ну, вообще то так и делается нынче. Это я тут странный со своим побеседовать, поговорить.
Re[11]: offtopic
От: Vzhyk  
Дата: 23.09.13 14:47
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Где нет?

Среди русскоязычных.
Re[2]: головоломки на собеседованиях бесполезны
От: Vzhyk  
Дата: 23.09.13 14:48
Оценка:
Здравствуйте, -n1l-, Вы писали:

N>Все взрослеют же.

Но на их место приходят другие, более дешевые.
Re[9]: offtopic
От: Vzhyk  
Дата: 23.09.13 14:49
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Ну а ты как задачу это решил бы в реальном коде, а?

Задачу приводи, а? А то у тебя пока "Задача".
Re[12]: offtopic
От: Ночной Смотрящий Россия  
Дата: 23.09.13 14:53
Оценка:
Здравствуйте, Vzhyk, Вы писали:

НС>>Давай подробнее. На входе — односвязный список, никакого метода reverse у него нет.

V>А что у него есть?

class Item
{
  public string Name {get; set;}
  public Item Next {get; set;}
}

Больше ничего нет.

V>Ну, вообще то так и делается нынче.


Ни разу не сталкивался.
Re[10]: offtopic
От: Ночной Смотрящий Россия  
Дата: 23.09.13 14:53
Оценка:
Здравствуйте, Vzhyk, Вы писали:

V>Задачу приводи, а? А то у тебя пока "Задача".


Я думал она общеизвестна.
Есть такой класс:
class Item
{
  public string Name {get; set;}
  public Item Next {get; set;}
}


Необходимо развернуть цепочку из экземпляров этого класса задом на перед. Сам класс трогать нельзя.
Вот и вся задачка.
Re[12]: offtopic
От: Ночной Смотрящий Россия  
Дата: 23.09.13 14:54
Оценка:
Здравствуйте, Vzhyk, Вы писали:

V>Среди русскоязычных.


Среди русскоязычных "таких людей, кто окончил ВУЗ по технической специальности (кроме варианта купил диплом)"?
А ты, прости за нескромный вопрос, с гуманитарным образованием, купил диплом или нерусскоязычный?
Re[2]: головоломки на собеседованиях бесполезны
От: Ночной Смотрящий Россия  
Дата: 23.09.13 14:56
Оценка: +3
Здравствуйте, -n1l-, Вы писали:

N>Ну гномики понятно, а списки то тут причем?


Видимо, у некоторых из присутствующих эта задача вызывает проблемы.
Re[13]: offtopic
От: Vzhyk  
Дата: 23.09.13 15:02
Оценка: :))
Здравствуйте, Ночной Смотрящий, Вы писали:


НС>
НС>class Item
НС>{
НС>  public string Name {get; set;}
НС>  public Item Next {get; set;}
НС>}
НС>

НС>Больше ничего нет.
Придется дойти до конца, запомнить всех и циклом назад отдать тебе.
Re[8]: offtopic
От: herethere  
Дата: 23.09.13 15:07
Оценка: +2 -2 :))) :)
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Или ты думаешь что человек, не справившийся с разворотом списка, топосорт при этом легко напишет?


Чушь полная, что "топосорты", что "развороты списка". Доказывают они ровно то, что HR и малейшего понятия не имеет, зачем он сидит с программистом и задаёт эти смехотворные вопросы.
Алгоритмы — это просто собранные в кучу решения каких-то задач. Их знание или незнание — всего лишь вопрос опыта и МИНУТЫ ГУГЛЕНИЯ.
Если я впервые решаю задачу, даденую на работе, я в офисе даже палец о палец не ударю, потому что тупо не могу думать в офисной помойке — я собираю материал, приношу домой и в тишине и спокойствии начинаю думать. Ну и что умного ты хочешь выяснить о человеке, когда он на нервах сидит в кабинете незнакомой организации и какое-то существо в свитере и с бородой задаёт с прищуром ему вопросы! Я и возраст-то вспоминаю секунд пять, что уж говорить про красно-чёрные деревья и ряды Фурье!
Просто в России, как типичной диктаторской стране чморения и выпежонства, принято, что соискатель — "никто и звать его никак", а работодатель — "и бог, и царь", отсюда абсолютно неадекватная обстановка "мальчик на экзамене", которая ещё больше усиливает тщеславные позывы вопрошающего на унижение "испытуемого".
В реальности есть контора, у которой есть задачи и есть люди, которые эти задачи могут выполнить. Рынок "купил-сделал", никто не выше другого. И если человек знает своё дело, он не обязан оправдываться перед упомянутыми прыщавыми "сеньорами" почему он не может написать потокобезопасный стек — просто дай задачу и не мозоль глаза; за пару дней можно решить любую среднюю задачу и по коду будет видно, что человек будет выдавать в продакшн.
При нынешнем маразме принятия на работу есть большой шанс, что как раз хороший спец (один на сто) пролетит, а "специалист по собеседованиям" будет сосать из вас зарплату до следующего собеседования. А всё лишь потому, что дилетант в HR прочёл про "задачки на собеседовании" и не применив даже капли мозга поехал "отсеивать". А контора, за свою расхлябанность при наёме "отдела кадров", терпит убытки и сортирует УГ, нанятое "по всем правилам". Что ж, кесарю — кесарево.
Re[9]: offtopic
От: Vzhyk  
Дата: 23.09.13 15:12
Оценка:
Здравствуйте, herethere, Вы писали:

H> и какое-то существо в свитере и с бородой

Вот не надо позорить нормальных людей.

H> ряды Фурье!

Ну если ты будешь занимать именно ЦОС, то вопрос логичный.

H>При нынешнем маразме принятия на работу есть большой шанс, что как раз хороший спец (один на сто) пролетит, а "специалист по собеседованиям" будет сосать из вас зарплату до следующего собеседования. А всё лишь потому, что дилетант в HR прочёл про "задачки на собеседовании" и не применив даже капли мозга поехал "отсеивать". А контора, за свою расхлябанность при наёме "отдела кадров", терпит убытки и сортирует УГ, нанятое "по всем правилам". Что ж, кесарю — кесарево.

Выживают те, кто лучше всего умеет приспосабливать к условиям окружающей среды.
Re[8]: offtopic
От: Pavel Dvorkin Россия  
Дата: 23.09.13 15:26
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>95% приходящих на собеседование не справляются.


И вы их не берете. А другие берут. Потом они пишут код , от которого уши вянут. Потом этого кода становится много. Потом такой код становится нормой . Потом объяснить, что это не норма, а бог знает что, становится невозможным : тебя просто не понимают, все же так пишут.

А потом имеем, что имеем.
With best regards
Pavel Dvorkin
Re[9]: offtopic
От: herethere  
Дата: 23.09.13 15:48
Оценка: 3 (1) +2 -1
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Потом они пишут код , от которого уши вянут. ... Потом такой код становится нормой . Потом объяснить, что это не норма, а бог знает что, становится невозможным : тебя просто не понимают, все же так пишут.


О! Хорошо сказал! Вот примерно так я чувствую себя при общении с апологетами "паттернов проектирования" — думаешь, "где ж вы все такие умные были, когда 20 лет назад писали Винду?!" — ведь тогда никто не жаловался "ты не используешь фабрику!", люди просто РЕШАЛИ ЗАДАЧИ. Сами. Без "банды четырёх". А сейчас каждый задрот мне тыкает ехидно: "Какие паттерны ты знаешь?" (это я работу недавно искал) А я им: "Понятия не имею! Я пишу при помощи мозгов." — посмеялись, разошлись. Так, наверное, до сих пор и ищут "специалистов по паттернам"!
Re[10]: offtopic
От: Vzhyk  
Дата: 23.09.13 16:03
Оценка:
Здравствуйте, herethere, Вы писали:

H>О! Хорошо сказал! Вот примерно так я чувствую себя при общении с апологетами "паттернов проектирования"

Веселее, когда они это в код вляпывают.
Re[9]: offtopic
От: -n1l-  
Дата: 23.09.13 16:24
Оценка:
Пффф, пока вы тут писали эту простыню, я взял листочек и ручку набросал схему ссылок и решил задачу двумя разными способами.
Первый способ 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% максимум.
Лично у меня уже в горле сидит. Знание алгоритмов и структур данных позволяет решать задачу более элегантно и понятно.
Я вообще изучая новый язык нынче всегда пытаюсь написать на нем связанный список.
Задача просто то, что надо, что бы быстро въехать в основную суть.
Поработать с объектами, с коллекциями, с ссылками(указателями если есть), модулями, интерфейсами,
собрать маленький проект, поработать со средой разработки и стандартными функциями.
Это вообще детские задачи. Вот я на работе решал задачку.
Нужно было создать коллекцию с динамическим ключом для хранения данных в памяти.
Производительность критически важна, так как данные поступают очень быстро, размер стека очень мал и что бы он не переполнился внезапно, нужно было реагировать практически молниеносно. Т.е. при добавлении нового значения все ключи у коллекции должны меняться.
Как это сделать? Я решил задачу где-то за день, но времени додуматься до решения мне потребовалось не очень много.
Re[10]: offtopic
От: herethere  
Дата: 23.09.13 17:10
Оценка: -5
Здравствуйте, -n1l-, Вы писали:

N>Пффф, пока вы тут писали эту простыню, я взял листочек....


Зря не помял — так удобнее использовать.

N>...и решил задачу двумя разными способами.


Я так понимаю, ты ждёшь медаль "главный переворачиватель списков"?

N>Эта метода:

N>- Я специалсит, я не буду писать велосипед, я могу дома сделать так, как хочу, все уже написано, давайте подставим стопицотую библиотеку в код, плевать, что мы ее будем использовать на 3% максимум.

Мне кажется, или ты только что на меня наехал?

N>Знание алгоритмов и структур данных позволяет решать задачу более элегантно и понятно.


Ну так слушай:
1. Ты ни струя ни знаешь ни первого, ни второго, иначе бы решил эту, с позволения сказать, "задачу" не "на бумажке", а сходу из головы — она тривиальна и тому, кто "знает алгоритмы", бумажки не нужны. Ты же себя таким всезнайкой выставляешь, правильно?
2. "Более элегантно" только шорты расстёгиваются, твоё решение — обычное, сотню раз описанное и непонятно, кому ты хотел его написать "более понятно".
3. Рукав вытри — в чём-то коричневом.
Re[14]: offtopic
От: Ночной Смотрящий Россия  
Дата: 23.09.13 17:30
Оценка: +2
Здравствуйте, Vzhyk, Вы писали:

V>Придется дойти до конца, запомнить всех и циклом назад отдать тебе.


Думай лучше.
Re[9]: offtopic
От: Ночной Смотрящий Россия  
Дата: 23.09.13 17:30
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>И вы их не берете. А другие берут.


Подсобными рабочими, ага. В надежде что доучатся. У нас, к сожалению, на тот момент была очень скромная по размерам команда с довольно высокими требованиями. Впрочем, мы тоже пробовали брать — результат отрицательный.

PD> Потом они пишут код , от которого уши вянут. Потом этого кода становится много. Потом такой код становится нормой . Потом объяснить, что это не норма, а бог знает что, становится невозможным : тебя просто не понимают, все же так пишут.


Code review сильно помогает в такой ситуации. При наличии обратной связи человек либо быстро учится, либо уходит. Но это довольно дорогое удовольствие.
Re[9]: offtopic
От: Ночной Смотрящий Россия  
Дата: 23.09.13 17:30
Оценка: +1
Здравствуйте, herethere, Вы писали:

H>Чушь полная, что "топосорты", что "развороты списка".


Сильный аргумент.

H> Доказывают они ровно то, что HR и малейшего понятия не имеет, зачем он сидит с программистом и задаёт эти смехотворные вопросы.


При чем тут ХР? Я не ХР даже близко.

H>Алгоритмы — это просто собранные в кучу решения каких-то задач. Их знание или незнание — всего лишь вопрос опыта и МИНУТЫ ГУГЛЕНИЯ.


Так речь то не про алгоритмы, а про то что надо понять, умеет ли моск собеседуемого нормально работать с концепцией ссылок.

H>Просто в России, как типичной диктаторской стране чморения и выпежонства, принято


В России, между прочим, в среднем интервью намного менее формальны, чем, к примеру, в США. Если ты даже в РФ собеседования не тянешь — тут уж не работодатели виноваты.
Re[10]: offtopic
От: Ночной Смотрящий Россия  
Дата: 23.09.13 17:35
Оценка: +3
Здравствуйте, -n1l-, Вы писали:

N>Первый способ O(n) с использованием нескольких вспомогательных ссылок.


Ну да, собственно больше ничего и не требуется. Почему некоторые, считающие себя программистами, с этим не могут справиться — непонятно.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.