Pull to refresh

Comments 36

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

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

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

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

Что вы подразумеваете под «посылали»? Устраивали online assessment там?
UFO just landed and posted this here
Да, прислали ссылку на задачу, все разговоры после нее. То же самое и с Амазон, кстати.

Действительно, у Фейсбука одного из немногих Big Tech компаний нет этапа online assesment. А сколько у вас было лет опыта на момент разговора с Гугл, если не секрет? По моим данным, Big Tech компании, кроме Амазон, дают онлайн тестирование, только если у кандидата мало опыта. А вот Амазон дает его в качестве первого этапа всем без разбора.
UFO just landed and posted this here

"множество собеседований с другими компаниями в Долине, включая 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 :) Даже в Гугле на самописной платформе (а как же иначе, все только свое) ничего подобного и близко не было.
Кормен, кмк это оверкилл для медиум задач. Возможно, стоит присмотреться к курсу от Седжвика на курсере, там в двух частях рассматривается все необходимое. Ну или как вариант еще пробовать решать задачи по темам подряд.
Спасибо большое за полезную статью!
И самое главное — этот же рекрутер с радостью свяжется с вами опять через полгода-год. Вы уже попали «в систему».

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

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

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

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

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

Sign up to leave a comment.

Articles