Немного про меня: работаю в Яндексе уже 6.5 лет, большую часть из которых проработал в браузере, а сейчас работаю в облаке. Приходил джуном-мидлом, сейчас работаю ведущим разработчиком. Также я один из интервьюеров, кто проводит эти самые алгоритмические секции (каунтер секций перевалил за 250 за пару лет).
Так вот, если по пунктам, то:
1) Один из этапов собеседования всегда связан с алгоритмами (даже несмотря на то, что в работе они использоваться не будут).
Это не совсем верно. На этой секции проверяют не столько зубодробительные алгоритмы, сколько навык написания кода. Да, над задачами нужно будет подумать и применить сортировку/хэшмап/что-то еще, но основной сигнал как раз в том, как человек пишет код. Думает ли он наперед, какие баги сажает, в состоянии ли написать цикл без off by one, если посадил баг, то как будет чинить (проверит по кейсам или попросит кейс? если дать кейс, то найдет ли проблему сам?) - эти навыки как раз дает опыт. На мой взгляд тут нет никакого rocket science
2) Как правило, собеседование состоит минимум из трех этапов.
Выше уже ответили, но я уточню - минимум из трех секций с написанием кода. Важно то, что разные интервьюеры не видят других оценок, пока не поставят свою. Это "усредняет" результат - в итоговом фидбеке меньше влияния конкретного интервьюера и конкретных задач. Но помимо этих секций еще может быть секция по архитектуре или еще какая-нибудь специфичная для проекта секция (кому-то важно знание C++, а где-то - отладка с осциллографом)
3) Требования выше, чем в среднем требуется для рассматриваемой позиции (особенно это касается джуниоров).
Define "в среднем"? Если говорить по-честному, то грейды в разных компаниях очень сильно разнятся. Человек может быть старшим в компании Х, но при этом отсобеседоваться на уровне младшего разработчика. С другой стороны я видел как люди уходили на должность старшего разработчика после стажировки в Яндексе. Важно, что я говорю именно про то, что везде оценивают людей по-разному
4) Заработная плата ниже, чем в среднем по рынку.
Опять же смотря что брать за среднее. Я не жалуюсь :) Но если серьезно, то у нас в стране еще пока не научились воспринимать бонусы типа акций компании как зарплату и считают чем-то ненастоящим. Хотя если их учесть, то получается иной расклад.
Впрочем еще бывают случаи, когда людям переплачивают на текущем месте. То есть человек дорос до старшего/ведущего/CTO в текущей конторе и у него была какая-то определенная компенсация, но мы его оцениваем на мидла по навыкам и предлагам компенсацию ниже. Что поделать, так тоже бывает.
Поэтому я не могу понять: что именно с точки зрения специалиста может получить программист, который пойдет к ним работать? Особенно опытный.
Если ставить вопрос в таком несколько прагматичном ключе, то:
- Масштаб. Когда DAU исчисляется миллионами, то это вносит очень много нюансов в том числе в разработку. Не так много мест (особенно в России), где можно получить такой опыт
- Если после предыдущего пункта сразу подумалось "а чего бы тогда не сразу в FAANG?", то в Яндексе интересных и важных задач все еще больше, чем рук, которые способны их решить. То есть большой простор для роста влияния на проект и не только
- На мой взгляд рост не ограничен примерно ничем. Если человек готов к дополнительной ответственности и способен ее вывезти, то все будет только рады дать ее ему
Добавлю еще менее прагматичного от себя:
- Люди и атмосфера. Работать действительно очень комфортно. Правда трудно объяснить детально в чем это выражается, да и это субъективное ощущение
- Всегда можно учиться чему-то новому. Во-первых можно переходить между проектами, даже если делаешь довольно серьезный шаг в сторону от текущих навыков (до перехода в облако я не знал ничего про распределенные системы/сеть, сейчас знаю). А во-вторых можно поделать что-то помимо своих основных задач (например, я делаю доклады, пишу статьи, собеседую людей, помогаю студентам)