Это будет последняя неделя собеседований в FAANG, по крайне мере пока. На этой неделе мне предстоит 4 собеседования, 2 от Google, 2 от Facebook.
Google
2 собеседования, как я понял это Troubleshooting и Scripting. Это специальные собеседования для позиции TSE. На Troubleshooting будут давать какую то проблему, мол “Пользователь не может увидеть страницу A” и мне надо будет показать как я буду дебажить и исправлять причины ошибки. На Scripting будут смотреть как я пишу письма, это нужно на случай коммуникации с клиентом. Тоже будут даваться разные ситуации и я буду обязан составить толковое письмо клиенту. Тут главное это вежливость, хороший английский, правильный тайминг (когда отвечать), умение разжёвывать причину и решение ошибки, прикладывать полезные ссылки и картинки и т.д. Поскольку нет каких то правил и курсов на эту тему я просто почитал статьи в интернете на тему как правильно общаться с клиентом. Отдельной практики я тоже не делал, так как это все то чем я занимаюсь на нынешней работе. Насчет Troubleshooting немного почитал про TCP/IP, UDP, HTTP и про API, REST, gRPC и т.д чтобы освежить знания.
Facebook
Тут по интереснее будет. 2 собеседования, Кодинг и System Design. Для кодинга начал снова решать задачи на Leetcode по тэгу Facebook. Для System Design провел мок собеседование со знакомым. Планирую еще почитать и разобрать несколько кейсов с курса Grokking System Design Interview.
Какие ощущения?
Я измотан умственно. Тяжело одновременно совмещать подготовку к собеседованию, работу и семью с ребенком. Приходиться какие вещи ставить на паузу и выделять время для решения задач. Стараюсь пару часов в день выделять и решать примерно 2-3 задачи уровня Hard/Medium на Leetcode.
По уровню сложности самый тяжелый будет Facebook SDI, потом Facebook Coding, потом Google Troubleshooting, потом Google Scripting. Надеюсь попадется тема которую я уже делал.
На удивление оказывается что большая часть аудитории это Рабочие, я думал будут студенты. Это круто! Пробую потихоньку добавлять интерактив голосование, комменты, реакции и т.д чтобы понимать какие темы вам больше интересны.
#story #facebook #google
2 собеседования, как я понял это Troubleshooting и Scripting. Это специальные собеседования для позиции TSE. На Troubleshooting будут давать какую то проблему, мол “Пользователь не может увидеть страницу A” и мне надо будет показать как я буду дебажить и исправлять причины ошибки. На Scripting будут смотреть как я пишу письма, это нужно на случай коммуникации с клиентом. Тоже будут даваться разные ситуации и я буду обязан составить толковое письмо клиенту. Тут главное это вежливость, хороший английский, правильный тайминг (когда отвечать), умение разжёвывать причину и решение ошибки, прикладывать полезные ссылки и картинки и т.д. Поскольку нет каких то правил и курсов на эту тему я просто почитал статьи в интернете на тему как правильно общаться с клиентом. Отдельной практики я тоже не делал, так как это все то чем я занимаюсь на нынешней работе. Насчет Troubleshooting немного почитал про TCP/IP, UDP, HTTP и про API, REST, gRPC и т.д чтобы освежить знания.
Тут по интереснее будет. 2 собеседования, Кодинг и System Design. Для кодинга начал снова решать задачи на Leetcode по тэгу Facebook. Для System Design провел мок собеседование со знакомым. Планирую еще почитать и разобрать несколько кейсов с курса Grokking System Design Interview.
Какие ощущения?
Я измотан умственно. Тяжело одновременно совмещать подготовку к собеседованию, работу и семью с ребенком. Приходиться какие вещи ставить на паузу и выделять время для решения задач. Стараюсь пару часов в день выделять и решать примерно 2-3 задачи уровня Hard/Medium на Leetcode.
По уровню сложности самый тяжелый будет Facebook SDI, потом Facebook Coding, потом Google Troubleshooting, потом Google Scripting. Надеюсь попадется тема которую я уже делал.
На удивление оказывается что большая часть аудитории это Рабочие, я думал будут студенты. Это круто! Пробую потихоньку добавлять интерактив голосование, комменты, реакции и т.д чтобы понимать какие темы вам больше интересны.
#story #facebook #google
👍2
Сегодня было собеседование с Google на позицию TSE (Technical Solutions Engineer). Было 2 собеседования по 45 минут, один за другим без перерыва или “back to back” как любят говорить рекрутеры.
Что там было?
Первое собеседование было Troubleshooting, то есть разобрать какой то баг и найти решение. Интервьюер спросил что то типа есть две системы, одна система отправляет сообщения в другую, но не все сообщения доходят, моя задача было разобраться почему так происходит и почему не все сообщения доставляются. Интервьюер в данном случае выступал как клиент который столкнулся с такой проблемой и я должен был задавать ему вопросы чтобы докопаться до истины. Это очень похоже на этакий детектив, есть притупление и ты должен найти кто убийца. Я рассказал стандартные вещи как просмотр логов, просмотр всяких инструментов аналитики. Написал несколько писем клиенту, интервьюеру было интересно какие вопросы я буду спрашивать в письме. Через минут 20 я нашел что проблема была в том что сообщение которое мы отправляли было большим по размеру и превышала лимиты, поэтому некоторые сообщения не доставлялись. Как решение я предложил несколько вариантов: отправлять большие сообщения частями, увеличить лимит для запроса, хранить сообщение в централизованной базе данных и отправлять только ID записи, чтобы запись можно было позже извлечь из базы данных. Я старался привести как можно больше разных вариантов решения, хотя некоторые могли бы звучать немного топорно. Но я хотел показать что у меня фонтан идей и я учитываю альтернативы и знаю плюсы и минусы разных подходов. Ощущение после собеседования было положительным.
Второе собеседование было хрен знает что. Это некая смесь System Design и Coding. Началось с того что интервьюер спросил меня как бы я оптимизировал веб приложение. Я начал кидать все что было в голове: cache, gzip, сжатие статических файлов, CDN, уменьшить количество вмешательств в DOM в загрузке, убрать кастомный скорлл и т.д. Потом был вопрос про оптимизацию сервера под рост запросов. Тут тоже стандартные ответы типа replication, load balancing и т.д. Потом про то как оптимизировать базу данных, replication, sharding, индексы, оптимизация медленных запросов, кэш, batch requests и многое многое другое. На этом этапе я начал немного тупить, так как задача была оптимизация базы данных под большие нагрузки, но интервьюер плавно перешел на тему оптимизации скорости базы данных. Replication и sharding я рассказал, но про индексы и оптимизацию медленных запросов забыл, были подсказки. Но я сразу подхватил интервьюера и дал полный ответ. Оставалось немного времени и чувак спросил задачу связанную с поисками по логам. Я успел написать только концепцию моего алгоритма и время закончилось, я не успел написать код.
Какие ощущения?
Ощущения смешанные. Вопросы во многом “open ended”, то есть в них нет одного правильного решения, поэтому трудно судить насколько ты прав. Но по моим ощущениям первое собеседование прошло хорошо, второе начал хорошо, но концовку немного смазал. Старался давать разные варианты решения одной проблемы, попутно рассказывая плюсы и минусы разных подходов. Я думаю фидбэк должен быть положительным, но могут сказать что уровень пока не доходит до уровня Google, потому что общая производительность была в ок, но не умопомрачительно. Я ставлю 60/40, 60% что пропустят, 40% отошьют.
#story #google
Что там было?
Первое собеседование было Troubleshooting, то есть разобрать какой то баг и найти решение. Интервьюер спросил что то типа есть две системы, одна система отправляет сообщения в другую, но не все сообщения доходят, моя задача было разобраться почему так происходит и почему не все сообщения доставляются. Интервьюер в данном случае выступал как клиент который столкнулся с такой проблемой и я должен был задавать ему вопросы чтобы докопаться до истины. Это очень похоже на этакий детектив, есть притупление и ты должен найти кто убийца. Я рассказал стандартные вещи как просмотр логов, просмотр всяких инструментов аналитики. Написал несколько писем клиенту, интервьюеру было интересно какие вопросы я буду спрашивать в письме. Через минут 20 я нашел что проблема была в том что сообщение которое мы отправляли было большим по размеру и превышала лимиты, поэтому некоторые сообщения не доставлялись. Как решение я предложил несколько вариантов: отправлять большие сообщения частями, увеличить лимит для запроса, хранить сообщение в централизованной базе данных и отправлять только ID записи, чтобы запись можно было позже извлечь из базы данных. Я старался привести как можно больше разных вариантов решения, хотя некоторые могли бы звучать немного топорно. Но я хотел показать что у меня фонтан идей и я учитываю альтернативы и знаю плюсы и минусы разных подходов. Ощущение после собеседования было положительным.
Второе собеседование было хрен знает что. Это некая смесь System Design и Coding. Началось с того что интервьюер спросил меня как бы я оптимизировал веб приложение. Я начал кидать все что было в голове: cache, gzip, сжатие статических файлов, CDN, уменьшить количество вмешательств в DOM в загрузке, убрать кастомный скорлл и т.д. Потом был вопрос про оптимизацию сервера под рост запросов. Тут тоже стандартные ответы типа replication, load balancing и т.д. Потом про то как оптимизировать базу данных, replication, sharding, индексы, оптимизация медленных запросов, кэш, batch requests и многое многое другое. На этом этапе я начал немного тупить, так как задача была оптимизация базы данных под большие нагрузки, но интервьюер плавно перешел на тему оптимизации скорости базы данных. Replication и sharding я рассказал, но про индексы и оптимизацию медленных запросов забыл, были подсказки. Но я сразу подхватил интервьюера и дал полный ответ. Оставалось немного времени и чувак спросил задачу связанную с поисками по логам. Я успел написать только концепцию моего алгоритма и время закончилось, я не успел написать код.
Какие ощущения?
Ощущения смешанные. Вопросы во многом “open ended”, то есть в них нет одного правильного решения, поэтому трудно судить насколько ты прав. Но по моим ощущениям первое собеседование прошло хорошо, второе начал хорошо, но концовку немного смазал. Старался давать разные варианты решения одной проблемы, попутно рассказывая плюсы и минусы разных подходов. Я думаю фидбэк должен быть положительным, но могут сказать что уровень пока не доходит до уровня Google, потому что общая производительность была в ок, но не умопомрачительно. Я ставлю 60/40, 60% что пропустят, 40% отошьют.
#story #google
👍2
Пару дней назад прошло мое дополнительное собеседование с Facebook. Было 2 собеседования по 45 минут, System Design и Кодинг.
Что там было?
System Design.
Зашел интервьюер, мы немного поболтали. Он дал задание сделать API дизайн для одного из сервисов компании. Я начал задавать уточняющие вопросы, нужно ли касаться Scalability системы, серверов, базы данных и т.д или он хочет сфокусироваться только на API. Интервьюер сказал что ему интересен только API и то как я буду это оптимизировать под страны с медленным интернетом.
Я немного рассказал про то как можно хранить данные чтобы сделать быстрым чтение, но не стал уходить глубоко и старался не уходить от главной темы. Начал с того какой можно протокол использовать для передачи данных. Упомянул REST vs gRPC, JSON vs Protobuf, HTTP 1.1 vs HTTP 2.0 и т.д. Рассказал про плюсы и минусы разных подходов. В итоге остановился на связке gRPC+Protobuf+HTTP 1.1. gRPC+Protobuf потому что это внутренний API и мы будет отправлять большое количество данных и нужно делать это с минимальным размером запроса. gRPC для этого подходит идеально. Если бы это был публичный API можно было бы обойтись REST+JSON, так как он более распространён и более читабелен. Хотя по умолчанию gRPC работает с HTTP 2.0, я предложил использовать его с HTTP 1.1, так как в бедных странах может быть старое железо и софт которое не поддерживает HTTP 2.0, а gRPC может работать с HTTP 1.1 если сделать серализацию в JSON строку. Построил модели для request и response, рассказал про реализацию пагинации. На этом закончилось время и я не успел обсудить оптимизацию глубже.
Coding.
Зашел интервьюер, мы немного поболтали. Интервьюер сказал что хочет спросить 2 задачи.
Первая задача было связана с матрицей. Я начал рассказывать brute-force решение, и в какой то момент интервьюер меня прервал и бросил мне в лицо финальное решение. Точнее, очень так жирно намекнул на него. Я быстро подхватил и реализовал это решение. Он спросил про то если в матрице будут строки разной длины, я сказал можно добавить проверку по индексам или выбросить ошибку, так как матрица обычно имеет равное количество колонок в каждой строке. Он согласился выбросить ошибку.
Вторая задача была связана со строками. Я опять начал рассказывать brute-force решение, и опять интервьюер меня прервал и недвусмысленно намекнул на финальное решение. Я начал тупить, так как надо было работать с индексами, а это очень запутывает, плюс я не сам пришел к решению. Интервьюер увидел что я запутался и предложил вынести работу с индексами в абстрактную функцию, что я и сделал. Это сильно упростило решение и я быстро написал решение. Интервьюер указал на один edge case который я упустил, быстро исправил.
Чтобы было дальше?
Я решил написать свой фидбэк своему рекрутеру, так как второе интервью было очень сумбурным и странным. Только я сел писать, как получил письмо от рекрутера, спустя буквально пол часа после собеседования. Он там писал что уже получил фидбэк от интервьюеров и они позитивные (“it’s looking positive”), так же он сказал что после обсуждения результатов отправит их в понедельник на рассмотрение в Engineering Directors, что бы это не значило. Сказал что финальные результаты будут уже на следующей неделе.
Какие ощущения ?
Первое собеседование прошло хорошо, но я не смог охватить все темы. Второе прошло хрен знает как, я жестко тупил, интервьюер меня постоянно подгонял. Ощущение опять смешанное. Я ставлю 50/50.
#story #facebook
Что там было?
System Design.
Зашел интервьюер, мы немного поболтали. Он дал задание сделать API дизайн для одного из сервисов компании. Я начал задавать уточняющие вопросы, нужно ли касаться Scalability системы, серверов, базы данных и т.д или он хочет сфокусироваться только на API. Интервьюер сказал что ему интересен только API и то как я буду это оптимизировать под страны с медленным интернетом.
Я немного рассказал про то как можно хранить данные чтобы сделать быстрым чтение, но не стал уходить глубоко и старался не уходить от главной темы. Начал с того какой можно протокол использовать для передачи данных. Упомянул REST vs gRPC, JSON vs Protobuf, HTTP 1.1 vs HTTP 2.0 и т.д. Рассказал про плюсы и минусы разных подходов. В итоге остановился на связке gRPC+Protobuf+HTTP 1.1. gRPC+Protobuf потому что это внутренний API и мы будет отправлять большое количество данных и нужно делать это с минимальным размером запроса. gRPC для этого подходит идеально. Если бы это был публичный API можно было бы обойтись REST+JSON, так как он более распространён и более читабелен. Хотя по умолчанию gRPC работает с HTTP 2.0, я предложил использовать его с HTTP 1.1, так как в бедных странах может быть старое железо и софт которое не поддерживает HTTP 2.0, а gRPC может работать с HTTP 1.1 если сделать серализацию в JSON строку. Построил модели для request и response, рассказал про реализацию пагинации. На этом закончилось время и я не успел обсудить оптимизацию глубже.
Coding.
Зашел интервьюер, мы немного поболтали. Интервьюер сказал что хочет спросить 2 задачи.
Первая задача было связана с матрицей. Я начал рассказывать brute-force решение, и в какой то момент интервьюер меня прервал и бросил мне в лицо финальное решение. Точнее, очень так жирно намекнул на него. Я быстро подхватил и реализовал это решение. Он спросил про то если в матрице будут строки разной длины, я сказал можно добавить проверку по индексам или выбросить ошибку, так как матрица обычно имеет равное количество колонок в каждой строке. Он согласился выбросить ошибку.
Вторая задача была связана со строками. Я опять начал рассказывать brute-force решение, и опять интервьюер меня прервал и недвусмысленно намекнул на финальное решение. Я начал тупить, так как надо было работать с индексами, а это очень запутывает, плюс я не сам пришел к решению. Интервьюер увидел что я запутался и предложил вынести работу с индексами в абстрактную функцию, что я и сделал. Это сильно упростило решение и я быстро написал решение. Интервьюер указал на один edge case который я упустил, быстро исправил.
Чтобы было дальше?
Я решил написать свой фидбэк своему рекрутеру, так как второе интервью было очень сумбурным и странным. Только я сел писать, как получил письмо от рекрутера, спустя буквально пол часа после собеседования. Он там писал что уже получил фидбэк от интервьюеров и они позитивные (“it’s looking positive”), так же он сказал что после обсуждения результатов отправит их в понедельник на рассмотрение в Engineering Directors, что бы это не значило. Сказал что финальные результаты будут уже на следующей неделе.
Какие ощущения ?
Первое собеседование прошло хорошо, но я не смог охватить все темы. Второе прошло хрен знает как, я жестко тупил, интервьюер меня постоянно подгонял. Ощущение опять смешанное. Я ставлю 50/50.
#story #facebook
👍3❤1
Пока жду результатов собеседования, хотел узнать какие будут ваши ставки. Какие по вашему будут результаты?
Anonymous Poll
21%
Пройду в Google, Warsaw
42%
Пройду в Facebook, London
31%
Пройду в обе компании
5%
Не пройду никуда и буду сосать палец
Кто то нагнал трафика на мой канал. Ппц вас много тут стало. Ну я должен рассказать итоги итогов.
Google
Созвонились с рекрутором насчет позиции TSE. Он сказал что мои результаты все еще не однозначны и направил меня на собес с Hiring Manager. Она поспрашивала меня про мою мотивацию, мол ты же Software Engineer, нафига тебе сдался Technical Solutions Engineer. Я начал втирать что мол это возможность поработать в Google, набраться опыта, также потому что я уже работаю на похоже позиции сейчас.
Hiring Manager сказала что у них нет в данной момент позиции TSE Platform (веб разработчики), но они ищут ребят для TSE Storage где будет больший упор на знание SQL если мне это интересно то они готовы меня рассмотреть. Я сказал что хотел бы сфокусироваться на Веб и не влезать глубоко в SQL, делать упор на мои основные навыки. На что получил ответ что то типа “Ну хрен знает чувак, мне надо будет тогда обсудить все с твоим рекрутером”. Но был намек что меня отошьют, так как нет подходящей позиции. Посмотрим как пойдет.
Facebook
За день до того как я уехал на летний отпуск мне позвонил мой рекрутер. Сказал что то типа “I have good news for you…”, я такой воу-воу полегче парень, и он такой “we would like to make you an formal offer…”, и все я уже дальше ничего не слышал. Все что было в моей голове это “Facebook?! London?! E5?! Серьезно?!”. Я прифигел, мягко говоря. Мы немного поболтали и он сказал что дальше уже будут вопросы по ЗП, переезд, виза и всякое прочее.
Это значит что тебя берут?
Формально да. На практике мне нужно будет сделать кучу бумажной работы прежде чем я начну работать там. Это займет по мои расчетам от 3-4 месяцев. Если на одном из этих этапов что то сломается, мне откажут в визе или Великобритания закроет границы или вдруг не будет доступных мест для меня, что угодно, я могу остаться где я есть сейчас. Поэтому не хочется говорить “гоп”, пока я не подписал все необходимые бумаги. Но получается я получил офер от Facebook, выкусите те 15 человек которые думали что я будут сосать палец (15-ый это я сам). Cейчас веду переговоры по ЗП.
#story #facebook #google
Созвонились с рекрутором насчет позиции TSE. Он сказал что мои результаты все еще не однозначны и направил меня на собес с Hiring Manager. Она поспрашивала меня про мою мотивацию, мол ты же Software Engineer, нафига тебе сдался Technical Solutions Engineer. Я начал втирать что мол это возможность поработать в Google, набраться опыта, также потому что я уже работаю на похоже позиции сейчас.
Hiring Manager сказала что у них нет в данной момент позиции TSE Platform (веб разработчики), но они ищут ребят для TSE Storage где будет больший упор на знание SQL если мне это интересно то они готовы меня рассмотреть. Я сказал что хотел бы сфокусироваться на Веб и не влезать глубоко в SQL, делать упор на мои основные навыки. На что получил ответ что то типа “Ну хрен знает чувак, мне надо будет тогда обсудить все с твоим рекрутером”. Но был намек что меня отошьют, так как нет подходящей позиции. Посмотрим как пойдет.
За день до того как я уехал на летний отпуск мне позвонил мой рекрутер. Сказал что то типа “I have good news for you…”, я такой воу-воу полегче парень, и он такой “we would like to make you an formal offer…”, и все я уже дальше ничего не слышал. Все что было в моей голове это “Facebook?! London?! E5?! Серьезно?!”. Я прифигел, мягко говоря. Мы немного поболтали и он сказал что дальше уже будут вопросы по ЗП, переезд, виза и всякое прочее.
Это значит что тебя берут?
Формально да. На практике мне нужно будет сделать кучу бумажной работы прежде чем я начну работать там. Это займет по мои расчетам от 3-4 месяцев. Если на одном из этих этапов что то сломается, мне откажут в визе или Великобритания закроет границы или вдруг не будет доступных мест для меня, что угодно, я могу остаться где я есть сейчас. Поэтому не хочется говорить “гоп”, пока я не подписал все необходимые бумаги. Но получается я получил офер от Facebook, выкусите те 15 человек которые думали что я будут сосать палец (15-ый это я сам). Cейчас веду переговоры по ЗП.
#story #facebook #google
🔥5❤1
Обговорили ЗП и всякие ништяки с Facebook.
ЗП или как говорят тут TC (Total Compensation) состоит из 3 частей.
⁃ Base salary - базовый оклад, то что ты получаешь стабильно в конце месяца. Каждый февраль ЗП увеличивается на несколько процентов в зависимости от продуктивности в течении года.
⁃ Bonus - дополнительная денежка поверх Base Salary. Обычно это какой то процент от твоей ЗП в зависимости от твоей продуктивности. Хорошо - 15%, Очень хорошо - 30%, Окуительно - 40% и т.д. Процентаж пересчитывается 2 раза в год.
⁃ Equity - это тоже денежка, но в виде ценных бумаг, акций компаний. Их дают на 4 года, и каждые несколько месяцев эту сумму по частям тебе дают. К примеру если ты договорился на $200K на 4 года, то тебе ежегодно будут давать по $50K.
То есть Base salary+Bonus+Equity = TC (Total Compensation).
Сколько ты зарабатываешь?
Сколько платят в Facebook можно посмотреть на картинке, суммы очень близки к действительности. Но не обольщайся, это сумма Gross Salary, то есть сумма ЗП без вычета налогов. В Великобритании достаточно конские налоги в 40% (на самом деле там работает система прогрессивного налога, но я считаю грубо). То есть получается что почти половину твоих кровных забирает государство. Там могут быть какие то льготы, но я пока не в курсе о них. ЗП с вычетом налогов называется Net Salary или Take Home Salary, те жалкие гроши которые ты получаешь на руки, после того как оплатил налоги.
Что еще дает компания?
⁃ Оплата визы, билетов на самолет для всей семьи.
⁃ Оплата отеля на 2 месяца, пока не найдешь квартиру в городе.
⁃ Relocation bonus - денежка на всякие траты во время переезда (примерно $20K-$30K).
⁃ Перевозка домашнего барахла.
⁃ Крутой офис.
⁃ Рабочий комп и телефон (Айфон и Мак).
⁃ Мед страховка.
⁃ Деньги на транспорт.
⁃ Деньги на химчистку.
⁃ Бесплатная еда в офисе (привет Коронавирус).
⁃ Бесплатное посещение и лечение зубов у дантиста.
⁃ Деньги на спортзал.
⁃ 25 дней отпуска в году.
⁃ Декретный отпуск если заделаю еще детей.
⁃ И много чего еще.
Что дальше?
Мне будут делать Background Check и проверять не напиздел ли я о моем образовании и о прошлом опыте в резюме. Потихоньку собирают документы и данные для разрешения на работу. Надо привезти квартиру в порядок, чтобы при сдаче не было проблем, починить то что дочь тут наломала. Надо доделать проекты на работе, оставить доки чтобы ребята потом смогли подхватить. Настроение хорошее. А какое у вас настроение?
#story #facebook
ЗП или как говорят тут TC (Total Compensation) состоит из 3 частей.
⁃ Base salary - базовый оклад, то что ты получаешь стабильно в конце месяца. Каждый февраль ЗП увеличивается на несколько процентов в зависимости от продуктивности в течении года.
⁃ Bonus - дополнительная денежка поверх Base Salary. Обычно это какой то процент от твоей ЗП в зависимости от твоей продуктивности. Хорошо - 15%, Очень хорошо - 30%, Окуительно - 40% и т.д. Процентаж пересчитывается 2 раза в год.
⁃ Equity - это тоже денежка, но в виде ценных бумаг, акций компаний. Их дают на 4 года, и каждые несколько месяцев эту сумму по частям тебе дают. К примеру если ты договорился на $200K на 4 года, то тебе ежегодно будут давать по $50K.
То есть Base salary+Bonus+Equity = TC (Total Compensation).
Сколько ты зарабатываешь?
Сколько платят в Facebook можно посмотреть на картинке, суммы очень близки к действительности. Но не обольщайся, это сумма Gross Salary, то есть сумма ЗП без вычета налогов. В Великобритании достаточно конские налоги в 40% (на самом деле там работает система прогрессивного налога, но я считаю грубо). То есть получается что почти половину твоих кровных забирает государство. Там могут быть какие то льготы, но я пока не в курсе о них. ЗП с вычетом налогов называется Net Salary или Take Home Salary, те жалкие гроши которые ты получаешь на руки, после того как оплатил налоги.
Что еще дает компания?
⁃ Оплата визы, билетов на самолет для всей семьи.
⁃ Оплата отеля на 2 месяца, пока не найдешь квартиру в городе.
⁃ Relocation bonus - денежка на всякие траты во время переезда (примерно $20K-$30K).
⁃ Перевозка домашнего барахла.
⁃ Крутой офис.
⁃ Рабочий комп и телефон (Айфон и Мак).
⁃ Мед страховка.
⁃ Деньги на транспорт.
⁃ Деньги на химчистку.
⁃ Бесплатная еда в офисе (привет Коронавирус).
⁃ Бесплатное посещение и лечение зубов у дантиста.
⁃ Деньги на спортзал.
⁃ 25 дней отпуска в году.
⁃ Декретный отпуск если заделаю еще детей.
⁃ И много чего еще.
Что дальше?
Мне будут делать Background Check и проверять не напиздел ли я о моем образовании и о прошлом опыте в резюме. Потихоньку собирают документы и данные для разрешения на работу. Надо привезти квартиру в порядок, чтобы при сдаче не было проблем, починить то что дочь тут наломала. Надо доделать проекты на работе, оставить доки чтобы ребята потом смогли подхватить. Настроение хорошее. А какое у вас настроение?
#story #facebook
👍3
В самом начале прохождения собеседования мне не хватало менторства. Я готовился к собеседованиям и не знал правильно ли я все делаю или нет. Очень важно при подготовке к собеседованиям иметь возможность поговорить с кем нибудь у кого есть опыт в этом, чтобы знать в правильном ли направлении ты движешься.
В этом плане мне сильно помогли 2 человека. Clément Mihailescu, основатель AlgoExpert.io, который я использовал для прокачки алгоритмов и Аскар Сатыбалдиев, который познакомил меня с несколькими ребятами которые тоже проходили собеседования в FAANG. И общаясь с этими ребятами я понимал где я допустил ошибку и что я могу улучшить.
В какой то момент я дал себе слово что если я пройду собеседование успешно, то сделаю QnA (вопросы и ответы) на канале, чтобы поделиться тем, что помогло мне пройти собеседование и ответить на те вопросы на которые вы ищите ответы, но не можете найти или боитесь спросить.
Сейчас идет самая скучная часть устройства на работу: проверки, документы и всякая бюрократическая волокита. Я думаю это хорошее время чтобы ответить на ваши вопросы.
Что ты можешь спросить?
⁃ Все что касается подготовки и прохождения собеседования в FAANG.
⁃ Не стесняйтесь задавать вопросы, даже те которые могут показаться вам глупыми.
⁃ Лайкните вопрос, если вы видите что ваш вопрос уже спросили.
⁃ Лайкните вопрос, если вам понравился какой то вопрос.
Как я буду отвечать?
⁃ Я буду смотреть на те вопросы которые чаще спрашивают или больше лайкают и буду отвечать в первую очередь на них.
⁃ Я буду писать ответы в канал в виде постов.
⁃ Если есть несколько простых вопросов, буду объединять их в один пост.
⁃ Я буду смотреть комментарии до конца Августа, и несколько раз в неделю постить ответы на вопросы.
Залетайте в комментарии и задавайте свои вопросы.
#interviewtip #algo
В этом плане мне сильно помогли 2 человека. Clément Mihailescu, основатель AlgoExpert.io, который я использовал для прокачки алгоритмов и Аскар Сатыбалдиев, который познакомил меня с несколькими ребятами которые тоже проходили собеседования в FAANG. И общаясь с этими ребятами я понимал где я допустил ошибку и что я могу улучшить.
В какой то момент я дал себе слово что если я пройду собеседование успешно, то сделаю QnA (вопросы и ответы) на канале, чтобы поделиться тем, что помогло мне пройти собеседование и ответить на те вопросы на которые вы ищите ответы, но не можете найти или боитесь спросить.
Сейчас идет самая скучная часть устройства на работу: проверки, документы и всякая бюрократическая волокита. Я думаю это хорошее время чтобы ответить на ваши вопросы.
Что ты можешь спросить?
⁃ Все что касается подготовки и прохождения собеседования в FAANG.
⁃ Не стесняйтесь задавать вопросы, даже те которые могут показаться вам глупыми.
⁃ Лайкните вопрос, если вы видите что ваш вопрос уже спросили.
⁃ Лайкните вопрос, если вам понравился какой то вопрос.
Как я буду отвечать?
⁃ Я буду смотреть на те вопросы которые чаще спрашивают или больше лайкают и буду отвечать в первую очередь на них.
⁃ Я буду писать ответы в канал в виде постов.
⁃ Если есть несколько простых вопросов, буду объединять их в один пост.
⁃ Я буду смотреть комментарии до конца Августа, и несколько раз в неделю постить ответы на вопросы.
Залетайте в комментарии и задавайте свои вопросы.
#interviewtip #algo
www.algoexpert.io
AlgoExpert | Ace the Coding Interviews
The leading platform to prepare for coding interviews. Master essential algorithms and data structures, and land your dream job with AlgoExpert.
👍3
И так у нас накопилось около 30 вопросов. Некоторые из них пересекаются, некоторые очень специфичные. Всем спасибо что делитесь и лайкаете.
Больше всего набрали лайков вопросы про подготовку, про мой прошлый опыт до прохождения интервью, про затраченное время от нуля до офера. Погнали!
Больше всего набрали лайков вопросы про подготовку, про мой прошлый опыт до прохождения интервью, про затраченное время от нуля до офера. Погнали!
Факты обо мне, чтобы вы понимали мой уровень, до 2018 года, до начала подготовки:
#story
• Учился в сельской школе на казахском языке в регионе Казахстана до 11 класса. • Не прошел в КТЛ, не смог пройти тест в 7 классе. • В 9 классе отец отдал меня на курсы английского, 2 года учил. Поэтому у меня хороший английский. • После окончания школы подавал в СДУ в Алматы, не смог поступить на грант. Учился на платном. • GPA был 2.8/4. Чуть не ушел на ретейк по математике. Чуть не ушел на ретейк по компьютерным сетям. • Работал в основном в мелких и средних ИТ компаниях. В разное время клепал сайты под заказ, поддерживал интернет магазины и веб порталы. • Один раз дропнул сайт компании, один раз дропнул базу данных. После этого начал многие вещи автоматизировать. • Думал что алгоритмы нафиг не нужны для работы в Казахстане(отчасти я был прав), до этого ничего не знал про алгоритмы. • Dijkstra, BFS, DFS, Binary Search - это были просто термины которые я когда то слышал на лекциях. На деле не имел никакого понятия что это такое. • Знал PHP, Java, Python, JavaScript, MySQL - стандартный набор вэб разработчика, который достался после универа. • Умел писать простой CRUD. • Умел дизайнить API, хорошо знал теорию REST API. Читал посты в интернетах. • 0 знаний про распределенные системы. • 0 знаний как работает железо. Я даже не знал что такое ядра в процессорах (чтобы вы понимали мой уровень).#story
👍2
Как я готовился? Сколько ушло времени?
Список ресурсов я публиковал уже тут https://t.me/hiremegoogle/46
Если вы послушаете историю ребят которые попали FAANG, то в большинстве случаев ни упускают ту часть где они учили алгоритмы. Их рассказы звучат типа “Я учился в универе, Я подался в Google, прошел собеседование и меня в взяли в на работу в Google, Цюрих”. Хотя казалось бы алгоритмы это 90% собеседования, почему люди про это не говорят. Мне это не понятно. Я думаю про это надо рассказывать. Далее рассказываю как я нарабатывал знания алгоритмов.
У меня ушло примерно 1.5-2 года чтобы получить офер. Я начал готовиться осенью 2018 года. Начал тупо решать задачи на Hackerrank. Решал примерно 1-2 задачи в неделю, решал очень медленно даже легкие задачи. Примерно через пару тройку месяцев уже решал 1-2 задачи в день, уровня Easy, уровнь Medium так же решал в течении недели. Читал Dicussions, смотрел лекции на YouTube. Позже пересел на Leetocde, так как там вопросы более близки по контексту к тем что спрашивают на собеседованиях и там отличное сообщество. Задачи решал ежедневно, по 1-2 часа, даже на выходных. Участвовал в онлайн контестах 1-2 раза в месяц. В свободное время либо решал задачи, либо, смотрел лекции. Пытался решать на разные темы, неделю Графы, неделю Строки, неделю Массивы и т.д.
Параллельно я подавался в крупные Казахстанские и Европейские компании, чтобы отточить навыки собеседования и посмотреть какие технические навыки требуются на рынке. Подавал в Германию, Нидерланды, Норвегию, Литву, Польшу и т.д. Просто искал интересные компании в блогах и на LinkedIn, и откликался на их вакансии. Про резюме писано тут https://t.me/hiremegoogle/5.
В весной 2019 года начал отправлять свое резюме в Booking, Amazon, Facebook, Google, без реферала, попытка не пытка. К этому времени я решал задачи более менее уверенно, но все равно очень медленно. Я понимал что меня отошьют, но было интересно как далеко я зайду. Я понимал что все равно подамся еще раз через год. Booking дали онлайн тест, который я сдал, обещали перезвонить и не перезвонили. Amazon завалил онлайн тест. Facebook посмотрели мое резюме и сразу отшили. Google единственные кто допустили меня до телефонного интервью. Я его прошел, мне попался вопрос который я на днях решал 2-3 раза подряд, чтобы лучше понять рекурсию. И меня позвали на онсайт в Цюрих, который я очевидно завалил. Сейчас я понимаю что мой уровень тогда был очень низкий.
После того как я завалил интервью в Google, я понял что попасть на онсайт не так уж и сложно, нужно просто наработать алгоритмы. Поставил себе цель что буду в течении года интенсивно готовиться и через год обязательно пройду. Я знал чего мне не хватает. Это теоретической базы и практики которая есть у олимпиадых программистов. Я попытался этого добиться слушая лекции и участвуя в онлайн контекстах, просил друзей олимпиадников почитать мне лекции. Но все равно мне не хватало четкой программы и структуры. Я не понимал что учить, а что нет.
Тогда я и наткнулся на AlgoExpert. Это своеобразный Leetcode, только с ограниченным пулом задач на все базовые темы и с видео лекциями, почему и как это решается. Я понимал что это может быть хорошей инвестицией и купил годовой доступ. Я сгруппировал задачи по категориям и решал категория за категорией в течении 2 месяцев, каждый день по 1-2 часа. После того как я все исчерпал, я начал решать все задачи, но теперь уже в случайном порядке. Если раньше я решал одну Medium задачу от часа, до недели, теперь по истечению 4 месяцев я решал Medium задачу за 15-30 минут. После этого мне стало скучно решать одни и те же задачи и я перешел обратно на Leetcode и уже просто набивал руку. Это было круто, это ощущается как суперспособность, ты видишь задачу и уже видишь потенциальные речения задачи. Чтобы справиться со стрессом я использовал Pramp. 1-2 сессий в месяц. Он бесплатный. Этой стратегии я придерживался в течении года. Это уже стало привычкой. Во время собеседований я уже решал по 1-2 задачи по 2 часа утром и 2 часа вечером, в общем 3-4 часа в день. #story #interviewtip #google
Список ресурсов я публиковал уже тут https://t.me/hiremegoogle/46
Если вы послушаете историю ребят которые попали FAANG, то в большинстве случаев ни упускают ту часть где они учили алгоритмы. Их рассказы звучат типа “Я учился в универе, Я подался в Google, прошел собеседование и меня в взяли в на работу в Google, Цюрих”. Хотя казалось бы алгоритмы это 90% собеседования, почему люди про это не говорят. Мне это не понятно. Я думаю про это надо рассказывать. Далее рассказываю как я нарабатывал знания алгоритмов.
У меня ушло примерно 1.5-2 года чтобы получить офер. Я начал готовиться осенью 2018 года. Начал тупо решать задачи на Hackerrank. Решал примерно 1-2 задачи в неделю, решал очень медленно даже легкие задачи. Примерно через пару тройку месяцев уже решал 1-2 задачи в день, уровня Easy, уровнь Medium так же решал в течении недели. Читал Dicussions, смотрел лекции на YouTube. Позже пересел на Leetocde, так как там вопросы более близки по контексту к тем что спрашивают на собеседованиях и там отличное сообщество. Задачи решал ежедневно, по 1-2 часа, даже на выходных. Участвовал в онлайн контестах 1-2 раза в месяц. В свободное время либо решал задачи, либо, смотрел лекции. Пытался решать на разные темы, неделю Графы, неделю Строки, неделю Массивы и т.д.
Параллельно я подавался в крупные Казахстанские и Европейские компании, чтобы отточить навыки собеседования и посмотреть какие технические навыки требуются на рынке. Подавал в Германию, Нидерланды, Норвегию, Литву, Польшу и т.д. Просто искал интересные компании в блогах и на LinkedIn, и откликался на их вакансии. Про резюме писано тут https://t.me/hiremegoogle/5.
В весной 2019 года начал отправлять свое резюме в Booking, Amazon, Facebook, Google, без реферала, попытка не пытка. К этому времени я решал задачи более менее уверенно, но все равно очень медленно. Я понимал что меня отошьют, но было интересно как далеко я зайду. Я понимал что все равно подамся еще раз через год. Booking дали онлайн тест, который я сдал, обещали перезвонить и не перезвонили. Amazon завалил онлайн тест. Facebook посмотрели мое резюме и сразу отшили. Google единственные кто допустили меня до телефонного интервью. Я его прошел, мне попался вопрос который я на днях решал 2-3 раза подряд, чтобы лучше понять рекурсию. И меня позвали на онсайт в Цюрих, который я очевидно завалил. Сейчас я понимаю что мой уровень тогда был очень низкий.
После того как я завалил интервью в Google, я понял что попасть на онсайт не так уж и сложно, нужно просто наработать алгоритмы. Поставил себе цель что буду в течении года интенсивно готовиться и через год обязательно пройду. Я знал чего мне не хватает. Это теоретической базы и практики которая есть у олимпиадых программистов. Я попытался этого добиться слушая лекции и участвуя в онлайн контекстах, просил друзей олимпиадников почитать мне лекции. Но все равно мне не хватало четкой программы и структуры. Я не понимал что учить, а что нет.
Тогда я и наткнулся на AlgoExpert. Это своеобразный Leetcode, только с ограниченным пулом задач на все базовые темы и с видео лекциями, почему и как это решается. Я понимал что это может быть хорошей инвестицией и купил годовой доступ. Я сгруппировал задачи по категориям и решал категория за категорией в течении 2 месяцев, каждый день по 1-2 часа. После того как я все исчерпал, я начал решать все задачи, но теперь уже в случайном порядке. Если раньше я решал одну Medium задачу от часа, до недели, теперь по истечению 4 месяцев я решал Medium задачу за 15-30 минут. После этого мне стало скучно решать одни и те же задачи и я перешел обратно на Leetcode и уже просто набивал руку. Это было круто, это ощущается как суперспособность, ты видишь задачу и уже видишь потенциальные речения задачи. Чтобы справиться со стрессом я использовал Pramp. 1-2 сессий в месяц. Он бесплатный. Этой стратегии я придерживался в течении года. Это уже стало привычкой. Во время собеседований я уже решал по 1-2 задачи по 2 часа утром и 2 часа вечером, в общем 3-4 часа в день. #story #interviewtip #google
Telegram
Хочу в Google
Как попасть на собеседование в FAANG (Facebook, Apple, Amazon, Netflix, Google) и завалить его.
Это короткий пост о том как попасть на собеседование в FAANG. Тут не будет глубокого анализа.
Нахрена мне все это?
⁃ Ты узнаешь много чего за время подготовки…
Это короткий пост о том как попасть на собеседование в FAANG. Тут не будет глубокого анализа.
Нахрена мне все это?
⁃ Ты узнаешь много чего за время подготовки…
👍8❤1
Какой я бы дал совет по подготовке по алгоритмам?
По алгоритмам все крайне просто, но долго и муторно:
Делай упор на постоянство, не старайся решать сразу много. Решай по чуть чуть, но каждый день. Представь что твой мозг это мышца, а ты это спортсмен который готовиться к Олимпиаде. Спортсмен не лежит весь год свесив ноги, а потом тренируется как угорелый перед Олимпиадой. Нет, он тренируется в течении года, по графику. Ты должен готовиться в течении года, а потом просто ближе к собеседованию увеличивать нагрузку. В начале будет сложно, запустить процесс, растрясти жир, размять мышцы. Через пару тройку месяцев станет легче, а через годик будет вообще как у ребенка мороженое отобрать. Постоянство это сила. В будущих лекциях еще расскажу что делать с провалами.
#interviewtip #algo
По алгоритмам все крайне просто, но долго и муторно:
• Учи обязательно базу, теорию. • Составь себе программу и двигайся по ней. • Найди себе ментора, который будет тебе объяснять что ты делаешь не так. • По всему что выше я использовал AlgoExpert. Очень крутой ресурс. Мне никто не платил. • Решай по 1-2 задачи в день и уделяй этому 2 часа день как минимум. • Решай по пропорции 50% - Medium, 40% - Easy, 10% - Hard. • Для набивания рук, я использовал Leetcode. Делай упор на постоянство, не старайся решать сразу много. Решай по чуть чуть, но каждый день. Представь что твой мозг это мышца, а ты это спортсмен который готовиться к Олимпиаде. Спортсмен не лежит весь год свесив ноги, а потом тренируется как угорелый перед Олимпиадой. Нет, он тренируется в течении года, по графику. Ты должен готовиться в течении года, а потом просто ближе к собеседованию увеличивать нагрузку. В начале будет сложно, запустить процесс, растрясти жир, размять мышцы. Через пару тройку месяцев станет легче, а через годик будет вообще как у ребенка мороженое отобрать. Постоянство это сила. В будущих лекциях еще расскажу что делать с провалами.
#interviewtip #algo
👍2
Вопрос:
Различаются ли интервью для фронтенд и бэкенд разработчиков в faang? Либо всегда будут задачи на алгоритмы?
Ответ:
Вопрос я думаю будет интересен и для мобильных разработчиков. Короткий ответ: отличий по большей части не будет. Стандартный набор алгоритмы, System Design и Behavioural. Как сказал бы Noize MC: “Все как у людей”.
Единственное могут немного отличаться System Design интервью, в ваших ответах и в ожидании интервьюера. К примеру, у тебя спросили про реализацию Facebook Feed API.
Ожидается что у тебя должны быть базовые знания в твоей области. Ожидается что у тебя должны быть базовые знания по Distributed Systems. Нет четкого сценария и ответа на System Design интервью. Опять же ты должен рассказывать либо про то в чем ты силен, либо про то что хочет знать интервьюер. Общайся с интервьюером, он твой друг, он тебе подскажет куда двигаться. И еще раз да, разницы при подготовке особо нет.
Различаются ли интервью для фронтенд и бэкенд разработчиков в faang? Либо всегда будут задачи на алгоритмы?
Ответ:
Вопрос я думаю будет интересен и для мобильных разработчиков. Короткий ответ: отличий по большей части не будет. Стандартный набор алгоритмы, System Design и Behavioural. Как сказал бы Noize MC: “Все как у людей”.
Единственное могут немного отличаться System Design интервью, в ваших ответах и в ожидании интервьюера. К примеру, у тебя спросили про реализацию Facebook Feed API.
• Если ты Backend Engineer, то ты будешь рассказывать про API design, про протоколы, возможно затрагивать базу данных и нагрузку. • Если же ты Frontend Engineer, то ты будешь больше рассказывать о том как ты будешь это отображать, как сделать так чтобы страница не лагала если на нем много постов, как оптимизировать доставку статики и т.д. • Если ты Mobile Engineer, то рассказывать о том как бы сжимал запросы чтобы экономить трафик, как бы ты организовал локальную базу данных и т.д.Ожидается что у тебя должны быть базовые знания в твоей области. Ожидается что у тебя должны быть базовые знания по Distributed Systems. Нет четкого сценария и ответа на System Design интервью. Опять же ты должен рассказывать либо про то в чем ты силен, либо про то что хочет знать интервьюер. Общайся с интервьюером, он твой друг, он тебе подскажет куда двигаться. И еще раз да, разницы при подготовке особо нет.
👍1
Вопрос:
Я хорошо справляюсь с алгоритмическими вопросами, но у меня одна проблема: заикание. И я боюсь что не справлюсь с behavioral interview и с объяснениями решения. Что можете сказать по этому поводу, стоит ли дальше стараться или это всё пустая трата времени?
Ответ:
Это очень интересный вопрос. Я думаю сюда же можно отнести людей с какой либо неполноценностью, людей которые плохо знают английский или людей которые по каким либо другим причинам испытывают трудности с коммуникацией.
Коммуникация это очень важная часть собеседования. Не менее важная часть чем алгоритмы. Под коммуникацией подразумевается очень много вещей:
Заметь, тут не говориться о том заикаешься ли ты, или у тебя плохой английски, или у тебя дефект речи и т.д. Это тут не имеет абсолютно никого значения. Если ты можешь найти решение, объяснить свое решение и написать его за 15-20 минут, так чтобы интервьюер это понял, то ты пройдешь это собеседование. Вот и все. Есть много людей без заикания, с академическим английским которые нибуя не умеют излагать свои мысли. Они вот точно не пройдут интервью.
Мой совет, поделай мок собеседования с друзьями или на Pramp, 1-2 раза в неделю. Получи фидбэк, если есть комментарии к твоей речи, попробуй поработать над ней. Делай еще моки, смотри результаты. Над речью тоже надо работать не меньше чем над алгоритмами.
Я думаю в контексте заикания, это может быть даже плюсом для тебя, так как это показывает твою целеустремленность, что даже не смотря на какие то проблемы ты готов работать и достигать целей. Так что дерзай! (Я знаю это звучит приторно, но что вы хотели, это же мотивационный канал)
#interviewtip #behavioral
Я хорошо справляюсь с алгоритмическими вопросами, но у меня одна проблема: заикание. И я боюсь что не справлюсь с behavioral interview и с объяснениями решения. Что можете сказать по этому поводу, стоит ли дальше стараться или это всё пустая трата времени?
Ответ:
Это очень интересный вопрос. Я думаю сюда же можно отнести людей с какой либо неполноценностью, людей которые плохо знают английский или людей которые по каким либо другим причинам испытывают трудности с коммуникацией.
Коммуникация это очень важная часть собеседования. Не менее важная часть чем алгоритмы. Под коммуникацией подразумевается очень много вещей:
• Приветливость. Поздоровался, спросил как дела. • Вежливость и обходительность • Не “өзінше” ли ты. (Не высокомерный ли ты) • Как ты умеешь слушать • Как ты принимаешь критику и правки • Задаешь ли ты правильные вопросы • Можешь ли ты объяснить свои алгоритм • Умеешь ли ты излагать свои мысли понятно для окружающих • Умеешь ли ты думать вслух, чтобы интервьюер понимал как ты делаешь решения • И много чего еще.Заметь, тут не говориться о том заикаешься ли ты, или у тебя плохой английски, или у тебя дефект речи и т.д. Это тут не имеет абсолютно никого значения. Если ты можешь найти решение, объяснить свое решение и написать его за 15-20 минут, так чтобы интервьюер это понял, то ты пройдешь это собеседование. Вот и все. Есть много людей без заикания, с академическим английским которые нибуя не умеют излагать свои мысли. Они вот точно не пройдут интервью.
Мой совет, поделай мок собеседования с друзьями или на Pramp, 1-2 раза в неделю. Получи фидбэк, если есть комментарии к твоей речи, попробуй поработать над ней. Делай еще моки, смотри результаты. Над речью тоже надо работать не меньше чем над алгоритмами.
Я думаю в контексте заикания, это может быть даже плюсом для тебя, так как это показывает твою целеустремленность, что даже не смотря на какие то проблемы ты готов работать и достигать целей. Так что дерзай! (Я знаю это звучит приторно, но что вы хотели, это же мотивационный канал)
#interviewtip #behavioral
👍1
Был интересный вопрос про то как улучшить аккуратность и скорость кодинга. Думаю вопрос очень важный, отвечаю.
Думай на бумаге (или на доске)
На настоящем собеседовании тебе придется решать задачу на доске или в редакторе кода. У тебя не будет возможности компилировать, запускать и дебажить код как ты привык делать в реальной жизни. Поэтому очень важно уметь писать код на бумаге и компилировать его у себя в голове.
Как это работает? Перед тем как сесть решать задачу, берешь ручку с бумагой (или доску с маркером), и пишешь свое решение сначала на бумаге.
Шаг 1. Conceptual overview - прежде всего опиши свой алгоритм по шагам, просто словами, как список. Возьми какой нибудь пример и запусти свой алгоритм на этом примере. Записывай как твои данные будут меняться, по мере продвижения по списку. Формат не имеет значения, пиши как тебе удобно. Это поможет проверить жизнеспособность твоего алгоритма, поможет найти edge case-ы, исправить баги на раннем этапе. Также это хороше упражнение для мозга, который привык к тому что все в разработке уже автоматизировано.
Например, проверка строки на полиндромность:
Шаг 2. Написание кода - теперь после того как ты обкатал свой алгоритм на нескольких разных примерах можно приступать к написанию кода, опять на бумаге. Не псевдокод, а настоящий рабочий код, со всеми точками и запятыми. После того как ты закончил, опять прогони примеры через свой код, опять запиши как меняются данные. Попытайся сломать свой код и найти edge case-ы. Попробуй пустую строку, попробуй строку с четной и нечетной длиной, попробуй строку с цифрами и с символами и т.д.
Пример кода на Python:
def
На фото мой блокнот.
#interviewtip #algo
Думай на бумаге (или на доске)
На настоящем собеседовании тебе придется решать задачу на доске или в редакторе кода. У тебя не будет возможности компилировать, запускать и дебажить код как ты привык делать в реальной жизни. Поэтому очень важно уметь писать код на бумаге и компилировать его у себя в голове.
Как это работает? Перед тем как сесть решать задачу, берешь ручку с бумагой (или доску с маркером), и пишешь свое решение сначала на бумаге.
Шаг 1. Conceptual overview - прежде всего опиши свой алгоритм по шагам, просто словами, как список. Возьми какой нибудь пример и запусти свой алгоритм на этом примере. Записывай как твои данные будут меняться, по мере продвижения по списку. Формат не имеет значения, пиши как тебе удобно. Это поможет проверить жизнеспособность твоего алгоритма, поможет найти edge case-ы, исправить баги на раннем этапе. Также это хороше упражнение для мозга, который привык к тому что все в разработке уже автоматизировано.
Например, проверка строки на полиндромность:
• If string is empty or contains only one symbol return True • Create two pointers, on left end and right end • Create loop from 0 to N/2, check left and right symbols • If pointers are equal, shift them to the center • If pointers are different, return False • Return True in the endLoop from i: 0 -> 3
i = 0
“ten1et”
^ ^
L R => “t” == “t”
——
i = 1
“ten1et”
^ ^
L R => “e” == “e”
——
i = 2
“ten1et”
^^
LR => “n” != “1” => return FalseШаг 2. Написание кода - теперь после того как ты обкатал свой алгоритм на нескольких разных примерах можно приступать к написанию кода, опять на бумаге. Не псевдокод, а настоящий рабочий код, со всеми точками и запятыми. После того как ты закончил, опять прогони примеры через свой код, опять запиши как меняются данные. Попытайся сломать свой код и найти edge case-ы. Попробуй пустую строку, попробуй строку с четной и нечетной длиной, попробуй строку с цифрами и с символами и т.д.
Пример кода на Python:
def
isPalindrome(string):
for i in range(len(string)//2):
if string[i] != string[len(str)-i-1]:
return False
return True
Шаг 3. Запуск - когда ты уже на 100% уверен что твой код работает, можешь переписать его в редактор и попробовать его запустить. Компилятор выкинул ошибку синтакса? Это нормально, будь готов к тому что код не запуститься с первого раза и его надо будет отредактировать, это нормально. После того как код запустился проверь свои примеры на рабочем коде, сравни со своими записками. Если все не сходится в начале это нормально, нужно нарабатывать навыки решения задач на бумаге постепенно. На фото мой блокнот.
#interviewtip #algo
👍1
Решил вспомнить во сколько компаний я откликался и завалил интервью. Это история за последние 2 года, которые я активно готовился. Расписал Название компании, Год, 📍 Локация компании, 🗒 На каком этапе мне отказали, ℹ️ Как я откликался:
Kolesa Group, 2019:
Khan Group, 2019:
Emesa, 2019:
Bunq, 2019:
Shopify, Oberlo, 2019:
Delivery Hero, 2019:
GetYourGuide, 2019:
Spotify, 2019:
Takeaway, 2019:
Booking, 2019:
Facebook, 2019:
Amazon, 2019:
Google, 2019:
Prezi, 2019:
Personio, 2019 :
Amazon, 2020:
Google, 2020:
Apple, 2020:
#story #amazon #google #facebook
Kolesa Group, 2019:
• 📍 Almaty • 🗒 Technical interview • ℹ️ HeadHunter Khan Group, 2019:
• 📍 Almaty • 🗒 Technical interview • ℹ️ HeadHunter Emesa, 2019:
• 📍 Amsterdam • 🗒 Technical interview • ℹ️ LinkedInBunq, 2019:
• 📍 Amsterdam • 🗒 Onsite • ℹ️ LinkedInShopify, Oberlo, 2019:
• 📍 Vilnius, • 🗒 HR interview • ℹ️ LinkedInDelivery Hero, 2019:
• 📍 Berlin • 🗒 Screening • ℹ️ LinkedInGetYourGuide, 2019:
• 📍 Berlin • 🗒 Screening • ℹ️ LinkedInSpotify, 2019:
• 📍 Stockholm • 🗒 Screening • ℹ️ LinkedInTakeaway, 2019:
• 📍 Berlin • 🗒 Technical interview • ℹ️ LinkedInBooking, 2019:
• 📍 Amsterdam • 🗒 Screening • ℹ️ LinkedInFacebook, 2019:
• 📍 London • 🗒 Screening • ℹ️ Facebook careers websiteAmazon, 2019:
• 📍 Vancouver • 🗒 Screening • ℹ️ LinkedInGoogle, 2019:
• 📍 Zurich, • 🗒 Onsite • ℹ️ Google careers websitePrezi, 2019:
• 📍 Budapest • 🗒 Technical interview • ℹ️ LinkedInPersonio, 2019 :
• 📍 Munich • 🗒 Technical interview • ℹ️ LinkedInAmazon, 2020:
• 📍 Vancouver • 🗒 Remote onsite • ℹ️ ReferralGoogle, 2020:
• 📍 Warsaw • 🗒 Remote onsite • ℹ️ ReferralApple, 2020:
• 📍 London • 🗒 Screening • ℹ️ Apple careers website#story #amazon #google #facebook
👍1
Аудитория канала немного выросла и хотелось бы больше узнать о вас. Какой у вас опыт участия в интервью с компаниями из FAANG (Facebook, Amazon, Apple, Netflix, Google и т.д.)?
Anonymous Poll
2%
Никогда не подавался и не буду
30%
Никогда не подавался, но скоро буду пробовать
43%
Никогда не подавался, хочу попробовать, но через несколько лет
1%
Подавался, но не хочу делать это еще раз
14%
Подавался, и буду пробовать еще
6%
Я не программист
4%
Я отдаюсь богатым мужикам за деньги
Мысли об аудитории канала
Судя по опросу, интересно что большинство тех кто подписан на канал люди которые никогда не откликались в FAANG, остальные это либо не программисты, либо люди которые радуют богатых мужиков за деньги (никого не осуждаю). Миссия этого канала по большей части мотивация, цель лишить вас FAANG-овой девственности и впустить в вашу жизнь большие и крепкие компании.
Также интересно что большинство людей думает откликаться, но через несколько лет. Я же сторонник того чтобы делать это здесь и сейчас и не откладывать это в долгий ящик. О чем я еще напишу, когда буду затрагивать тему провалов и отказов.
Притча в тему
Жил-был старик. Он был очень набожным, молился каждый день, помогал людям, никогда не обманывал и не воровал, был очень честным и порядочным человеком.
У старика была только одна мечта: выиграть в лотерею. И он днем и ночью молил об этом Бога. Но проходили года, а его мечта все не исполнялась.
В какой то момент старик умер и попал в Рай.
В Раю он встретил Бога и говорит:
⁃ Боже, я всю жизнь был набожным человеком, молился каждый день, помогал людям, никогда не обманывал и не воровал, был очень честным и порядочным человеком. У меня была только одна мечта: выиграть в лотерею. Почему ты не исполнил эту мою единственную мечту?
И Бог ему отвечает:
⁃ Ты бы выиграл в лотерею, но какого-то хрена ты так и не купил лотерейный билет.
Выводы у нас на канале вы делаете сами.
Судя по опросу, интересно что большинство тех кто подписан на канал люди которые никогда не откликались в FAANG, остальные это либо не программисты, либо люди которые радуют богатых мужиков за деньги (никого не осуждаю). Миссия этого канала по большей части мотивация, цель лишить вас FAANG-овой девственности и впустить в вашу жизнь большие и крепкие компании.
Также интересно что большинство людей думает откликаться, но через несколько лет. Я же сторонник того чтобы делать это здесь и сейчас и не откладывать это в долгий ящик. О чем я еще напишу, когда буду затрагивать тему провалов и отказов.
Притча в тему
Жил-был старик. Он был очень набожным, молился каждый день, помогал людям, никогда не обманывал и не воровал, был очень честным и порядочным человеком.
У старика была только одна мечта: выиграть в лотерею. И он днем и ночью молил об этом Бога. Но проходили года, а его мечта все не исполнялась.
В какой то момент старик умер и попал в Рай.
В Раю он встретил Бога и говорит:
⁃ Боже, я всю жизнь был набожным человеком, молился каждый день, помогал людям, никогда не обманывал и не воровал, был очень честным и порядочным человеком. У меня была только одна мечта: выиграть в лотерею. Почему ты не исполнил эту мою единственную мечту?
И Бог ему отвечает:
⁃ Ты бы выиграл в лотерею, но какого-то хрена ты так и не купил лотерейный билет.
Выводы у нас на канале вы делаете сами.
О провалах
Самое первое что нужно принять то что провалы будут, их будет много, будет не принято слышать отказы снова и снова, но это нормально. За время откликов только в FAANG мне отказывали 6 раз (Google 2 отказа, Amazon 2 отказа, Facebook 1 отказ, Apple 1 отказ).
Когда я проходил собеседование в Google мой рекрутер сказал очень интересную вещь. Она сказала что то типа: “Не расстраивайся если ты не пройдешь собеседование. Многие кто сейчас работает в компании попали сюда со второго или с третьего раза. Я сама попала сюда только со второго раза. ”. Большинство попадает в FAANG не с первого раза. Держи это в голове.
Отказывают не только слабым кандидатам
Провалы могут постичь как слабых кандидатов, так и сильных кандидатов. Под сильным кандидатом я имею ввиду сильный как в программировании и System Design, так и в коммуникациях. Слабых понятно, но почему отказывают сильным кандидатам?
Есть много факторов которые не зависят от тебя, несмотря на степень твоей подготовки. К примеру тебе попался вопрос который ты плохо практиковал, или интервьюер встал не с той ноги и был излишне придирчив, или накануне твой сосед устроил вечеринку и ты не выспался и т .д. Интервьюер достаточно субъективен. Не смотря на то что ты вообщем можешь быть сильным кандидатом, из за каких то мелочей ему может показаться что ты недостаточно хорош и тебе откажут.
Это называется False-Negative (ложный отказ), то есть ложный отказ хорошему кандидату. Такие случаи False-Negative очень частые и причина таких случаев кроется в подходе к найму. Компания лучше откажет сильному кандидату (False-Negative), чем возьмет в штат слабого кандидата (False-Positive), так как уволить слабого кандидата потом будет сложнее. При возникновении малейших признаков слабины или сомнений тебе скорее всего откажут. Компания будет брать только тех кандидатов в найме которых уверены на 200%.
Как это исправить?
Если ты слабый кандидат и тебе отказали, просто надо больше готовиться, это понятно, но что делать если ты попал под False-Negative? Ответ банальный, немного подготовиться и откликнуться еще раз, но попозже. Единственный действенный способ обойти False-Negative это несколько попыток.
Что будет после отказа?
• Тебя не будут добавлять в никакие черные списки. Это бред и распространенный миф.
• Твой отказ сейчас абсолютно никак не будет влиять на твои будущие отклики. Тебе не будут занижать баллы за прошлые отказы. Это тоже бред.
• Если тебе отказали после собеседования, это скорее всего не из за твоего опыта(опыт работы важен только при скрининге резюме), или то что ты из какой то там страны третьего мира, или потому что ты не закончил Гарвард. На отказ влияет только твоя деятельность во время собеседования. Остальное не важно.
• После каждого собеседования тебе дадут обратную связь. Тебе дословно скажут где ты провалился, чтобы ты мог лучше подготовиться (все кроме Amazon).
• После отказа каждому кандидату дают cooldown. Cooldown это период времени в течении которого ты не можешь откликаться на вакансии компании. Обычно это от 6-10 месяцев. Это делается чтобы кандидаты не заваливали своими откликами рекрутеров и чтобы кандидат мог отдохнуть и подготовиться лучше к следующему разу. То есть по сути в одну компанию можно откликаться 1-2 раза в год, остальное время тратить на подготовку.
• После отказа HR обычно сообщает период для cooldown. Если кандидат сильный дают мало(6 месяцев), если слабый то больше(до 10 месяцев).
• После того как истечет cooldown можно сново откликаться как и прежде, без каких либо последствий.
• Нет лимита на количество откликов, хоть сто раз откликайся.
• Если твой рекрутер до сих пор работает в компании по истечению срока, можно даже повторно ему написать.
Поэтому чем раньше ты откликнешься, тем быстрее ты получишь опыт собеседований в FAANG и преодолеешь свой страх провала, а так же получишь обратную связь, что поможет тебе лучше подготовиться в будущем. Короче, чем скорее ты откликнешься, тем лучше. Есть отличная статья на эту тему http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html
#interviewtip
Самое первое что нужно принять то что провалы будут, их будет много, будет не принято слышать отказы снова и снова, но это нормально. За время откликов только в FAANG мне отказывали 6 раз (Google 2 отказа, Amazon 2 отказа, Facebook 1 отказ, Apple 1 отказ).
Когда я проходил собеседование в Google мой рекрутер сказал очень интересную вещь. Она сказала что то типа: “Не расстраивайся если ты не пройдешь собеседование. Многие кто сейчас работает в компании попали сюда со второго или с третьего раза. Я сама попала сюда только со второго раза. ”. Большинство попадает в FAANG не с первого раза. Держи это в голове.
Отказывают не только слабым кандидатам
Провалы могут постичь как слабых кандидатов, так и сильных кандидатов. Под сильным кандидатом я имею ввиду сильный как в программировании и System Design, так и в коммуникациях. Слабых понятно, но почему отказывают сильным кандидатам?
Есть много факторов которые не зависят от тебя, несмотря на степень твоей подготовки. К примеру тебе попался вопрос который ты плохо практиковал, или интервьюер встал не с той ноги и был излишне придирчив, или накануне твой сосед устроил вечеринку и ты не выспался и т .д. Интервьюер достаточно субъективен. Не смотря на то что ты вообщем можешь быть сильным кандидатом, из за каких то мелочей ему может показаться что ты недостаточно хорош и тебе откажут.
Это называется False-Negative (ложный отказ), то есть ложный отказ хорошему кандидату. Такие случаи False-Negative очень частые и причина таких случаев кроется в подходе к найму. Компания лучше откажет сильному кандидату (False-Negative), чем возьмет в штат слабого кандидата (False-Positive), так как уволить слабого кандидата потом будет сложнее. При возникновении малейших признаков слабины или сомнений тебе скорее всего откажут. Компания будет брать только тех кандидатов в найме которых уверены на 200%.
Как это исправить?
Если ты слабый кандидат и тебе отказали, просто надо больше готовиться, это понятно, но что делать если ты попал под False-Negative? Ответ банальный, немного подготовиться и откликнуться еще раз, но попозже. Единственный действенный способ обойти False-Negative это несколько попыток.
Что будет после отказа?
• Тебя не будут добавлять в никакие черные списки. Это бред и распространенный миф.
• Твой отказ сейчас абсолютно никак не будет влиять на твои будущие отклики. Тебе не будут занижать баллы за прошлые отказы. Это тоже бред.
• Если тебе отказали после собеседования, это скорее всего не из за твоего опыта(опыт работы важен только при скрининге резюме), или то что ты из какой то там страны третьего мира, или потому что ты не закончил Гарвард. На отказ влияет только твоя деятельность во время собеседования. Остальное не важно.
• После каждого собеседования тебе дадут обратную связь. Тебе дословно скажут где ты провалился, чтобы ты мог лучше подготовиться (все кроме Amazon).
• После отказа каждому кандидату дают cooldown. Cooldown это период времени в течении которого ты не можешь откликаться на вакансии компании. Обычно это от 6-10 месяцев. Это делается чтобы кандидаты не заваливали своими откликами рекрутеров и чтобы кандидат мог отдохнуть и подготовиться лучше к следующему разу. То есть по сути в одну компанию можно откликаться 1-2 раза в год, остальное время тратить на подготовку.
• После отказа HR обычно сообщает период для cooldown. Если кандидат сильный дают мало(6 месяцев), если слабый то больше(до 10 месяцев).
• После того как истечет cooldown можно сново откликаться как и прежде, без каких либо последствий.
• Нет лимита на количество откликов, хоть сто раз откликайся.
• Если твой рекрутер до сих пор работает в компании по истечению срока, можно даже повторно ему написать.
Поэтому чем раньше ты откликнешься, тем быстрее ты получишь опыт собеседований в FAANG и преодолеешь свой страх провала, а так же получишь обратную связь, что поможет тебе лучше подготовиться в будущем. Короче, чем скорее ты откликнешься, тем лучше. Есть отличная статья на эту тему http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html
#interviewtip
👍1