Здравствуйте, Shmj, Вы писали:
AS>>>А самое первое, зачем ты это делаешь. Т.е. целесообразность, как по мне, должна быть на самом приоритетном месте. Pzz>>Зачем — понятно. Ему такое на собеседовании дали. Затем, чтобы понравиться собеседующим и получить работу мечты.
S>Сценариев может быть масса. Задание самое обычное. От конкретного сценария решение не зависит.
У нас, в Касперском, никому никаких тестовых заданиев не дают. Уважают время кандидата и не считают себя вправе награждать незнакомого человека куском бесплатной и бесполезной работы.
Между прочим, отобранный коллектив очень хороший и сильный.
Re[11]: Как бы вы делали эту задачу (переходим к конкретике)...
S>Если напишешь самое быстрое — тебе поднимут зарплату в 2 раза и назначат на крутой проект.
... вы продолжаете все дальше натягивать сову на глобус. В реальном мире никто так не делает.
А уж про крутой проект ваще смешно. Вспоминается ваше (не дословно) "тут на форуме никому не светит делать крутые вещи. Мы тут все всякими простыми проектами занимаемся. А вот элита уже пишет что-то прорывное".
Скажу так: если человек решает задачи типа обсуждаемой здесь — он уже 99% на крутом проекте. А поднимать зп "самому быстрому" программисту в 2 раза — нонсенс. Мы ж не в первом классе, чтобы звездочку нарисовали тому, кто первый пример решит.
Патриот здравого смысла
Re[11]: Как бы вы делали эту задачу (переходим к конкретике)...
Здравствуйте, Shmj, Вы писали:
S>Тебе требования по памяти сказали — до 2-2.5 Гиг.
Отлично, фиксируем: ОЗУ не менее 2 ГБ. Хотя бы так, но я бы обязательно прописал частоту и тайминги.
S>Процессор считай что самый обычнынй десктопный.
Что такое "самый обычный процессор"?
S>Скажу что от процессора тут мало что зависит — основные тормоза — это диск. Сравнивать решения будут на одном и том же компе.
На каком компе? Диск какой? HDD 5400 или SSD? А SSD какой?
S>Если напишешь самое быстрое — тебе поднимут зарплату в 2 раза и назначат на крутой проект.
Какой крутой проект, какая зарплата? Ты рассуждаешь как рядовой кодер, первое звено в пищевой цепочке. Речь идет о том, заплатит ли заказчик вообще, и заплатит ли ту сумму которая оговорена в договоре. А заказчик платит только тогда, когда удовлетворены все требования ТЗ и это не возможно оспорить.
Счастье — это Glück!
Re[12]: Как бы вы делали эту задачу (переходим к конкретике)...
Здравствуйте, Dym On, Вы писали:
DO>Что такое "самый обычный процессор"? DO>На каком компе? Диск какой? HDD 5400 или SSD? А SSD какой?
Перед московской олимпиадой продавцам запретили говорить "нет" покупателям.
В универмаге женщина просит перчатки.
— Вам какие? Кожаные? Шерстяные? Замшевые?
— Шерстяные, пожалуйста.
— Светлые? Темные?
— Темные.
— Длинные? Короткие?
— Короткие, если можно.
— Знаете что, принесите нам показать ваше пальто, и мы сами для вас подберем к нему перчатки.
— Не верьте им! — встревает другой покупатель.
— Я им свой унитаз приволок, зад показал, а туалетной бумаги все равно не получил!
Re[7]: Как бы вы делали эту задачу (переходим к конкретике)...
Здравствуйте, Shmj, Вы писали:
S>Есть такая фишка — значение по умолчанию. Благодаря этому не нужно уточнять миллионы нюансов.
Есть такая фишка, которая выясняется в процессе сдачи работы. Она заключается в том, что значения по умолчанию у сдающего и принимающего могут кардинально различаться
S>Похоже что такие как вы — просто будут тратить время на демагогию на совещаниях и планерках, чтобы не делать реальную работу.
Здравствуйте, Shmj, Вы писали:
S>Ну ок, чтобы далеко не ходить, давайте популярную задачу, которую уже дважды на днях поднимали:
S>1. https://rsdn.org/forum/dotnet/8335182.flat
S>Требования собраны, всем все понятно. Только абсурдировать не нужно, понятно что демагогическими приемами все можно свести к абсурду, любая фраза не формальна и не полна. По сути всем все понятно.
Если такое задание возникнет при разработке программного продукта, то хорошо бы понимать, что за данные в файле, откуда он взялся и что с ним дальше делать надо. Единственное, что приходит в голову — лог, в который пишется из нескольких потоков и потому, некоторые отметки времени могут быть перепутаны. Тогда нужно искать участки, с нарушением порядка и сортировать только их. И сравнивать не всю строку, а только время.
S>Идея такая, что для такой задачи не оптимально писать все с нуля а правильнее найти готовое решение.
И возникает вопрос, как часто нужно сортировать такие файлы и насколько критично время сортировки. Скорее всего окажется, что не нужно изобретать велосипед, а нужно взять готовое решение — утилиту sort (в windows тоже есть).
Re[9]: Как бы вы делали эту задачу (переходим к конкретике)...
Здравствуйте, Shmj, Вы писали:
S>Не составлял. Но всегда, когда мне их давали — по итогу завершения проекта ничего не оставалось от оригинальных требований — все понимали, что это была дурная работа. Я всегда предлагаю как сделать лучше и в 90% случаев все согласны, что так действительно лучше — а на этапе составления требований и подумать об этом не могли, т.к. работали со сферическим конем в вакууме и не погружались настолько глубоко в предметную область, как это делает исполнитель.
Значит сбором требований занимался плохой аналитик. А хороший аналитик — специалист редкий и дорогой.
Но если бы требований не было бы вообще, на основе чего ты бы предлагал, как сделать лучше?
S>И основное время уходит не на это — это я делаю за между прочим бесплатно.
На сколько человеко-часов проект, сколько разработчиков в нём участвовало и как потом сопровождалось ПО?
Re[8]: Как бы вы делали эту задачу (переходим к конкретике)...
Здравствуйте, Pzz, Вы писали:
Pzz>У нас, в Касперском, никому никаких тестовых заданиев не дают. Уважают время кандидата и не считают себя вправе награждать незнакомого человека куском бесплатной и бесполезной работы. Pzz>Между прочим, отобранный коллектив очень хороший и сильный.
Тестовые задания бывают и оплачиваемы. За сколько денег бы вы взялись?
Re[12]: Как бы вы делали эту задачу (переходим к конкретике)...
Здравствуйте, Dym On, Вы писали:
S>>Тебе требования по памяти сказали — до 2-2.5 Гиг. DO>Отлично, фиксируем: ОЗУ не менее 2 ГБ. Хотя бы так, но я бы обязательно прописал частоту и тайминги.
А как твой алгоритм будет от этого зависеть?
S>>Процессор считай что самый обычнынй десктопный. DO>Что такое "самый обычный процессор"?
Примерно 4 ядра. Как это повлияет на алгоритм?
S>>Скажу что от процессора тут мало что зависит — основные тормоза — это диск. Сравнивать решения будут на одном и том же компе. DO>На каком компе? Диск какой? HDD 5400 или SSD? А SSD какой?
Какая разница какой SSD? Будет запускаться на разных дисках.
S>>Если напишешь самое быстрое — тебе поднимут зарплату в 2 раза и назначат на крутой проект. DO>Какой крутой проект, какая зарплата? Ты рассуждаешь как рядовой кодер, первое звено в пищевой цепочке. Речь идет о том, заплатит ли заказчик вообще, и заплатит ли ту сумму которая оговорена в договоре. А заказчик платит только тогда, когда удовлетворены все требования ТЗ и это не возможно оспорить.
Т.е. вы сразу готовы бодаться с заказчиком и в судах отстаивать что было выполнено все по Т.З.?
А если заказчик сам не до конца понимает как сделать лучше? И хочет чтобы вы были его другом, подсказали оптимальный вариант.
Re[8]: Как бы вы делали эту задачу (переходим к конкретике)...
Здравствуйте, Marty, Вы писали:
S>>Есть такая фишка — значение по умолчанию. Благодаря этому не нужно уточнять миллионы нюансов. M>Есть такая фишка, которая выясняется в процессе сдачи работы. Она заключается в том, что значения по умолчанию у сдающего и принимающего могут кардинально различаться
На пример что в обсуждаемой задаче?
Re[2]: Как бы вы делали эту задачу (переходим к конкретике)...
Здравствуйте, AleksandrN, Вы писали:
AN>Если такое задание возникнет при разработке программного продукта, то хорошо бы понимать, что за данные в файле, откуда он взялся и что с ним дальше делать надо. Единственное, что приходит в голову — лог, в который пишется из нескольких потоков и потому, некоторые отметки времени могут быть перепутаны. Тогда нужно искать участки, с нарушением порядка и сортировать только их. И сравнивать не всю строку, а только время.
Почему же единственное? А мне первое что пришло в голову — криптовалютные адреса и суммы поступлений на адрес. Сортируешь и быстро узнаешь баланс на любом запрашиваемом адресе. По размеру как раз будет несколько сотен гигабайт.
Можно держать старые данные в таком вот файле и находить быстро бинарным поиском. А оперативные данные за день-два — держать в ОЗУ в виде хеш-таблицы. Раз в день схлопывать.
S>>Идея такая, что для такой задачи не оптимально писать все с нуля а правильнее найти готовое решение.
AN>И возникает вопрос, как часто нужно сортировать такие файлы и насколько критично время сортировки. Скорее всего окажется, что не нужно изобретать велосипед, а нужно взять готовое решение — утилиту sort (в windows тоже есть).
Уже писали вам — время критично. Сколько по времени отработает эта утилита на 100 Гб данных?
Re[10]: Как бы вы делали эту задачу (переходим к конкретике)...
Здравствуйте, AleksandrN, Вы писали:
AN>Значит сбором требований занимался плохой аналитик. А хороший аналитик — специалист редкий и дорогой. AN>Но если бы требований не было бы вообще, на основе чего ты бы предлагал, как сделать лучше?
Да вопрос не в том нужны те требования или нет. Вопрос в том — какой процент от трудовых затрат их собрать.
Re[9]: Как бы вы делали эту задачу (переходим к конкретике)...
Здравствуйте, Pzz, Вы писали:
Pzz>Здравствуйте, Shmj, Вы писали:
AS>>>>А самое первое, зачем ты это делаешь. Т.е. целесообразность, как по мне, должна быть на самом приоритетном месте. Pzz>>>Зачем — понятно. Ему такое на собеседовании дали. Затем, чтобы понравиться собеседующим и получить работу мечты.
S>>Сценариев может быть масса. Задание самое обычное. От конкретного сценария решение не зависит.
Pzz>У нас, в Касперском, никому никаких тестовых заданиев не дают. Уважают время кандидата и не считают себя вправе награждать незнакомого человека куском бесплатной и бесполезной работы.
Pzz>Между прочим, отобранный коллектив очень хороший и сильный.
Сотрудники Kaspersky сообщили о предложении уволиться на просьбы о переезде из России
Сотрудники «Лаборатории Касперского» рассказали, что IT-компания предложила уволиться тем, кто хотел уехать в другие страны после начала «спецоперации». Компания заявила Forbes, что в вопросах релокации сотрудников «в первую очередь руководствуется бизнес-необходимостью»
По словам одного из них, сотрудники задали вопрос о релокации на общем собрании, состоявшемся через несколько дней после начала «спецоперации», и в ответ гендиректор компании Евгений Касперский сказал: «Если капитан остается на корабле, то команда должна оставаться на корабле независимо от погоды». Еще один бывший сотрудник «Касперского» подтвердил, что глава компании ответил так.
В «Лаборатории Касперского» работают 4000 сотрудников, офисы компании расположены в том числе в Дубае, Стамбуле, Лондоне, следует из информации на сайте компании.
Чувствуется гебешная закалка.
Re[9]: Как бы вы делали эту задачу (переходим к конкретике)...
Здравствуйте, Shmj, Вы писали:
S>>>Есть такая фишка — значение по умолчанию. Благодаря этому не нужно уточнять миллионы нюансов. M>>Есть такая фишка, которая выясняется в процессе сдачи работы. Она заключается в том, что значения по умолчанию у сдающего и принимающего могут кардинально различаться
S>На пример что в обсуждаемой задаче?
Здравствуйте, Marty, Вы писали:
M>Например, "скорость" работы "среднего" ПК
Так решения от разных разработчиков будут сравниваться на одном и том же ПК. Так что разницы особой не будет. Все равно там будет несколько ядер а не одно, если речь о возможности параллелить. Или хотите захардкодить количество ядер?
Re[11]: Как бы вы делали эту задачу (переходим к конкретике)...
Здравствуйте, Shmj, Вы писали:
M>>Например, "скорость" работы "среднего" ПК
S>Так решения от разных разработчиков будут сравниваться на одном и том же ПК. Так что разницы особой не будет. Все равно там будет несколько ядер а не одно, если речь о возможности параллелить. Или хотите захардкодить количество ядер?
Уже обнаружились и какие-то различные разработчики
ну нафлеймили. очевидно же что это задание на знание map-reduce парадигмы и про параллельность. совершенно типичная задача на позиции Data Engineering. правда обычно все же устно просят рассказать и бывает ждут что расскажут про многоблочное чтение (readFileScattered из winapi).
Re[11]: Как бы вы делали эту задачу (переходим к конкретике)...
S>Так решения от разных разработчиков будут сравниваться на одном и том же ПК. Так что разницы особой не будет. Все равно там будет несколько ядер а не одно, если речь о возможности параллелить. Или хотите захардкодить количество ядер?
Вот видите, уже вырисовывается другая задача: не просто реализовать, не реализовать "за приемлемое время", а выиграть конкурс по скорости.
Я опять-таки попробую снять сову с глобуса и вернуться к реальным задачам.
МГУ каждый год уже лет 20 проводит сравнение лучших в мире видео-кодеков (http://www.compression.ru/video/codec_comparison/index_en.html). Так вот, помимо постоянной круглогодичной оптимизации, за пару месяцев до отправки своего кодека команда начинает специально готовиться к этому: прогонять тесты, тюнить настройки, все перепроверять. А порой и за полгода начинает работает над ускорением. Не один человек, не два вечера. А, условно, пол-команды. Для того, чтобы быть быстрее по скорости-качеству.
Понимаете? Потому что задача такая перед продуктом на это время стоит: подготовить бинарники и конфиги к ним с наиболее оптимизированными настройками. А в другое время могут стоять другие задачи. А в других продуктах может стоять задача — лишь бы работало, неважно какая скорость.
Вот это все и лежит в плоскости сбора и определения требований.
Патриот здравого смысла
Re[3]: Как бы вы делали эту задачу (переходим к конкретике)...
S>Почему же единственное? А мне первое что пришло в голову — криптовалютные адреса и суммы поступлений на адрес. Сортируешь и быстро узнаешь баланс на любом запрашиваемом адресе. По размеру как раз будет несколько сотен гигабайт.
Вооооот... А если подойти с умом и сначала все узнать, то можно для оптимизации не держать все в строках вида '<number>. <string>', а придумать сразу, как более оптимально это хранить. Важен контекст. Важно не просто "отсортировать это", а выяснить, что за данные, откуда берутся, сколько их будет, как часто их надо сортировать. Это все и есть поиск. И может случиться так, что эффективнее будет в экселе это раз в квартал руками делать, чем отдавать вам на 2 месяца писать супер-пупер быстрый алгоритм в вакууме, чтобы потешить свое программерское самолюбие.
S>Уже писали вам — время критично. Сколько по времени отработает эта утилита на 100 Гб данных?
Да проверьте уже сами. Который день пишете о том, что надо проверить. Уже бы давно проверили, раз вас эта тема так не отпускает.