Мне кажется, почти каждый читатель Хабра либо знаком с теми, кто побывал на собеседовании в Яндекс, либо сам его проходил. Несмотря на это, процесс интервью не всегда очевиден для людей извне, по-прежнему вызывает множество вопросов и окружён мифами. Некоторые из них близки к правде, другие — наоборот.
В Яндексе я работаю уже больше 12 лет и повидал все наши изменения процесса собеседования. Сегодня я расскажу о наших интервью, попробую разобрать самые популярные мифы и объяснить, чем они обусловлены.
Начну, пожалуй, с самого главного. Интервью с кандидатами в силу своих временных границ не претендуют на стопроцентную точность, эффективность затраченного времени или полноту. Этот процесс всегда можно и нужно улучшать: исправлять ошибки и повышать комфорт для участников. Поэтому мы сокращаем или объединяем секции, меняем их фокус. Буду рад идеям и конструктивному диалогу.
В мире IT довольно много спорных вопросов: С++ против Java, табы против пробелов и т. д. В обсуждениях, как именно должны быть организованы интервью разработчиков, тоже сломано немало копий. Сейчас у большинства крупных IT-компаний похожие процессы интервью, но не потому, что проще копировать друг друга, а потому что мы работаем в похожих условиях и наши процессы эволюционировали схожим образом.
Лет десять назад в Яндексе не было единого стандарта собеседований, каждая команда могла проводить их по-своему. Где-то устраивали не ограниченную по времени и формату серию интервью. В других местах уже на первой встрече могли дать ноутбук, попросить написать на нём код, и, если код работал, сразу нанять человека. Кажется, абсолютным рекордом был случай, когда разработчика наняли уже через 40 минут после начала встречи. Но были и антирекорды. Например, один из наших коллег решал в офисе одну задачу 8 часов подряд!
По мере роста компании такой подход (а вернее, отсутствие единого подхода) создало массу проблем: чтобы попробовать попасть в разные команды, надо было пройти несколько разных процессов интервью. Что в целом неэффективно для всех участников процесса. У кандидатов был высокий шанс нарваться на ложноотрицательный вердикт о найме, так как в ряде случаев решение принималось после единственного разговора. Кроме того, усложнялась внутренняя миграция разработчиков, ведь у разных команд были разные стандарты.
В результате мы пришли к идее того, что собеседование должно состоять из нескольких независимых секций, проведённых по единому стандарту. На этих секциях мы проверяем как умение писать код, так и знание архитектуры и предметной области, ну и в целом то, насколько человек сможет работать в коллективе и соответствует нашим ценностям. Последняя часть может звучать как общие слова, особенно в среде технарей, но это правда важно. Лично я всегда ищу единомышленников, которые будут не только сильными разработчиками, но и придут к нам на долгое время.
Каждая секция — это независимое мини-интервью на заданную тему в формате один на один и длительностью обычно в 1 час. По его результатам интервьюер описывает в специальном тикете, что он спросил, что ответил кандидат, как всё прошло, и ставит свою оценку —на какой примерно уровень нанимать этого кандидата или не нанимать совсем. Общаться друг с другом интервьюеры могут только тогда, когда они завершили секцию, иначе секции не будут независимыми. Когда последний интервьюер опишет свою секцию, «карты вскрываются» — все интервьюеры получают email с результатами всех участников процесса. Чтобы получить оффер от Яндекса, кандидату не обязательно пройти все секции: одну или несколько можно и провалить. Независимость секций позволяет нам увидеть человека в разных условиях и с точек зрения разных людей. Иначе велик шанс, что «самый громкий» из тех, кто видел или знает кандидата, переспорит коллег. В случае, когда кандидат показывает противоречивые результаты, мы можем добавить секции, чтобы выяснить, является ли это закономерностью или невезением. В ряде случаев это помогает получить оффер тем, кто в прежних условиях получил бы отказ.
Если кандидат успешно справляется с основной частью секций, то дальше нужно определиться с командой. Этим Яндекс и отличается от небольших компаний: у нас для разработчика может найтись сразу несколько подходящих мест. К этому моменту уже понятно, на какой уровень мы готовы сделать человеку предложение. Если кандидатом заинтересовалась только одна команда, то всё просто. Но за хороших кандидатов возникают целые внутренние баталии, таким кандидатам хотят предложить себя сразу много команд. Мы назначаем кандидату финальные секции с заинтересовавшимися командами, чтобы он мог выбрать те задачи, которые ему более интересны. Суть финалов ровно в этом — показать спектр задач и дать возможность выбрать то место, где кандидату будет интереснее всего. Понятно, что человеку со стороны порой трудно определиться с командой после устного разговора, поэтому мы развиваем и альтернативный формат — Буткемп. Это возможность поработать сразу в нескольких командах, попробовать разные задачи на практике, а затем уже определиться. На наших текущих масштабах в десятки тысяч (!) собеседований в год и наших задачах этот процесс работает эффективнее, чем тот, что был раньше.
Снаружи это не заметно, но внутри вокруг каждого изменения процесса идут жаркие споры. Например, недавно для бэкенд-разработчиков мы начали сокращать количество технических интервью с проверкой кода. Сделали это не умозрительно, а на основе собранной статистики по тысячам пройденных собеседований. Логика такая: если очередная встреча в среднем мало влияет на оценку кандидата, то такая встреча не особо нужна, это время лучше посвятить рассказу о задачах и проектах команды.
Мы стремимся объяснять кандидатам, почему нужна та или иная секция. Например, показываем статьи на Хабре про алгоритмическую секцию, на которые я ещё буду ссылаться ниже. Оценить, хорошо ли мы справляемся именно с этим информированием, здорово помогают отзывы кандидатов, мы запрашиваем их после собеседований. Не игнорируйте их, пожалуйста.
С основой, кажется, разобрались. Действующий процесс нам кажется уже привычным и очевидным, но снаружи всё может выглядеть не так. Он уже оброс большим количеством мифов. Сфокусируюсь на основных и попробую раскрыть их.
Миф 1: Яндекс игнорирует предыдущий опыт кандидатов
Я разработчик с многолетним опытом использования технологии X и указал ее в своем резюме. Но прошло уже два собеседования, а про X меня ничего не спросили. Получается, весь мой предыдущий опыт работы не имеет никакой ценности? Опытные разработчики оказываются в одних рядах с недавними выпускниками, которые ничего серьезного еще и сделать не успели?
Короткий ответ: это не так, но есть нюансы. Часть подобных знаний может оказаться востребованной в Яндексе напрямую. Скажем, если в выбранной области специализации существует небольшое количество де-факто стандартных библиотек или фреймворков, которые хорошо масштабируются и находят свое применение в Яндексе, то высока вероятность, что в выбранной команде вы встретите знакомые вам инструменты и, более того, — их знание окажется ожидаемым.
С бэкенд-разработкой всё сложнее и интереснее. Существенная часть бэкенда Яндекса написана и пишется на C++, в первую очередь, в тех проектах, которые предполагают низкоуровневую работу с данными. Для понимания масштаба: объемы хранимых Яндексом данных превышают Eb, а их обработка выполняется с использованием миллионов CPU-ядер одномоментно.
На таких масштабах даже экономия в 1% является значительной. Как и многие другие крупнейшие компании, Яндекс инвестирует значительные ресурсы разработки в построение эффективной собственной инфраструктуры, и здесь выбор C++ по-прежнему остается оптимальным. При этом из готовых и популярных фреймворков на ум приходит разве что стандартная библиотека языка. Ее мы активно используем, но если примитивы, предлагаемые стандартной библиотекой, для наших задач оказываются субоптимальны − создаем свои и не спрашиваем на собеседовании про другие. Таким образом, у C++-разработчиков могло сложиться впечатление, будто их опыт нам не интересен, — и именно поэтому я начал разбирать этот миф с языка С++.
В случае с Java или, например, с Go ситуация чуть иная: эти платформы обычно используются уже на более высоких уровнях инфраструктурного стека, и для них существует множество хорошо зарекомендовавших себя надежных фреймворков, способных держать высокие нагрузки и масштабироваться при необходимости. Некоторые из подобных фреймворков активно используются в Яндексе, и в случае прохождения финалов руководители и члены команды наверняка не откажутся обсудить специфику задач и выбранный технологический стек.
Одновременно важно отметить, что, скажем, от бэкенд-разработчика на С++ или Java мы ожидаем высокой степени гибкости: для него архитектурные вопросы (высоконагруженные системы, масштабирование, отказоустойчивость и т. д.), как правило, оказываются намного важнее и труднее, чем специфика использования конкретных языков и библиотек.
В частности, хороший специалист по бэкенду без труда сможет принять участие как в проекте, где используется C++, так и в том, где основной язык — Java (Scala, Kotlin и т. д.). Более того, не редки случаи, когда в одном проекте сочетаются сразу нативные и управляемые среды, что тем более подталкивает к идее абстрагироваться от языка при найме кандидатов.
Поэтому если вам кажется, что мы не спрашиваем у вас про ваши самые сильные стороны (а мы и правда не всегда на них концентрируемся) — скорее всего, мы просто сразу стараемся оценить, как эти сильные стороны будут вам помогать именно в контексте Яндекса (а вот на это мы смотрим постоянно).
При этом если кандидат обладает глубокими знаниями в области X, которая действительно играет важную роль в нашей работе и напрямую влияет на успех продуктов, то у нас найдутся специалисты в этой области, которые смогут оценить знания кандидата на специализированных секциях, о которых речь пойдет чуть дальше.
Миф 2: В обычной работе знание алгоритмов не нужно
Все готовые примитивы уже давным-давно написаны и оптимизированы: достаточно позвать нужные функции в нужном порядке, и задача решена.
Даже если все примитивы уже написаны, без понимания того, что они делают внутри, какова их сложность и ограничения, сложно рассчитывать на успех в наших проектах.
Действительно, бывают оптимизации, влияние которых на работу сервиса слишком мизерное, или они внедрены преждевременно. Казалось бы, нет смысла глубоко понимать алгоритмы, благодаря которым такие оптимизации возможны. Но даже противники подобных малополезных оптимизаций признают: чтобы отличать их от эффективных решений, тоже нужны базовые знания алгоритмов и структур данных. Бороться с избыточным применением алгоритмов можно — зная алгоритмы.
Конечно, понимать специфику предметной области (может ли параметр N вырасти в 100 раз за ближайший год?) тоже необходимо. НоИ если последнее лучше всего получить, непосредственно работая в проекте, наблюдая его текущее состояние и стратегические планы развития, то знания об алгоритмах и их сложности абсолютно универсальны, а потому подобные навыки у кандидата разумно ожидать уже на входе.
Рекомендую прочитать пост Алексея Шаграева ashagraev, в котором он на реальных продуктах показал необходимость знания алгоритмов.
Миф 3: Мы напрасно проверяем не то, чем предстоит заниматься
Не может каждый разработчик в компании постоянно писать сложный алгоритмический код. Зачем же при найме проверять то, что дальше не потребуется?
Хороший, сложный вопрос, ответ на который полезно явно проговорить. Яндекс − большая и разнородная компания. Тем не менее, от меня и моих коллег ожидается достаточная степень умственной и проектной мобильности. Иными словами, мы практически не нанимаем «специалистов по фреймворку X» исключительно за то, что они знают этот фреймворк. Время идет, фреймворки меняются, отчасти как дань моде, отчасти потому что появляются новые, более совершенные.
Мы делаем ставку на то, что наш новый коллега проработает с нами долго. С прицелом на это строится наша система внутренней ротации, а также схема вознаграждений, стимулирующая оставаться в компании, принося пользу в самых разных ее частях и переключаясь по мере развития с проекта на проект. Если вам захочется перейти в другую команду, попробовать новое или даже сменить предметную область, мы должны максимально облегчить вам этот путь.
Поэтому нам важно держать общую и достаточно высокую планку, которая бы позволила упростить для разработчика формальности переходов внутри Яндекса.
Миф 4: На интервью условия совершенно не похожи на рабочие
Набирать код на секциях в простом текстовом редакторе без автодополнения неудобно, кроме того я не помню наизусть имена функций и классов стандартной библиотеки. Зачем просить разработчика выполнять задания в условиях, совершенно не похожих на реальные?
Признаюсь, это не миф, это правда. Сейчас я попробую раскрыть нашу логику. Уверен, с ней согласятся не все. Это нормально: подобные споры ведутся не только снаружи, но и внутри. В любом случае, диалог — это хорошо.
Все инструменты хороши там, где они действительно нужны. Попробую подобрать аналогию. Предположим, что вы хорошо знаете один из иностранных языков и ищете работу, предполагающую его активное использование. При составлении резюме на этом языке вы можете использовать онлайн-словарь или проверку орфографии, чтобы перепроверить себя или сэкономить время. Но когда очередь доходит до живого собеседования на базовые темы, то странно каждый раз тянуться за словарем или грамматическим справочником. Понятие «беглая речь» (fluent speech) довольно точно описывает ожидания по этой части.
Возвращаясь в более знакомую плоскость, мне кажется очевидным, что любой разработчик должен уметь писать код, находящий максимум чисел в массиве линейным поиском. С закрытыми глазами и не обращаясь при этом к помощи stackoverflow. Одновременно странно ожидать от кандидатов умения безошибочно и, что называется, на автомате писать код быстрого преобразования Фурье (хотя, конечно, многие бывшие олимпиадники снисходительно улыбнутся, услышав это, поскольку не посчитают алгоритм FFT сколь-нибудь сложным). Иными словами, существует некоторый минимальный порог практических навыков написания кода, и спор на самом деле идёт о том, где в точности этот порог должен проходить.
Важно: в Яндексе подобная секция никак не привязана к конкретному языку или к его библиотекам. Фактически решения задач с этой секции выглядит примерно одинаково на любом распространенном языке и занимает 10-20 строк кода. На секции мы всегда предлагаем кандидату самостоятельно выбрать тот язык, на котором у него больше всего опыта. При этом мы действительно ожидаем, что в выбранном языке у кандидата достаточная «беглость» (fluency), чтобы писать на нем простейшие конструкции, не задумываясь.
Но даже если вы, скажем, забыли, как именно называется метод, добавляющий элементы в очередь (push, enqueue или, может, add), то это не сыграет большой роли — интервьюер либо подскажет вам, либо просто предложит назвать метод так, как вам будет понятнее, ведь суть решения от этого не меняется.
Нередки случаи, когда кандидат пишет решение на языке, который для интервьюера вовсе малознаком. К счастью, специфика задач вновь позволяет вынести итоговый вердикт без особых затруднений. При этом, конечно, если вы пишете на Rust, а собеседующий пока не успел его освоить и хочет уточнить не совсем ясные ему детали, связанные с управлением памятью в вашем решении, то у вас появляется отличный шанс продемонстрировать знания и преимущества выбранной вами технологии, а у интервьюера — отметить это как плюс в своем резюме секции.
Подобная языковая нейтральность и базовый характер задач — это факторы, которые, по нашему мнению, добавляют объективности и универсальности секции. Вместо того, чтобы искать для каждого кандидата со знаниями в области X равного ему по силам специалиста в этой области, чтобы тот смог дать состоятельную оценку, мы поступаем иначе. С моей точки зрения, алгоритмы − это фактически lingua franca современной IT-индустрии. Решение алгоритмических задач под силу абсолютно любому разработчику, а оценка качества их решения достаточна проста, чтобы из секций можно было извлечь ясный и однозначный сигнал.
На всякий случай явно проговорю главную мысль: алгоритмическая секция — это такая базовая планка, которую нужно преодолеть. Степень мастерства кандидата по ней не определяется, зарплата от неё не зависит. Оффер формируется на основе других факторов: результатов секции по архитектуре, опыта, общения с командой.
Примеры и более полное описание алгоритмических секций вы можете найти в отдельном посте на Хабре.
Миф 5: Вам, похоже, нужны только программисты-олимпиадники
Выглядит так, будто Яндекс не интересует ничего, кроме моего умения решать задачи на алгоритмы. Как же я смогу понять, хочу ли я вообще идти к вам, ведь на подобных секциях я ничего не узнаю про возможные проекты и задачи?
Собеседования в Яндекс, конечно, не ограничиваются секциями подобного вида. Еще при первой встрече мы стараемся выяснить у потенциального кандидата, с какими задачами он сталкивался в своих предыдущих проектах, что его интересует, как он видит дальнейшее свое развитие в профессиональном плане.
Затем проходят секции с кодом, на которых проверяются базовые алгоритмические навыки, о чем мы уже рассказали выше. Эти секции призваны дать максимально единообразную и непредвзятую оценку умений кандидата, исключить bias отдельных интервьюеров.
Для опытных кандидатов также проводятся специализированные секции (по архитектуре, распределенным системам, базам данных, машинному обучению, сетевым технологиям и т. п.).
Наконец, после прохождения технических секций кандидату ставят несколько «финалов», где присутствуют руководители, непосредственно ищущие к себе в команду новых сотрудников. Сами финалы не предполагают решение базовых алгоритмических задач, ведь руководитель команды уже уверен в способностях кандидата. Для кандидата финал − это возможность познакомиться непосредственно с потенциальной командой, узнать о методологии работы, используемых инструментах, смежных командах, да и в целом о решаемых задачах из первых рук. Но финал − это всегда диалог. Для того, чтобы сделать правильный выбор среди кандидатов, потенциальный будущий руководитель наверняка захочет узнать подробнее о кандидате, включая его высокоуровневые навыки. Например, на подобной секции вам могут описать одну из типичных (реальных, жизненных!) задач или проблем, с которой в этой команде уже сталкивались.
Если в этом проекте основные сложности имеют архитектурный характер, то на секции вам могут предложить обсудить архитектурные вопросы. Если же команда, скажем, занимается низкоуровневой оптимизацией (а многие инфраструктурные команды таковы), то не стоит удивляться просьбе написать небольшой фрагмент кода. В этот раз, конечно, вас не попросят искать оси симметрии фигуры на плоскости − вопросы должны быть максимально приближены к тем, с которыми команда сталкивается ежедневно.
Ну и, конечно, все мы люди, поэтому подобные диалоги заодно − хорошая возможность проверить личностную совместимость как для кандидата, так и для руководителя.
По итогам финала кандидат получает максимально полный (насколько это возможно с учетом ограниченности времени секции) слепок того, на что может быть похожа его будущая работа в этой команде, а потенциальный руководитель − принять решение о найме.
В этой статье я описал то, как в общих чертах выглядит процесс собеседования в Яндекс и почему он эволюционировал именно в такую форму.
Мы продолжаем работать над форматом секций, исправлять явные ошибки, дискутировать по этому поводу между собой и с внешним миром. Идеальных процессов не бывает, особенно когда вовлечены десятки тысяч человек в год. Но я буду рад вашим идеям в комментариях.
Комментарии (102)
Bromka
02.12.2021 12:03-7Как вы отвечаете на вопросы о моральной составляющей работы в Яндексе? Дают ли значки "5 лет на службе Государю"?
DMGarikk
02.12.2021 12:19+44ну так
На всякий случай явно проговорю главную мысль: алгоритмическая секция — это такая базовая планка, которую нужно преодолеть
иМиф 5: Вам, похоже, нужны только программисты-олимпиадники
и коммент в стиле «ну у нас куча других этапов где мы все остальное проверяем»
это выглядит как «мы берем людей которые могут выполнить задачу максимально хорошо и правильно, независимо от того какого они цвета кожи, пола и физического здоровья
этап 1. надо нажать на 4 кнопки, расположенными на расстоянии метра одновременно всеми своими конечностями»
этап 2. проверяем то что вы умеете из остального"
т.е. этап 1 определяющий и до второго вы не дойдёте если у вас ноги нет… но да конечно олимпиадники вам не нужны
===
очередной раз убеждаюсь что рад что не пошёл в яндекс, хотя hr-ы постоянно забрасывают предложениями… унижатся на собесе в десять этапов… выставляя себя идиотом в тех вопросах (на первых как раз этапах) которые мне реально не нужны (в том виде и формате в котором их задают) и не доходить до следующих этапов (ну ты лооох… яндексу такие не нужны… а еще на сеньора подаёшся… а даже на джуна не тянет)… нет уж увольте
я бы реально подумал что может правда я чёто не знаю и уровень не соответствует? но нет же… я за 6 лет поменял несколько мест работы… в т.ч. у одного из конкурентов яндекса… и прошел пару десятков собесов… и както на работе меня не считали недоквалифицированным спецом…
сейчас вообще уже на забугор работаю… а вы продолжайте поднимать планку… на фоне катящегося в пропасть качеству сервисов… незнаю яндекскарты и яндекспогода наверное у себя там внутри преобразование фурье считает по оптимизированному алгоритму теперь… не то что лет 10 назад (когда они еще нормально работали)micbal
02.12.2021 12:37+11Программисты-олимпиадники на больших проектах иногда больше вредны чем полезны, из за желания показать альтернативный вариант, либо сразу очень оптимизированный. А оптимизация штука дорогая по багам и реализации. Яндекс просто выпендривается, чтоб получить разработчика с зарплатой ниже рынка, остальное компенсируется понтами "Я работаю в Яндексе.". Однако последнее время работа в Яндексе стала скорее плохим признаком. Когда они это поймут, собеседования станут обычными и адекватными задачам разработки (ведь не интра для пати пишут...). А может и не поймут, компания не смогла избежать фазы развития типа "старость", маразм, не эффективность и т.п. на лицо.
dom1n1k
02.12.2021 14:23+12Оптимизация — это не бинарный параметр. Между вариантами «наивно в лоб» и «очень оптимизированный» есть много полутонов и принцип Парето там тоже вполне может работать. И в случае, когда твоим сервисом пользуется миллион человек, уделять внимание оптимизации сразу — имеет смысл.
micbal
02.12.2021 15:05Имеет смысл, если бизнес устраивают траты на оптимизацию. Я редко видел подобное.
dom1n1k
02.12.2021 15:12+9Тут еще такое дело — если человек имеет определенный уровень квалификации, он сразу не пишет откровенную дичь. И baseline-производительность его кода уже выше, чем у человека парой ступенек ниже. Просто за счет разного уровня мышления. Можно предположить, что Яндекс рассчитывает именно на это.
MikeLog
03.12.2021 14:11В Ятакси до сих пор убого работает "автоназначение в радиусе 1км" в итоге приходится пассажирам ждать дольше, водителям мотать лишние км.
leshakk
02.12.2021 12:28+39У меня коллега думал пойти работать в яндекс, только не программистом, а разработчиком железа.
Сделал тестовый проект (не маленький, около двух недель ночами сидел), прошёл несколько уровней собеседований. И тишина... На все вопросы хрюша отвечала "ждите..."
Окольными путями удалось выяснить, что проблема в том, что он единственный кандидат, который смог пройти отбор, а процедура найма требует обязательного выбора из нескольких конкурирующих кандидатов. Поэтому нужно ждать, когда кто-то ещё сможет пройти предварительный отбор, и тогда уже между ними будут выбирать.
Коллега ждать не стал, принял оффер от другого работодателя.micbal
02.12.2021 12:44+13Вот и признаки "старости" компании, неповоротливость или бюрократия, да и бардак. И похожие истории не раз слышал и здесь читал. И личный опыт давний: Сказали что будет собеседование на одно, спрашивали совсем другое и т.п.
nkretov
02.12.2021 12:37+6Ладно бы если это еще все стоило свеч - во всех вакухах из чатов ЗП от Я в лучшем случае рыночные.
ivanovdev
02.12.2021 13:01+8Проходил недавно собеседование. Было 3 секции. Две секции на кодинг и одна на алгоритмы. В итоге на всех трех у меня были алгоритмы :)
F0iL
02.12.2021 13:14+19Но даже если вы, скажем, забыли, как именно называется метод, добавляющий элементы в очередь (push, enqueue или, может, add), то это не сыграет большой роли — интервьюер либо подскажет вам, либо просто предложит назвать метод так, как вам будет понятнее, ведь суть решения от этого не меняется.
Ага, конечно. Помнится, в Яндексе мне как-то раз на «алгоритмическом собеседовании» попался наглухо упоротый интервьювер, требовавший при написании кода на доске «чтобы вообще вот без ошибок было». Причем под ошибками понимались и «я точно знаю, что есть функция стандартной библиотеки с таким-то функционалом, с таким-то названием, я только не помню точно порядок аргументов в сигнатуре вызова, давайте посмотрим в доках, ну или я напишу примерно как я себе это представляю, суть от этого особо не поменяется», так и синтаксические ошибки, типа точек с запятой и скобочек. Хотя, может просто я ему чем-то не понравился, кто знает.
nktkz
02.12.2021 13:51+13Хорошо что вы неписали эту статью
Кому то поможет ответить на вопрос "а надо ли вообще идти в этот яндекс".evnuh
02.12.2021 14:13+15Если человек смог задать себе этот вопрос, он уже лучше армии слепых котят, в основном идущих в Я, часто по малолетке, и так и застрявших там на 12 лет, как автор.
Думаю, лет через 10, невидимая рука рынка всё решит в пользу программистов, и Яндекс начнёт принимать на работу в более адекватной форме. Как сейчас делают все компании не IT гиганты.
Когда спрос на разработчиков в 10 раз превышает предложение, вы продолжаете мучать кандидатов написанием кода на бумажке с разворотом деревьев. И это при штате 70% продактов/проджектов и 30% программистов. Интересно, продакт менеджеров вы тоже заставляете продать вам ручку и играете в монополию на собесах?
nikitaulshin
02.12.2021 14:54+2У продактов тестовое задание :)
Но в целом довольно адекватно всё. В отличии от программирования. Говорю, как побывавший и там, и там :)
FanatPHP
02.12.2021 14:26+23После прочтения комментариев неудержимо вспоминается старый советский анекдот
Детский садик, воспитательница толкает речь:
- В Советском Союзе у детей самые лучшие игрушки! В Советском Союзе у детей самая лучшая еда! В Советском Союзе дети...
Раздается громкий рев.
Воспитательница: Вовочка, ты почему плачешь?
Вовочка: Хочу в Советский Соююююююз!!!"
Xambey97
02.12.2021 14:49+14Было дело около полугода назад к вам пробовался по направлению фронта, осталось неоднозначное ощущение. 1.5 месяца потратить на хождение по 7 этапам (поправьте, если обсчитался, то ли 6, то ли 7) собесов в одну фирму, чтобы на финальном общении с лидами команд тебя не взяли, при том что изначально со слов hr это было 'вы выберите куда вам больше всего хочется, чтобы можно было в будкемпе там поработать и посмотреть как пойдет', а по итогу даже не спросить мнение об этом у кандидата (хотя мне один из проектов вполне себе зашел) — ответ был «ему будет у нас скучно», ну его нафиг… Ушел в другую фирму, а в результате затянутой обработки этапов просрочил 6 офферов, много уж больно ждал. Вопросы и задания для уровня сеньера к слову были очень так себе (и это мне еще на продвинутой практике сказали, что около 95% не проходит даже основы по js, когда я спрашивал), думаю человек прошедший пару месяцев курсы по js и немного почитав про алгоритмическую сложность + архитектуру приложений + почитать Hack Your Interview смог бы пройти… Ожидал большего от компании с таким ЧСВ, абсолютное неуважение ко времени кандидатов, больше пробоваться не буду точно, лучше в лишние 5 компаний 'сходить' на удаленке
FanatPHP
02.12.2021 15:00+12Но если отбросить шутки в сторону, то в последнее время в меня закрадывается подозрение, которое может, теоретически, пролить свет на совершенно необъяснимую, адски забюрократизированую и неоправданно длительную процедуру собеседований во всю это гоп-компанию топ-компаний:
Это проверка софт-скиллов, и в первую очередь - конформизма и целеустремлённости.
Автор статьи туманно обмолвился об этом, но потом резко увел разговор в совсем другую сторону.
Я исхожу из рекомендации, которую некий Иоиль Спольский однажды написал у себя на сайте, "Нанимайте людей, которые обладают всего двумя качествами: умных, и доводящих дело до конца". В целом довольно разумная мысль, особенно с точки зрения руководителя. Но если проверить первое качество на одном очном собеседовании - вполне решаемая задача, то вот со вторым всё наоборот. Не секрет ведь, что есть много людей талантливых, но непостоянных, неспособных долго концентрироваться на одной задаче. А от программиста в современных реалиях как раз и требуется в первую очередь умение копать от забора и до обеда. Первого числа открыл тикет, тринадцатого закрыл. Мечта проджект менеджера! Но как это качество проверить при приёме на работу? Маленькие компании уповают на испытательный срок, но большим нужно всё и сразу. И вот тут как раз и приходит на помощь вся эта, на первый взгляд нелогичная, бюрократия: если человек прошел все круги собеседований, то скорее всего он и представляет из себя ту самую терпеливую рабочую скотинку.
Это, кстати, может служить и объяснением ухудшения сервисов: потому что для развития нужны не только рабочие особи. Нужны визионеры, нестабильные гении, таланты в какой-то узкой области, но видящие её на порядок глубже остальных. Всех их отсекает система, ориентированная на трудолюбивых зубрил.micbal
02.12.2021 15:10+1Как показывает практика, в коллективах редко одна задача надолго. Обычно наоборот нужно умение быстро переключаться. А еще есть вера в фулстеков, что быстро переключаются и между языками.
FanatPHP
02.12.2021 16:50+3Вообще-то мой комментарий был совсем не об этом, но теперь я понимаю, что он получился слишком длинным для восприятия
micbal
02.12.2021 16:55Про первую часть, "доделать работу до конца", я не встречал чтоб людям платили за несделанную работу, если конечно такая завершённость не устраивает бизнес.
vkni
02.12.2021 17:13Оно, на самом деле очень перекликается - вы пишете про доведение до конца, сюда можно добавить "при мешающих переключениях".
Jammarra
02.12.2021 15:11+23Начну, пожалуй, с самого главного.
А главное это вопрос: "Зачем проходить собеседование в Яндекс?" Если компании косит под FAANG. И проводит такие же бредовые собеседования в кучу этапов, то неплохо бы сделать такие же ЗП как в FAANG. Ну это так для начала разговора.
А пока ЗП у вас ниже рынка. То кто туда идет совершенно непонятно. Какие то оторванные от жизни люди если только. Собственно по отвратительному качеству продуктов последних лет это очень хорошо заметно.
TheKnight
02.12.2021 15:19+3А можете рассказать, какие нынче на рынке зарплаты? Имеющиеся у меня в доступе открытые источники(публикующие на хабре отчеты) показывают не то чтобы интересные цифры.
ris58h
03.12.2021 11:52+1Расскажите лучше какие зарплаты в Я, а мы сравним.
elektroschwein
03.12.2021 15:40И желательно чистые, безо всяких там RSU и прочих "когда-нибудь потом если повезёт".
TheKnight
04.12.2021 13:34+1Про зарплаты в Яндексе рассказывали уже Илья Богин и Андрей Плахов. Ссылки на конференцию целиком, ссылки на конкретные доклады сходу не нашел.
Что касается моего оклада, то не вижу смысла его называть. Я не показательный в этом плане человек, поскольку не стремлюсь к деньгам, высоким грейдам и прочему.
Мой интерес к рыночным зарплатам – лишь проявление любопытства – действительно ли за пределами Яндекса платят заметно больше чем внутри за тот же уровень квалификации. Пока что выглядит что нет.
Jammarra
04.12.2021 16:27+2Посмотрел мельком. Цифр конкретных не услышал. Только куча менеджерский воды вида «вы работайте усердее и мы вас заметим и поднимем зп. Может быть.» от которой уже тошнит если честно
Неужели так сложно сказать Грейд вилка требуемая квалификация.
увидел какую то таблицу с зп 200. Но это не очём в 2021 году а опционы и прочую херню можете отправить в известное место.
это должно быть дополнением к доходу. А не его частью. Если что я то цифры на руки до премий опционов и прочей дичи приводил. И не думайте что ее нет в других компаниях.
Скажите просто сколько вы на руки в месяц получаете. А мы рассудим хорошая это зп или нет
TheKnight
04.12.2021 18:18Как вы понимаете, у рядового разработчика вряд ли есть доступ к вилкам на грейде.
Сколько я в месяц получаю на руки писать в публичном поле я не хочу. Однако, мой оклад несколько ниже названного вами.
Думаю, вы правы и в Яндексе действительно оклады ниже рыночных. Компенсируется ли это всеми этими схемами с премиями и RSU - нужно решать каждому самому.
Jammarra
05.12.2021 12:09+3Вот тут и возникает главный вопрос. А зачем туда идти. Яндекс давит на что то у них дофига крутая айти компания с глобальными задачами.
Но на это могут повестись только школьники. Взрослые люди повидавшие мир знают что за этим скрываются только переработки, куча согласований с менеджерами, легаси и велосипеды. А не что то интересное. И что за это как раз и должна быть доплата деньгами. Причем большая доплата. И работать в каком то стартапе в разы интереснее. Да и перспектив намного больше если он стрельнет. В стартапе ты можешь например через 10 лет стать СТО. А в Яндексе тебе через 10 лет дадут грейд. А может и не дадут и будет дуля с маслом. Причем от результата твой работы это зависит никак. Скорее от того насколько тебе повезет с менеджером и проектом.
Да и если отбросить все понты на пустом месте. То если сравнить где задачи масштабнее и что больше например Сбер/ВТБ или Яндекс. То скорее всего результат будет не в пользу Яндекса. И у ребят из того же Сбер/ВТБ/Джетбрейнс/Баду зарплаты не в пример выше. И собеседования проходят без этой всей этой херни с алгоритмами, кучи этапов и прочим.
DMGarikk
06.12.2021 11:38. В стартапе ты можешь например через 10 лет стать СТО. А в Яндексе тебе через 10 лет дадут грейд.
ну вот кстати не обязательно, я хоть в яндексе и не работал, но зато работал в нескольких очень крупных компаниях… и могу сказать что если активно проявлять инициативу то можно запросто себе устроить повышение по службе вне стандартной линейке грейдов, просто потому что если ты выбиваешся из обычных процедур принятых в крупном легаси-энтерпрайзе, тебя с довольно большой вероятностью заметят.
вообще есть люди которым комфортнее маленькие стартапы, а есть те которым крупный энтерпрайз… и после того как я поработал в 4х стартапах (двое из которых не стрельнули и обанкротились)… могу сказать что мне например энтерпрайз комфортнее. и я ниразу не заметил проблем с внутренним ростом, если есть силы идти по этому пути.Причем от результата твой работы это зависит никак.
еще как зависит, только не достаточно просто таски в жире закрыватьJammarra
06.12.2021 11:50еще как зависит, только не достаточно просто таски в жире закрывать
Нужно еще бухать с менеджерами и подлизывать начальству)Хороших специалистов не повышают. Просто потому что если их повысить то работать станет некому.
Повышают только тех кто любит болтать и толку от которых все равно нет.DMGarikk
06.12.2021 13:00Повышают только тех кто любит болтать и толку от которых все равно нет.
Это вы сейчас весь управленческий персонал в бестолковых людей записали?
тимлиды например тоже к ним относятся, начальники отделов разработки, PM-ы всякие
==)Хороших специалистов не повышают
тут фишка вот в чем, повышение нужно специалисту — а не конторе. по этому инициативу надо проявлять самостоятельно.Нужно еще бухать с менеджерами и подлизывать начальству
а это совсем не обязательно, если вы действительно хороший специалист и хотите идти выше и делаете для этого чтото по работе
я вот в свое время предложил разработать внутренний продукт, сделал для него mvp, пролучил одобрение от руководства, реализовал и в итоге перешел в другой отдел на повышение.
а мог бы сказать 'придумал вот что, дайте 100500 денег и повысьте меня и тогда я сделаю' — меня бы послали, и я пошел бы на хабр бухтеть что повышают только сынков начальников
в итоге имел на тот момент:
1) бесценный опыт в разработке полноценного продукта, от планирования, mvp до внедрения
2) повышение на руководящую должность
3) запись в резюме которая мне до сих пор помогает
4) самое важное, я был миддлом вообще по другому направлению (1С… хех)
==
это конечно мой личный пример, потому что на тот момент мне крайне требовался реальный живой опыт реализации таких штук, учитывая что я только-только вернулся в ИТ из совсем другой сферы… и имея в руках организацию со формальными правилами и широко известными типовыми проблемами энтерпрайза (в плане бюрократии и согласований), я тупо пришел к начальнику наверху цепочки и предложил в лоб… и получил одобрение… просто потому что никто не пытался это сделать до меня (сложно, никому не одобрять, обязаны мне за это заплатить и т.п.)
даже если бы меня не повысили, я просто ушел бы уже в другое место работы имея опыт в таких вещах (что я и сделал несколькими годами позже) и всёравно бы выйгралJammarra
06.12.2021 17:28тимлиды например тоже к ним относятся, начальники отделов разработки, PM-ы всякие
А от них есть польза? Туда же идут те кому надоело работать. Ну или кто просто захотел денег. В целом это самая большая беда современного айти что на одного работника приходятся 10 PM, 5 agile-коуча и 3 devops-евангелиста.
Проблема в том что нельзя получать реально большие деньги не став руководителем какой то фигни. Увы. Ну вот так придти и сказать "Я свою работу хорошо работаю, хочу за это много денег" Так это не работает.
Нужно выдумывать задачи с потолка, рисовать схемы с тремя красными перпендикулярными линиями синим маркером. Делать высосаные из пальца доклады на хайлоаде. И заниматься подобной лютой дичью.В целом просто индустрия стареет. И да про сына тоже уже в тренде. IT ничем не особенная область. Кроме того что она относительно молодая. Оно уже начинается, но лет через 5-10 будет прям очень явно что дети подрастут у текущих руководителей. И им всем работать где то надо будет. Так что будет появляться все больше и больше непонятных должностей и людей.
Меня например самого люто накаляет что мне что бы получать нормальную зарплату нужно писать в резюме что я SRE или там devops и заниматься на работе какой то фигней рассказывая про методологии. Вместо того что бы просто делать нормальный качественный работающий сервис.
DMGarikk
06.12.2021 17:45+1а вы хотите сказать что в комманде из 20 человек без девопсов, без ПМов, сможете тянуть крупный проект?
типа сегодня код пишу, завтра кубер чиню, послезавтра с кастомерами общаюсь? а в четверг думаю какие нам ф-ции новые писать?
вот серьёзно?
я вот столкнулся с такой конторой… это прям цирк с конями, есть штук 20 микросервисов… мне надо прокинуть через всю цепочку одно новое поле… и и ты понимаешь что для их команды на 100+ человек моя задача как до лампочки? но у них нет ни ПМов ни тимлидов… нифига, каждый чототам пилит, а ты ходишь как бомж просишь какихто людей тебе помочь… и они с таким видом тебе помогают что ты их от охренеть какой важной работы отрываешь
и тебе надо самостоятельно перелопатить эти 20 микросервисов, понять как это поле везде обрабатывается, найти формальных ответственных, провести с ними встречи… точнее нет ЗАСТАВИТЬ и УГОВОРИТЬ их провести с тобой встречи чтобы поставить в ИХ план-спринт задачу на доработку… причем они могут тупо забить на то что тебе надо. они же программисты а не менеджеры… которых нет…
и вы скажете что ПМ вообще не нужен и если команда из 200+ человек не может самоорганизоваться то контору надо закрыть? а контора то кстати известная многим (не faang даже рядом, просто известная)...(не могу правда по nda сказать какая)
Jammarra
06.12.2021 17:55Пообщаемся за методологию и микросервесы. О том что они для того и создавались изначально что бы да это так и работало и над каждым микросервисом должна небольшая команда. Типо на которых хватит 2 пиццы?
И о том что девопс это методология, а не гребаная специальность? И если в компании есть отдельный человек-девопс, то там уже что то не так.Хотя это уже далековато от темы топика. Да и в целом, нафига я это знаю. Можно мне просто копаться в железе. Делать так что все работало, не падало. Получать за это 500к в месяц и не парится об это хрени? Нет? А жаль. Вот об этом и говорю.
Вот честно я уже стал забывать зачем шел в айти. И что мне нравилось это когда-то. Были времена когда я еще не ненавидел свою работу.
DMGarikk
06.12.2021 18:21Пообщаемся за методологию и микросервесы. О том что они для того и создавались изначально что бы да это так и работало и над каждым микросервисом должна небольшая команда. Типо на которых хватит 2 пиццы?
вы считаете что любой современный проект можно уложить в комманду из 5 человек и с затратами времени на 2 пиццы?
Я был в проектах где объем кода измерялся гигабайтами, он был написан в начале 90х годов… вы придя на такую работу будете объяснять что в конторе неправильная методология и надо сократить всех и сделать 'правильно'?И о том что девопс это методология, а не гребаная специальность? И если в компании есть отдельный человек-девопс, то там уже что то не так.
я работал еще в одной крупной компании, где понятия 'девопс' не было, а был 'отдел эксплуатации'
и деплой кода выглядел так, ты мерджишь свою ветку в мастер… прогоняешь тесты… а дальше магия…
ты сам руками собираешь war файл, аттачишь его в письмо в оутлуке и отправляешь Василию Петровичу… который открывает фар, и копирует по sftp war файл на продакшн в папочку… потом смотрит 'задеплоилось ли автоматически?' если нет то заходит на сервак и говорит service tomcat restart… это на секундочки ОЧЕНЬ критический онлайн!!! мне разок пришлось бегать с дымом из ж… тупо потому что после деплоя прод не поднялся, а Василий петрович удалил старый war… а старый билд собирал Васян который уволился год назад…
скажете дураки какието? контора создана в 80е и код на сях писали и деплоили когда я ещё даже не родился
===Да и в целом, нафига я это знаю. Можно мне просто копаться в железе. Делать так что все работало, не падало.
Вот честно я уже стал забывать зачем шел в айти. И что мне нравилось это когда-то. Были времена когда я еще не ненавидел свою работу.
а в этом и разница, мне хочется работать с крупными системами в глобальном плане, понимать и знать как каждая часть её работает. мне вот не интересно тупо писатькод для своего модуля… особенно когда в ТЗ приходит откровенный бред (тут я обычно иду выше и начинаю узнавать — почему бред в ТЗ попал и точно ли те кто ставил такую задачу в нем уверены?)
и когда сверху нет ответсвенных 'ненужных ПМов, девопсов и прочих ненужностей'… оказывается что вам тупо некуда эскалировать проблемы снизу, вас никто не услышит поскольку нет центра координации… а проект без центра координации это какойто хаос
Jammarra
06.12.2021 18:22+1Ааа вы как раз тот человек с которым года 3 надо согласовывать что то что бы сделать. И который считает что он очень важен. Ну понятно)
DMGarikk
06.12.2021 18:45вы видимо не роняли прод с критичной доступностью 365 дней в году ;) и не учавствовали в его подъеме
я конеш понимаю что интернет магазинчик и соцсеточка — такое переживет, а вот когда у вас банковская карточка не срабатывает в кассе (потому что процессинг вашего банка прилег), а автобус уходит через 2 минуты… вы ругаете банк который 'крутит бабло и ворует проценты'… а там оказывается васян тупо без проверки бац-бац и в продакшн… потому что ни девопс ни планы восстановления ни бекапы не нужны (… я тоже в такой конторе работал… там всё кончилось тем что миддл-разраб сказал в консоль боевой базы truncate table и 200Гб база улетела в окно)
вы видимо как раз то человек который бац бац и в продакшн?
Jammarra
06.12.2021 18:18Ну и просто инфа к размышлению. Гит был написан за неделю и на него перевели ядро линукс за пару месяцев. Одним человеком.
Сколько лет потребовалось на ваш взгляд какой то современной корпорации что бы сделать что то подобное. Со всеми этими спринтами, ПМ и командами разработки?
DMGarikk
06.12.2021 18:34+1и отсюда мы делаем вывод что все проекты вокруг может сделать один человек?
хотите сказать что android inc и без гугла смогла бы сделать самую популярную ОС в мире?
==
вообще забавно сквозит подтекст что 'начальники не нужны'
это как вася токарь, которому не нужно руководство, он гайки точит, а петя водитель метал приводит, в женя увозит готовые гайки… ведь очевидно что геннадий начальник тут не нужен.! петя сам знает откуда метал возить, а женя куда гайки девать… Л-Логика
а деньги вообще внезависимости от этого процесса из вакуума материализуются
Jammarra
06.12.2021 18:50Большую часть проектов и сделали небольшие команды людей.
А потом они превращаются в какую то фигню.Тот же Яндекс в свое время был неплохой поисковой системой. А не забагованным комбаином с которого можно вызвать такси. Но оно придет фиг знает куда.
Или фейсбук когда его писала пара людей был хорошей соц сетью. А не какой то лютой фигней с ломающим глаза и мозг интерфейсом.
Да даже тот же хабр на котором мы сейчас сидим в свое время был хорош.Причем есть явная корреляция того насколько софт становится наиболее ужасным от того как много людей над ним работает. И чем больше менеджеров принимает решения. Чем больше людей тем хуже результат.
Андройд это кстати в целом достаточно ужасное решение. Он жив не потому что это хороший софт. Просто по экономическим причинам нет других альтернатив достойных. Тут проблема не написать хорошую ОС для телефона. А заставить производителей и пользователей ее использовать. И писать софт под нее.
Собственно тоже самое почему винда занимает почти весь рынок десктопных ОС.
DMGarikk
06.12.2021 18:58Большую часть проектов и сделали небольшие команды людей.
А потом они превращаются в какую то фигню.
ну это неизбежно к сожалению
только причина тут не просто в 'лишних' людях, а в том что бизнес чтото требует — и это надо делать, а небольшой командой все хотелки потянуть невозможно… начинается рост… а дальше уже насколько адекватности и профессионализма менеджмента хватит. как показывает практика — часто не хватает.
а вот не делать это всё — это потерять клиентов и рынок, есть много примеров когда компании банкротились и уходили с рынка тупо потому что 'мы лучше знаем, и ничего делат не будем'
потому что бизнес — это про бизнес, а не про веселое программирование группой друзей
==
грубо говоря если вы например транспортная компания на 10 человек, возите всё вовремя, клиенты довольны… и тут приходит огромная махина где сроки съезжают, менеджеры хамят… но 90% клиентов уходят к ним… потому что… потому что они большие и могут тянуть то что вы не понянете даже не смотря на их минусы
вот в ИТ тоже самое
какой бы линукс не был хороший, хоть ж… порви но доля в пару процентов на десктопах не меняется десятилетиями… хотя MS яркий пример энтерпрайзного монстра который косячит уже десятки лет
Jammarra
06.12.2021 19:02Не надо думать что я это не понимаю. Сам работаю в корпорации возможно даже большей чем тот же Яндекс.
Просто если что то понимаешь. Это не значит что оно тебе должно нравится). Из всего этого мне нравится только ЗП. а вот от качества нашего софта например у меня люто бомбит. Но поделать ничего не могу. Я просто кусок конвеера из тысяч человек.
Просто айти как интересное занятие живет отдельно от бизнеса и денег да.
DMGarikk
06.12.2021 19:04Но поделать ничего не могу. Я просто кусок конвеера из тысяч человек.
у вас есть все возможности это поменять, идите выше, в нелюбимое вами руководство ;)
вы же сами видите но ничего не делаете. и так делают почти все.
у меня бомбит от того что софт крупных компаний кривой, причем настолько что явно видно что никто из этих компаний его не использует, даже люди которые его сами разрабатывают… причем этим людям тоже плевать на это… они копают от рассвета до забора и всё.
я вот в одной компании (тем где выше писал про war файлы) добился запуска процесса реорганизации деплоя например чтобы снизить простои прода (незнаю закончили ли они его, я оттуда уже ушел тогда)
Jammarra
03.12.2021 17:50+2Я devops или sre кому как больше нравится. Осознаю себя как миддл. Или просто по старинке linux админ, на 300к на руки нашел работу за неделю. От куда хабр берет средние. А черт его знает. Не я знаю что есть и вакансии на меньшие деньги. Но зачем на них устраиваться если можно устроиться на больше. Это для меня загадка.
Это у меня еще английского свободного нет. У друга есть, он вилки от 500 только смотрит на удаленке и не в РФ. Тоже миддл sre.
У хороших разрабов ЗП выше чем у нас. Яндекс как то писали, но быстро слились после названной желаемой ЗП.
Сеньоры знакомые sre насколько знаю получают больше нескольких сотен тысяч долларов в год. Но уже и не в РФ. Хотя кому нафиг нужны реальные серьоры в РФ? это фантастика что бы они кому то требовались тут и им платили достойно.
novoselov
02.12.2021 15:25+4Идут за опытом и строчкой в резюме, если бы у меня была возможность поработать в Яндекс после университета я бы пошел. Но senior разработчику вообще не вижу смысла, зарплата в разы меньше.
panzerfaust
02.12.2021 15:38+29Уже сам факт появление статьи оправдательной направленности о многом говорит.
Миф 2: В обычной работе знание алгоритмов не нужно
Господа, просто смиритесь с тем фактом, что сотни успешных продуктов пишутся совсем не олимпиадниками. Времена когда понятие "программирование" было тождественно "computer science" ушли безвозвратно. Теперь это по большей части ремесло. 90% вакансий требуют именно умелого цепкого ремесленника, который владеет приемами создания надежных приложений. Тождественны ли они умению из головы вспомнить или сочинить 10 алгоритмов сортировки и щелкать задачки с литкода? Ну можете и дальше уверять себя, что да.
F0iL
02.12.2021 15:57+6Как уже как-то раз метко сказали здесь на Хабре,
В реальном практическом программировании есть ровно один самый ценный навык: «делать правильно с первого раза и за минимальное время». В широком смысле.
С данным навыком и алгоритмы, и шмалгоритмы коррелируют слабо, зато коррелируют такие вещи как ОО- и компонентный дизайн (да-да, он прекрасно есть и во фронтенде, еще почище), native-владение конструкциями и хорошими практиками ЯП, DRY, разбиение на независимые и узкие слои абстракции, культура юнит-тестов и т.д.
...но Яндекс в качестве ответа на вопрос "вам шашечки или ехать?" смело выбрал шашечки.
kreddos
02.12.2021 16:31+10Я фронтендер, и работал в 2х компаниях, где была секция с алгоритмами. Скажу честно прошел я их с большим натягом, так как не могу сказать что я знаю алгоритмы. Но в обеих компаниях после собеседований на реальных проектах ни разу не приходилось их использовать, совсем, ни разу!
После этого я окончательно убедился, что алгоритмы нужны как раз, что бы скинуть ценник и в реальной работе они не нужны.
А подтверждающим моментом сыграл ответ hr после прохождения всех этапов: "Ты ребятам очень понравился, но результат алгоритмической секции не очень, поэтому мы можем тебе дать такой-то грейд и такую-то сумму, которая является максимальной на твой грейд".
nikitaulshin
03.12.2021 13:36+3Классика :)
Я как-то на собесе поломал интервьюеру мозг вопросом: "Зачем вы это спрашиваете? Зачем мне это знать?"
Я не говорю, что алгоритмы не нужны - это действительно хороший фундамент, который развивает мышление в нужную сторону. Но умение написать стандартный алгоритм на бумажке сродни умению делать сальто - из пользы только аплодисменты окружающих :)
george_vernin
02.12.2021 23:46+1Смешно другое. Что даже те - кто владеет "computer science", побеждал в олимпиадах, любит алгоритмы и фанатеет от них часто останавливается на начальных собеседованиях. Начальный фильтр - настолько формальный и сам формат странный, что собеседование вызывает разве что недоумение. Ты сидишь потом и думаешь - что это было ? Зачем это вообще ?
faiwer
02.12.2021 16:06+9Миф 4: На интервью условия совершенно не похожи на рабочие
Набирать код на секциях в простом текстовом редакторе без автодополнения неудобно, кроме того я не помню наизусть имена функций и классов стандартной библиотеки. Зачем просить разработчика выполнять задания в условиях, совершенно не похожих на реальные?Смутил вот этот пункт 4. Вопрос вроде простой и понятный, а весь текст под ним никак к нему не относится. Он про алгоритмы и базовые знания. Но ведь вопрос про IDE.
Признаться я давно понял, что вариант:
- кандидат готовит со своей стороны IDE и все условия
- делится экраном
Практически идеален. Выяснил на практике, что это позволяет кандидату вообще не отвлекаться на ерунду и с головой уйти в саму задачу. И интервьюверу тоже гораздо удобнее. Он может попросить показать тип переменной, там где он не очевиден. Может посмотреть упали ли тесты, а если упали, то где. Плюс разработка получается интерактивной. Очень удобно все эти задачки решать в разрезе TDD. Обсудили проблему, написали тест, починил код.
Самое худшее интервью у меня было с одной известной израильской конторой. Они мне выдали Google Docs. В общем на войну с текстовым редактором, который работает по совсем другим принципам, у меня ушло 85% усилий мозга. А 15% не хватило чтобы решить элементарные задачи. На мой взгляд так делать просто глупо.
kreddos
02.12.2021 16:37Плюсую, у меня однажды был собес в компанию, где ты шаришь экран поднимаешь проектик и делаешь то, что говорит тебе интервьюер, параллельно задавая вопросы, по тому коду, что ты пишешь. Было меньше тупняков, так как твое окружение, которое работает, так как ты и ожидаешь
DMGarikk
02.12.2021 17:16+3Они мне выдали Google Docs
Да тут хоть гуглдокс, я разок на бумажке А4 код писал… вот уж где было ой
мне там еще интервьювер сочувственно подхрюкивал в стиле «нормальный программист обязан так уметь»faiwer
02.12.2021 18:27+2Я подозреваю, что А4 листок бумаги меня бы меньше смутил. Дело в том, что GoogleDocs был не просто неудобным, он очень сильно мешал. Подсвечивал все мои слова как ошибки, совершенно нестандартно (для кодерского редактора) реагировал на tab-ы. А руки то всё помнят. Да даже примитивнейший блокнот был бы в разы удобнее.
В случае А4 листка, конечно, всё грустно. Особенно если это не карандаш с резинкой, а ручка. Плюс я давно уже разучился писать понятно и быстро. Но с другой стороны можно столько всяких схемок начеркать помимо кода. Эдакий бумажный brainstorm.
vkni
02.12.2021 19:44-2В случае А4 листка, конечно, всё грустно. Особенно если это не карандаш с резинкой, а ручка.
Языки с Algol-подобным синтаксисом в принципе не предназначены для писания на бумажке. Кмк, более-менее подходят либо Фортран 77, либо что-то на term-rewriting, либо кое-как Питон.
И предложение писать код на C/Java на бумажке, etc показывает, что либо интервьюер сам не писал на бумажке и не представляет, что он просит, либо он просто не считает интервьюируемого за равного себе. Дурак или подлец - выбирайте, что лучше.
nikitaulshin
03.12.2021 13:37Мы для собеседования просто готовим песочницу в онлайн-редакторе :)
Нормальном редакторе, с подсветкой синтаксиса и всё такое
alexey_girin
02.12.2021 21:20+5Рад, что до компании Яндекс стало доходить что вред от неоптимальности, избыточности, бессмыслености процесса интервью в конечном итоге таков, что это уже не компенсируется силой бренда.
Конечно, вы ещё далеки от оптимального процесса, но приятно что начали движение в правильном направлении. Это делает нашу индустрию сильнее, а рынок - более зрелымgeorge_vernin
02.12.2021 23:52+9Порой я думаю , что они специально так делают. Те кандидаты, кто проходят всю эту "неоптимальность, избыточность, бессмысленность " очень и очень хотят работать в компании , будут абсолютно лояльны и уже готовы к любому "формализму" компании с которым он столкнется.
alexey_girin
03.12.2021 14:18+2Возможно что вы правы - раз уж я прошёл 8 этапов, то глупо соглашаться на контр-оффер от текущей компании и оставаться на старом месте. Не без этого, чо уж тут.
Но у такой стратегии - есть своя цена. И она внезапно - чудовищно высока. Когда начался кризис - всё встало на свои места.
Надеюсь они доведут свои бизнес процессы до минимально-приемлемых и перестанут использовать сомнительные, с моральной стороны, практики
george_vernin
03.12.2021 17:32Надеюсь они доведут свои бизнес процессы до минимально-приемлемых и перестанут использовать сомнительные, с моральной стороны, практики
Я не уверен что это произойдет. И уж точно не быстро. У них видимо громадная инфраструктура сложившегося менеджмента. И менять ее не будет легко. Думаю затраты на з.п программерам-кодерам + HR не главные расходы компании. Может даже и не в 10ке расходов.
Да и дело ведь не в моральной стороне. А в том что есть сильное не соответствие декларируемого и факта для соискателя и (потенциального) работника .
S_V
02.12.2021 23:38+2Было бы интересно услышать статистику как часто кандидаты отказываются от офера Яндекса и по какой причине?
nikitaulshin
03.12.2021 13:38Я пару раз попадал в их процессы, пока они тянули кота за причинное место - получал несколько офферов и успешно устраивался на работу :)
g_DiGGeR
03.12.2021 20:23+1Отказался один раз, денег предложили ровно столько сколько было на текущем рабочим месте. Тянули с оффером пол года.
Больше не вижу смысла с ними связываться. Интервью впрочем, в Питере, было адекватным.
mixsture
03.12.2021 00:33+11Очень иронично тут слышать столько пафоса про алгоритмы, а в соседней статье про яндекс практикум про то, как в продуктах яндекса строку "_l" путают с "_1".
Это как бы намекает на отсутствие приемки, не то что покрытие тестами. И никакими алгоритмами это не исправить.
Alexufo
03.12.2021 02:42+6В Яндексе я работаю уже больше 12 лет и повидал все наши изменения процесса собеседования. Сегодня я расскажу о наших интервью, попробую разобрать самые популярные мифы и объяснить, чем они обусловлены.
12 лет это большой срок, но у меня сложилось впечатление, как-будто вы оправдываетесь за целую компанию. Не знаю, мифы ли это или нет. Ответить на этот вопрос равнозначно тому, чтобы определить что есть реальность. Сумма договоренностей между индивидумами? Тогда нам просто надо подсчитать количество мнений. Было бы честнее… если бы вы уволились а через под годика с наличием нового опыта, где-то с дружбанами под пивко об этом же самом и рассказали. Мы люди и склонны тереться как камушки в компаниях. 12 лет… Не то, чтобы вы не писали искренне… меня пугает что через чур.
gandjustas
03.12.2021 11:01+8Все настолько плохо, что надо писать статьи чтобы отмазаться?
Хотя отмазка не получилась. Все "мифы" по факту не мифы.
Suvitruf
03.12.2021 12:08+1На рынке сейчас проблема с кадрами. Почти все компании на это жалуются. А из Яндекса многие уходят в последние годы, вот и пытаются хоть как-то в красивом свете себя выставить, чтоб дыры закрыть.
dimsog
03.12.2021 12:48-1У меня вопрос к яндексу. Ребят, а вы вообще тестируете свои сервисы?
Яндекс 360, бывший pdd.yandex, connect и он же.
Баг на баге и багом погоняет. Вы даже надпись DNS правильно написать не смогли.
dimsog
03.12.2021 15:12+3Вот несколько примеров:
Баги и недочеты.
Может быть DNS?
Вместо автоматического trim, они перекладывают все на пользователя. Не сразу поймешь, что вначале стоит пробел (к примеру, вы просто скопировали IP адрес), поэтому не дает сохранить. Хотя простая регулярка исправила бы эту проблему:
Ну и классика выглядит вот так:
Это бывает очень часто. Самый простой способ это вызвать - попробуйте добавить DNS запись, которая уже существует. Ну можно же было написать, что такая запись уже существует. Нет, выдадим рандомную ошибку, пусть пользователь сам думает.
Если я закрыл это окно, зачем его каждый раз выводить?
Просто это один из продуктов, которым я пользуюсь постоянно. И он очень сырой. Я не знаю других, более сырых продуктов, чем этот. Про юзабилити (его отсутствие) смысла пока что говорить нет.
web1nick
03.12.2021 13:05+4"Например, один из наших коллег решал в офисе одну задачу 8 часов подряд": эм, а что в Яндексе предлагают з/п в десятки тысяч басксов? Та нет же, когда-то читал на том же хабре, что з/п там даже ниже рынка (вроде в статье "Тёмная сторона работы в Яндекс.Маркете": https://habr.com/ru/post/505240/ ). Та и достаточно глянуть сейчас на их вакансии, чтобы убедиться, что ничего особенного по деньгам. Так зачем кандидатам добровольно устраивать себе эту игру в кальмара на несколько часов?
"Мне кажется, почти каждый читатель Хабра либо знаком с теми, кто побывал на собеседовании в Яндекс, либо сам его проходил" - забавное ЧСВ, рассмешили. Мир конечно сходиться на Яндексе :)
SerpentFly
03.12.2021 13:07+2Плетью обуха не перешибёшь. Я честно говоря, слабо представляю, как можно исправить сложившуюся за десятилетия репутацию. К тому же эффект от статьи получился в лучшем случае нейтральный, скептические комментарии явно лидируют.
ИМХО, если компания претендует на “элитарность” FAANG, то пусть предложит соответствующие уровни оплаты труда и тогда хотя бы сможет обосновать зачем тратить столько времени и терпения.
kanu
03.12.2021 15:42+1Что самое прикольное, что ни слова не сказано про то, в чем же причина такого убогого процесса интервью:
А причина в том, что при массовом найме (когда проводится несколько тысяч интервью в год), учитываются 2 главных критерия эффективности процесса интервью - 1) среднее время, затраченное на найм 1 человека (что кстати, имхо, должно было бы привести к сокращению количества бессмысленных секций, видимо они еще на пути к этому) 2) процесс должен быть максимально стандартизован с обеих сторон: с одной стороны интервьюера можно легко обучить и заменить, а с другой стороны должна быть единая шкала оценки кандидата, чтобы можно было яблоки сравнивать с яблоками.
К сожалению, в таких условиях никто не смог придумать ничего лучше, чем проверять алгоритмы, так как это единственное, что можно проверить формально и сравнить кандидатов между собой. То, что это не имеет отношения к проектным задачам, никого не волнует, так как измерить это очень сложно.
Примерно как в анекдоте про молодого рекрутера и опытного и про то, что неудачники нам не нужны :)
panzerfaust
03.12.2021 21:11+1К сожалению, в таких условиях никто не смог придумать ничего лучше, чем проверять алгоритмы, так как это единственное...
Далеко не единственное. Было бы желание - систему оценки придумать можно. Иначе получается парадокс: человек придумал такие штуки как микропроцессор, смартфон, интернет - а вот систему оценки инженеров не могёт.
Проблема в том, что для большинства разрабов провести собес - это обязаловка и ярмо. Отсюда и такое отношение: "на тебе брейнфак с литкода, а я посмотрю на твои страдания"
kanu
03.12.2021 15:52+9Миф 1: Яндекс игнорирует предыдущий опыт кандидатов
И дальше абзацы текста, которые подтверждают, что предыдущий опыт не важен, а важно, заучил ты алгоритмы или нет :)
Slaffko
03.12.2021 16:03+3Довольно бессмысленно как оправдываться за то как конкретная компания проводит интервью, как и жаловаться на это кандидатам. Интервью я яндексе неидеально? И что? Им виднее как выбирать сотрудников для выполнения их задач. Точно так-же не будет идеальным собеседование и в других компаниях, везде разные требования и, соответственно, разный подход.
Понятно что ущемлённое самолюбие сложно угомонить, т.к. ложноотрицательные результаты как ни крути бывают, но мир не крутится ни вокруг Яндекса ни вокруг конкретного кандидата.
nktkz
03.12.2021 16:20+1если вопрос зачем статья - пиар
зачем в комментариях указывать что интервью у них так себе - а почему бы и нет
DMGarikk
03.12.2021 16:39плохо то что компания довольно крупная и на неё до сих пор в РФ многие равняются в своих процессах. по этому их подход в некотором роде влияет на рынок.
Slaffko
03.12.2021 16:54+2Если компания не может нанять сотрудников которые ей необходимы - она либо разоряется/стагнирует либо меняет подход. Можно копировать больших парней, но если это копирование ради копирования - сомневаюсь что это надолго.
Gradiens
05.12.2021 19:53+1В других местах уже на первой встрече могли дать ноутбук, попросить написать на нём код, и, если код работал, сразу нанять человека
В результате мы пришли к идее того, что собеседование должно состоять из нескольких независимых секций, проведённых по единому стандарту.
Я правильно понимаю, что вы пришли к той же замечательной идее, что и Прокруст? И теперь даже случайно нельзя будет попасть на адекватное собеседование?
rblaze
08.12.2021 21:34Компанию с несколькими инженерами можно собрать из уникальных, талантливых и необычных людей. Компанию с несколькими тысячами инженеров - нельзя. Нужна стандартизация.
ChePeter
ответы у него очень уж вежливые и содержательные
https://habr.com/ru/company/yandex/blog/498366/#comment_21532638
Я извиняюсь, но начисто отбивают любое желание что либо обсуждать с Яндексом.
Dolios
Вот уж не думал, что я когда-то буду защищать Яндекс, который я, скажем так, недолюбливаю, но против фактов не попрешь. Я сходил, по вашей ссылке, почитал. Хамите там, в этом треде, вы, а не оппонент. То, что вам там накидали пачку минусов, а вашим оппонентам плюсов, говорит о том, что так считаю не только я.
Что касается обращения на "ты", то в сети еще со времен фидо было принято обращаться друг к другу именно так. Меня, если честно, показушное выканье смешит и расстраивает. Но, приходится кривляться и выкать из-за таких вот, как вы. А что касается царей и прочих, вот, ознакомьтесь.
Однажды пожилой человек начал учить Учителя Ио жизни.
— Почему я должен поступать так как ты мне говоришь? — спросил Ио.
— Потому что я тебя старше! — вскричал пожилой человек.
Тогда Учитель Ио сказал:
— Насыщает не время, проведенное в столовой, а количество съеденных беляшей.
(с) Ллео
Ну и, да, ваш возраст нигде не написан, я вполне могу быть старше вас.
nktkz
а то что до перехода к теме про "ты" он был прав, а человек из яндекса отвечает достаточно неадекватно, это ок?
Dolios
Дело не в том, кто тут прав. "Человек из яндекса" отвечал вполне адекватно и корректно всю дорогу, он попросил пример кода в итоге. Кстати, другой человек привел ему пример кода и "человек из яндекса" признал, что был не прав. Умение признавать свои ошибки как раз и есть признак адекватности, как по мне. А вот "он" начал превращать дискуссию в клоунаду, причем с самого своего первого сообщения. Своей эдакой снисходительно-покровительственной манерой с явным желанием унизить собеседника (он же старше, ему можно, ага, насмотрелся на таких) и шпильками про "ынтерпрайз".
nktkz
дело в том кто прав
не согласен с вами. вопросы были простые. просто "человек из яндекса" их не понимал. вы не видите всю надменность в его сообщениях, которая, как мне кажется, и сработала триггером на смену тона беседы
и подколы про "ынтерпрайз" здесь не просто так, потому что ситуация действительно смешная
я считаю это профессиональным умением неучей выставлять критикующего оппонента каким то неадекватным
пс: уточню. комментарий про "ты/вы" неадекватный. но то что к нему привело тут важнее.
Dolios
Вполне допускаю. Это, как бы, нормально, всего знать и понимать всех с полуслова невозможно. Я вот тоже не всегда оппонентов сразу понимаю, например. Гоните меня, насмехайтесь надо мной.
Не вижу.
Не было никакой смены тона, ChePeter с первого своего сообщения начал троллить в надменной манере.
Это непрофессионально и контрпродуктивно, как по мне.
Я вот в упор не вижу, чтобы "человек из яндекса" там кого-то кем-то выставлял, ChePeter все, что можно и нельзя сделал сам, имхо.
При этом я вполне допускаю, что "человек из яндекса" подлец и негодяй, а ChePeter молодец, я говорю не о персоналиях и не о профессиональных заслугах оппонентов, а лишь о тоне, который они выбрали в той дискуссии. Потому что речь ваше зашла о вежливости.
nktkz
вежливость - в статье дать добавить сноску на справедливые возражения.
но вы слукавили, сказав что человек из яндекса что то признал. это не так. он поблагодарил за код другого человека и остался при своем мнении. или это в последующих ветках произошло?
ashagraev
Да, я поблагодарил за код другого человека и остался при своём мнении о валидности реализации из поста, верно. Замечу только, что предложенное в комментариях решение тоже является верным (о чём я писал), хотя и не подходит для потоковой обработки.
ashagraev
Это вот вечная беда переписки: любое текстовое сообщение можно прочитать с возможной интонацией, и именно эта интонация определит, как будет воспринято исходное сообщение. Я очень, очень-очень стараюсь писать так, чтобы мои сообщения не выглядели высокомерными, надменными и вот это всё, но не всегда это получается :(
Во всяком случае, могу заверить, что у меня никогда нет желания как-то обидеть собеседника или продемонстрировать собственное превосходство. Так что, если я кого-то задел — прошу прощения, это не было целенаправленно. Я правда хотел разобраться.
muturgan
Моя жена этим постоянно грешит) прибегает ко мне и жалуется - Лев надо мной издевается в переписке! Ну, говорю, дай почитать что Лев тебе пишет. Читаю - вполне корректное общение как по мне. Нет говорит, он сказал это с издёвкой. Как она интонацию в тексте парсит - ума не приложу :)
VorontsovIE
Да не был он прав. Чувак с нескольких раз таки и не понял, что автор рассматривал алгоритм, подходящий для данных заранее неизвестного — потенциально бесконечного — размера (что типично для поточной обработки). И что доля выборки имеет право быть гигантской — и тогда все эти идеи про то, что константа перевесит асимптотику окажутся неверны. Да и откуда он вообще взял какую-то «базу», откуда делается обращение.
Впрочем, автор оригинального поста косноязычен и не умеет доносить свою мысль.
Dolios
Прямо классическая история тут опять происходит. Мои комментарии все в плюсах, а в карму понапихали минусов. В — вежливость ))))
nktkz
а у меня плюсов к комменам мало, зато в карму поставили
вывод - токсики ставят в карму. вежливые в комментарии
Kyushu
Если один из собеседников обращается к другому на "вы", а в ответ получает "ты" это не есть comme il faut (комильфо) независимо от возраста.