Ваша статья отображается на https://m.habr.com/en, но не отображается на https://m.habr.com/ru
Спасибо, что заметили — исправлено!
Были пару задач, вполне приличных, без какого-то особенного алгоритмического заворота. По-моему их больше интересовало как человек подходит к задаче, структурирует код и программу, чем знание сортировки пузырьком. На удивление адекватное интервью, одно из немногих таких.
В гугле, конечно, тебя сразу посылают на leetcode, никто с тобой даже не говорит до этого. При чем неважно на какую должность, хоть баристы.
Самое интересное, что так же делают и многие другие совсем-не-гугл компании и стартапы. Пытаются даже как можно сложнее сделать интервью, чтобы потом сказать «да мы еще круче чем гугл! видели наше интервью? сеньоры из гугла даже до половины не доходят!». Однако на сложности интервью все сходство с гуглом и заканчивается, все остальное в компании на уровне рога-копыта и код написаный на индусских ободранных коленках, дебилы в менеджменте и никто не компетентен. Карго культ во всей своей красе.
В дальнейшем желания иметь с ними дело нет абсолютно никакого.
К чести фейсбука надо сказать что на кодинг интервью на Production Engineer у них не было никакого трэша типа hackerank/leetcode, вопросов из «Cracking the Coding Interview» и прочего булшита.
Это телефонное или онсайт? Из моего опыта наоборот, только гугл давал свежепридуманные задачи, а все остальные компании, в т.ч. фейсбук давали известные задачи с leetcode.
В гугле, конечно, тебя сразу посылают на leetcode, никто с тобой даже не говорит до этого.
Что вы подразумеваете под «посылали»? Устраивали online assessment там?
Это телефонное или онсайт?По видео, вакансия была в Лондоне.
Что вы подразумеваете под «посылали»? Устраивали online assessment тамДа, прислали ссылку на задачу, все разговоры после нее. То же самое и с Амазон, кстати.
Да, прислали ссылку на задачу, все разговоры после нее. То же самое и с Амазон, кстати.
Действительно, у Фейсбука одного из немногих Big Tech компаний нет этапа online assesment. А сколько у вас было лет опыта на момент разговора с Гугл, если не секрет? По моим данным, Big Tech компании, кроме Амазон, дают онлайн тестирование, только если у кандидата мало опыта. А вот Амазон дает его в качестве первого этапа всем без разбора.
"множество собеседований с другими компаниями в Долине, включая Google и Tesla."
Множество образовалось в процессе поиска работы или Вы ходили на них фоном, чтобы просто быть в курсе что и как на рынке труда?
И так, и так. Здесь некоторые регулярно ходят по собеседованиям, даже когда их в текущей компании все устраивает — чтобы оставаться "sharp" и понимать, что сейчас доступно на рынке.
2. Очень важно внимательно посмотреть на компанию в этот самый первый пробный день. Был второй неудачный опыт с этой же фруктовой компанией — интервью было простое, но насторожило слегка (мягко сказано) скотское отношение к нанимаемым сотрудникам. В итоге яблочное пюре было послано с оффером.
(ЗЫ возможно мне «везло». так как у супруги было ровно обратное и она получила и теплое место и дружную команду в этой же компании)
А вот самый интересный опыт пробного старта был в текущей компании: после часа «интервью с белой доской и маркером» был 3х часовой обед с большим количеством махито на ранчо одного из директоров. В итоге — клевый оффер и очень интересные задачи.
Что я могу сказать работало: старайтесь обсуждение вопроса с визой отложить на самую финальную стадию (особенно если ваша ситуация "сложная"), когда вам уже готовы дать оффер. На тот момент, рекрутер (и возможно hiring manager) уже committed сильно и будет делать все возможное, чтобы так или иначе этот вопрос решить.
К нам в Амазон переходил сотрудник с H1B, не получилось. В теории H1B позволяет менять работодателей, а на практике это нудный бюрокатический процесс с негарантированным результатом.
1) Совсем не обязательно фокусироваться на долине. Сиэтл отлично представлен крупными и не только игроками. Жить здесь дешевле, налоги ниже, климат другой и природы на мой взгляд больше. Кому как нравится. Сейчас так вообще все работают удаленно и ожидается что многие фирмы станут более гибкими в этом вопросе, чем раньше. Все понимают, что WFH (work from home) после эпидемии станет более привычным явлением, хотя и раньше с этим проблем обычно не было.
2) Если сидеть на Литкоде то лучше на уровне Hard и не тратить время на остальное. Задачи на backtracking (перебрать все варианты), dynamic programming и доска/сетка с ходами по ней (с препятствиями и без) наиболее часто встречающиеся, должны от зубов отскакивать, что называется. В моем случае успех или неудача определяли скорее встречал ты уже эту/похожую задачу или видишь ее впервые. Если встречал, то код писался легко и все складывалось отлично. А если впервые, то за 45 минут (а это обычное время одного слота) и решить задачу и написать весь код будет непросто — можно успеть решить, но не успеть написать код. Так что большой багаж решенных задач будет самым полезным.
3) Интервью на system design в моем случае оказались намного проще чем я ожидал. Обычного опыта вполне хватило (а я перелопатил тонну материала от AWS и многих других источников), сильно налегать и готовиться оказалось лишним, лучше было решить еще штук 100 хардов на Литкоде.
Если сидеть на Литкоде то лучше на уровне Hard и не тратить время на остальное.
Сколько процентов задач на собеседованиях из вашего опыта были хард? И на каком этапе телефонное/онсайт? Возможно, в Америке уровень задач на собеседованиях отличается, потому что я проходила собеседования в Европе в Google, Amazon, Facebook, Microsoft, Bloomberg и везде кроме онсайта у Google были задачи easy/medium.
И мне кажется, всё-таки сразу начинать с хард не совсем универсальный совет. Хорошо, если у вас получаются задачи медиум, а если нет? Не будет видно прогресса и можно быстро потерять мотивацию. В то время как на телефонное будет скорее всего достаточно уровня медиум. А до онсайта еще будет время перейти к хард.
Да, конечно, начинать с харда и не получится, я сам начинал с easy, потом перешел к medium и уже потом решал только харды. На самом деле, если войти во вкус, решать ниже харда уже не так и интересно, по крайней мере так было у меня. Да и харды тоже много кода никогда не требовали. Просто хитрее. В результате кода не больше 10-20 строк, больше ж на интервью все равно не успеть.
Кстати, я всюду ходил со своим Хромбуком и если меня просили писать код на доске предлагал «А давайте вы сядете рядом и я на лэптопе, так будет удобнее». Некоторые охотно соглашались, и мне потом файлик в коллекцию вопросов.
Полезно еще просматривать чужие решения, на случай если кто придумал что-то классное. Я обычно пролистывал форум на Литкоде и смотрел есть ли что кардинально другое.
Чтение книг и университетские курсы займут, к сожалению, слишком много времени. Хотя если не хватает базы, то да, без нее не обойтись. Тут поможет любой обычный базовый курс или книга по структурам данных и алгоритмам (Кормен я бы сказал будет слишком большим трудом для цели прохождения интервью). Честно, становиться спецом в алгоритмах и хорошо пройти интервью — это две разные вещи. Тут ведь важно помнить — интервью всегда ограничены по времени и задачи не могут быть очень сложными или запутанными, так как кандидаты должны в своей массе их решить и написать *весь код* минут за 30. Соответственно чисто на код порой остается минут 10-15 (а бывает и того меньше). Там просто не может быть никакого заумного алгоритма.
Поэтому я верю, что очень помогает видеть готовые решения. Не подсказки, а именно *готовые решения*, чтобы в голове в результате начала вырисовываться картина типичных подходов. А они таки довольно одинаковые в результате. Ссылка в пред ответе отлично их суммирует! Рекурсия, проходы по деревьям, хождение по доске, dynamic programming, бектрекинг, сдвигающееся окно в массиве, двойные поинтеры и так далее. Шаблоны решений неизменно выстраиваются в голове с количеством разобранных задач, которые рано или поздно повторяются.
Лучше всего, думаю, получается у чуваков увлеченных competitive programming. Не знатоков множества алгоритмов, а людей, которые уже нарешали сотни и тысячи задач. Это совсем не rocket science. Временной лимит жестко ограничивает размер решения, оно по определнию будет четким и коротким.
Еще есть вариант это платные курсы типа outco.io, interviewhelp.io, techseries.dev/interview но это слишком дорого и на мой взгляд того не стоит (у Outco просто конские цены, в варианте без предоплаты они просят 10% *годовой зарплаты*, если я правильно помню). Несколько месяцев Литкода или любой другой похожей платформы где есть готовые решения должно вполне хватить.
Пара ссылок:
- What is the best online data structure and algorithm MOOC, or course in C or C++?
- www.geeksforgeeks.org — хороший сайт, часто читал на нём разборы каких-то алгоритмов
- Мой док по алгоритмам и решениям
И самое главное — этот же рекрутер с радостью свяжется с вами опять через полгода-год. Вы уже попали «в систему».
А если рекрутер не связывается через год, есть смысл напомнить ему о себе? Или это не работает, так же, как с отправкой резюме?
А если рекрутер не связывается через год, есть смысл напомнить ему о себе?
Конечно — у вас же будут его прямые контакты! Даже если он уже не работает в компании, кто-то будет мониторить его ящик все-равно, и вам ответят.
Когда мы вернемся к обычной жизни, можно искать выездные сессии крупных компаний. Фирмы часто летают в другие страны и там интервьюируют кандидатов.
Мдя, у нас в Японии все работает немного иначе...
Как устроиться в LinkedIn, Facebook, Google в Кремниевой Долине