От переводчика: сегодня публикуем для вас статью Праякты Татавадкар, она разработчик с небольшим стажем, но знания и опыт позволили ей получить работу в Google (со второй попытки), стать членом команды разработчиков YouTube.

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

Skillbox рекомендует: Прикладной онлайн-курс «Аналитик данных Python».

Напоминаем: для всех читателей «Хабра» — скидка 10 000 рублей при записи на любой курс Skillbox по промокоду «Хабр».

Сразу скажу, что в 2014-м я уже пыталась устроиться в Google, но с треском провалила собеседование. В течение нескольких лет я училась, работала, приобретала новый опыт и знания, которые и помогли мне получить оффер.

Мотивация


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

Я поняла одну вещь: когда впереди замаячит новая возможность, я буду готовиться к предстоящим изменениям, не отвлекаясь на второстепенное. Подготовка помогла получить работу в Google, хотя мне и казалось, что вероятность была меньше 1%. Но где-то в глубине своей души я была уверена, что попробовать стоит.

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

Выделяем этапы подготовки к собеседованию


Мой опыт позволяет говорить о пяти важных вещах, которые необходимы в процессе подготовки. Программирование, дизайн, знание языка, предыдущие проекты и резюме — это самые важные, но не единственные элементы подготовки.

Программирование

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

Пример: напишите код для вывода значений от 1 до 10 в консоли (конечно, я упрощаю).

Структура

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

Пример: если бы вам пришлось написать сайт социальной сети с нуля, как бы вы спроектировали систему?

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

Проверка знания языка

На большинстве интервью от вас ожидают знания языка, чаще того, работать с которым вам наиболее удобно. В некоторых случаях задают базовые вопросы, в других — углубляются в суть.

Пример: что такое наследование в Java?

Предыдущие проекты/Резюме

Это один из этапов, к которому я иногда забывала готовиться, и совершенно напрасно. Собеседование — это не только вопросы о программировании и проектировании приложений. Это еще и попытка узнать, насколько вы хороши в качестве командного игрока. Нужно рассказать, как вы работали с другими членами прошлой команды. Вопросы здесь могут быть весьма специфичными.

Пример: расскажите немного о проекте, которым вы гордитесь.

Информация о компании

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

Пример: почему вы хотите работать именно в XYZ?



Подготовка к интервью


Я готовилась к интервью тщательно, получая информацию из самых разных источников. Ниже перечислены некоторые из них.

Курсы Udemy

Помню начало подготовки: я приобрела три курса Udemy. Они помогли мне в базовых вещах. Кстати, я не закончила ни один из них, но прошла большую часть каждого курса. Я выбрала именно эти курсы, поскольку понимала, что формат видео позволит подготовиться быстрее, чем текст. Лучше всего, когда кто-то поясняет сложные места, в которых вы не можете разобраться самостоятельно. Курсы помогли вспомнить, как решаются упражнения, которые были частью лекций.

Курсы LeetCode Premium

Я заплатила за эти курсы около $70, и они стоили каждого вложенного пенни. Они помогли мне практиковаться в программировании, в изучении сложных технических вещей, важных для обучения и работы.

Видео с YouTube

YouTube был другом, который помогал в процессе подготовки. Не только в учебе, но и в отдыхе от учебы. Идея была в том, чтобы искать видео, помогающие разобраться в вещах, которые мне не давались. Не нужно было проходить какой-то курс, достаточно посмотреть лишь короткое видео с объяснением. Часто я смотрела одни ролики и в процессе наталкивалась на другие, не менее полезные.







Я даже представить не могла, что через два месяца стану работать в команде YT! Чудеса случаются.

Другие ресурсы

Также рекомендую ресурсы от Gayle Laakmann McDowell:

Cracking the coding interview

Пошаговое объяснение собеседования в виде диаграммы.

Подготовка к этапу по дизайну систем:
Hired in tech course
Собеседование по дизайну, плейлист от Рамона Лопеса.


Я начала интенсивную подготовку к этапу по программированию за один месяц до самого собеседования, и закончила изучение, решив 60–70 задач, в основном то, что чаще всего спрашивают на собеседованиях.

Подготовка к «программистскому» этапу продолжительностью в один месяц


Я уже говорила, как мне помогли курсы LeetCode. На них обучают программировать, помогая решать задачи, которые чаще всего встречаются на собеседованиях, и раскрывая суть вопросов, задаваемых на интервью с соискателем. Справедливости ради скажу, что ни один из этих вопросов не попался мне лично, кроме того, то, о чем спрашивали меня на собеседовании, вообще не встречается в сети. Но замечу, что концепция самих вопросов очень похожа на то, что можно найти в интернете или на курсах. Все это имеет отношение к решению проблем, идентификации паттернов и другим вопросам.

В процессе подготовки я решала две и больше задач ежедневно. Проблемы могут различаться, их решение занимает от получаса до часа. Все зависит от сложности вопроса. Уровень курсов разделялся на легкий, средний, сложный, company specific. Даже задачи среднего уровня были для меня довольно сложными. Их решение занимало по часу. Мой совет — если через час вы не смогли найти решение, просто посмотрите в ответ.

В целом, я сосредоточилась на решении легких и средних задач. Сложных я решила не более десяти. В затруднительных местах приходил на помощь YouTube, я искала решение именно там.

Я старалась решать и задачи из секции company specific. И здесь сделала ошибку, работая лишь с задачами от Google. Я начала именно с них, а не с вопросов и задач «простой» секции. Они были чрезвычайно сложными, я не справлялась. В итоге расстроилась, моя мотивация снизилась, и некоторое время я просто ничего не делала. Совет — начните с простых вопросов, переходите к задачам средней сложности, и уж только потом приступайте к специфическим упражнениям.

Общие советы


Не подвергайте себя стрессу. В процессе подготовки я жила полноценной жизнью, работала с прежней эффективностью в предыдущей компании и не слишком нервничала.

Выделяйте небольшое количество времени ежедневно, но занимайтесь подготовкой один-два месяца, полностью используя выделенное время.

Выходные — наши лучшие друзья! Используйте их на всю катушку. Что касается меня, то я провела два выходных дня за подготовкой, пройдя сразу много курсов и решив несколько сложных задач. Эти выходные дали мне толчок, который помог в будущем.

HR тоже ваш друг. Перед интервью не постесняйтесь спросить о формате интервью, материалах, которые стоит использовать, общих советах.

Начинаете с общей подготовки, включая курсы, YouTube, чтение статей. Специфические материалы оставляйте на десерт.

Не занимайтесь лишь кодингом. Решайте и другие задачи, включая проектирование систем. Смотрите тематические видео. Наслаждайтесь процессом обучения.

На самом собеседовании можно попросить ноутбук. Я так сделала во время своего собеседования. Просто писать на доске решения — это как-то странно. В целом, лучше на бумаге/доске показать ход решения, а практическую реализацию уже выполнить на компьютере.

Ищите тематическую информацию в сети, делайте это время от времени.

Подумайте о худшем развитии событий. Я представила себе ситуацию, когда мне не удается устроиться в Google. В принципе, в этом случае ничего страшного не происходит, можно работать в прежней компании или попробовать пройти собеседование в любой другой. Это успокоило меня и сделало жизнь проще.

Keep calm and code on.

Skillbox рекомендует:

Комментарии (21)


  1. dmitry_dvm
    10.01.2019 13:52
    +3

    В свете последних событий я бы лучше почитал про устройство в Майкрософт. У гугла такая репутация, что туда уже как-то не хочется.


    1. lanseg
      10.01.2019 19:50

      Вы про "Project Maven"?


      1. Playa
        10.01.2019 20:27

        Да хотя бы про Gmail.


    1. senya_z
      10.01.2019 23:59
      +1

      концептуально интервью в майкрософт выглядит так же точно как и интервью в гугл (или в любую другую компанию такого уровня). и подготовка будет абсолютно такой же.


  1. Filippok
    10.01.2019 14:06
    +3

    Я выбрала именно эти курсы, поскольку понимала, что формат видео позволит подготовиться быстрее, чем текст

    Вот и выросло поколение для которого важнее "подготовиться" чем получить знания.
    Прискорбно.


    1. Whuthering
      10.01.2019 17:04
      +1

      Увы, делать так вынуждают сами компании, устраивая испытания для соискателей имеющие мало отношения к реальной работе.


    1. senya_z
      11.01.2019 00:00

      умение проходить интервью — это само по себе навык. даже если человек отличный специалист, ему все равно надо научиться проходить интервью, чтобы получить работу. и статья как бы об этом.


  1. sborisov
    10.01.2019 15:25
    +1

    Думаете последствия ЕГЭ?


    1. barbanel
      10.01.2019 16:50

      сегодня публикуем для вас статью Праякты Татавадкар
      Она же вроде из Индии?
      Вряд ли там настолько «продвинутая» система экзаменов.


      1. sborisov
        10.01.2019 16:59

        Вот тут описывается система образования. Если не фейк, то весьма похоже на ЕГЭ.

        На основании оценок, полученных на выпускных школьных экзаменах, производится набор в колледжи и университеты: чем выше итоговый балл, тем более престижные учебные заведения откроют перед индийским выпускником свои двери. Вступительных экзаменов в Индии нет.


    1. SurfCalavera
      10.01.2019 19:50

      Она из Индии. Про индийскую систему не скажу, но поскольку она построена на основе английской, то должно быть аналогично: в принципе по техническим дисциплинам выпускные эказмены в школе довольно сложные, особенно если по Advanced Mathematics. Получить высший балл непросто, надо знать предмет.

      Но формально да, по процедуре аналог ЕГЭ наверное — зачисление по итогам школьных выпускных, плюс заявление, плюс рекомендация из школы, плюс в некоторых университетах личное собеседование.


  1. vyatsek
    11.01.2019 00:36

    В больших компаниях работодатель это проект, все зависит от того, какие люди будут работать непосредственно с вами и над вами, все остальное шильдик.


  1. SiliconValleyHobo
    11.01.2019 03:27
    +1

    Абсолютно дурацкая статья, о подготовке и реальному влиянии ее на собеседование рассказано примерно никак. Ну и у меня вообще сомнения в профпригодности этой самой мадам. 3 места работы за три года? Полезные курсы с юдасити? Неумение решить задачи с тегом Google на литкоде, а необходимость решать задачи с тэгом изи? Запомнить пару баззвордов для систем дизайна? И при этом два месяца по два часа в день?

    Ну-ну. Либо отдельные офисы сильно опустили планку, либо шла она не на SWE/SRE, а на конкретного нишевого разработчика (у этих вроде спрашивают конкретные вещи по конкретным фреймворкам, а по CS довольно лайтово), либо она проходит как минорити по квоте, либо она просто невероятный гений.
    *С другой стороны, она индус, а эти любого интервьювера заболтают*

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


    1. senya_z
      11.01.2019 03:50

      если она шла на третий уровень, то литкода со сложностью Medium могло и хватить, а систем дизайн на 3-м вообще не спрашивали почти наверняка. статья здесь как бы говорит о том, что надо готовиться — решать задачи (с литкода, например), читать дизайн. а дальше — делаете поправку на уровень, на который метите, и вносите необходимые изменения в план подготовки — и задачи посложнее, и архитектуру (high scale / high load). Заключительная часть («общие советы») — так вообще почти целиком все правильно и по делу.


      1. SiliconValleyHobo
        11.01.2019 04:05

        Судя по линкдину, она была сениором до этого. Не верится, что она на L3 согласилась.
        Про общие советы тоже не совсем соглашусь. То, что надо готовиться регулярно и интенстивно — это и ежику понятно. То, что надо заранее узнать, как проходит собеседование — тоже. А вот HR и его материалы — это бесполезно. Там ничего нового, да и куча лишнего. По собеседованию HR не в курсе (у меня, например, HR неоднократно вещал, даже перед онсайтом, что STL использовать нельзя :) ).
        Со специфических материалов нужно и начинать, и продолжать, и заканчивать. Потому что именно они и нужны для отличного прохождения интервью. А здравый смысл, который позволяет не провалить то, что не получилось решить идеально — это то, что на основной работе развивается безотносительно тематики собеседования.


        1. senya_z
          11.01.2019 04:47

          Судя по линкдину, она была сениором до этого. Не верится, что она на L3 согласилась.

          синиор в ноунэйме 3 года — это таки 3-й уровень в гугле в 95% случаев. еще 5% я оставляю на случай того, что у нее есть PhD или офер от другой топовой компании на аналог 4-го в гугле (хотя в этом случае все же гугл предпочитает побить деньгами, но левел дать настоящий).
          А вот HR и его материалы — это бесполезно. Там ничего нового, да и куча лишнего.

          именно из-за пункта про HR и его полезность мне пришлось добавить «почти». да, они редко когда бывают полезными.
          Со специфических материалов нужно и начинать, и продолжать, и заканчивать. Потому что именно они и нужны для отличного прохождения интервью.

          с этим я категорически не согласен. для прохождения интервью нужен здравый смысл (который вы упомянули), умение решать задачи и разговаривать (на 3 уровень) и умение дизайнить (на 4 и выше, причем чем выше уровень, тем лучше это надо уметь). возможно, у нас с вами разное понимание того, что такое «специфические материалы». для примера, специфический материал — это «как организовать шардинг данных о машинах и клиентах убера в реальном времени». ну и пример общего материала — бинарные деревья (или любая другая структура данных) или ооп. начав с общих вещей и прорешав сотню задач 80% работы по прохождению интервью на 3 уровень вы уже сделали — голова переключилась в режим интервью и умеет находить патерны (даже если задачу раньше не видел, приблизительный подход к решению интуитивно понятен). после этого можно начинать разбирать кучу специфических вещей, которых раньше не видел — они забудутся через пару месяцев. если с них начать, то они еще до интервью могут забыться. а так есть шанс, что что-то еще в голове останется. специфические же вещи из собственного опыта можно вообще не повторять — их и так знаешь.


          1. SiliconValleyHobo
            11.01.2019 05:00

            Действительно, мы специфичность совсем по-разному понимаем. Мне казалось, что вещи типа шардинга достаточно общи (и уже по ходу разговора натягиваются на конкретный юзкейс). И противоположно, знание эффективных алгоритмов поиска подстроки — это специфичные знания, т.к. на такие вещи обычно ни в техникал толках не наткнешься, ни в работе (за редким исключением), ни на хабре. Да и в целом настраивание головы на олимпиадный толк, это весьма специфичное занятие. Многие замечательные специалисты как раз в недостаток олимпиадного мышления и упираются при попытке устроиться в топовые конторы.


            1. senya_z
              11.01.2019 05:06

              самое интересное, что это «олимпиадное мышление» достигается достаточно простым способом — таким, как у автора статьи описано — ежедневные тренировки (решение задачек) в течение какого-то продолжительного времени (кому-то хватает пары недель, кому-то нужно полгода). важно не забросить эту затею в самом начале, когда берешь задачку с маркировкой «hard» на литкоде и не можешь еще решить за пару часов. дальше становится легче.


    1. lightman
      11.01.2019 07:32

      Какой же мерзкий, слащаво-натянуто-позитивный у не топовых индусов стиль изложения
      А по-моему это типичный американский стиль, пропитанный #тыможешь #всёбудет #успешный #успех


  1. na9ort
    11.01.2019 13:15

    Во первых. Если бы не метка «перевод» я бы подумал, что это реклама курсов. Информации вида «эти курсы, те курсы, там заплатил, тут заплатил» в статье явно больше, чем описания процесса собеседования.
    Во вторых. Такое ощущение, что из статьи вырвали несколько кусков. Переходы от одной логической части к другой какие-то рваные, не плавные. Информация подаётся наобум, без логического вытекания следующей части из предыдущей.


  1. webzuweb
    11.01.2019 16:02



    Зачем так врать?
    Никакого промокода нет!
    Зачем об этом писать? Вы говорите здесь о промокоде, при этом с менеджером оказывается, что этот промокод ничего не значит, потому что уже есть новогодние скидки.