private static boolean compareByMask(int ip1, int ip2, int nMask)
{
return (ip1 >>> IP_BYTE_SIZE — nMask) == (ip2 >>> (IP_BYTE_SIZE — nMask));
}
Ошибка: у вас в левой части выражения сначала выполняется сдвиг вправо на 32, затем из результата вычитается nMask. В правой части выражения скобки расставлены верно.
А вообще нехорошо выкладывать в открытый доступ тестовое задание еще до ивента.
Зачем многопоточность? Одновременно на двух собеседованиях присутствовать невозможно, а подготовка универсальная. Просто на вход методу надо передавать список компаний с расписанием их визитов. Для интервью выбирать ближайшее :)
Вообще-то в твоем коде бесконечная рекурсия и Stack overflow :)
Рекурсия тут вообще ни к чему, достаточно итеративного подхода.
void getOffer(string companyName)
{
int studyLevel = 0;
int skillsLevel = 0;
do
{
studyLevel += doStudy();
skillsLevel += improveSkills();
}
while(!passInterview(companyName, studyLevel, skillsLevel))
return true;
}
Значит, действительно, просто интервьюер такой попался, предпочитающий обсуждать system design вместо решения задачек.
У меня на четвертом собеседовании тоже было две задачи. Но первая была уж совсем простой, на 5 минут.
Я имел ввиду, в пределах одного собеседования. Если быстро решил базовую задачу, начинаются усложнения и так пока не закончится время. А если медленно решал задачу, то на ней все и заканчивается.
У остальных в основном вроде как раз алгоритмы и структуры данных. Может просто никто больше не добрался до этого уровня сложности, и после алгоритмов начинаются распределенные высоконагруженные системы? :)
Для тех, кто лучше воспринимает видео, рекомендую лекции Яндекса: shad.yandex.ru/.../algorithms.xml
В первом письме рекрутера было указано, что в Amazon открыто около 80 вакансий, на которые будут отбирать на эвенте. Можно примерно посчитать, поделив между Москвой и Киевом. Ну и поделить еще как минимум пополам, они же не только здесь набирают людей. На собеседование одновременно со мной пришло около 12 человек. Тоже можно попытаться примерно оценить количество кандидатов, участвовавших в эвенте.
Если судить по тем, кто ходил на собеседование в Amazon, таких все же меньшинство :)
На собеседованиях навскидку большинство имеет возраст 30+
Этот эвент рассчитан на студентов, это отдельная программа рекрутинга. Для людей, которые закончили университет давно, не подходит.
Да, на RSDN любое обсуждение собеседований сводится к срачу о том, какие плохие рекрутеры, что не ценят опыт
По H1B можно начинать работать с 1 октября, въезд в страну на 10 дней раньше. Если нужно срочно, то до этого времени могут на время привезти в Канаду.
Прием заявок начинается 1 апреля, если не ошибаюсь. При этом есть ограничение на количество виз, выдаваемых в год. Что-то около 85 тысяч, если не ошибаюсь. Визы могут выдаваться в течение года до тех пор, пока вся квота не выбрана. В 2012 визы закончились уже к июню, поэтому никто и не приезжал по второму разу. В предыдущие годы еще оставались визы, поэтому MS и приезжал еще раз в августе 2011. Судя по всему, в этом году тоже быстро разберут визы.
Кстати, тем, кто успешно прошел собеседование в декабре 2012, оформляют визы уже за этот год, то есть они смогут въехать в США только к октябрю 2013. Поэтому не вижу смысла для MS приезжать раньше декабря 2013, чтобы потом ждать больше года начала действия новых виз.
Они уже приезжали в Москву в декабре 2012. Вряд ли они так быстро по второму кругу приедут. Тем более что срок подачи виз H1B заканчивается. Точнее вот-вот начнется прием заявок, и квота на этот год очень быстро закончится. Это в годы кризиса они приезжали по нескольку раз, так как мало было заявок.
Потому Амазон и Майкрософт и спешат объехать все страны до 1 апреля, чтобы успеть подать заявки на визы.
Если у человека в принципе проблемы с опытом и знаниями, тут конечно уже не поможет, даже если он заранее будет знать все вопросы, которые ему зададут на собеседовании.
С приведенными примерами согласен. Но бывают еще достаточно простые в реализации алгоритмы, но нетривиальные с точки зрения их придумывания в процессе собеседования. Тут уж либо знаешь, либо нет. И для их знания необязательно иметь многолетний опыт использования. А один такой промах может стоить оффера, даже если с опытом и фундаментальными знаниями все хорошо. Так что лотерея еще та.
Ок, приведу пример. Покрыть все области за короткий срок нереально. Поэтому можно подготовиться по ограниченному набору тем. За 2 дня до собеседования выясняются примеры реальных задач. Выясняется что большинство тем хорошо изучено, но всплывает одна задача из той области, которая еще не покрыта, или изучена недостаточно глубоко. Двух дней более чем достаточно, чтобы детально разобраться в парочке подобных тем. Собеседование это отчасти лотерея.
Я уже выше раскрыл свое мнение, некорректно выразился. Просто я за выполнение правил и равные условия для всех, независимо от того, дают они реальные преимущества или нет. Мне это не кажется смешным, уж извините.
Согласен. Просто есть правила, зачем их нарушать. Повторюсь, ничего сверхъестественного в самих задачах я не увидел, не хуже и не лучше вопросов с CareerCup. Действительно, важна не сама задача, а процесс ее решения и учет дополнительных условий. Плюс достаточно много времени уделялось обсуждению опыта работы, примеров реальных проектов и решения проблем и т.п. Так что в зубрежке задач никакого смысла нет, это не письменный экзамен.
Моя неправда, у операции сдвига приоритет ниже, чем у вычитания. Хотя я бы все-таки скобки поставил для читаемости.