Задачка, чтобы показать, что язык/технология не важны

adda_
Уже с Приветом
Posts: 10708
Joined: 22 Jul 2006 20:19

Re: Задачка, чтобы показать, что язык/технология не важны

Post by adda_ »

Pantigalt wrote:
zhuravl wrote:Подумайте и скажите что вы сделаете для того, чтобы программа работала максимально быстро. Какие алгоритмы будете использовать, какие структуры данных и вспомогательные средства (если потребуется).
1. Мы не можем разместить все числа в оперативной памяти (памяти ограничено). Из этого следует что размещать надо на диске.
Примечание: Если памяти было бы много то наверное самым быстрым способом было бы размещать все в памяти и делать что то типа хэш-таблицы.
2. Размер записей в несжатом виде 2 Гб. Следовательно записей не больше 200 миллионов. Так как у нас всего 1 Гб то на хранение одного номер не может тратится больше 5 байтов. С другой стороны номера состоят из 10 цифр (10 миллиардов), это чуть больше 4 миллиарда (число из 4 байтов). Следовательно мы можем разместить все числа на диске.
3. Так как диск медленный по сравнению с оперативной памятью нам нужно к нему как можно меньше обращаться. Это приводит нас к стандартному решению типа B-tree. Далее очевидно поиск по B-дереву.

А вообще надо размещать на сервере где нет таких жесткий ограничений :D
Я думаю что количество неправильных номеров паспортов много меньше чем количество населения в стране. Т.е. 2ГБ получилось потому что в текстовом файле записано в фиксированном формате с кучей дырок. Следовательно первый шаг - оптимизировать файл приведя его во что то более компактное и заодно отсортированное. После чего возможно все будет убираться в оперативную память. А дальше - тупой бинарный поиск. Если файл пополняемый откуда то - то запускать сервис скажем раз в день который будет все перестраивать.
viewbelle
Уже с Приветом
Posts: 557
Joined: 11 Aug 2015 00:57

Re: Задачка, чтобы показать, что язык/технология не важны

Post by viewbelle »

adda_ wrote:Я думаю что количество неправильных номеров паспортов много меньше чем количество населения в стране. Т.е. 2ГБ получилось потому что в текстовом файле записано в фиксированном формате с кучей дырок. Следовательно первый шаг - оптимизировать файл приведя его во что то более компактное и заодно отсортированное. После чего возможно все будет убираться в оперативную память. А дальше - тупой бинарный поиск. Если файл пополняемый откуда то - то запускать сервис скажем раз в день который будет все перестраивать.
Список пропусков с энтропийным кодированием должен быть неплох для этой цели.
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Задачка, чтобы показать, что язык/технология не важны

Post by Сабина »

Krys-Krys wrote:Хорошая задачка для начала разговора и чтобы посмотреть как кандидат мыслит. Но далеко не определяющая. Есть очень много теоретиков, кто прекрасно решает проблемы в теории, но вот на компе и строчки кода написать не сможет, т к в глаза не видел сей код. :pain1:
Я сейчас интервьюирую чуть ли не каждый день и если честно на фоне моря несделанной работы и каких то troubleshootings постоянных эти интервью как обуза и просто не знаешь уже что спрашивать. Вот и получается что самое простое -заготовить задачку на алгоритм и сиди слушай. А иначе тебе придётся много говорить :)
https://www.youtube.com/watch?v=wOwblaKmyVw
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15475
Joined: 27 Sep 2007 22:53

Re: Задачка, чтобы показать, что язык/технология не важны

Post by Мальчик-Одуванчик »

Сабина wrote:
Krys-Krys wrote:Хорошая задачка для начала разговора и чтобы посмотреть как кандидат мыслит. Но далеко не определяющая. Есть очень много теоретиков, кто прекрасно решает проблемы в теории, но вот на компе и строчки кода написать не сможет, т к в глаза не видел сей код. :pain1:
Я сейчас интервьюирую чуть ли не каждый день и если честно на фоне моря несделанной работы и каких то troubleshootings постоянных эти интервью как обуза и просто не знаешь уже что спрашивать. Вот и получается что самое простое -заготовить задачку на алгоритм и сиди слушай. А иначе тебе придётся много говорить :)
Ваша восторженная лояльность работодателю - это нечто.
Pantigalt
Уже с Приветом
Posts: 802
Joined: 24 Jan 2007 07:32
Location: Сергели->Новосибирск->SFBA->Новосибирск->Москва->NY->SFBA

Re: Задачка, чтобы показать, что язык/технология не важны

Post by Pantigalt »

Сабина wrote:
Krys-Krys wrote:Хорошая задачка для начала разговора и чтобы посмотреть как кандидат мыслит. Но далеко не определяющая. Есть очень много теоретиков, кто прекрасно решает проблемы в теории, но вот на компе и строчки кода написать не сможет, т к в глаза не видел сей код. :pain1:
Я сейчас интервьюирую чуть ли не каждый день и если честно на фоне моря несделанной работы и каких то troubleshootings постоянных эти интервью как обуза и просто не знаешь уже что спрашивать. Вот и получается что самое простое -заготовить задачку на алгоритм и сиди слушай. А иначе тебе придётся много говорить :)
Некоторые поступают следующим образом в целях экономии времени.
Не-технический персонал отводит тебя в комнату и предлагает кандидату выполнить задание на лаптопе на 1.5 часа (без интернета).
Потом технический человек (индус) удаленно (сидя у клиента) через shared screen смотрит решение и задает вопросы.
Вопросы типа напишите dependency property.
Спи быстрее, твоя подушка нужна другому. Copyright Зощенко
Pantigalt
Уже с Приветом
Posts: 802
Joined: 24 Jan 2007 07:32
Location: Сергели->Новосибирск->SFBA->Новосибирск->Москва->NY->SFBA

Re: Задачка, чтобы показать, что язык/технология не важны

Post by Pantigalt »

dup
Last edited by Pantigalt on 27 Oct 2015 02:34, edited 1 time in total.
Спи быстрее, твоя подушка нужна другому. Copyright Зощенко
mskmel
Уже с Приветом
Posts: 946
Joined: 24 Sep 2013 05:58
Location: US\GA

Re: Задачка, чтобы показать, что язык/технология не важны

Post by mskmel »

Pantigalt wrote:Некоторые поступают следующим образом в целях экономии времени.
Готовишь 5-7 вопросов не из учебника, требующих уточнений от соискателя для правильного ответа. Если поплыл - следующий. 80% отсеяно за 5 минут интервью.

Если первый это пройден - спрашиваешь с пристрастием по строчкам из резюме. Что делал, как делал, какие уроки получил.

Внутри ощущение брать\не брать формируется за первые 5 минут, потом сидят или из вежливости или убеждая себя взять человека "ну наконец ТОТ САМЫЙ, и не надо будет сидеть опять на этих долбанных интервью"...

ЗЫЖ мой совковый взгляд, в Прогрессивном Западном Обществе проводил интервью не сильно много :oops:
blanko27
Уже с Приветом
Posts: 2261
Joined: 17 Jun 2003 04:41
Location: Just like US

Re: Задачка, чтобы показать, что язык/технология не важны

Post by blanko27 »

mskmel wrote:Готовишь 5-7 вопросов не из учебника, требующих уточнений от соискателя для правильного ответа. Если поплыл - следующий. 80% отсеяно за 5 минут интервью.
5 минут это очень долго... по книжке "Blink: The Power of Thinking Without Thinking", можно, как ниндзя, за несколько секунд всех кандидатов поотсеивать.
Еще есть хорошая книжка - "Agile Hiring", ни много ни мало, про то, как "to hire good software developers in general and is inspired by agile concepts". Жалко, кандидаты быстро заканчиваются, и начальсто скулит, чтоб хоть кого-нибудь наняли...
Или придумайте 14 принципов, подлиннее, и заставьте кандидатов их зазубривать перед интервью, а потом проверяйте: у хороших девелоперов должна быть хорошая память, и внимание к деталям. Если принципы противоречивые, то это еще лучше, т.к. если из информации не возможно построить логическую систему, то ее сложнее запомнить. :-)
...а мы такой компанией, возьмем, да и припремся к Элис!
User avatar
valchkou
Уже с Приветом
Posts: 4185
Joined: 27 Apr 2011 03:43
Location: Сергели ->Chicago

Re: Задачка, чтобы показать, что язык/технология не важны

Post by valchkou »

blanko27 wrote:Или придумайте 14 принципов, подлиннее, и заставьте кандидатов их зазубривать перед интервью
И если выучил, то сразу заворачивать домой, потому что идиоты нам не нужны.
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Задачка, чтобы показать, что язык/технология не важны

Post by Сабина »

Pantigalt wrote:
Сабина wrote:
Krys-Krys wrote:Хорошая задачка для начала разговора и чтобы посмотреть как кандидат мыслит. Но далеко не определяющая. Есть очень много теоретиков, кто прекрасно решает проблемы в теории, но вот на компе и строчки кода написать не сможет, т к в глаза не видел сей код. :pain1:
Я сейчас интервьюирую чуть ли не каждый день и если честно на фоне моря несделанной работы и каких то troubleshootings постоянных эти интервью как обуза и просто не знаешь уже что спрашивать. Вот и получается что самое простое -заготовить задачку на алгоритм и сиди слушай. А иначе тебе придётся много говорить :)
Некоторые поступают следующим образом в целях экономии времени.
Не-технический персонал отводит тебя в комнату и предлагает кандидату выполнить задание на лаптопе на 1.5 часа (без интернета).
Потом технический человек (индус) удаленно (сидя у клиента) через shared screen смотрит решение и задает вопросы.
Вопросы типа напишите dependency property.
Напоминает Гестапо :mrgreen:
https://www.youtube.com/watch?v=wOwblaKmyVw

Return to “Работа и Карьера в IT”