Google Recruiter

User avatar
АццкоМото
Уже с Приветом
Posts: 15276
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Google Recruiter

Post by АццкоМото »

Alexandr wrote:в том то и дело, что предсказуемо, иначе не было бы cache-aware (ну и модного cache oblivious) алгоритмов, которые какбэ работают
Для того, чтобы эти алгоритмы не только работали, но и имели смысл, нужно выполнить миллион других условий. А без них банальный цикл по массиву может быть прерван в любой момент и на неопределенное время, практически гарантированно на порядки большее, чем возможно-может-быть-кода-нибудь мы наэкономим последовательным доступом
Alexandr wrote:насчет интервью: уровень вопросов сильно зависит от позиции и от предлагаемых денег, уверяю, там где есть за что побороться, там и интервью очень бодренько проходит и народ соответствующий
не надо только путать интервью, которые я проводил и которые я проходил. также как не надо путать интервью, где соревнуются павлины, с нормальными интервью
от вас, кстати, пока хороших вопросов не слышно
Мат на форуме запрещен, блдж!
User avatar
АццкоМото
Уже с Приветом
Posts: 15276
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Google Recruiter

Post by АццкоМото »

Sergunka wrote:
Alexandr wrote: от предлагаемых денег
И сколько нынче предлагают?
Да, присоединяюсь к вопросу. Огласите весь список прейскурант, пожалуйста
Мат на форуме запрещен, блдж!
scorpion
Уже с Приветом
Posts: 3435
Joined: 16 Dec 2003 06:23
Location: SF Bay Area

Re: Google Recruiter

Post by scorpion »

valchkou wrote:мне в самом деле интересно, что это за работа такая,
в какой области необходимо умение вычислять корни вручную ?
Позиция - Software Engineer, область - Data mining, Machine learning & algorithms. Копать корнеплоды вручную абсолютно не требуется, но нацарапать двоичный поиск для решения такой задачи во время беседы могут и попросить, если, конечно, кандидат не станет раньше времени размахивать логарифмической линейкой и отсылать интервьюера к праотцам Лейбнице, Лагранжу, Коши и прочим Ньютонам :-) На мой взгляд вполне нормальный вопрос, если он в руках адекватного человека у которого цель не завалить, а расшевелить кандидата.
User avatar
АццкоМото
Уже с Приветом
Posts: 15276
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Google Recruiter

Post by АццкоМото »

scorpion wrote:но нацарапать двоичный поиск для решения такой задачи во время беседы могут и попросить
дык если двоичный поиск, то и не грех
а вот что-то более изысканное уже трудно не погуглив
Мат на форуме запрещен, блдж!
scorpion
Уже с Приветом
Posts: 3435
Joined: 16 Dec 2003 06:23
Location: SF Bay Area

Re: Google Recruiter

Post by scorpion »

АццкоМото wrote:дык если двоичный поиск, то и не грех
а вот что-то более изысканное уже трудно не погуглив
АццкоМото, ну мы же говорим об адекватном интервьюере, а не о Wудаке.
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Google Recruiter

Post by Alexandr »

Sergunka wrote:
Alexandr wrote: от предлагаемых денег
И сколько нынче предлагают?
АццкоМото wrote:Да, присоединяюсь к вопросу. Огласите весь список прейскурант, пожалуйста
я уже выкладывал в теме "пройти собеседование" (или как-то так) то, что я считаю хорошими позициями, полистайте, где-то на последних страницах оно, непонятно правда зачем оно вам
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Google Recruiter

Post by Alexandr »

АццкоМото wrote:Для того, чтобы эти алгоритмы не только работали, но и имели смысл, нужно выполнить миллион других условий. А без них банальный цикл по массиву может быть прерван в любой момент и на неопределенное время, практически гарантированно на порядки большее, чем возможно-может-быть-кода-нибудь мы наэкономим последовательным доступом
не занудствуйте, нет там никакого миллиона условий
во-вторых, даже если прервут, и?
в те моменты, когда не прервут будет быстрее, для Swingовой морды отображающей табличку из базы все равно, для серверной (да еще и под нагрузкой) - не все равно. Насчет "возможно-может-быть-кода-нибудь мы наэкономим последовательным доступом" - L1D reference - 3 такта, Main memory refence - в районе 100
в-третьих: не нужно тумана по поводу "в любой момент и на неопределенное время",
есть достаточно ограничеснный набор того, что может прервать и приблизительно насколько и эти несколько пунктов покроют 90% времени работы машины (наскидку - прерывание, закончился квант, появился поток с более высоким приоритетом (сам или бустнули), вызвался collect)
АццкоМото wrote: не надо только путать интервью, которые я проводил и которые я проходил. также как не надо путать интервью, где соревнуются павлины, с нормальными интервью
от вас, кстати, пока хороших вопросов не слышно
а какие вопросы я задавал? я пока только присоеденяюсь к обсуждению того, что у других спрашивали

дык, расскажите, что такое нормальное интервью и нормальные вопросы? обсудим
только эта... на интервью задача не только хорошего отличить от плохого, а еще очень хорошего отличить от просто хорошего, ну... чтоб градация была так сказать
User avatar
АццкоМото
Уже с Приветом
Posts: 15276
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Google Recruiter

Post by АццкоМото »

Alexandr wrote:я уже выкладывал в теме "пройти собеседование" (или как-то так) то, что я считаю хорошими позициями, полистайте, где-то на последних страницах оно, непонятно правда зачем оно вам
это вот те откровения про 150 тыр? бгугога. даже и не знаю, как же мне дорости до такого небесного уровня :lol:
Мат на форуме запрещен, блдж!
User avatar
АццкоМото
Уже с Приветом
Posts: 15276
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Google Recruiter

Post by АццкоМото »

Alexandr wrote: в те моменты, когда не прервут будет быстрее, для Swingовой морды отображающей табличку из базы все равно, для серверной (да еще и под нагрузкой) - не все равно. Насчет "возможно-может-быть-кода-нибудь мы наэкономим последовательным доступом" - L1D reference - 3 такта, Main memory refence - в районе 100
Абсолютно все равно это и для сервера. Чтобы наш цикл с экономией в 7 микросекунд наэкономил аж 7 секунд процессорного времени, он должен выполниться миллион раз. В предположении о выполнении на сервере мы можем предположить, что это миллион запросов. Ну ОК, сократим в 10 раз. Пусть на один запрос цикл выполняется 10 раз. Итак, 100 тыс запросов. Ну и сколько раз будет работать GC? Ваш пойнт был изначально "ой, это просто цикл, мы память там не выделяем, GC работать не будет". Теперь появляется "сервер под загрузкой". Я все еще должен верить, что GC не сожрет на порядки больше времени?
Alexandr wrote:в-третьих: не нужно тумана по поводу "в любой момент и на неопределенное время",
есть достаточно ограничеснный набор того, что может прервать и приблизительно насколько и эти несколько пунктов покроют 90% времени работы машины (наскидку - прерывание, закончился квант, появился поток с более высоким приоритетом (сам или бустнули), вызвался collect)
Какой нафиг туман? Все перечисленное прерывает процесс на неопределенное время. Точка.
А если занудствовать, то прервать может - сюрпрайз - только прерывание. Hence, the name. И какое время это прерывание займет, никто гарантировать не может
Alexandr wrote:дык, расскажите, что такое нормальное интервью и нормальные вопросы? обсудим
только эта... на интервью задача не только хорошего отличить от плохого, а еще очень хорошего отличить от просто хорошего, ну... чтоб градация была так сказать
Вроде бы это не я начал гнуть пальцы в стиле "ой, вот на нормальные позиции и интервью бодрые, но это там, где платят аж 150 тыр и тебя не возьмут"
Мат на форуме запрещен, блдж!
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Google Recruiter

Post by Alexandr »

АццкоМото wrote:Абсолютно все равно это и для сервера. Чтобы наш цикл с экономией в 7 микросекунд наэкономил аж 7 секунд процессорного времени, он должен выполниться миллион раз. В предположении о выполнении на сервере мы можем предположить, что это миллион запросов. Ну ОК, сократим в 10 раз. Пусть на один запрос цикл выполняется 10 раз. Итак, 100 тыс запросов. Ну и сколько раз будет работать GC? Ваш пойнт был изначально "ой, это просто цикл, мы память там не выделяем, GC работать не будет". Теперь появляется "сервер под загрузкой". Я все еще должен верить, что GC не сожрет на порядки больше времени?
в моем гейте, который соединяет торговый сервер с ФОРТСом, правда написанном на C# (поток данных на ФОРТС сильно меньше, чем на ММВБ + это клиентский торговый сервер (без роботов)) на полной загрузке GC вызывается 1 раз в примерно 2.5-3 минуты (структуры позволяющие все добро держать на стеке рулят + все что можно преаллоцировано), и это сборка 0 поколения, сборка 2 поколения - где-то раз в 10-15 минут

даже если бы он вызывался чаще, скажем 10 раз в секунду (что дофига великого), т.е. временное расстояние между двумя вызовами GC равно 0.1 секунды, на процессоре Core i-7 3ГГц в идеальном состоянии - это 3*10^(9-1 /*количество тактов в секунде разделили на 10*/) * 4 (в идеальных условиях 4 команды за цикл) т.е. 1.2^9 операций можно совершить за время между сборками мусора
- для процессора - это вечность

путем ухищрений можно добиться примерно 80-85% пропуской способности памяти
при произвольном доступе - дай бог 20% (причем это в лучшем случае), т.е. в 4 раза

предположим, что сборка длится 1 миллисекунду
вот цитата для C#
Microsoft’s performance tests show that it takes less than 1 millisecond to perform a
garbage collection of generation 0. Microsoft’s goal is to have garbage collections take no more
time than an ordinary page fault.
т.е. 10 раз по миллисекунде = 10 миллисекунд и 990 миллисекунд нормальной работы
возьмем для gc 100 миллисекунд (нужно же время на переключение контекста (700-1000 тактов) и т.д. и т.п.)

получается что 9/10 полезной работы при которой производительность будет в 4 раза больше (тут еще нужно учесть тот факт, что на машине обычно 4 камня, а gc собирается 1им (остальные потоки просто тормозятся), так что кеш остальных потоков не "попортится")

так что далеко не все равно для сервера

и последнее: все равно сколько занимают "вынужденные остановки" - полезной работы от этого не уменьшается и есть разница сделать ее за X или за 4X, даже иногда прерываясь на GC
АццкоМото wrote:Какой нафиг туман? Все перечисленное прерывает процесс на неопределенное время. Точка.
А если занудствовать, то прервать может - сюрпрайз - только прерывание. Hence, the name. И какое время это прерывание займет, никто гарантировать не может
ну да, вы правы, я вам написал во что эти прерывания могут выливаться, отношение работы сервера над "нашей" задачей к общему времени все равно будет стремиться к примерно чуть меньше 100%, приоритеты потокам дать побольше и прибить каждый поток к определенному камню, чтобы не сьежал на другие - вот и все "чудеса"

вы были бы правы в своих расчетах, если бы "что-то другое" прерывало наш поток очень и очень очень очень очень часто и при этом гадило в кеш, но этого не будет по причинам обсуждаемым 10ю страницу :mrgreen:
АццкоМото wrote:Вроде бы это не я начал гнуть пальцы в стиле "ой, вот на нормальные позиции и интервью бодрые, но это там, где платят аж 150 тыр и тебя не возьмут"
я про вас вообще ничего не говорил, потому как я вас просто не знаю, хоть и могу составить какой-никакой портрет по вашим постам (кстати сказать неплохой, несмотря на грызню не первый раз, но эт фигня)
наше бурное обсуждение началось с того, что вы посчитали, что вопросы, который задали очередному парню сходившиму на собеседование дурацкими,
а я лишь сказал, что нет не дурацкие, а нормальные вопросы, ну и выразил банальную мысль, что чем больше денег, тем больше и глубже спрашивают (кандидатов то надо отсеивать, да и для задач оно надо)
если поговорить за жизнь, то из 100 кандидатов подойдут 90, а взять нужно максимум 3
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Google Recruiter

Post by crypto5 »

Помоему достаточно недальновидно проецировать реалии .нет-а на джаву. К тому же люди которые писали ваш гейт наверное приложили определенные усилия что бы минимизировать вызов ГЦ.

Ну и имхо все эти вопросы к тактам процессоров и т.д. уместны на очень узком множестве вакансий если говорить о джавистах. Для 99% позиций эти знания иррелевантны так что их нужно рассматривать в привязке к вакансиям.
In vino Veritas!
User avatar
АццкоМото
Уже с Приветом
Posts: 15276
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Google Recruiter

Post by АццкоМото »

Alexandr wrote: получается что 9/10 полезной работы при которой производительность будет в 4 раза больше (тут еще нужно учесть тот факт, что на машине обычно 4 камня, а gc собирается 1им (остальные потоки просто тормозятся), так что кеш остальных потоков не "попортится")
Все, я сдаюсь. Если джава спокойно подменяется дотнетом, экономия в военное время достигает четырехкратной, а gc=неизбежное зло, то я уже ничего не смогу объяснить.
Вы прыгаете с одного на другое, забываете о чем шла речь и в качестве бронебойных аргументов приводите какие-то никому неизвестные примеры "своего гейта", о сложности и нагрузке которого ни у кого нет ни малейшего понятия. Вы опереруете совершенно прелестными аргументами типа "прибить каждый поток к своему камню", совершенно игнорируя, что не всегда это возможно, а потоков могут быть тысячи
Не, я так больше не могу. Удачи вам в четырехкратном экономии пропускной способности памяти. В песочницах гыгы

ЗЫ. Отдельной строкой доставило на машине обычно 4 камня
Не, я бы понял еще с трудом "у машины обычно 4 колеса". Но это - в мемориз
Мат на форуме запрещен, блдж!
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Google Recruiter

Post by Alexandr »

дык, и вам удачи с серверным приложением, у которого тысячи потоков :D
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Google Recruiter

Post by Alexandr »

crypto5 wrote:Помоему достаточно недальновидно проецировать реалии .нет-а на джаву. К тому же люди которые писали ваш гейт наверное приложили определенные усилия что бы минимизировать вызов ГЦ.

Ну и имхо все эти вопросы к тактам процессоров и т.д. уместны на очень узком множестве вакансий если говорить о джавистах. Для 99% позиций эти знания иррелевантны так что их нужно рассматривать в привязке к вакансиям.
не люди, а я :) этот гейт собственоручно написан полностью мной, собственно поэтому так уверенно и говорю
да вы безусловно правы, и на жабе результат будет хуже и с бОльшим гемороем (структур то нет), но как грубая оценка вполне сойдет
Ну и имхо все эти вопросы к тактам процессоров и т.д. уместны на очень узком множестве вакансий если говорить о джавистах. Для 99% позиций эти знания иррелевантны так что их нужно рассматривать в привязке к вакансиям..
так я согласен с этим, скажем так, имхо, джавистам (большинству) полезно знать о наличие кешей и в целом как они работают в общих чертах
ну и процентам 5% джавистов все же полезно знать чуть побольше о выполняемой среде, опять же, имхо
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Google Recruiter

Post by crypto5 »

Alexandr wrote:дык, и вам удачи с серверным приложением, у которого тысячи потоков :D
В некоторых случаях без тысячи потоков тяжело обойтись(например нужно делать много запросов к сторонним БД с latency 10ms, а их драйвера не поддерживают интерфейс на неблокирующих сокетах).
In vino Veritas!

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