что спрашивают на собеседовании в яндекс

Как проходит собеседование в Яндекс: что спрашивают, как пройти?

что спрашивают на собеседовании в яндекс. photo2 292416 yyy1.png.c955a1ba3c19a01188637d8c26958526. что спрашивают на собеседовании в яндекс фото. что спрашивают на собеседовании в яндекс-photo2 292416 yyy1.png.c955a1ba3c19a01188637d8c26958526. картинка что спрашивают на собеседовании в яндекс. картинка photo2 292416 yyy1.png.c955a1ba3c19a01188637d8c26958526.

Собеседование в Яндекс проходит в несколько этапов и в совокупности длится нескольк о недель. Как проходи т собеседование в Яндекс — мы расскажем чуть ниже.

Собеседование в Яндекс

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

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

Экспресс-собеседование в Яндекс

что вы ждете от работы в Яндексе?

какие у вас интересы?

У этого мини-собеседования два пути: либо вам откажут, либо пригласят пройти дальнейшее собеседование со специалистом из Яндекса. Если вам откажут — не переживайте, так как вам никто не запрещает штурмовать эту «крепость» еще раз. Если вас пригласили на дальнейшее собеседование — самое время готовит ь ся.

Онлайн-собеседование по Скайпу или Зуму в Яндекс

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

либо следующий этап;

Очное собеседование в Яндекс

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

Знакомство с будущим местом работы

Заключение

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

Источник

Cобеседование на позицию стажера в Яндекс на аналитика данных

Всем привет! Целью данного поста является:

Поделиться личным опытом.

Помочь другим кандидатам при подготовке к собеседованию в Яндекс

Часть 1. Подача заявки и Я.Контест

После прохождения десятка курсов на степике, я понял, что хочется применить этот опыт где-то и решил подать заявку на стажировку в Яндекс на позицию стажёра по направлению «Аналитик данных». Зашёл на сайт, заполнил анкету, через час получил ссылку на тестовое задание в Яндекс Контест. Увидел, что даётся 6 часов на решение задач и принял решение выделить утро субботы на прохождение теста.

UPD: условия задач удалены по просьбе

Тест оказался не очень сложным, было 6 задач. 2 из них на математическую статистику (задачи A и B), 2 стандартные задачи на Питоне (C и D), 1 задача на базовые знание библиотеки Pandas (E) и задача на логику и аналитическое мышление.С последними двумя задачами я справился за полчаса, с первой задачей по матстату ещё минут за 10, на вторую задачу было потрачено 20 минут, и осталось целых 5 часов на 2 задачи на питоне. На каждую я потратил минут по 30, но в одной задаче не прошёл несколько тестов (скорее всего, условие мною было проинтерпретировано неверно), а в другой выдавал memory limit. В итоге, оптимизировать код и дорешать задачи до конца не вышло. Ещё раз проверил 4 прошлые задачи и отправил решения.На следующий день мне приходит письмо счастья от рекрутера о том, что со мной готовы провести техническое интервью и предложили выбрать время, также предупредили, что оно займёт около часа.

Часть 2. Первое интервью

Английский и русский язык (что будет?)

Отделение знаков препинания

Первые слова в предложении

Сергей сказал (в конце интервью), что я с задачей справился и что были ребята, которые не до всех пунктов могли додуматься(я был польщён). Далее были задачи по теорверу:

Бросаем монетку 10 раз. Какова вероятность, что выпадет 10 орлов? [(1/2)^10]

Бросаем монетку 10 раз. Какова вероятность, что выпадет 9 орлов? [10*(1/2)^10]

В ящике есть 4 вида носков. Носков бесконечно много. Сколько нужно изьятий, чтобы получить пару? [5]

Далее, задача на математику: «У Аркадия много жён. У него есть коллекция кактусов, которые он решил раздать всем жёнам. Первой жёне отдал 1000 кактусов и 10% от остатка. Второй жене 2000 кактусов и 10% от остатка. И так далее… Каждая жена получила поровну. Сколько жён у Аркадия?Ход решения я тоже рассказал. Чтобы не ждать, пока я посчитаю, он мне сказал, сколько всего было кактусов и я дал ответ. [81000 всего кактусов, 9000 каждой жене]. Последней была задачка на проверку аналитических способностей:20 детям в детском садике задали вопрос: живут ли их родители вместе? На что 2 ребёнка ответили, что не живут. На следующий день в местной газете выходит статья с заголовком: «10% семей в нашем городе в разводе». Почему данное утверждение неверно? Всего есть 6 ключевых пунктов, до 2х последних я, к сожалению, не додумался:

Дети могут быть из одной семьи

Разный возраст детей, и, соответственно, разные группы, то-то более осознанный, кто-то ещё не понимает вопроса.

Месторасположение садика, может выборка была только в благополучном/неблагополучном районе.

У ребёнка может быть один родитель или у ребёнка может быть мачеха/отчим, отсюда неверные результаты.

Есть семьи, где дети не ходят в садик.

После этой задачи Сергей рассказал мне как я в целом отвечал и рассказал, чем занимается отдел аналитики.У них есть 2 типа задач:

Визуализация данных, представление менеджерам отчётов, в частности, работа в Tableau, то есть создание дашбордов.

Прогонка данных из одного сервиса в другой

Я позадавал вопросы и Сергей сказал, что назначит через рекрутера ещё одно интервью, где мне подробнее расскажут про задачи.

После интервью создалось приятное впечатление о интервьюере и о возможных задачах и в целом от общения.

Часть 3. Второе интервью

Часть 4. Решение

На следующий день от рекрутера приходит письмо:

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

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

Часть 5. Заключение

Пройдусь по каждому пункту.

Несложные, интересные задачи, но непонятен момент с проверкой некоторых задач на оптимальность кода. Действительно ли аналитик должен придумывать самый оптимальный по времени и памяти код или аналитик нужен для других целей?

Рекрутер довольно развернуто и оперативно отвечал на все вопросы по почте, после 1го интервью сразу перешел в телеграм для удобства

Первое интервью мне очень понравилось. Задачи, подсказки от Сергея, лёгкое и приятное общение.

Было слишком много стандартных вопросов, словесная нагрузка в начале интервью от Светланы. Считаю, что можно было кратко и менее нагружено представиться и рассказать, чем занимается отдел. Непростые вопросы на аналитику, сейчас поясню. Должен ли человек, который подаёт на позицию стажёра «Аналитик данных» знать продуктовую аналитику? Наверное, да. Должен ли человек до приглашения на работу вникнуть во все тонкости процесса, не будучи знакомым с ним изнутри? Наверное, нет.

Попробую ли я ещё раз? Думаю, да. Через полгода, может раньше. Несмотря на отказ. Мне нравятся сервисы, которые делает компания и я активно ими пользуюсь. Поэтому было бы интересно поучаствовать в их улучшении.

Буду рад, если этот пост поможет кому-то подготовиться и попасть в Яндекс.

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

Источник

Собеседование в Яндекс: театр абсурда :/

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

что спрашивают на собеседовании в яндекс. 6920ff512820b40865ca54b62ffd70cc. что спрашивают на собеседовании в яндекс фото. что спрашивают на собеседовании в яндекс-6920ff512820b40865ca54b62ffd70cc. картинка что спрашивают на собеседовании в яндекс. картинка 6920ff512820b40865ca54b62ffd70cc.

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

что спрашивают на собеседовании в яндекс. fbaa2993594d67f14d6e89a50e77fdab. что спрашивают на собеседовании в яндекс фото. что спрашивают на собеседовании в яндекс-fbaa2993594d67f14d6e89a50e77fdab. картинка что спрашивают на собеседовании в яндекс. картинка fbaa2993594d67f14d6e89a50e77fdab.

Вы тоже заметили «вопросы на C++» в методичке для питониста? Не то чтобы я знал C++, но в институте проходили, авось что-нибудь да вспомню на интервью.

что спрашивают на собеседовании в яндекс. 5d39b0c454140d1aef1689ab6bff56f4. что спрашивают на собеседовании в яндекс фото. что спрашивают на собеседовании в яндекс-5d39b0c454140d1aef1689ab6bff56f4. картинка что спрашивают на собеседовании в яндекс. картинка 5d39b0c454140d1aef1689ab6bff56f4. что спрашивают на собеседовании в яндекс. 2a99d0d85c31babef6a9f84d4d670f58. что спрашивают на собеседовании в яндекс фото. что спрашивают на собеседовании в яндекс-2a99d0d85c31babef6a9f84d4d670f58. картинка что спрашивают на собеседовании в яндекс. картинка 2a99d0d85c31babef6a9f84d4d670f58.

Интервью 1

Итак, о чём вас спросит Яндекс на интервью? Выберите один правильный вариант:

3) как вы будете решать вот эту бизнес-задачу

4) как решить вот эту алгоритмическую задачу без стандартной библиотеки

Задача 1

Даны два массива: [1, 2, 3, 2, 0] и [5, 1, 2, 7, 3, 2]
Надо вернуть [1, 2, 2, 3] (порядок неважен)

Фактически нам нужно вернуть пересечение множеств, но с повторением элементов. Не включая мозг, я начал сразу кидать что-то вроде

Внимательные читатели намекнули, что на строчках 11 и 12 нужно использовать el , а не a , но на интервью и так прокатило 🙂

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

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

Задача 2

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

Дана строка (возможно, пустая), состоящая из букв A-Z: AAAABBBCCXYZDDDDEEEFFFAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBB
Нужно написать функцию RLE, которая на выходе даст строку вида: A4B3C2XYZD4E3F3A6B28
И сгенерирует ошибку, если на вход пришла невалидная строка.
Пояснения: Если символ встречается 1 раз, он остается без изменений; Если символ повторяется более 1 раза, к нему добавляется количество повторений.

Ну ок, хотят проверить знание каких-то базовых вещей.

Так, давайте может что-то другое?

Задача 3

Дан список интов, повторяющихся элементов в списке нет. Нужно преобразовать это множество в строку, сворачивая соседние по числовому ряду числа в диапазоны. Примеры:
[1,4,5,2,3,9,8,11,0] => «0-5,8-9,11»
[1,4,3,2] => «1-4»
[1,4] => «1,4»

Так блин, серьёзно? Я наверно очень мутный тип, если две предыдущие задачи не показали мой скилл на этом классе задач.

Ну ок, хотят проверить знание каких-то базовых вещей.

На этом интервью закончилось, и я стал ждать вестей от рекрутера.

Интервью 2

В назначенный час я бахнул кофейку и встретился в зуме с новым рекрутером. Интервью #2 началось.

Задача 4

Я, признаюсь, был готов ко всему, но не к этому:

Дан массив из нулей и единиц. Нужно определить, какой максимальный по длине подинтервал единиц можно получить, удалив ровно один элемент массива.

Ну ок, хотят проверить знание каких-то базовых вещей. Вот такой ужас у меня вышел:

Ну что, Яндекс, ты доволен? Ты доволен?! Кто король алгоритмов?! Я король алгоритмов! Давай, удиви меня.

что спрашивают на собеседовании в яндекс. f6880adf3971ad1559f1c54157108a35. что спрашивают на собеседовании в яндекс фото. что спрашивают на собеседовании в яндекс-f6880adf3971ad1559f1c54157108a35. картинка что спрашивают на собеседовании в яндекс. картинка f6880adf3971ad1559f1c54157108a35.

Задача 5

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

Ну ок, хотят проверить знание каких-то базовых вещей.

Не без подсказки интервьюера, но я написал это, и теперь менеджер, наверно, может эффективно узнать важную инфу. Круто. Пора прыгать на следующее собеседование (да, они шли одно за другим).

Интервью 3

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

Задача 6

Sample Input [«eat», «tea», «tan», «ate», «nat», «bat»]
Sample Output [ [«ate», «eat», «tea»], [«nat», «tan»], [«bat»] ]

Т.е. сгруппировать слова по «общим буквам».

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

Эта задача простая, наверно хотят удостовериться, что пока я разруливал дела в отеле, я не забыл, как пользоваться словарём. Не лишено смысла! Давайте накидаем что-нибудь простое.

Задача 7

Вход: [1, 3] [100, 200] [2, 4]
Выход: [1, 4] [100, 200]

Честно говоря, где-то тут мне уже стало плевать на собеседование, Яндекс и все эти алгоритмы, и в реале я бы уже просто послал всех в /dev/null, но мне хотелось знать, что в конце всего этого, ведь конец должен быть? Будет задача, где я завалюсь, и это кончится. Что-то вроде эвтаназии, но в интервью.

Ну ок, хотят проверить знание каких-то базовых вещей.

Задача 8

Время собеседования подходит к концу, но всё-таки можно ещё поболтать про кодинг и поспрашивать практические вопросы, например по Django или SqlAlchemy:

Дан массив точек с целочисленными координатами (x, y). Определить, существует ли вертикальная прямая, делящая точки на 2 симметричных относительно этой прямой множества. Note: Для удобства точку можно представлять не как массив [x, y], а как объект

Ну ок, хотят проверить знание каких-то базовых вещей.

Тут я как всегда пошёл куда-то не туда и написал вот что:

Здесь я прям видел, как интервьюер ожидал что-то другое, а получил меня. Ну бывает. Я тоже, знаете, ожидал собеседование.

Так, третье собеседование пройдено, и эти садисты сказали, что я прошёл дальше. Ну вот за что?

что спрашивают на собеседовании в яндекс. 4aee189cff59cdbe8da69d2346ab4cb5. что спрашивают на собеседовании в яндекс фото. что спрашивают на собеседовании в яндекс-4aee189cff59cdbe8da69d2346ab4cb5. картинка что спрашивают на собеседовании в яндекс. картинка 4aee189cff59cdbe8da69d2346ab4cb5.

Интервью 4

Честно говоря, вот тут я потерялся, потому что я всё жду, когда начнётся собеседование, ну, человеческое собеседование имеется в виду, а пока вместо этого я превращаюсь в алгоритмэна.

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

Кстати, где-то в этот момент я узнал, что я юзаю что-то вроде тора, но для собеседований: я общаюсь с рекрутером, мой рекрутер общается с рекрутером Яндекса, а рекрутер Яндекса общается с собеседователями, а может цепочка ещё больше. Меня это поразило прям: вы меня тут дерёте за O(n^2) в решениях, так может я у вас посчитаю длину цепочки от кандидата до собственно интервьюера и спрошу «а можно оптимальнее?!«

Итак, вот задачка от мини-босса:

Задание 9

Написать функцию, которая вернёт True, если из первой строки можно получить вторую, совершив не более 1 изменения (== удаление / замена символа).

Погодите, да это же. Ну ок, хотят проверить знание каких-то базовых вещей. Сссссуууу. пер.

Если вы хотите решить задачу не так, как хотел интервьюер, то смотрите:

Задание 10

Осталось совсем немного времени, и вот в довершение пара реально сложных заданий на понимание многопоточности и gil в python:

Дан список интов и число-цель. Нужно найти такой range, чтобы сумма его элементов давала число-цель.

result = range(2, 4) # because elements[2] + elements[3] == target

А теперь все вместе хором: НУ ОК, ХОТЯТ ПРОВЕРИТЬ ЗНАНИЕ КАКИХ-ТО БАЗОВЫХ ВЕЩЕЙ. Вы восхитительны. Спасибо.

Здесь я уже не успевал по времени и озвучил идею: мы бежим по списку и сохраняем в память значения сумм для всех range до этого элемета. Иными словами, для каждого элемента мы пробуем делать ranges, которые кончаются на этом элементе, и смотрим на их сумму элементов.

Источник

Задачи на собеседованиях в Яндексе

Открытые вакансии на должность разработчика в Яндексе есть всегда. Компания развивается, и хороших программистов не хватает постоянно. И претендентов на эти должности тоже хоть отбавляй. Главная сложность – отобрать действительно подходящих кандидатов. И в этом плане Яндекс мало чем отличается от большинства крупных IT-компаний. Так что базовые принципы, описываемые в этой статье, могут быть применимы не только к Яндексу.

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

что спрашивают на собеседовании в яндекс. 8dbd9bc695f98c2ac16fe0755f4c07f0. что спрашивают на собеседовании в яндекс фото. что спрашивают на собеседовании в яндекс-8dbd9bc695f98c2ac16fe0755f4c07f0. картинка что спрашивают на собеседовании в яндекс. картинка 8dbd9bc695f98c2ac16fe0755f4c07f0.

Чего ждать на собеседовании

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

Иногда, чтобы понять, что кандидат не подходит, достаточно десяти минут: если человека ставят в тупик базовые вопросы о синтаксисе языка, на котором он по его утверждению писал несколько лет, дальнейший разговор смысла не имеет. Именно поэтому чаще всего первый этап серии собеседований в Яндексе обычно проводится через Skype. Все-таки отказать человеку, который добирался до офиса час по пробкам на пятой минуте собеседования – нехорошо с точки зрения вежливости, а еще 2 часа его мучать, зная что, скорее всего, не возьмешь – с точки зрения этики. Соответственно, удаленное интервью позволяет сэкономить время и нервы обеим сторонам.

С вопросами о синтаксисе главное – не перестараться, намеренно пытаясь подловить на каком-нибудь малоизвестном факте. Есть языки программирования с очень длинной и непростой историей, у которых примерно половина их возможностей – это какие-то исторически сложившиеся сложные и ненужные костыли. К таким, например, относится и наш любимый C++. Если вы не разработчик компилятора C++, почти всегда можно найти что-то, чего вы в языке не знаете. Просто непонятно, зачем это могло бы вам понадобиться.

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

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

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

Пишем код

Менеджер: «Как давно вы жонглируете?»
Кандидат: «Ну, примерно шесть лет».
Менеджер: «Тремя, четырьмя, пятью шарами умеете жонглировать?»
Кандидат: «Да, да и да».
Менеджер: «Работаете с горящими предметами?»
Кандидат: «Конечно».
Менеджер: «…ножами, топорами, открытыми коробками с сигарами, мягкими широкополыми шляпами?»
Кандидат: «Мне всё равно, чем жонглировать».
Менеджер: «А какую-нибудь весёлую скороговорку знаете?»
Кандидат: «Онабесподобна».
Менеджер: «Что ж, мне нравится. Думаю, мы вас возьмём».
Кандидат: «Аааа… Не хотите посмотреть, как я жонглирую?»
Менеджер: «Хм, мне как-то это не пришло в голову».

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

Сейчас мы вам приведем разбор задачи подобной тем, что могут попасться вам на собеседовании. Мы придумали ее специально для демонстрации среднего уровня сложности.

По условию задачи у вас есть формула с цифрами, операциями +-*/ и скобками. Нужно написать программу, которая ее вычисляет. Формула может быть большой. Хочется, чтобы программу можно было легко дорабатывать, вводя функции, параметры и т.д.

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

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

Но так как скобки присутствуют, дерево может иметь неограниченную вложенность. Наивное решение задачи выглядит следующим образом: находим скобки и полностью выкусываем их из получившейся строки и заменяем, например, на имена переменных a1, a2, a3, a4… После разбора получаем двухуровневое дерево. Затем в каждом узле дерева, где осталась переменная, проводим разбор того, что было в скобках, и вставляем результаты вместо соответствующих кусков поддерева.

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

Но большинство программистов отметет этот подход как слишком лобовой и неэффективный, сразу перейдя к поиску линейного алгоритма. Для этого, очевидно, начиная рекурсию со скобками не нужно сразу искать закрывающую. Оба наших тестовых кандидата пошли именно по этому пути. В результате у обоих получилось нечто похожее на recursive descent parser (подвид LL-парсера).

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

Если говорить об алгоритмах разбора, то классическим считается shunting yard algorithm. Также помимо Recursive descent parser популярными является LR-парсер.

Кроме кода

Если же кандидат претендует на звание senior-разработчика, мы обязательно постараемся понять, имеет ли он представление о планировании архитектуры системы.

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

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

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

В конечном итоге, мы принимаем решение, подходит нам кандидат или нет. Однако окончательно ясно, приживется ли человек в Яндексе, становится после испытательного срока. Если бы о работнике все можно было понять исключительно по собеседованию, мир бы выглядел совсем иначе.

На тех, кто по каким-то причинам не прошел собеседование, мы за редкими исключениями крест не ставим. Как правило, мы готовы рассматривать кандидата снова через некоторое время. Многие рекрутирующие разработчики дают кандидатам советы и список литературы. Правда, мы не можем поручиться, что так делают абсолютно все, но часто для разработчика отказ кандидату – не меньший стресс, чем для самого кандидата.

(Кстати, все вакансии Яндекса можно найти здесь.)

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *