Какие вопросы задают на собеседовании в яндекс
Перейти к содержимому

Какие вопросы задают на собеседовании в яндекс

  • автор:

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

Lorem ipsum dolor

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

Кто не знает компанию Яндекс в Рунете? Все знают. Поэтому потенциальн о м ало кто будет против поработать в этой компании, особенно это касается IT-специалистов. Если до Гугла кажется, что тяжело дотянуться, то Яндекс расположен ближе, причем и территориально , и по менталитету. Но по большому счет у ч то устраиваться в Яндекс, что устраиваться в Гугл — это тот еще квест. Поэтому в первую очеред ь н ужно быть подготовленным морально и профессионально.

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

Для того чтобы попасть на собеседование в Яндекс, первым делом нужно откликнуться на вакансии этой компании. Самые актуальные ваканси и н аходятся в разделе «Вакансии». Если у вас на компьютере в браузере стоит стартовая страница от Яндекса или вы пользуетесь Яндекс.Браузером, то найти этот раздел не составит труда — он расположен в самом низу страниц ы .

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

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

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

  • зачем вам это?
  • что вы ждете от работы в Яндексе?
  • какие у вас интересы?
  • какая специализация?
  • и др.

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

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

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

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

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

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

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

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

Как только вы сообщите о выборе своего будущего места работы, вам нужно будет подождать еще 3-5 дней, пока подготовят официальное предложение от Яндекса на трудоустройство. Если вас устроят все условия, то все , что вам останется , — это прийти на работу в согласованную дату.

Заключение

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

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

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

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

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

Как вы думаете, что делают рекрутеры, когда видят «Alexandr, NOT OPEN FOR WORK»? Правильно, пишут «Алексей, рассматриваете вариант работать в X?» Я обычно игнорирую это, но тут мне предложили попытать счастья с Яндекс.Лавкой, и я не смог пройти мимо — интересно было, смогу ли я устроиться куда-нибудь, когда введут великий российский файерволл. К тому же за последние 3 года я проходил только два интервью, и мне показалось, что я не в теме, что нынче требуется индустрии. Блин, я оказался и вправду не в теме. И вы, скорей всего, тоже — об этом и статья.

Короче, я согласился — буду продавать дошики и похмелье!

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

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

Тут что-то написано про leetcode, но я человек ответственный, поэтому к интервью не готовлюсь. Это кстати я не шуткую, реально: если вы ответственный человек, то вы, когда предстаёте перед компанией, отвечаете за то, что вы заявляете как ваши умения. Можно выучить типовые вопросы и даже казаться умнее и опытнее, чем есть, но по факту это переобучение на тестовых заданиях/вопросах. Ребята из ml поймут. Поэтому я гол как сокол и чист как стёклышко или что там ещё блин, если что-то знаю — скажу, что-то не знаю — скажу что не знаю. Таким образом работодатель знает, что он покупает и сколько ещё нужно вложить в меня средств на обучение. Все счастливы.

Интервью 1

Так вот, назначили мне собеседование, и в назначенный час я был в зуме. Сразу скажу, что все — и рекрутер, и интервьюеры — вежливые и приятные в общении люди, тут я подкопаться не могу, ну разве что иногда они слишком корректные: спрашивают, ничего, если будет стажёр-наблюдатель и если они будут делать заметки в ходе интервью. На какой-то из итераций мне даже стало интересно, что будет, если я скажу «нет, нельзя», но именно тогда меня не спросили, так что предлагаю вам проверить самим.

Мне кинули ссылку на Яндекс.Блокнот (это я его так называю, вообще он Яндекс.Код и живёт тут) — там можно вместе писать текст и включать подсветку синтаксиса. Запускать там, естественно, ничего нельзя, потому что это уже реализовано в coderpad, а он недостоин Яндекса. Ну ок, мне на самом деле проще, потому что написать код и написать хотя бы запускаемый код — это очень разные вещи. Минус — нельзя прогнать тесты и вообще тут как битва самураев: ваша правда против правды рекрутера, один доказывает, почему работает, другой — почему нет.

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

2) текущие проекты

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

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

Именно так! Так давайте решим эту алгоритмическую задачу. Помните, у нас нет collections.Counter , itertools.groupby, set.intersection , вообще случилась война и стандартная библиотека питона погибла, оставив после себя int , bool , for , if и while . Ну ок, хотят проверить знание каких-то базовых вещей.

Задача 1

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

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

common = set(a).intersection(set(b)) # найдём общие элементы for el in common: occurs = min(a.count(el), b.count(el)) # и посчитаем, сколько они встречаются

Но меня осадили — у нас война, поэтому никаких intersection , только хардкор. После нескольких итераций и намёков интервьюера я родил вот это:

def common_elements(a, b): b_dict = defaultdict(int) # defaultdict выжил :) for el in b: b_dict[el] += 1 # я считаю все элементы из b, т.е. типа collections.Counter result = [] for el in a: count = b_dict[el] if count > 0: # если какой-то элемент из a встречается в b result.append(a) # то это успех b_dict[a] -= 1 # и я "вынимаю" его из b, т.е. уменьшаю его количество на 1 return result 

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

Тут же меня спросили, какова сложность алгоритма — ок, норм, это нужно знать, потому что в реальном программировании мне это потребовалось целых 0 раз. Ответил.

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

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

Задача 2

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

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

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

Вроде просто: for grouper, items in groupby(string) . А, да, у нас была война. Ничего нет.

def convert(s: str) -> str: result: List[str] = [] last_sym = None # последний символ, что мы видели count = 0 # и сколько мы его видели # мы будем идти по строке и записывать в result при смене символа for sym in (list(s) + [None]): # последний None искусственно триггерит посленюю смену символа if last_sym and sym != last_sym: # если случилась смена символа if count == 1: result.append(last_sym) else: result.append(last_sym + str(count)) # начнаем запоминать новый символ count = 1 last_sym = sym else: # символ просто повторился count += 1 # ну ок, запомнили что символ видели на 1 раз больше return ''.join(result) 

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

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

Задача 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»

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

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

 def repr(group_start, group_end) -> str: # это просто правильно печатает группу if last_group_start == last_group_end: return str(last_group_end) return f'-' def squeeze(numbers) -> str: if not numbers: # граничный случай return '' numbers_ = sorted(numbers) # сначала располагаем по порядку groups = [] # тут будем хранить группы last_group_start = None last_group_end = None for n in numbers_: # это первая итерация, просто говорим, что группа началась и закончилась if last_group_end is None: last_group_start = n last_group_end = n # если предыдущая группа отличается от текущего числа на 1, # то это число входит в группу, то есть становится концом группы elif last_group_end == n-1: last_group_end = n # иначе мы понимаем, что группа закончилась, # мы её запоминаем и начинаем новую else: groups.append(repr(last_group_start, last_group_end)) last_group_start = n last_group_end = n else: # посленюю группу придётся обработать вручную groups.append(repr(last_group_start, last_group_end)) return ','.join(groups) 

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

Через пару часов мне сказали, что всё отлично и меня ждут на следующих интервью — 2 штуки подряд — задачи на написание кода. Так, минуточку, а что было до этого — написание говнокода? Ладно, там видно будет. Уж точно что-то новенькое, следующий этап всё-таки.

Интервью 2

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

Задача 4

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

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

[1, 1, 0]

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

# пример: [0, 0, 1, 1, 0, 1, 1, 0] def max_ones_length(lst: List[int]) -> int: max_ones_length = 0 # тут мы хотим получить сгруппированные 0 или 1 и их количество: subranges = [] # [(0, 2), (1, 2), (0, 1), (1, 2), (0, 1)] last_el = None # последний элемент, который мы просмотрели # идём по элементам списка for el in lst + [0]: # [0] - это ручной триггер для обработки последнего элемента if last_el != el: # если произошла смена 0 на 1 или наоборот if el == 0: # если это была смена 1 на 0 # пример: subranges == [(0, 2), (1, 2), (0, 1), (1, 2)] # у нас произошла смена 1 на 0, до смены единица шла 2 раза # (см последний элемент subranges) - проверяем, вдруг это # максимальная длина try: last_ones_length = subranges[-1][1] max_ones_length = max(last_ones_length, max_ones_length) except IndexError: pass # а может если мы удалим один ноль между элементами 1 и 3, # то получится более длинная последовательность единиц? try: gap_length = subranges[-2][1] if gap_length == 1: combined_ones_length = subranges[-1][1] + subranges[-3][1] max_ones_length = max(combined_ones_length, max_ones_length) except IndexError: pass # добавляем новый счётчик последовательности в subranges subranges.append((el, 1)) else: # увеличиваем счётчик последней последовательности на 1 subranges[-1] = (el, subranges[-1][1]+1]) last_el = el # костыль, граничное условие if len(subranges) == 2 and subranges[1][1] == 1: return subranges[0][1] - 1 return max_ones_length 

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

Задача 5

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

sample = [ (1, 2), (1, 3), (2, 4), (2, 3), ]

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

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

from collections import defaultdict def max_num_guests(guests: List[tuple]) -> int: res = 0 # для каждого дня посчитаем, сколько приехало и сколько отъехало arriving = defaultdict(int) leaving = defaultdict(int) for guest in guests: # O(n) arriving[guest[0]] += 1 leaving[guest[1]] += 1 current = 0 # едем по дням в порядке увеличения, добавлем приехавших и убавляем уехавших, # считаем сколько стало for day in sorted(set(arriving.keys()).union(set(leaving.keys()))): # O(n*log(n)) + O(n) current -= leaving[day] current += arriving[day] if current > res: res = current return res 

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

Интервью 3

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

Задача 6

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

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

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

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

def group_words(words: List[str]) -> List[List[str]]: groups = defaultdict(list) for word in words: # O(n) key = sorted(word) groups[key].append(word) return [sorted(words) for words in groups.values()] # O(n*log(n)) 

Тут меня спросили «а какая сложность у сортировки», и я воспользовался лайфхаком. Дело в том, что все собеседования проводятся разными людьми, и они вообще не знают ваш контекст — например, о чём я говорил в предыдущих сериях и, например, кхм, сколько алгоритмических задач я прорешал до этого. На прошлом собеседовании меня спросили, какая сложность у сортировки, я не знал и мне сказали — и на этом собеседовании я уже ответил.

Задача 7

Слияние отрезков:

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

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

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

def merge(ranges: List[Tuple[int, int]]) -> List[Tuple[int, int]]: if not ranges: return [] result_ranges = [] last_range = None # последний отрезок, что мы видели for rng in sorted(ranges): # обязательно сортируем if not last_range: last_range = rng continue # если начало текущего отрезка меньше конца предыдущего if rng[0] 

Задача 8

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

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

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

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

from statistics import mean def is_vertical_symmetry(points: List[Point]) -> bool: # сначала найдём вертикальную прямую в середине всех точек x_center = mean(p.x for p in points) # тут будем хранить точки, для которых пока не нашли пары: unmatched_points = defaultdict(int) for point in points: if point.x == x_center: # если точка на прямой, то она сама себе пара continue # создадим "брата" - точку, которая симметрична текущей относительно вертикальной прямой brother = Point( x = x_center * 2 - point.x, y = point.y, ) # если этот брат есть в unmatched_points, то достаём его оттуда и говорим, что текущая точка сматчилась if unmatched_points[brother]: unmatched_points[brother] -= 1 # иначе добавляем эту точку в не-сматченные else: unmatched_points[point] += 1 return not any(unmatched_points.values())

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

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

Интервью 4

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

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

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

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

Итак, началась четвёртое (да, ей-Богу) интервью. Интервьюер спрашивает, на каком языке я буду решать задачки. На йоптаскрипте, разумеется. Кстати, по косвенным признакам я понял, что интервьюер больше в C, чем в питон, и это тоже здорово. Итак: после того как компания решила нанять сеньор питон разраба за 200к и сношала его 3 часа на долбанных задачках, она отправляет на собеседование сишника и спрашивает, на каком языке кандидат будет сношаться с долбанными задачками. Л - логика!

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

Задание 9

Даны две строки.

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

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

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

def no_more_than_one_change(string1: str, string2: str) -> bool: # string1: a b c d # string2: a b c max_length = max(len(string1), len(string2)) # наибольшая длина строк diff = abs(len(string1) - len(string2)) # разница в длине строк # дополняем строки до максимальной длины при помощи zip_longest, # то есть на место "недостающих" элементов ставим None, и строки # теперь одинаковой длины; # ----> # string1: a b c d # string2: a b c None # идём слева направо по обеим строкам и сравниваем символы, # находим индекс, при котором строки начинают отличаться: change_left = None for i, (char1, char2) in enumerate(zip_longest(string1, string2)): # O(n) if char1 != char2: change_left = i # в нашем примере будет 3 break else: # если мы такой индекс не нашли, то строки просто совпадают return True # теперь делаем то же, но идём справа налево: # string1: a b c d # string2: None a b c #  

Внимательный читатель может заметить, что, по-моему, это даже на приведённом примере не работает 🙂 , хотя пофиксить несложно. Так или иначе, вот такие вещи как я написал лично мне тяжело гонять в голове, и интервьюеру тоже; интервьюер принял это как решение, прогнав несколько тестов в уме. Если хотите возвести это в абсолют, то пишите сразу на brainfucke и с умным видом объясняйте, почему оно будет работать. А вообще я просто тонко намекаю, что всё-таки компилятор/интерпретатор под рукой нужен.

Задание 10

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

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

elements = [1, -3, 4, 5]

target = 9

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

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

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

[1, -3, 5, 6, 2, 3, 5] ^____[range(0,1)=1] [1, -3, 5, 6, 2, 3, 5] ^___[range(0,2)=range(0,1)-3=-2, range(1,2)=-3] [1, -3, 5, 6, 2, 3, 5] ^___[range(0,3)=range(0,2)+5=3, range(1,3)=range(1,2)+5=2, range(2,3)=5]

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

>> Сейчас я нахожусь здесь

Прелесть ситуации в том, что я ещё не получил фидбек, то есть я кандидат Шрёдингера - я и прошёл (формально я все задачи решил), и не прошёл (== не всё угадал, где-то баги), и суперпозиция сколлапсирует, когда ответ пройдёт через всю цепочку рекрутеров ко мне. А пока я полностью беспристрастен, ведь 1) меня не отшили, то есть это не пост обиженного на компанию человека, и 2) мне плевать на результат, потому что мне и на текущей работе офигенно.

К чему всё это

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

Сколько вопросов, блин, можно спросить про http, rest, django orm, sql, python, stdlib, docker, multithreading/multiprocessing/async, да про что угодно - что вы там в лавке делаете? - спросите про похмелье, но зачем 4 часа алгоритмов? Что это показывет - что я устойчив к тупости? Честно говоря, я уже не уверен.

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

А если вам нужен вывод, то вот несколько, берите любой:

  • Тестировать кандидатов нужно на реальных задачах, а не синтетических
  • Нужно уважать время кандидатов
  • Кто-то в яндексе пересмотрел "день сурка"
  • Знаете, когда целое не равно сумме частей? Вот тут так же: люди тебя собеседуют хорошие и встречи приятные, а в целом всё гавно.
  • Открыто новое достижение: ругательство "да пошёл ты в яндекс!"
  • Большие компании ай-яй-яй
  • Какой-то чувак написал смешную статью

И да, если вы ищете работу на питоне - залетайте к нам. У нас не Яндекс.

Мой канал в телеграме: Блог погромиста.

Собеседование в Яндекс.Поддержку: ответы на актуальные вопросы

Собеседование в Яндекс.Поддержку — это важный шаг на пути к успешной карьере в IT-сфере. Но как правильно подготовиться и что ожидать от собеседования? В этой статье мы ответим на самые актуальные вопросы, чтобы помочь вам успешно пройти собеседование и получить работу мечты в Яндекс.Поддержке.

Какие вопросы задают на собеседовании?

На собеседовании в Яндекс.Поддержку могут быть заданы вопросы по разным темам, связанным с IT-сферой. Ожидайте вопросы по основным технологиям и языкам программирования, таким как Java, Python, C++, а также вопросы по базам данных и алгоритмам. Вам также могут задавать вопросы по системному администрированию, сетевым протоколам и тестированию программного обеспечения.

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

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

Собеседование в Яндекс.Поддержку: советы и ответы на вопросы

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

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

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

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

5. Будьте готовы к техническим вопросам. Хорошее понимание основных технологий и инструкций поможет вам эффективно решать проблемы клиентов. Изучите основные функции и возможности продуктов Яндекса, а также ознакомьтесь с наиболее распространенными проблемами пользователей.

Собеседование в Яндекс.Поддержку – это возможность показать свои навыки и знания, а также получить ценный опыт работы в крупной компании. Следуя советам и готовясь заранее, вы повысите свои шансы на успешный результат.

Как подготовиться к собеседованию в Яндекс.Поддержку

1. Изучите описание вакансии

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

2. Познакомьтесь с продуктом

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

3. Подготовьте ответы на типичные вопросы

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

4. Попрактикуйте эмоциональный интеллект

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

5. Будьте готовы к решению задач

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

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

Ключевые навыки и качества, необходимые для работы в Яндекс.Поддержке

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

Ниже приведены некоторые из ключевых навыков и качеств, которые важны для успешной работы в Яндекс.Поддержке:

1. Коммуникативные навыки Умение четко и ясно выражать свои мысли, адаптировать свой стиль коммуникации к различным типам пользователей и ситуациям, эмпатия и способность слушать и понимать потребности клиентов.
2. Техническая грамотность Понимание основных принципов работы с компьютером, знание основных аспектов интернет-технологий, умение работать с электронной почтой и мобильными приложениями, а также способность быстро усваивать новую информацию и адаптироваться к изменениям.
3. Проблемно-ориентированность Умение анализировать проблемы пользователей, находить эффективные решения и обеспечивать быструю и качественную поддержку.
4. Организационные навыки Умение эффективно управлять своим временем, организовывать свою работу, следить за сроками выполнения задач и оптимизировать рабочие процессы.
5. Стрессоустойчивость Способность оставаться спокойным и контролировать эмоции в сложных ситуациях, сохранять позитивное отношение и продолжать оказывать качественную поддержку пользователям, даже при конфликтах или недовольстве клиентов.
6. Командная работа Умение эффективно работать в команде, сотрудничать с коллегами и обмениваться информацией, готовность к постоянному обучению и получению обратной связи.

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

Что ждать на собеседовании в Яндекс.Поддержке

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

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

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

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

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

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

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

Вот несколько советов, которые помогут вам успешно обслуживать пользователей:

1. Слушайте и уточняйте

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

2. Будьте терпеливыми и доброжелательными

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

3. Используйте простой и понятный язык

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

4. Изучайте продукт и услуги

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

5. Будьте готовы к нестандартным вопросам

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

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

Вопросы по знанию продуктов Яндекс: что нужно знать

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

1. Что такое Яндекс.Поиск и как он работает?

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

2. Как работает Яндекс.Директ?

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

3. Какие сервисы входят в Яндекс.Музыку?

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

4. Что предлагает Яндекс.Диск?

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

5. Какие функции предоставляет Яндекс.Карты?

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

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

Какие вопросы задают на собеседовании в Яндексе?

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

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

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

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

Требования к кандидатам на собеседовании в Яндексе

Компания Яндекс является одним из крупнейших IT-компаний в России и постоянно ищет профессионалов для расширения своей команды. Вот несколько требований, которые ставятся к кандидатам на собеседовании в Яндексе.

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

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

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

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

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

Технические вопросы для соискателей в Яндексе

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

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

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

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

Вопросы о проектах и опыте работы на собеседовании в Яндексе

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

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

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

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

Вопросы о знаниях и навыках на собеседовании в Яндексе

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

  1. Алгоритмы и структуры данных: Вопросы могут касаться основных алгоритмов и структур данных, таких как сортировка, поиск, хеш-таблицы и графы. Соискателям могут задаваться задачи на реализацию алгоритмов или анализ их времени и пространства.
  2. Язык программирования: Кроме знания основных алгоритмов и структур данных, могут задаваться вопросы по конкретному языку программирования. Это может быть любой популярный язык, такой как Python, Java или С++. Вопросы могут касаться особенностей языка, синтаксиса, а также использования стандартных библиотек.
  3. Базы данных: Вопросы о базах данных могут быть связаны с различными аспектами их работы, такими как проектирование схемы данных, SQL-запросы, оптимизация запросов и транзакции.
  4. Архитектура программного обеспечения: Соискателям могут задаваться вопросы о принципах проектирования программных систем, о надежности, масштабируемости и безопасности. Может быть рассмотрена архитектура клиент-серверных систем или систем на основе микросервисов.
  5. Операционные системы: Вопросы могут касаться основных понятий операционных систем, таких как процессы, потоки, планирование задач и управление памятью. Может быть также рассмотрена работа с файловой системой и сетью.

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

Вопросы о личностных качествах на собеседовании в Яндексе

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

Одним из вопросов, задаваемых на собеседовании, может быть: «Как вы организуете свою работу?». Рекрутеры интересуются, насколько кандидат способен самостоятельно планировать и организовывать свою деятельность, как он управляет своим временем и ресурсами.

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

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

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

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