Как стать автором
Обновить

Комментарии 36

Спасибо, что заметили — исправлено!

НЛО прилетело и опубликовало эту надпись здесь
Мое интервью в Гугле было самым неприятным из всех. Сначала согласование даты растянулось чуть ли не на месяц, а в конце парень который этим занимался и отвечал на письма неделями ушел (или его ушли). Потом интервью отменили и перенесли меньше чем за сутки из-за непогоды (пошел снег, а в Сиэтле это может быть неприятно, safety!). В день интервью инженеры чудо-фирмы были банально неготовы, первый из них не мог найти комнату на этаже и мы бегали кругами минут 10, он же не знал, что время каждого слота сократили до 45 минут и к нам вдруг вовсю начал стучаться следующий. Другой инженер (не знаю какой) задал не тот вопрос и в результате пришлось решать еще одну задачку, а потом проводить из дома видео сессию по leadership principles (ой, мы забыли). Так что план интервью который мне предоставил рекрутер сильно расходился с действительностью.

В дальнейшем желания иметь с ними дело нет абсолютно никакого.
К чести фейсбука надо сказать что на кодинг интервью на Production Engineer у них не было никакого трэша типа hackerank/leetcode, вопросов из «Cracking the Coding Interview» и прочего булшита.

Это телефонное или онсайт? Из моего опыта наоборот, только гугл давал свежепридуманные задачи, а все остальные компании, в т.ч. фейсбук давали известные задачи с leetcode.
В гугле, конечно, тебя сразу посылают на leetcode, никто с тобой даже не говорит до этого.

Что вы подразумеваете под «посылали»? Устраивали online assessment там?
НЛО прилетело и опубликовало эту надпись здесь
Да, прислали ссылку на задачу, все разговоры после нее. То же самое и с Амазон, кстати.

Действительно, у Фейсбука одного из немногих Big Tech компаний нет этапа online assesment. А сколько у вас было лет опыта на момент разговора с Гугл, если не секрет? По моим данным, Big Tech компании, кроме Амазон, дают онлайн тестирование, только если у кандидата мало опыта. А вот Амазон дает его в качестве первого этапа всем без разбора.
НЛО прилетело и опубликовало эту надпись здесь

"множество собеседований с другими компаниями в Долине, включая Google и Tesla."
Множество образовалось в процессе поиска работы или Вы ходили на них фоном, чтобы просто быть в курсе что и как на рынке труда?

И так, и так. Здесь некоторые регулярно ходят по собеседованиям, даже когда их в текущей компании все устраивает — чтобы оставаться "sharp" и понимать, что сейчас доступно на рынке.

1. Скорее всего вы получите 100 звонков от бодишоперов которые будут рассказывать, что вам выпала честь! попробовать поработать за 30 баксов в час в самом гугле! при этом интервью будет назначенно в кампусе гугла. Был забавный опыт в первый месяц после переезда когда попался на бодишопскую удочку и было интервью с «чудом в тапках на босу ногу» в одном из капусов Эппла :-). А вот 101 будет звонок от самой компании
2. Очень важно внимательно посмотреть на компанию в этот самый первый пробный день. Был второй неудачный опыт с этой же фруктовой компанией — интервью было простое, но насторожило слегка (мягко сказано) скотское отношение к нанимаемым сотрудникам. В итоге яблочное пюре было послано с оффером.
(ЗЫ возможно мне «везло». так как у супруги было ровно обратное и она получила и теплое место и дружную команду в этой же компании)
А вот самый интересный опыт пробного старта был в текущей компании: после часа «интервью с белой доской и маркером» был 3х часовой обед с большим количеством махито на ранчо одного из директоров. В итоге — клевый оффер и очень интересные задачи.
Не понимаю почему во всех статьях подобного рода так игнорируется визовый вопрос. Компании на это обращают внимание и довольно серьезно, может конечно DevOps инженеры не такие ценные, как Software Engineers, но у меня на визе L-1, которая привязана очень жестко к работодателю без возможности переноса на другого, одна за другой компании FAANG говорят «а давайте вы получите грин карту сначала». Не хотят они заморачиваться с визами, когда сотрудник нужен условно «завтра». В Apple меня сразу прокинули на менеджера, который нанимает себе команду и он визуально сильно разочаровался, что не может меня нанять прямо сейчас из за заморочек с визой. В Facebook обещали прислать опросник для «иммиграционного отдела», по законодательству заявки на H1B можно подавать только раз в год и если вы проходите интервью сейчас, можно рассчитывать на найм только в следующем ноябре (апрель подача заявок, ноябрь фактический найм). Ни в одной статье на хабре это не упоминается. Вечно все в стиле «если очень захотеть», ну вот я тут уже в штатах второй год, очень хочу, а что толку, мимо визы никак не проскочишь.

Что я могу сказать работало: старайтесь обсуждение вопроса с визой отложить на самую финальную стадию (особенно если ваша ситуация "сложная"), когда вам уже готовы дать оффер. На тот момент, рекрутер (и возможно hiring manager) уже committed сильно и будет делать все возможное, чтобы так или иначе этот вопрос решить.

Так они тоже не дураки, вопрос о визе и спонсорстве обычно задается на ранних этапах. Не узнать это сразу будет большим косяком рекрутера.

К нам в Амазон переходил сотрудник с H1B, не получилось. В теории H1B позволяет менять работодателей, а на практике это нудный бюрокатический процесс с негарантированным результатом.
Вчера ответили из facebook, что не готовы спонсировать мне визу. Сегодня читаю вот это. Похоже эра переездов в кремниевую долину закончилась.
Добавлю чуток из своего опыта (после интервью в Amazon, HBO, Facebook, Apple, Google, Uber).

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.

И мне кажется, всё-таки сразу начинать с хард не совсем универсальный совет. Хорошо, если у вас получаются задачи медиум, а если нет? Не будет видно прогресса и можно быстро потерять мотивацию. В то время как на телефонное будет скорее всего достаточно уровня медиум. А до онсайта еще будет время перейти к хард.
На он-сайт хард были не все, конечно. Но по моим ощущениям добрая половина в Эппле, Убере и Фейсбуке. Телефонные интервью обычно легче, согласен. В Гугле, кстати, задачки были менее типичные, т.е все пришлось решать с чистого листа, хотя готовился я несколько месяцев. В Убере, Эппле и Фейсбуке были уже более типичные. Самая халява в плане задач это, конечно, Амазон. Там обычно спрашивают совсем легкие задачи, если готовиться и сложность скорее с LP (leadership principles). Судят строго, сам принимал интервью.

Да, конечно, начинать с харда и не получится, я сам начинал с easy, потом перешел к medium и уже потом решал только харды. На самом деле, если войти во вкус, решать ниже харда уже не так и интересно, по крайней мере так было у меня. Да и харды тоже много кода никогда не требовали. Просто хитрее. В результате кода не больше 10-20 строк, больше ж на интервью все равно не успеть.
А на leetcode новую hard задачу Вы сейчас примерно за какое время решаете? Пользуетесь ли интернетом во время решения?
Дома на скорость я не решал. Когда готовился осенью, то одну или две за вечер разбирал, чаще всего одну, так как залипал со скоростью чтобы попасть в топ решений. Литкод требует больше чем на интервью, на самом деле — 1) отработка всех крайних вариантов до полной корректности и 2) скорости. На интервью же этого нет, особенно если код пишется на доске. В Гугле мне давали Хромбук, но только как редактор, код не запускался (самое смешное что интервьюеры тоже доступа к коду не имели и вынуждены были его списывать с экрана).

Кстати, я всюду ходил со своим Хромбуком и если меня просили писать код на доске предлагал «А давайте вы сядете рядом и я на лэптопе, так будет удобнее». Некоторые охотно соглашались, и мне потом файлик в коллекцию вопросов.
Не посоветуете что нибудь именно по самому процессу решения? Сам сижу на hackerrank на easy. И простые решаются практически на автомате, а как пытаюсь medium — сразу «слишком сложно» и мыслей никаких.
Подсматривать ответы, конечно. На Литкоде либо есть ответ, либо форум, где решений полно. Я тоже часто бился часами в полном затыке, пока не лез в решения. Потом перестал мучаться и если задача не шла ни в какую (давал себе час или два) — смотрел решение или гуглил. Важно ж много решений насобирать, совсем не критично ко всем придти самостоятельно. Время дороже. А если на интервью попадется что то зубодробительное, ну значит не судьба. Для этого я шел на интервью с чуть ли не десятком компаний.

Полезно еще просматривать чужие решения, на случай если кто придумал что-то классное. Я обычно пролистывал форум на Литкоде и смотрел есть ли что кардинально другое.
Да, из книг (если есть время) как я понимаю хороша «Elements of Programming Interviews in Java: The Insiders' Guide», хотя сам я с ней еще на работал, оставил на след заход. Широко известная и рекомендуемая «Cracking the Coding Interview» мне не очень помогла. И другие люди тоже не очень советовали с ней связываться, слишком банальная.
А сколько времени вы тратите на попытку решения medium? На leetcode бывают еще подсказки. На самом собеседовании интервьер обычно пытается направить/подсказать, поэтому возможно имеет смысл тренироваться с кем-то, кто знает решение. Есть даже специальные платформы вроде Pramp. А может просто вы сейчас в процессе накопления подходов к решению medium задач и через какое-то время все начнет получаться. Возможно будет полезным этот разбор наиболее встречаемых паттернов в задачах.
Я на хакерранке сижу, там подсказок нет. Может быть и правда стоит тратить побольше времени даже на неудачную попытку решения medium. Но вообще мне кажется, у меня просто с теорией не очень и для начала надо прочитать что-то типа Кормена, медленно и вдумчиво.
Ни подсказок, ни решений? Если так, то это сильно уступает литкоду, где мало того, что часто есть решения (и даже несколько) плюс форум на каждую задачу, так еще и бенчмарк на производительность. Где медленное «в лоб» решение просто выкинут через полсекунды с ошибкой «Time Exceeded».

Чтение книг и университетские курсы займут, к сожалению, слишком много времени. Хотя если не хватает базы, то да, без нее не обойтись. Тут поможет любой обычный базовый курс или книга по структурам данных и алгоритмам (Кормен я бы сказал будет слишком большим трудом для цели прохождения интервью). Честно, становиться спецом в алгоритмах и хорошо пройти интервью — это две разные вещи. Тут ведь важно помнить — интервью всегда ограничены по времени и задачи не могут быть очень сложными или запутанными, так как кандидаты должны в своей массе их решить и написать *весь код* минут за 30. Соответственно чисто на код порой остается минут 10-15 (а бывает и того меньше). Там просто не может быть никакого заумного алгоритма.

Поэтому я верю, что очень помогает видеть готовые решения. Не подсказки, а именно *готовые решения*, чтобы в голове в результате начала вырисовываться картина типичных подходов. А они таки довольно одинаковые в результате. Ссылка в пред ответе отлично их суммирует! Рекурсия, проходы по деревьям, хождение по доске, dynamic programming, бектрекинг, сдвигающееся окно в массиве, двойные поинтеры и так далее. Шаблоны решений неизменно выстраиваются в голове с количеством разобранных задач, которые рано или поздно повторяются.

Лучше всего, думаю, получается у чуваков увлеченных competitive programming. Не знатоков множества алгоритмов, а людей, которые уже нарешали сотни и тысячи задач. Это совсем не rocket science. Временной лимит жестко ограничивает размер решения, оно по определнию будет четким и коротким.

Еще есть вариант это платные курсы типа outco.io, interviewhelp.io, techseries.dev/interview но это слишком дорого и на мой взгляд того не стоит (у Outco просто конские цены, в варианте без предоплаты они просят 10% *годовой зарплаты*, если я правильно помню). Несколько месяцев Литкода или любой другой похожей платформы где есть готовые решения должно вполне хватить.

Пара ссылок:



Согласна, что литкод лучше для подготовки, сама в какой-то момент на него перешла c хакерранка. Там обычно лучше тестовое покрытие и гораздо больше решений от коммьюнити. Плюс все эти решения оцениваются и комментируются, если есть ошибка, на нее скорее всего укажут. Ещё мне нравится на литкоде читать свежие задачи с собеседований и реальный опыт прохождения в дискуссиях.
Я не помню на какой платформе, может это тоже был хакеранк, но во время телефонного и очного интервью мы не просто набивали код и останавливались, а сразу запускали его с разными вводными данными. Это было дико удобно и прогрессивно, хотя и несколько волнительно кликать в Run :) Даже в Гугле на самописной платформе (а как же иначе, все только свое) ничего подобного и близко не было.
Да, проверил, это был hackerrank.
Кормен, кмк это оверкилл для медиум задач. Возможно, стоит присмотреться к курсу от Седжвика на курсере, там в двух частях рассматривается все необходимое. Ну или как вариант еще пробовать решать задачи по темам подряд.
Спасибо большое за полезную статью!
И самое главное — этот же рекрутер с радостью свяжется с вами опять через полгода-год. Вы уже попали «в систему».

А если рекрутер не связывается через год, есть смысл напомнить ему о себе? Или это не работает, так же, как с отправкой резюме?
Очень даже стоит напомнить о себе, конечно. Это вообще никогда лишним не бывает. Личный контакт с рекрутером на LinkedIn или в почте — уже большой плюс.
А если рекрутер не связывается через год, есть смысл напомнить ему о себе?

Конечно — у вас же будут его прямые контакты! Даже если он уже не работает в компании, кто-то будет мониторить его ящик все-равно, и вам ответят.

Какой порядок действий более правильный: сначала устроиться в компанию, а потом переезжать или же наоборот? Некоторые компании не особо хотят брать людей, которые проживают слишком далеко от предполагаемого места работы.
Сначала надо будет устроиться. В Штаты без работы и визы просто так не приехать (а приехать туристом и искать работу незаконно), в Германию можно приехать с визой для поиска работы: bit.ly/3dsSOHe

Когда мы вернемся к обычной жизни, можно искать выездные сессии крупных компаний. Фирмы часто летают в другие страны и там интервьюируют кандидатов.

Мдя, у нас в Японии все работает немного иначе...

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории