Ноя
11

Собеседования в гугл




  • Самая полная коллекция исторической статистики России-СССР.

  • 7.11 Классификация отказов при подтягивании на перекладине.


  • Доброго времени суток тебе, читатель.
    Сейчас я напишу о своих собеседованиях в гугл. Краткий поиск по теме "собеседования в гугл" дал предсказуемые, но все-таки небесполезные результаты. Я даже перечитал почтовую переписку с сотрудниками гугл, чтобы сейчас сказать с полной ответственностью: никаких просьб о неразглашении этих данных я не подтверждал.

    Как дело-то было? Приехал я в Питер, накатал резюме и первым делом послал его в гугл, естественно. Просто так, ради интереса, не мог не послать. Оттуда написали, что рады рассмотреть мою вакансию и просят назначить несколько дат для телефонного собеседования (алгоритмы, сложность, задачки, псевдо-код и т.д.) на ближайший десяток дней. После непродолжительной переписки день Х и час Ы были выбраны.
    Оба разговора были около 45 минут длиной, плюс-минус парочка, но все фразы разговора были очень точно подгаданы.
    Первый разговор: какие я знаю алгоритмы сортировки, их сложность, какая вообще бывает сложность алгоритмов сортировки, могу ли я назвать самый быстрый алгоритм и его сложноть. На последние пару вопросв точно ответить я не смог (уровень сложности оценил, а назвать точно алгоритм не смог, хотя сказал, что такие вещи в универе мы проходили). Далее - задача: есть набор натуральных чисел, упорядоченный, конечный: 1, 2, 3 и т.д. Есть число n. Нужно придумать алгоритм, который ответит: есть ли среди этого ряда 2 числа, в сумму дающих это n, или нет. Я с ходу выдал алгоритм сложности n*n. Попыхтев, выдал еще один алгоритм такой же сложности, но другой идеи. Развить идею дальше я не смог (но на следующий день придумал на основе этой идеи алгоритм n*logn). Вроде все, что было. Он сказал, что вопросов больше не имеет, и хочу ли я что-нибудь спросить у него. Я спросил, насколько он может оценить мой ответ (первое, что пришло в голову). Он тактично ушел от ответа. Далее он рассказал, что дальше будут спрашивать больше по технологиям: кодинг на специальном сайте, но ничего конкретного не сказал. На этом раскланялись.
    Скоро пришло письмо, что они хотят повторить это собеседование, но сделать его сложнее. Я ерепениться не стал.
    Второй разговор: кодинг. Да, я удивился, ожидая продолжение разговора про сложности и алгоритмы. Но темное сомнение закралось ко мне в душу, когда в день или за день до звонка мне написала девушка из гугла, которая назначала мне собеседования, с просьбой подтвердить доступ к документу Google Docs. Таким образом, все, что писал я, практически сразу перерисовывалось у интервьюера. Интерактив. Мужик позвонил (опоздал минут на 10, я волноваться начал), попросил открыть этот докс. Я открыл. Он спросил, на каком языке мне будет удобнее отвечать на его вопросы: на сях или джаве? Я предпочел си, которые я все-таки получше знаю. Его просьба: написать функцию сравнения строк. Сказано - сделано. Я написал функцию. -Оценка функции. -n операций при длине строк в n символов. -Можно быстрее? -Можно. Я изменил функцию. Сложность осталась. У меня малость замешательство. Он подталкивает: вы слышали про хеши? Ясен пень, я слышал про хеши, рассказал ему, что это такое. Он спросил, ускорят ли хеши эту функцию. Я начал тупить и сказал, что все зависит от реализации функции и начал гнать какую-то пургу. Он попросил меня написать функцию взятия хеша от строки. Я написал и сразу же прозрел. К этому моменту простая функция сравнения строк char* переросла в целый класс myString с парой конструкторов и оператором сравнения. После прозрения я кое-что в классе поменял, объяснил ему свои действия, переписал функцию сравнения в одну строчку и одно действие, чем вызвал радость. На этом его вопросы закончились. Есть ли у меня вопросы к нему? Да, какую математику гугл использует в своих проектах? Разную, в зависимости от проекта. Перекинувшись еще парой предложений на эту тему, интервью было закончено. Have a nice day, Alexander!

    Пока (ночь среда-четверг) писем от гугл я не получал (последнее интервью - вечер вторника). Торопиться ни мне, ни ему некуда.

    Мои впечатления:
    1. Стыд. И на первом, и на втором интервью были вопросы, на которые я мог ответить лучше, потому что я это знал и умел, а сейчас забыл (конечно, было волнение и нехилое, но оно проходило уже через 3 минуты). Учил в универе, постигал сам по книжкам, но забыл. Очень стыдно перед самим собой и учителями. Потому что - могу лучше.
    2. Все-таки гордость за то, что осмелился и пока не облажался.
    3. К собеседованию надо готовиться, но по какой теме - непонятно. Потому что алгоритмы, сложность, основы языка и понимание того, что делаешь и надо сделать - азбука для программиста. Копирование строк хорошо разобрано у Страуструпа (за что спасибо ему за прекрасную книгу и мне, который ее читал без пинка из сферического вакуума). Да, основы надо знать. Если буду дальше заниматься программированием - надо учить и повторять.
    4. Спасибо дорогому и любимому Фархип.ру (а особенно - тебе, Вадим) за занятия по английскому, фильмы на английском, которые мы смотрели в обед. Английский знать надо.
    Оценки:
    Оба своих интервью я оцениваю на 3.5 - 4 из 5. Я ответил на большинство вопросов, которые мне задали. Я выполнил все задания, которые мне давали. Не идеально, но работает.
     
    Что ж, теперь я буду ждать следующего письма из гугл с нетерпением. Интересно, что же будет дальше?















  • Самая полная коллекция исторической статистики России-СССР.

  • 7.11 Классификация отказов при подтягивании на перекладине.



  • Социальные сети

    Рубрики

    Последние записи