Здравствуйте, Karn, Вы писали:
K>Привет всем. Читаю тут время от времени про то, что людям вот дают тестовые задания. Нет, не так начну.. K>Решил я тут сходить на собеседование в одну компанию. Позиция — ведущий .NET разработчик. Позвонили, говорят: K>резюме неплохое у вас, но на эту позицию у нас предусмотрено тестовое задание небольшое, часов на 10-12. Не хотите? K>Я подумал — 10 часов не убудет и согласился, задание было действительно небольшим, я его сделал, отправил, через 4(!) часа K>после этого мне пришел ответ с отказом и комментариями тамошнего эксперта. Мне лично(наверное, больное самолюбие) комментарии K>к отказу показались недостаточно существенными. Если вы посмотрите задание, решение и причины отказа, буду крайне благодарен. K>Просто на мой взгляд задание я выполнил неплохо, и мне интересно насколько глубоко я ошибаюсь. K>1. Задание K>http://files.rsdn.ru/19230/task.txt K>2. Решение K>http://files.rsdn.ru/19230/HttpTraveller.zip K>3. Причины отказа K>http://files.rsdn.ru/19230/decline.txt
Запихивание в подобные утилиты юнит-тестов и тем более контейнеров мне кажется разновидностью онанизма. В тестах больше кода, чем в самой программе. Мне недавно дали задание сделать практически то же самое с веб-мордой, получилось двести строк на Питоне, включая свой тред-пул, пока, правда, не ответили.
Здравствуйте, avpavlov, Вы писали: A>В тестах всегда больше кода, чем в тестируемой ф-ции. Если у тебя не так, то ты пишешь неправильные тесты.
Оно, конечно, понятно, что основной код должен быть выразительным, чтобы проще читать было, а тесты тупыми, чтобы не ломались, но блин.
Здравствуйте, Karn, Вы писали:
K>...Позвонили, говорят: K>резюме неплохое у вас, но на эту позицию у нас предусмотрено тестовое задание небольшое, часов на 10-12. Не хотите? K>Я подумал — 10 часов не убудет и согласился, задание было действительно небольшим, я его сделал, отправил, через 4(!) часа K>после этого мне пришел ответ с отказом и комментариями тамошнего эксперта. Мне лично(наверное, больное самолюбие) комментарии K>к отказу показались недостаточно существенными.
Ну правильно, не надо было вообще делать это задание. Посыл таких существ на три буквы — самое правильное решение.
K>3. Причины отказа
_R_> public override Stream GetResponseStream() { _R_> if(Logging.On)Logging.Enter(Logging.Web, this, "GetResponseStream", ""); _R_> CheckDisposed();
_R_> if (!CanGetResponseStream()) _R_> { _R_> // give a blank stream in the HEAD case, which = 0 bytes of data _R_> if(Logging.On)Logging.Exit(Logging.Web, this, "GetResponseStream", Stream.Null); _R_> return Stream.Null; _R_> } _R_> if(Logging.On)Logging.PrintInfo(Logging.Web, "ContentLength="+m_ContentLength); _R_> if(Logging.On)Logging.Exit(Logging.Web, this, "GetResponseStream", m_ConnectStream); _R_> return m_ConnectStream;
Влезу и тоже попинаю — все эти if(Logging.On) Enter и Exit выглядят крайне неприятно. Лаконичность — одно из основных достоинств программиста. Не надо заслонять логику решаемых задач семантической избыточностью.
Надо как-то так
Здравствуйте, _FRED_, Вы писали:
_FR>Да и зачем вам собственные потоки? Чем стандартный пул не устроил? В нём достаточное количество потоков для работы на среднестатистическом компьютере. А, вообще, взяли бы таски, раз уж четвёртый фреймворк разрешили.
Иногда удобнее делать _secondaryThread.Join(), чем возиться с примитивами синхронизации в случае ThreadPool.QueueUserWorkItem
Создать консольное windows-приложение (не прототип), выполняющее следующие задачи:
• Поиск всех ссылок типа http:// с html-страницы, адрес которой передан в качестве аргумента командной строки, а также со всех связанных с ней страниц (рекурсивно). Количество ссылок может достигать миллионов и более. Глубина рекурсии должна конфигурироваться.
• Вывод найденных уникальных ссылок по мере их обнаружения на консоль
• В последовательность файлов размером не более N Мбайт (конфигурируется)
...
Обязательно:
• Использование OOD/OOP
...
• ...VS2008/2010
Ну конечно, OOD это обязательно для парсера ссылок. А без Visual Studio 2010 так и вообще абсурд, браться за решение этой грандиозной задачи.
Здравствуйте, Karn, Вы писали:
K>резюме неплохое у вас, но на эту позицию у нас предусмотрено тестовое задание небольшое, часов на 10-12. Не хотите? K>Я подумал — 10 часов не убудет и согласился, задание было действительно небольшим, я его сделал, отправил, через 4(!) часа
2000 строк в 23-х .cs файлах. Извини меня, но за 4 часа такое сделать невозможно. Может быть, поэтому они тебе и отказали?
Здравствуйте, StandAlone, Вы писали:
_FR>>Да и зачем вам собственные потоки? Чем стандартный пул не устроил? В нём достаточное количество потоков для работы на среднестатистическом компьютере. А, вообще, взяли бы таски, раз уж четвёртый фреймворк разрешили.
SA>Иногда удобнее делать _secondaryThread.Join(), чем возиться с примитивами синхронизации в случае ThreadPool.QueueUserWorkItem
Это очень странный аргумент в пользу выбора того или иного инструмента: различия гораздо более фундаментальны, нежели простое "удобство" т ого или иного метода.
Help will always be given at Hogwarts to those who ask for it.
Здравствуйте, TimurSPB, Вы писали:
TSP>Ну конечно, OOD это обязательно для парсера ссылок. А без Visual Studio 2010 так и вообще абсурд, браться за решение этой грандиозной задачи.
Здравствуйте, alexeiz, Вы писали:
A>2000 строк в 23-х .cs файлах. Извини меня, но за 4 часа такое сделать невозможно. Может быть, поэтому они тебе и отказали?
Здравствуйте, AlexFox, Вы писали:
AF>Ну правильно, не надо было вообще делать это задание. Посыл таких существ на три буквы — самое правильное решение.
Трудно не согласиться.
Вот у этих наверняка не надо сушить мозги над тестовыми заданиями в 2000 строк объемом с неизвестным результатом:
если работает консультантом по стратегии и финансам, то может зарабатывать очень хорошо. около 5 т. евро в месяц, плюс бонус от проектов....
Компания, судя по всему, называется Маккинзи — следовательно, молодой человек получает от 200 до 300 тыс. рублей в месяц.
А, ему всего 24. Тогда его зарплата чуть ниже — около 150 тысяч. 200-300 — это уровень associate (после МБА или с опытом работы от 5 лет и выше).
скорее всего, он junior consultant
Если ему 24 и он начал работать сразу после окончания ВУЗа, то он уже не совсем junior. Начальная зарплата в Маккинзи — около 100 тысяч. Консультант со стажем 2 года (так называемый BA3) получает от 150 до 170.
Здравствуйте, StandAlone, Вы писали: SA>Трудно не согласиться. SA>Вот у этих наверняка не надо сушить мозги над тестовыми заданиями в 2000 строк объемом с неизвестным результатом:
Сарказм? Консультантов на собеседованиях дрючат намного круче, чем программистов.
AF>Ну правильно, не надо было вообще делать это задание. Посыл таких существ на три буквы — самое правильное решение.
Посыл кого-либо на три буквы в ответ на необязывающую просьбу (когда можно просто отказаться) гарантировано позволяет детектить сказочных чудаков на букву М.