Здравствуйте, vpchelko, Вы писали:
V>Да просто такой интервьюер бы меня сразу завалил, хотя у меня опыт работы С++ на больших проектах 6 лет.
Любой нормальный,в моем понимании, C++ разработчик ответит на такие вопросы не задумываясь. Ты вообще что эти 6 лет писал?
V>С такими запросами им нужен свежий студент, который вызубрил какую-то методичку по С++.
V>>Да просто такой интервьюер бы меня сразу завалил, хотя у меня опыт работы С++ на больших проектах 6 лет.
KP>Любой нормальный,в моем понимании, C++ разработчик ответит на такие вопросы не задумываясь. Ты вообще что эти 6 лет писал?
/me достал ручку и блокнот и приготовился записывать
А не соблаговолит ли уважаемый дон, не задумываясь, просветить неуча о способах вычисления int32 хеша от двух int32? А то у неуча на каждое значение хеша все где-то 2^32 коллизий получается, и на хрена такой красивый хеш может понадобиться, он не понимает, и оттого прям не знает ап какую стену убиццо от горя.
V>>С такими запросами им нужен свежий студент, который вызубрил какую-то методичку по С++.
KP>глупости. См. ответ выше.
Здравствуйте, SkyDance, Вы писали:
SD>Я вступлюсь за контору — к счастью, наличие одного вредного интервьювера не всегда ставит крест на всей конторе.
Очень даже может поставить, если вредному интервьюверу позволят вредничать слишком долго, чтобы накопить критическую массу специалистов по обращению списков.
L>Очень даже может поставить, если вредному интервьюверу позволят вредничать слишком долго, чтобы накопить критическую массу специалистов по обращению списков.
Я так понимаю, вредный интервьюер работает только как отрицательный фильтр (т.е. он не принимает решение "берем", но может принять решение "не берем"). Соответственно, если "обращателей списков" вполне себе найдутся и хорошие программисты. Я, к примеру, список без проблем обращу. Хотя вот на вопросе про "монитор" срезался бы точно
Монитор — это то, куда я сейчас смотрю
Здравствуйте, SkyDance, Вы писали:
SD>где надо столько всего сурового знать _заранее_ — и без возможности подучиться на ходу, въезжая в проект.
практически в любом проекте, от 200 метров кода, особенно если задания разработчикам попадают случайно: сегодня ты пилил DAL, завтра — WEB-сервис, послезавтра гуй.
такое разделение заданий — порочная практика, но периодически встречается
Всё сказанное выше — личное мнение, если не указано обратное.
Пиши. Получить какой-то более-менее надежный в вопросе коллизий хэш длинной в 32 бита нельзя. С учетом того что данных у нас всего 64 бита, то проще всего их будет поксорить и забыть. Еслиу нас данных все же больше, но нам все равно (по каким-то не указанным причинам) хочется уложиться в 32 бита для хэша, то лучше всего взять одну из стандартных реализаций CRC32 (которая не хеш ни разу, но сойдет, раз уж ограничение хеша в 32 бита), коих вагон и маленькая тележка (на память и не знаю ни одной из них). Итого: полагаю что в данном вопросе вопрошающий просто хотел узнать, имеет ли кандидат хоть какое-то представление о хешах. Зачем ему это надо я не знаю, вопрос реально глупый. Но, если спрашивают, почему бы не ответить?
Здравствуйте, B0FEE664, Вы писали:
BFE>Здравствуйте, Паблик Морозов, Вы писали:
ПМ>> зависимость времени обработки от количества данных надо хотя бы приблизительно уметь оценивать. BFE>Не верю. BFE>Где, когда и зачем это знание было применено на практике?
при выборе между List и LinkedList
Всё сказанное выше — личное мнение, если не указано обратное.
Здравствуйте, Eye of Hell, Вы писали:
ПМ>>Видимо эта область не имеет отношения к программированию, т.к. как можно писать программы не зная базовых вещей, вроде вычислительной сложности, мне не совсем понятно. Это безотносительно языка ...
EOH>вместо хэша используется список — то контейнер в торжественной обстановке заменяется.
а ничего, что с хэшем работают совсем не так, как со списком? разверните мне хэш, пожалуйста. заодно объясните в чем все-таки разница. список это элементы А, Б, С. хэш это словарь. А => a, B =>, C => c. бред, короче.
EOH> Большинство попыток преждевременой оптимизации, какие я видел — с хитрыми структурами данных,
это не преждевременная оптимизация. это -- проектирование. следующая стадия -- прототипирование. или давайте строить здание так -- очень просто. сколько будет у нас этажей -- хз и потому фундамент проектировать мы не можем. да он и не нужен. по мере возведения новых этажей, старые будут планомерно погружаться в землю. и у нас автоматически образуется парковка и гараж, о которой мы забыли.
EOH> Потому что на практике оно тормозит не там (c). Так исторически сложилось.
исторически сложилось так, что нормальные инженеры сначала проектируют, а потом прототипируют. "тормозит не там" -- это ошибка в расчетах. а без расчетов можно заточить что-то очень сильно типовое и хорошо известное.
EOH>Так что все эти игры с О(йух), ИМХО, от лукавого. Профайлер ответит на этот и многие другие вопросы.
хороший вы человек. не потерявший веры в чудо. вы знаете сколько стоят комплесы по имитации максимально реалистичного потока данных? поинтересуйтесь.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, Паблик Морозов, Вы писали:
A>>Большинство программистов отличат O(N) и O(1000N), хотя разница и невелика.
ПМ>Для того, чтобы отличить O(N) от O(1000N) надо (одно из):
Здравствуйте, SkyDance, Вы писали:
SD>Я так понимаю, вредный интервьюер работает только как отрицательный фильтр (т.е. он не принимает решение "берем", но может принять решение "не берем"). Соответственно, если "обращателей списков" вполне себе найдутся и хорошие программисты. Я, к примеру, список без проблем обращу. Хотя вот на вопросе про "монитор" срезался бы точно SD>Монитор — это то, куда я сейчас смотрю
А как же умное слово паттерн, вот всегда меня оно раздражало. Особенно примеры паттернов, что я видел...
В С++ такие вещи назывались своими именами, а тут в JAVA и С# их обзывают паттернами.
Здравствуйте, Паблик Морозов, Вы писали: ПМ>Здравствуйте, alzt, Вы писали: A>>Большинство программистов отличат O(N) и O(1000N), хотя разница и невелика. ПМ>Для того, чтобы отличить O(N) от O(1000N) надо (одно из): ПМ>1. Писать алоритм самому, но мы недавно выяснили, что все алгоритмы уже написаны и надо просто вызвать библиотечную функцию (про которую, кстати, не написано O(N) она или O(1000N)). ПМ>2. Знать, как внутри устроены стандартные алгоритмы и структуры данных, мы (вроде) тоже выяснили, что на самом деле программисту это не нужно. ПМ>3. Запустить программу и посмотреть. Но, во-первых, для этого не надо быть программистом, я могу уборщицу попростить с секундомером постоять. Во-вторых есть некоторая вероятность спутать O(1000N) с O(N^2) и получить интересные результаты через полгода работы, когда в программе накопится достаточно данных.
ты какой-то феерический идиот. еще и думающий, что все вокруг дураки
Здравствуйте, kaa.python, Вы писали:
KP>Пиши. Получить какой-то более-менее надежный в вопросе коллизий хэш длинной в 32 бита нельзя. С учетом того что данных у нас всего 64 бита, то проще всего их будет поксорить и забыть. Еслиу нас данных все же больше, но нам все равно (по каким-то не указанным причинам) хочется уложиться в 32 бита для хэша, то лучше всего взять одну из стандартных реализаций CRC32 (которая не хеш ни разу, но сойдет, раз уж ограничение хеша в 32 бита), коих вагон и маленькая тележка (на память и не знаю ни одной из них). Итого: полагаю что в данном вопросе вопрошающий просто хотел узнать, имеет ли кандидат хоть какое-то представление о хешах. Зачем ему это надо я не знаю, вопрос реально глупый. Но, если спрашивают, почему бы не ответить?
Спасибо, кэп. Но мой главный вопрос, а именно, кому нафиг сдался 32-битный хеш с 2^32 коллизиями, остался без ответа. А также совершенно непонятно, зачем тут что-то там считать, когда можно просто одно из двух изначальных чисел и использовать в качестве хеша.
Задающему дурацкие вопросы не стоит удивляться, если его самого в ответ совершенно справедливо назовут дураком.
L>Но мой главный вопрос, а именно, кому нафиг сдался 32-битный хеш с 2^32 коллизиями, остался без ответа.
одно из использований хэшей -- это раскидать объекты детерминистически по bucket'ам
И тут не имеет никакого значения сколько коллизий, хоть 2^100500, важно чтобы на том распределении объектов которое есть у тебя, этот хэш раскидывал их по бакетам более менее равномерно
Здравствуйте, SkyDance, Вы писали:
L>>Очень даже может поставить, если вредному интервьюверу позволят вредничать слишком долго, чтобы накопить критическую массу специалистов по обращению списков.
SD>Я так понимаю, вредный интервьюер работает только как отрицательный фильтр (т.е. он не принимает решение "берем", но может принять решение "не берем"). Соответственно, если "обращателей списков" вполне себе найдутся и хорошие программисты. Я, к примеру, список без проблем обращу. Хотя вот на вопросе про "монитор" срезался бы точно SD>Монитор — это то, куда я сейчас смотрю
Среди обращателей списков или знатоков значения слова "монитор" (кстати, монитор — это семейство ящериц) с бОльшей вероятностью найдутся специалисты по значению слова "монитор" или опытные обращатели списков или просто профессиональные ходоки по собеседованиям, нежели хорошие программисты.
> Спасибо, кэп.
Всегда рад помочь > Но мой главный вопрос, а именно, кому нафиг сдался 32-битный хеш с 2^32 коллизиями, остался без ответа.
Ну значит кому-то нужен. Никогда не знаешь кому и что может понадобиться. Это же не причина не предложить решение, пусть и глупого вопроса? > А также совершенно непонятно, зачем тут что-то там считать, когда можно просто одно из двух изначальных чисел и использовать в качестве хеша.
Так это же вполне себе ответ. Хотя я все-же склоняюсь к идее хоть какую-то операцию над этими числами провести, т.к. про их распределение ничего не известно. > Задающему дурацкие вопросы не стоит удивляться, если его самого в ответ совершенно справедливо назовут дураком.
Так его все так и называют. Но ведь в работе и не такое встречается