Сейчас расскажу вам о том, как меня позвали в Facebook, об интервью и общем процессе
Забегая наперёд: нет, я не прошёл и я не знаю причину, потому что моя ленивая задница не потрудилась позвонить и спросить (может пройдёт ещё полгодика, меня осенит и я им напишу). Но созвон с фидбеком предусмотрен, если что, выпрашивать ничего не придётся
Мне кажется, я сильно часто забегаю наперёд...
Всё началось с того, что меня нашли на LinkedIn и их HR написала мне имейл и предложила пройти интервью. Я согласился и первым этапом был созвон по телефону – скрининг
Мы пообщались по поводу моего опыта работы, достижений, спрашивали, готов ли я переехать в Лондон, если всё будет чётко. В общем ничего особенного, но нужно "продать" себя на этом этапе
Далее мне дали 3 недели на подготовку, скинули несколько видео и pdf с описанием следующего этапа - coding interview. Через 3 недели мы созвонились с парнем из ФБ (тоже iOSник)
Вот документ, который мне прислали перед интервью: dropbox.com/s/izldq285rdbf…
А вот немного оффтопик, но тоже интересно. Документ, который присылают Android разработчикам при подаче в Lyft: dropbox.com/s/ypzp6phfrwg0…
Возвращаемся в FB. Всё интервью длится около часа. На алгоритмическую часть дают 35-40 минут. До неё вы знакомитесь, после – задаёте свои вопросы
Интервью проходит на сайте coderpad.io. Там вам даётся текстовый редактор, подсветка кода, но компиляция отключена. Задание написано прямо в редакторе в качестве комментария
У задачи есть примеры + вы можете уточнять, если не поняли чего. Это не проблема
Мой задача на интервью была следующей: даны два бинарных числа в виде строк. Вернуть сумму этих чисел в виде строки
Я сначала порассуждал, что можно привести эти числа к Int, сложить и перевести обратно в бинарное число в строку. Он задал наводящие вопросы и я пришёл к выводу, что число может выходить за рамки Int. Так мы закрыли эту тему и я сделал алгоритм, который мануально складывал числа
После того, как я закончил, мы прошлись по коду, я провёл тест кода вслух: говорил, какие строки передаю в функцию, что с ними происходит и убеждаюсь, что ответ вышел верным.
Пока проверял, я нашёл баг. Не уверен, хорошо ли это. С одной стороны ты ошибся, с другой – молодец, потому что без компиляции смог найти ошибку... Пофиксил и пошли дальше
По-хорошему меня должны были спросить о сложности алгоритма. Но меня не спросили
Вообще я начал писать код после вопроса: "Не против, если я напишу так, как у меня в голове, а потом будем оптимизировать?". Он сказал, что не против.
Рассказчик: "Они не оптимизировали..."
Мне кажется, что именно тут и была моя проблема. Я, как кандидат в ФБ должен был придумать оптимальный вариант сразу. Но я не очень хорош в алгоритмах и архитектурах на скорость. Я всё пойму и могу прийти к отличному решению, но мне нужно времени по-больше, чем настоящим технарям
Такой вот у меня склад ума. У меня в семье не без урода. Мама с папой – музыканты, 2 поколения до них – художники. Не знаю, чего мне вдруг IT пригляделось. Потом я ещё сделал ход конём и подсадил на него младшего брата :D
@savvasenok, прости
В общем после моего кодинга он предложил мне задать ему вопросы и потом мы попрощались. Увы, рассказать, как оно – проходить третье интервью – я не смогу, но накидаю немного материалов
Вот тут можете глянуть видео, которое Facebook присылает кандидатам для подготовки: vimeo.com/158532188
Пароль: FB_IPS
Тут речь идёт о том, как подходить к алгоритмической части интервью
А вот ещё одно видео, которое присылают кандидатам:
vimeo.com/357608978
Пароль: fbprep
Тут речь идёт о том, как проходит само интервью
Одна из самых крутых штук, которые я узнал о них - это то, что ты, придя в компанию, имеешь около месяца онбоардинга, где ты узнаёшь о компании, как там всё работает итд, а потом сам решаешь, в какую команду хочешь пойти: будь то Инстаграм, Вотсап, Мессенджер итд
Безусловно, каждое приложение ещё делится на множество подкоманд, к примеру: магазином внутри Инстаграма занимается одна команда, лентой - другая итд.
Рома Мирзоян