В этой статье я хочу описать (часть) моего опыта взаимодействия со структурой, именуемой в дальнейшем "яндекс", с точки зрения работника. Опишу собеседования и этап "входа".
Да, уже были статьи про собеседование и даже в эту же структуру, некоторые из них я видел, но не во всём с ними согласен, к тому же конкретно С++ разработчиков я там не видел.
Начало
Это был спокойный осенний вечер, ветер играл с листьями, море начало свой вечерний танец с солнцем. Раздался звук. Это было уведомление телеграмма. Ещё одно. За ним последовал грохот всплывающего уведомления о пришедшем емейле. Это были они. Они вышли на меня. HR'ы яндекса. Их условие было простым - приди на собеседование. Что ж, была не была, попробуем, подумал я и мы договорились встретиться в Zoom.
Как оказалось позже, ставка была ложной, HR система яндекса не так проста, налицо системный подход к безопасности. Каждый HR автономен и не имеет доступа ко всей информации. Даже если главный центр будет уничтожен, каждый из них будет пытаться воссоздать компанию с нуля. Вдохновлялись явно природой.
Поэтому договориться нужно с каждым и даже когда вы работаете в яндексе они вам всё равно пишут.
Мне были любезно предоставлены подготовительные материалы: ссылка на литкод и время.
В свою очередь я добросовестно не открывал эту ссылку, потому что готовиться к собеседованию это и обман самого себя и компании (мне лень), хотя я отлично понимаю тех, кто пытается эту систему обмануть, если она порочна (собеседование не связано с реальной работой)
Первое собеседование
И вот мы уже в Zoom, собеседующий был очень добродушным и приятным в общении - он поздоровался, дал ссылку на пустой блокнотик для кода и разминочную задачку.
Задача №0
сложность: leetcode easy
Вернуть массив k наиболее часто встречающихся элементов данного массиваПричём в массиве всегда хотя бы k элементов, а k > 0, после уточнения: порядок одинаково частых элементов неважен, дубликаты не убирать
И сходу я написал примерно следующее (сейчас уже точно не упомнить):
std::vector<int> most_freq(std::span<const int> nums, int k) {
assert(k <= size(nums) && k >= 0);
std::unordered_map<int, size_t> counts;
for (int x : nums) ++counts[x];
std::vector<int> out(k);
auto to_freq_proj = [&] (int x) { return counts[x]; };
std::ranges::partial_sort_copy(nums, out, std::greater{}, to_freq_proj);
return out;
}
Собеседующий был явно ошарашен, но принял решение
Так как я решил задачу быстро и по оценке собеседующего хорошо, решено было дать мне задачу повышенной сложности. Логику этого решения я объясняю ?.. отсеиванием слишком квалифицированных сотрудников?..
Задача №1
сложность: leetcode hard
Даны высоты столбиков, посчитать сколько воды могло бы собраться в этих столбиках в дождь (подробнее на литкоде по ссылке https://leetcode.com/problems/trapping-rain-water/)
Немного пришлось подумать конечно, но в итоге я придумал алгоритм за O(N) по времени и O(1) по памяти и написал его, а потом принялся за самое сложное - доказать собеседующему, что решить с такой сложностью возможно. Но собеседующий был приятный и в беседе мы продебажили код и разобрали крайние случаи
Решение у меня сохранилось, так как я прямо после собеседования пошёл и вставил его как было в литкод, чтобы убедится в его правильности
решение (сигнатура литкода сохранена)
class Solution {
public:
int trap(vector<int>& vec) {
if(vec.size() < 2)
return 0;
auto max_it = std::max_element(begin(vec), end(vec));
int max_height = *max_it;
int max_water = vec.size() * max_height;
max_water -= std::accumulate(begin(vec), end(vec), 0);
auto go = [&] (auto it, auto e) {
int count = 0;
int cur_max = *it;
++it;
while(it != e) {
++count;
if(*it >= cur_max) {
max_water -= count * (max_height - cur_max);
cur_max = *it;
count = 0;
}
++it;
}
};
go(begin(vec), max_it == end(vec) ? max_it : std::next(max_it));
go(rbegin(vec),
max_it == begin(vec) ?
std::reverse_iterator(max_it) : std::next(std::reverse_iterator(max_it)));
return max_water;
}
};
Фух, первое собеседование позади, вероятно в следующих меня ожидают вопросы по плюсам и что-то спросят про предыдущий опыт. Может даже о жизни поговорим?
Фидбек:
Ну, усложнение это конечно давать хард с литкода на собеседовании, но удивляет тут другое
давай ещё одну секцию с задачами ????
после этого останутся только алгоритмы ☠️
не уверен, что мы успеем их пройти в этом году☠️☠️☠️
То есть.. хард с литкода это были задачки, а алгоритмы они потом. После этого конечно был долгий разговор чем отличаются задачки от алгоритмов (спойлер - ничем)
Конечно, такой вызов только раззадоривает, поэтому не обращая внимания на красные флаги бежим на
Второе собеседование
После первого я порефлексировал и пришёл к нескольким выводам:
писать хороший код невыгодно, его поймут. А если написать приемлемо непонятный код и очень уверенно говорить, что он работает, собеседующий не сможет продебажить его в голове и согласится
собеседующим плевать, они не знают обо мне ничего. Даже на каком языке я собираюсь писать
не решать задачи слишком легко, а то дадут сложнее
Все свои выводы я конечно проигнорировал, потому что подстраиваться под это - значит изменять своим принципам (мне лень).
Zoom. Сайт-Блокнот. Я. Собеседующий. Мы снова встретились. В этот раз был какой-то человек, которого будто по распределению отправили на окраину галактики сортировать мусор. Он был сух, просто копипастнул текст medium leetcode задачи в общий блокнот и молчал. Пытаясь разрядить обстановку я спросил что-то про задачу и аргументы (зная, что на литкоде обязательно внизу написано что-то про них). Он скопировал это тоже. Потом я просто решил задачу, объясняя что и почему я делаю, но кажется собеседующему было безразлично.
Задача решена, значит можно дать следующую, так что он просто снова скопировал её текст в блокнот. На лице его промелькнула ухмылка.
Задача №3
сложность: leetcode hard
Пользователи приходят, обращаются в систему, некоторые их них делают это слишком часто (считаются роботами)
Дано число K (обозначает время), число N(> N обращений за K времени означает робота) нужно написать тип с несколькими функциями, "обратиться", "количество обнаруженных роботов за такой-то период" и так далее
(формулировка может быть не точная, не сохранилась)
Тьфу-ты, опять слишком хорошо первую задачу решил.
Не идеальное по алгоритмической сложности решение не принимается(O(1) обращение например). Много времени было потрачено на то, чтобы убедить собеседующего, что как-то невозможным выглядит это требование, там максимум ожидаемое O(1*) в среднем.
Попыхтел, но сделал, получилось что-то похожее на LRU кеш по строению, список и хеш мапа, плюс всякие мелочи и хаки. Время конечно поджимало, что же в итоге?
Фидбек:
Да, код сыроватый, ему всего 15 минут 32 секунды от рождения. Нужно было выделить общий код... (я дважды написал одну строку с erase), что же, сожалею, не прочитал мысли и не написал прямо как в листочке ответов у собеседующего, в следующий раз зайду таки на экстрасенс-литкод и подготовлюсь лучше
Итого: medium + hard литкод как вы помните это всего лишь задачки. На очереди алгоритмы.
Третье собеседование
Этим этапом пугали всех, даже самые смелые заходили таки на литкод, чтобы подготовиться. Я тоже подготовился, две недели праздновал праздники и отдыхал, не прикасаясь к коду (мы называли это новый год).
Яндекс тоже готовился. На поиски собеседующего были брошены немалые силы, бой должен был быть зрелищным.
Они обещали, что это будет сложно и это было сложно. Собеседующий, сидящий подобно роботу исключительно прямо и глядя в бумагу, не совершая ни одного лишнего движения пододвинул к себе листок и стал читать..
инструкцию о том, как будет проводиться интервью. Наконец на третьем собеседовании мне открыли эту тайну. Пока я недоумевал, он успел прочитать два предложения, я вежливо его перебил, намекая, что уже знаю. Он сказал просто: мы должны это сделать. И начал читать сначала.
Я понял, это был тест на знание алгоритмической сложности. Если бы я продолжал его перебивать, то он читал бы O(N^2) времени, что забрало бы у меня время на решение самих задач.
Чтение сухой инструкции заняло около 7 минут, потом он поприветствовал меня и задал самый сложный вопрос из всех, я даже не мог его представить. Он был неожиданным, к нему не подготовился бы никто и яндекс знал это:
- Вы же будете писать на JavaScript?
Чудом и усилием воли я выдержал этот тест и не засмеялся, ответил что буду писать на С++, на что собеседующий заявил, что его не знает, поэтому "нам будет сложно". А ведь сложно и обещали, не соврали.
Задача №4
Сложность: medium ?
Дан массив из нулей и единиц. Нужно определить, какой максимальный по длине подинтервал единиц можно получить, удалив ровно один элемент массива.
Требования: O(1) по памяти, O(N) по времени
Я спокойно приступил к решению, но собеседующий постоянно перебивал меня, потому что не понимал, что означают конструкции С++. Поэтому всё вылилось в лекцию по С++, во время которой мы прошлись по концепции итераторов, алгоритмов, контейнеров - и лекция мне даже понравилась. А потом я написал
size_t c = std::count(/*что-то там*/);
На что последовало резкое "а можно поближе к железу?". Голова пошла кругом, мир начал рушиться, мои объяснения не были поняты... Как преподаватель я был угнетён.
С горем пополам, задача была решена на общем подмножестве JavaScript и С++, который можно назвать Y++.
На вторую задачу (почему-то) времени не хватило.
Фидбек (спустя неделю):
Вот жеж! Даже на алгоритмах всё время ушло на одну задачу! Попались.
Итого, мы выяснили, что не решение одной задачи делает весь процесс проваленным. Запомним это для кое-чего в будущем
Но это ещё не весь фидбек:
Шучу, на самом деле вот:
Почему бы нет, интересно куда готовы взять дурачка, который всего лишь решил 1 легкую, 2 средних и 2 хард задачи в сумме за полтора часа.
На выбор было неважно что и КомандаРоботов:
Я подробно рассмотрел эту возможность и взяв волю в кулак решил, что
я не робот
и меня не поймут в команде роботов (из которой видимо был последний собеседующий)
Перед тем как продолжать, давайте посчитаем вероятность гипотетического олимпиадника стать роботом (пройти в их команду)
1 легкая, 2 медиум, 2 сложные задачи + если смотреть на тенденцию ещё одна сложная задача в третьем собеседовании после первой
-
наш олимпиадник идеален, его вероятность решить лёгкую задачу за 30 минут 100%, вероятность решить среднюю 90%, вероятность решить сложную 80%
1 * 0.9 * 0.9 * 0.8 * 0.8 * 0.8 (три сложных, две средних, одна лёгкая, одна ошибка - вылет) получается примерно 40%. Получается даже такой гений просто надеется на удачу и хорошо выпавшие задачки?
Ладно, от скучных расчётов пойдём дальше, во вторую команду не требовалось ничего и я пошёл туда. Причём условием был переезд в другую страну, но я тот ещё путешественник, поэтому согласился.
Итак, документы подписаны, алгоритмы позади (вместе с задачками). Так как на своём ноутбуке работать небезопасно, за пару дней до переезда мне вручили ноутбук, а выглядел он примерно так:
В комплекте шли крошки на клавиатуре, а также требование отпечатка пальца некой Татьяны для разблокирования. Что ж, всякое в логистике бывает. Поэтому я полетел с ним и решил на месте поменять на что-то другое
Снова ветерок, новая страна, яркие впечатления, местная кухня... Иду к офису, встречать свой первый рабочий день в обнимку с любимым уже кирпичом, с которым мы и через дождь и через аэропорт и погрузку на самолёт с просьбой разблокировать его, потому что он уж слишком подозрительный (пальца Татьяны у меня не оказалось, но думаю это было бы ещё подозрительнее).
Вхожу, снимаю куртку и вешаю её, переступая человека с ноутбуком на полу (места нет), подыскиваю себе с кирпичом свободное место и знакомлюсь с командой... В которой нет никого, кто пишет не на Python.
Выводы
Описанное собеседование не проверяет ничего из реальных навыков, более того, оно даже не проверяет знание алгоритмов. В коде потом я не раз встречал вопиющие примеры плохих алгоритмов, например поиск общего подмножества за O(N^3)
Можно сколько угодно рассуждать о том, что "если человек понимает алгоритмы, то он научится и писать на Go/Python/C++", но это не работает. В лучшем случае на обучение уйдёт немало времени (и багов), в худшем человек так и не осилит С++, причём будет думать, что раз он бинарный поиск на питоне решил, то и С++ он отлично знает. Порой казалось, что для написания на новом языке люди используют ChatGPT, причём впечатление очень сильное
Также собеседование не проверяет коммуникативных навыков и банально тот факт, что человек то адекватный и хороший, впечатление, что собеседующие никак не мотивированы, причём вероятно сознательно, в целях какой-то безопасности
Остальные выводы делайте сами.
Комментарии (240)
Rusrst
09.12.2023 18:10Блин, это лучшее что я читал за последние пару лет на habr-e! :)
Спасибо, получил массу положительных эмоций и подтверждение моих опасений по поводу Яндекса:)
KanuTaH
09.12.2023 18:10Решили в угоду местному контингенту переключиться с генераторов на контент развлекательного характера, хехе? Про генераторы статья была хороша, кстати (я поставил заслуженный плюс), но здесь это не в коня корм.
SalazarMAX
09.12.2023 18:10Для меня до сих пор загадка, как Яндекс вообще умудряется кого-то находить с такой идиотской системой найма?
wataru
09.12.2023 18:10Специфика больших ведущих компаний. У них действительно за забором куча желающих. Так что они могут хоть просить сплясать на интервью, или отсекать всех, у кого ИНН четный.
Однако, проверка алгоритмами, в отличии от упомянутых выше методов - довольно релевантна. А по совокупности всех критериев - гораздо более оптимальна любого другого метода. Не буду тут аргументы в очередной раз повторять, я про это статью написал.
Kelbon Автор
09.12.2023 18:10просить сплясать на интервью, или отсекать всех, у кого ИНН четный.
только вот хотелось бы нанять в итоге лучших из них или хотя бы приемлемых, а алгоритмы зачастую не дают понимания об этих навыках. Теоретически эффективнее разбить компанию на много подкомпаний, каждая из которых нанимает как ей выгодно, по нужной ей качествам, при этом учитывая ну хотя бы знания и опыт человека в конкретном языке
vvzvlad
09.12.2023 18:10только вот хотелось бы нанять в итоге лучших из них или хотя бы приемлемых, а алгоритмы зачастую не дают понимания об этих навыках.
Неправильно. Алгоритмы отсеивают эффективнее некомпетентных и тех, у кого нет навыков, и в итоге улучшают качество сотрудников. Вам просто не повезло, поэтому вы осуждаете такую практику найма. Но это не имеет значения, потому что важнее отсеять приятного в разговоре придурка, чем нанять умного человека, не прошедшего алгоритмы.
Kelbon Автор
09.12.2023 18:10Алгоритмы отсеивают эффективнее некомпетентных и тех, у кого нет навыков
Я бы может и согласился, если бы это было частью собеседования, но оно всё состоит из них. А олимпиадников отвратительно пишущих код и не понимающих ничего в дизайне/архитектуре - навалом
важнее отсеять приятного в разговоре придурка, чем нанять умного человека, не прошедшего алгоритмы.
вот я как раз думаю, что приятный в разговоре придурок может быть команде полезен или по крайней мере не в минус, а вот токсичный решатель алгоритмов может развалить всю команду очень просто
vvzvlad
09.12.2023 18:10Вы бы статью прочитали, на которую вам линк скинули, а не демонстрировали бы свою обиду на яндекс неприятием чужой точки зрения.
Еще раз:
1000 человек. Из них 500 тупых, 500 умных. Из умных алгоритмы знают 200, а из тупых — 100, те самые олимпиадники. Надо нанять не всех умных, а всего десять человек. Выбираем тех, кто нравится эйчарам — получаем 7 тупых, 3 умных. Выбираем рандомно — получаем 5 тупых и 5 умных. Выбираем по оценкам в школе/красному диплом — получаем 6 умных и 3 тупых. Отсеиваем всех, кто не умеет в алгоритмы, из оставшихся 300 выбираем рандомно десять, получаем где-нибудь 3 тупых и 7 умных. Или еще лучше, потому что умные, если мотивированы, алгоритмы подучат и со второго раза пройдут.3:7 лучше, чем 5:5. Алгоритмы работают. Ценой отсеивания 300 умных, да, им обидно, они статьи на хабре пишут, как так, не взяли, а я ведь хороший, а интервьюер ничего не понимает, плохой яндекс, фу.
А он не плохой, он рациональный.
К тому же, алгоритмы эффективно отсеивают программистов-"звезд", а это, если вам нужны управляемые кодописатели, еще хуже, чем тупые программисты.
Да, в ситуации есть косяки яндекса — типа чувака который не знал языка интервьюируемого. Но в целом, система прекрасно работает.
Kelbon Автор
09.12.2023 18:10Это вы бы статью почитали, меня взяли. А цифры взяты +- с потолка, я видел хорошие собеседования, а видел и вот такие из статьи, а ещё я видел кто работает в этих компаниях. И у меня очень хорошие воспоминания о тех, кто попал через хорошие собеседования в компанию - разумные и сбалансированные решения, отличное понимание того что они делают. А компании с плохим собеседованием внутри имели сброд, как будто из идиократии, который клепает ужасную архитектурно и чисто по человечески шелуху
Aniro
09.12.2023 18:10Вы в этих рассуждениях не учитываете то что в зависимости от способа найма у вас будет разное соотношение людей на входе. Вроде как очевидно что если вы нанимаете кандидата в течении месяца а конкуренты за один день - то при равной компенсации все рационально действующие "умные" будут у конкурентов.
Femistoklov
09.12.2023 18:101000 человек. Из них 500 тупых, 500 умных. Из умных алгоритмы знают 200, а из тупых — 100
"Откуда вы берёте все эти числа, Поттер?"
coodi
09.12.2023 18:10Ну в вот в итоге и получаем такой Яндекс, какой получили. С тормозными и перегруженными приложениями
brsphhkg
09.12.2023 18:10добавление новых фич во все подряд форсят менеджеры, а не разработчики. Надо же на ревью оценки высокие получать, иначе премию не получить нормальную.
PsyHaSTe
09.12.2023 18:10При этом менеджеры на собесах наверняка не решают задачки. Так что все сходится - нужно просто ещё больше задачек!
wataru
09.12.2023 18:10Я в статье подробнее объяснил. Алгоритмы все-таки релевантны.
Теоретически эффективнее разбить компанию на много подкомпаний, каждая из которых нанимает как ей выгодно, по нужной ей качествам, при этом
Это невозможно. Будет разброд и шатание. Невозможность внутренней мобильности.
учитывая ну хотя бы знания и опыт человека в конкретном языке
Знания в конкретном языке тоже не самая релевантная метрика, ибо там у них своя кухня, свой стиль, свои фреймворки. Я не знаю, как в яндексе, но в гугле только подмножество C++20 используется. И то на него, по крайней мере в хроме, только в этом году перешли. Потому что легаси и все тяжко. А еще обширная внутренняя библиотека. Поэтому ваш многолетний опыт не то чтобы абсолютно релевантен.
Потом, этот опыт и знание языка проверять еще сложнее. В итоге, учитывая специфику больших компаний, единственная возможная проверка - это тест на знание языка с подковырками, от которого тут будут плеваться все еще больше, чем от алгоритмов.
subvillion
09.12.2023 18:10Это невозможно. Будет разброд и шатание. Невозможность внутренней мобильности.
Стек внутренних технологий своеобразен, поэтому преимущество "внутренней мобильности" - отсутствие временных затрат на погружение/обучение. И кто сказал, что при миграции между подразделениями, не бывает не формальных собесов?
brsphhkg
09.12.2023 18:10эффективнее разбить компанию на много подкомпаний, каждая из которых
нанимает как ей выгодно, по нужной ей качествам, при этом учитывая ну
хотя бы знания и опыт человека в конкретном языкеименно так и нанимают в бизнес-юниты типа я.путешествий - нет этих вот 7 кругов клоунады для миддла
Mike-M
09.12.2023 18:10Не, разбивать компанию на подкомпании не надо, у них и так «Каждый HR автономен и не имеет доступа ко всей информации» )
ZirakZigil
09.12.2023 18:10только вот хотелось бы нанять в итоге лучших из них
Так может они там преисполнились в своих задачах настолько, что по классике первых N/e кандидатов отсеивают, а уже потом выбирают лучшего.
vkni
09.12.2023 18:10Однако, проверка алгоритмами, в отличии от упомянутых выше методов
А ведь отсекать всех, у кого ИНН четный — это и есть проверка алгоритмом. Но тут есть ньюанс! :-)
255-0-0-1
09.12.2023 18:10Беда с наймом у яндекса. Видимо поэтому создали отдельное подразделение "Яндекс Крауд". Интересно было бы почитать про найм с внутрянки яндекса.
OldNileCrocodile
09.12.2023 18:10Москва и Питер. Там рассадник международных олимпиадников. И даже среди них высокий отбор.
wataru
09.12.2023 18:10Не могу говорить за Яндекс, но расскажу, как у нас в Гугле.
Чтобы собеседующий не знал язык на котором будет интервью - это огромный косяк. В гугле это может случиться только если собеседующий внезапно заболел и нашлась экстренная замена. Но в этом случае собеседующий все еще знает, на каком языке интервью должно быть. Он может попросить писать код попроще без кучи синтаксического сахара и библиотечных абстракций. Или предложить писать на другом языке (на ваше усмотрение, конечно). И к коду тогда он относится менее критически.
Что касается добавленных задачек - у нас тоже будут задавать вопросы, пока не кончится время. Чаще всего, это не какие-то несвязанные задачи, а дополнительные вопросы к уже существующей. Типа, а вот добавим такое ограничение, а вот теперь еще отрицательные числа, а для нецелых? А если вот тот параметр не любое значение может принимать, а только из ограниченного множества? И т.д. Иногда это приводит не просто к небольшому изменению алгоритма, а вообще требует другой алгоритм. Например, первая задача решается жадностью, котрая перестает работать во второй и надо уже какую-нибудь дихотомию по ответу писать.
Это делают, чтобы была возможность отделять супер-пупер сильных кандидатов от супер-сильных. Может быть и так, что внезапно придет куча очень крутых кандидатов. Тогда супер-пупер сильных наймут в первую очередь, а супер сильным предложат начать работать попозже.
Так что, если вы решили 2 задачи, то вам дадут третью. И неважно, продвинетесь ли вы в ней вообще или нет. Вы уже будете ранжированы выше кандидата, который только 2 задачи решил и все.
Ionenice
09.12.2023 18:10Это делают, чтобы была возможность отделять супер-пупер сильных кандидатов от супер-сильных
За последний год, может два, активно пользуясь поиском, картами, и ютубом, у меня как-то сами собой напрашиваются вопросы, а что именно делают эти супер пупер сильные кандидаты после принятого оффера? Чувство, будто где-то там закрался какой-то баг в коммуникации между разными уровнями команд, что каждый, из трёх упомянутых сервисов, умудряется невероятно выбешивать или багами или концептуальными проблемами
programmerjava
09.12.2023 18:10Возможно они там занимаются в основном архитектурой и обычной бизнес-логикой не занимаются, которая и является причиной багов, которые видит юзер
Тут, честно говоря, вопрос к QA больше или процессам, а не разрабам.. Наверное. Так кажется мне :)
Ionenice
09.12.2023 18:10Так на любую вакансию будет похожий отбор, не только ведь инженеры там работают, т.е на любой должности должен быть квалифицированный челочечек) Ну и за баги как раз отвечают в том числе и разработчики, за проблемы UX уже да, толпа людей, которая, возможно, и приводит к печальным решениям
wataru
09.12.2023 18:10Есть мнение, что без алгоритмов оно бы тормозило и баговало бы еще больше. Плюс это все скорее вызвано не навыками программистов, а давлением бизнеса, бюракратией и спецификой большой компании. Скажем так, в гугле хоть и произносят магические слова "user excellence", просто за количество исправленных багов не повышают, надо какую-то новую фичу запилить (отсюда, кстати, выбешивающие пользователей бессмысленные изменения в интерфейсе).
Ionenice
09.12.2023 18:10а давлением бизнеса, бюракратией и спецификой
Я примерно так и представляю, что и у маркетинга и у продактов и прочих менеджеров свои метрики / желания и всё это смешивается в какую-то кучу, которую кто-то и как-то разгребает :(
бессмысленные изменения в интерфейсе
Изменение интерфейса это нормально, проблема когда этот интерфейс просто не выполняет своей функции или просто портит пользовательский опыт, иногда ещё сверху наваливаются и баги и просто подгорает от этого)
Есть мнение, что без алгоритмов оно бы тормозило и баговало бы еще больше
Это безусловно так, особенно в отношении части сервисов и гугла, но интересно, является ли этот «усердный» (не знаю какое слово подобрать) отбор и огромный упор на алгоритмы действительно эффективным?
wataru
09.12.2023 18:10Это безусловно так, особенно в отношении части сервисов и гугла, но интересно, является ли этот «усердный» (не знаю какое слово подобрать) отбор и огромный упор на алгоритмы действительно эффективным?
Эффективным с какой точки зрения? Работающая система найма, дающая высокий процент компетентных работников? Я уверен - да. Дает ли это 100% самых эффективных разработчиков из всех пришедших на собеседование? Очевидно - нет. Но такая чудесная система просто не существует на таких масштабах. У любых других методов свои проблемы. Опять бесстыдно воткну тут ссылку на свою статью, где я эту тему и обсуждаю.
Ionenice
09.12.2023 18:10Эффективным с какой точки зрения?
Эффективным с точки зрения отбираемых в результате кадров.
В любом случае понятно, что всё упирается в этот фаанг, выбравший такие подходы
Kelbon Автор
09.12.2023 18:10Есть мнение, что FAANG это большие неэффективные монополии
wataru
09.12.2023 18:10С другой стороны, некоторые сервисы только такие огромные монополии и способны сделать. Карты всего мира. Или та же stadia была: шикарные технологии и гугловые датацентры по всему позволяли играть без лагов. Если бы не идиотская совершенно схема монетизации, стриминговый гейминг мог бы стать мейнстримом.
MBkkt
09.12.2023 18:10Карты может сделать команда из нескольких человек.
Но в целом с вашей позицией согласен
wataru
09.12.2023 18:10Карты может сделать команда из нескольких человек.
Какой-то сайт с картами - да.
Наполнить его картами всего мира. Отмасштабировать, чтобы им пользовались по всему миру сотни миллионов пользователей каждый день, чтобы была навигация включая общественный транспорт почти везде, запилисть street view... Тут нужна огромная компания с огромными деньгами. Не только программисты и до жопы серверов. Сама логистика такого сервиса - это очень сложно.
PsyHaSTe
09.12.2023 18:10У меня в закладках есть статьи на разные случаи жизни, в том числе эта: https://danluu.com/sounds-easy/
Так что ППКС
vkni
09.12.2023 18:10Есть мнение, что без алгоритмов оно бы тормозило и баговало бы еще больше.
Но не с олимпиадной же скоростью написанных! Основная претензия не в том, что алгоритмы и задачи на алгоритмы нужны. Они встречаются, но не с условием «час на написание, и на PROD».
Характерные времена изменений кода в таких больших местах — это неделя. Даже не день. Ну потому, что нужно код оттестировать неделю на бете, т.к. нагрузка и условия работы серьёзно меняются в течение этой самой недели.wataru
09.12.2023 18:10Характерные времена изменений кода в таких больших местах — это неделя
Но интервью не может длиться неделю. Это могут быть только тестовые задания, но их ненавидят не меньше алгоритмических интервью. И по многим критериям они сильно алгоритмическим задачкам уступают.
bolk
09.12.2023 18:10Не может, но длится? ) Шесть раундов за какое время проходят?
wataru
09.12.2023 18:10Шесть раундов за какое время проходят?
6x45 минут = 4.5 часа.
bolk
09.12.2023 18:10Ну так это не день подряд. Шесть дней по 45 минут, большой задачей так тоже можно заниматься.
У меня первый раунд был 4,5 часа, к слову.
wataru
09.12.2023 18:10Главное отличие - эту предполагаемую неделю кандидат будет что-то делать без присмотра дома. Скорее всего с помощью друзей и наставников с курса "с нуля до мидла за 2 месяца".
Потом, если давать неделю, то и задача будет сложнее в плане количества работы. Посмотрите, тут же на хабре куча статей, что люди никогда больше не будут делать тестовые задания, потому что это очень много работы и вообьще насилие над здравым смыслом.
Далее, для большей объективности и необходимого уровня отсечения, таких заданий все-равно будет 3-6. Т.е. кандидату уже месяц придется работать над этими заданиями. Это, по вашему, лучше текущей ситуации?
vkni
09.12.2023 18:10Главное отличие - эту предполагаемую неделю кандидат будет что-то делать без присмотра дома.
Вроде бы работники Яндекса тоже каждую неделю что-то делают без присмотра дома, да ещё и очень много времени. Или уже нет? :-)
wataru
09.12.2023 18:10Вроде бы работники Яндекса тоже каждую неделю что-то делают без присмотра дома, да ещё и очень много времени.
Мы все еще про интервью говорим, я напоминаю. Есть достаточное количество народу, которые хотят хоть тушкой хоть чучелом попасть таки в яндекс. Ведь несмотря на их жесточайшую систему отбора, желающих пройти 6 кругов
адасобеседований достаточно. А там, пока разберуться что да как, можно получить строчку в резюме, много месяцев получать хорошую зарплату, а то и бесконечно симулировать деятельность. В больших компаниях это проще делать.Интервью без надсмотра станут сильно менее точными, ибо будет очень много читеров. Буквально будут услуги по прохождению такого экзамена за вас.
omgiafs
09.12.2023 18:10Я недавно заметил, что главная страница Ютуба на смартфоне мне предлагает куда более интересный контент, чем та же страница на ПК в браузере. Учётка, естественно, одна и та же.
На смарте я как правило контент только слушаю, может быть с этим связано. Но в браузере - вот прямо шляпа какая-то в предлагаемых. Скоро будет как на главной при отсутствии логина, видимо.
Вот только не надо тут "шутить за 300" про то, что Ютуб тебе предлагает на основе твоей истории просмотра, поэтому у тебя в предлагаемых всякие КВН и Бурунов. Потому что на смарте та же самая история, и их там нет (c)
Ionenice
09.12.2023 18:10А мне начал часто предлагать ролики двухгодичной или годичной давности, только проблема в том, что я их уже смотрел, а ютуб это просто забыл ????♀️
Я понимаю два, три года и дальше, но один год *****. Бред какой-то. Как и предложение новостных видео, которым уже или месяцы или годы с момента выходаomgiafs
09.12.2023 18:10Более того, сам ютуб не забыл, что они просмотренные ,т.к. на этих роликах прогрессбар полностью заполнен.
Думаю, что объясняется "непонятность выборки" тем, что уже давно подбором роликов занимается нейросеть, поэтому "подкрутить в нужную сторону" там ничего нельзя без новой итерации обучения нейросети, что само по себе - занятие непростое.
Ionenice
09.12.2023 18:10Не, именно что забыл, полоски нету, думаю если посмотреть историю, то там тоже будет лимит по времени или количеству. И это печально, видимо не всегда алгоритмы помогают
vkni
09.12.2023 18:10уже давно подбором роликов занимается нейросеть, поэтому "подкрутить в нужную сторону" там ничего нельзя без новой итерации обучения нейросети
А это не мысль, это ИДЕЯ. Я как-то не задумывался, что один из недостатков чёрного ящика — это тяжесть изменений, отладки и поддержки. То есть, понимал, что чёрный ящик — это хуже аналогичного прозрачного алгоритма, но думал, что это скорее связано с развитием, улучшением. Вот улучшить чёрный ящик можно только «методом тыка».
Спасибо!omgiafs
09.12.2023 18:10Значит вы путаете тёплое с мягким. Достоинство чёрного ящика - в том, что вас вообще не парит, что там унутре, неонка или нейронка. Вы пихаете на вход значения, на выходе получаете результат. Вопросы поддержки, модификации и отладки - это не ваша задача, вы не для того этот ящик купили.
Если же вы - продавец чёрных ящиков, то для вас он полностью прозрачен.
Улучшать нейросети тоже можно, уже придумано много алгоритмов, которые "направляют" выходные результаты в нужную вам сторону, увеличивая вероятность того, что результат. выданный нейросетью, совпадёт с ожидаемым.
Тут формулируется вопрос - а что нужно тем самым настройщикам нейронки Ютуба? Какой результат они хотят получить на выходе?
У меня только один ответ на этот вопрос: они хотят получить увеличение времени, проведённого пользователем за просмотром роликов, чтобы показать больше рекламы. Я в курсе про Россию после февраля 2022, Ublock, SponsorBlock, Revanced и ещё много других слов.
denisbasmanov
09.12.2023 18:10Заметил такое давно, с тех пор расставлял лайки/дизлайки на любом посмотренном ролике. А потом ещё поставил дополнение Youtube Watchmarker. Ну и совмещать всё это с «не рекомендовать этот канал».
sim31r
09.12.2023 18:10Я иногда пересматриваю ролики многолетней давности, так как забыл уже сам о чем там речь, а они все равно остаются интересными )
Ютуб наверное уловил тенденцию и теперь предлагает массово такой контент.
TerrorDroid
09.12.2023 18:10а что именно делают эти супер пупер сильные кандидаты после принятого оффера?
Системы трекинга за пользователеями, системы выкачивания личных данных, системы рекламы. Или вы думаете, что гугл это про поиск, почту, карты, ютуб и прочие андроиды? Гугл это в первую и самую главную очередь про рекламу.
Ilias
09.12.2023 18:10sanex3339
09.12.2023 18:10И самое забавное, что кнопка
play
у них работает криво, если переключиться на вкладку со спотифаем спустя N часов (например на следующий день).Клик по кнопке не делает ничего, помогает перезагрузка страницы.
Видимо отдельная команда нужна для такого.
PsyHaSTe
09.12.2023 18:10Выделено, как будто 15 человек для такой критической функции это много. Последние 2 коммента в скриншоте более чем верны.
iskateli
09.12.2023 18:10У них есть план и они его придерживаются, к примеру: Amazon специально делает свой сайт хуже, чтобы получать больше прибыли
Artyomcool
09.12.2023 18:10У меня было так, что собеседующий в Гугле не знал языка, но это вообще не было проблемой, он просто поинтересовался сложностью конкретной операции в конкретной коллекции моего кода, я в двух словах пояснил сложность, почему она такая, как она устроена, и какие бывают альтернативы, он быстро сверился с документацией и никаких проблем.
Вообще об алгоритмических собеседованиях в Гугле только самые теплые чувства, в отличие от Яндекса. Потому что дело не в задачах, а в интервьюере. Сами алгоритмы по большей части проверяют не твои навыки, а твою мотивацию потратить пару дней (недель) на подготовку, потому что при наличии подготовки любой опытный инженер порешает литкодные задачки без особых сложностей, особенно, если они идут через усложнение от простого.
Некоторые инженеры отлично решают задачки и без подготовки - ну ок, тоже неплохо)
Будут ли эти навыки использованы на работе? Ну только если делать что-то проактивно, что в целом весьма поощряется в Гугле, и когда-то поощрялось в Яндексе (теперь всё вымыто напрочь голзами и беспощадными ревью, где нужно найти причину (не)дать бабло).
vvbob
09.12.2023 18:10Главное что я понял про Яндекс - если тебе ХР предлагает пособеседоваться, не надо терять время, надо сразу отказываться. Я слишком старый и тупой для всего этого дерьма.
omgiafs
09.12.2023 18:10Я однажды искал себе подработку. Было нужно. Попробовал в техподдержку пользователей Яндекса. Да, та самая, где надо пользователям помогать в веб-интерфейсе почты кнопочку найти или почту из папки в папку переместить.
Так как кандидатов много, то первый этап - тест. Вопросы типа "на ПК запущен процесс с выводом текста в консоль. Как понять, что процесс не работает?" и "пользователь просит переместить 2к писем из одной папки в другую. Что вы ответите?"
На первый вопрос 3-4 варианта кинул, на подобные второму отвечал, максимально придерживаясь корпоративного стиля Яндекса.
Результат - "вашего опыта недостаточно, но мы вам что-нибудь подберём". И через несколько дней приходит предложение поработать у них в колл-центре ))
Человек с опытом администрирования Linux-систем, поднятием доменов с почтами, сервисами в докерах, отвечающий на вполне себе грамотном русском языке в соответствии с их корпоративными стандартами им не подходит для того, чтобы отвечать юзерам, где в веб-интерфейсе ткнуть надо.
Сначала поверил и подумал - "ну что ж, тупой так тупой, не все в этом мире годятся быть первой линией техподдержки", а потом ещё раз посмотрел на себя и всё-таки решил, что нет, я нормальный, а вот у них что-то там сломано.
vvbob
09.12.2023 18:10Странно что вообще от постороннего человека требуют какого-то "соответствия корпоративному стилю". КМК на такие должности надо в первую очередь отбирать по принципу - умеет общаться, не токсичен, спокойно отвечает даже на "тупые вопросы". А стилю можно и обучить перед началом работы.
omgiafs
09.12.2023 18:10Они стиль не требовали. Я просто копировал стиль из писем, которые от Яндекса в моей почте лежат.
Я же хотел "как можно лучше" :)
multipassport
09.12.2023 18:10Я ради интереса эти вопросы ChatGPT скормил, так получил такие ответы, что после их прочтения даже отвечать не стал, понял, что я так ответить при своем, хоть и старом, но богатом опыте в тех. поддержке не смогу. При этом я обращался как-то раз в тех. поддержку Яндекс-почты и там совершенно обратная картина, который скорее говорит о том, что текущих сотрудников не взяли бы снова на работу. Это какой-то парадокс.
axrn
09.12.2023 18:10Я тоже как-то искал подработку. Сперва откликнулся на вакансию в Я-крауд, где надо было писать парсеры, - мне скинули тестовое с предложением написать несколько парсеров на их внутреннем xml-фреймворке. В комплекте шла обрывочная инструкция к этому фреймворку (похоже на вырванный из контекста кусок из внутренней вики) и никаких доступов. На вопрос по почте - мол код вслепую писать? пришел ответ, что подсказок не дают всё есть в инструкции :)
Так как с этого тестового у меня немного подгорело - пошел искать дальше и откликнулся на вакансию в поддержку бизнеса/гео-данные. Трудоустройство туда заняло у меня примерно месяц и 3 или 4 этапа тестов. В тестах, кстати, были и вопросы, ответы на которые человек узнаёт в процессе внутреннего обучения, но гуглёж помог. Ещё запомнилось бесконечное заполнение данных о себе по несколько раз. В течение месяца обучения (100+ страниц детальных мануалов) и работы (а-ля Толока) я обнаружил, что там нереально хоть сколько-то заработать и уволился.
Итого минус два месяца жизни. Зато опыт, одновременно, самого длительного трудоустройства и самой низкооплачиваемой работы в жизни :D
vvbob
09.12.2023 18:10Может я зажрался уже.. обычно когда для собеса объявляют больше двух этапов, я даже не берусь за это дело. Потому обычно с Яндексом и не связываюсь, не хочется зря терять время участвуя в марафоне собесов, да еще и перед этим надрачивая задачки с леткода в течении месяца. Не знаю, зачем Яндекс тавит такие странные входные фильтры для кандидатов, но это их дело, слава богу есть и другая работа.
kdpdev
09.12.2023 18:10Про собесы в яндексе уже много всего понаписано. Конкретно тут обратил внимание на вот это вот панибратство в общении, тыкание. Последний раз мне на собесе кадровичка предложила, а давай на ты. Ну и куда после этого деваться? А мне неприятно тыкать незнакомым людям, и неприятно, когда незнакомые тыкают мне, как будто дело в гаражах каких-то происходит. Для себя решил - в следующий раз, когда предложат вот так вот границы раздвинуть, откажусь и понаблюдаю за реакцией.
ovsds
09.12.2023 18:10А реакция будет "ок" и собеседование продолжится на Вы. На моей практике собеседований большинству соискателей комфортнее на ты, но встречались и те, кому было как и вам от этого не по себе. Ничего страшного, все люди разные, затем этот вопрос и задаётся, что б обеспечить хотя бы в этом комфортные условия.
kdpdev
09.12.2023 18:10Какой процент из тех, кому так комфортнее на самом деле просто побоялись обострять обстановку, ответив ок?
KanuTaH
09.12.2023 18:10А чего вы боитесь? Что вас не возьмут в компанию, где вы будете бояться ответить "нет"?
kdpdev
09.12.2023 18:10Того, что из-за такой ерунды можно не попасть в хорошее место и приходится соглашаться, хоть и неприятно.
KanuTaH
09.12.2023 18:10Если вас завернут из-за отказа общаться на ты, то какое же это "хорошее место". Скорее всего, культурка бескультурья и переламывания через колено там господствует и в других местах. А если не завернут, то и беспокоиться не о чем.
kdpdev
09.12.2023 18:10Ну так завернуть могут на этапе беседы с HR или с подачи HR, с которой контактировать то почти не придется в случае работы и ее беспардонность меня никак не напрягает.
BugM
09.12.2023 18:10Завернут чуть потом. В Яндексе обращение на ты ко всем коллегам это корпоративный стандарт.
HR задал нормальный вопрос. Который чуть потом станет очень важен.
nronnie
09.12.2023 18:10Ничего страшного, все люди разные
Это да. Но (по некоторому опыту), я бы на месте интервьюеров к такому кандидату сразу бы отнесся настороженно. Возможно, я просто слишком стереотипный, но у нас пришел как-то в команду один такой человек работать - весь такой со всеми на "Вы", "милостивый государь" и все такое, и с ним проблемы начались с первого же дня.
vvbob
09.12.2023 18:10Как раз тут вообще не вижу никакой проблемы. Почему бы просто так-же и не сказать - мне некомфортно общаться на ты с малознакомыми людьми давайте "на Вы". Если откажутся -то это уже для вас же сигнал - стоит ли дальше продолжать. Но как мне кажется, чаще всего никаких проблем с этим не будет
kdpdev
09.12.2023 18:10А на подкорке у принимающих решение: да ну, сноб какой-то, софтскиллы плохие, отказать
Gorthauer87
09.12.2023 18:10Ну и значит у вас с ними нет контакта, это не ваша культура, мне вот наоборот некомфортно на вы, это слишком официально и слишком большая дистанция, будто общаешься с господином большим начальником, а не коллегой
vvbob
09.12.2023 18:10Не обязательно "большой начальник", просто многие люди не слишком-то любят сходу сокращать дистанцию с малознакомыми людьми.
kdpdev
09.12.2023 18:10В случае собеседований никто никому еще не начальник и не коллега. Ну и да, переходить на ты со всеми, с кем намечается общение на часик-другой, не моя культура.
SlazZy
09.12.2023 18:10За последний месяц прошел довольно много собесов, несколько десятков, активно ищу работу. У всех рекрутеров одинаковый вопрос и звучит он так: "Вам удобнее на ты или на вы?". Почти всегда это один из самых первых вопросов на любом собесе и никто ультимативно не говорит "а давай на ты", это бы меня сильно удивило )
Fedorkov
09.12.2023 18:10Я независимо от обращения рекрутёра отвечаю на «вы» (если предлагают на «ты», поясняю, что так не принято), а при личной встрече предлагаю/соглашаюсь на «ты». Всё вежливо, без гонора, но с достоинством. А если рекрутёр принципиально требует фамильярностей, значит, наши переговоры зашли не в то русло.
nronnie
09.12.2023 18:10Лично меня наоборот на собеседовании дико напрягает "выканье" и я обычно сам предлагаю на "ты".
Hidden text
Это ничего, что я к Вам спиной сижу?
zergon321
09.12.2023 18:10У меня только один вопрос: кто на каком-то там высшем уровне принял когда-то решение, что гонять людей по алгоритмам - это эффективная стратегия отбора? И по каким причинам он его принял? Иначе говоря, какой конкретно человек запустил эту моду на LeetCode-собесы и почему?
kdpdev
09.12.2023 18:10Еще было бы интересно узнать у яндека, а проводилось ли какое-нибудь A/B тестирование подходов к найму. Кто-то может сказать, что это дорого и зачем менять то, что работает. Но вопрос найма ведь стратегический и яндекс в состоянии себе такое позволить. Если люди, прошедшие не по алгоритмическим собесам будут не хуже алгоритмических, это ведь уже огромный плюс к пуллу потенциальных работников.
TimurBaldin
09.12.2023 18:10Примерно так: как там собесит условный гугл ? Так, а чем мы хуже ? Давайте эту систему копипастнем ... Платить можно пониже рынка (во всяком случае по РФ), к нам один фиг пойдут чисто из-за имени .
zergon321
09.12.2023 18:10Ок, карго-культ, понятно, допустим. Тогда по-другому сформулирую вопрос: почему вот так вот делает Google? При этом раньше Google вообще задавал вопросы про канализационные люки и настройщиков пианино в Чикаго
zaiats_2k
09.12.2023 18:10И интернет был полон нытья по поводу люков. Ах так, пдумали в гугле... Ну, погодите!
panzerfaust
09.12.2023 18:10Ну смотрите: 2 раза подряд интервьюером был буратино, читавший с листочка. Максимум такого буратины - это как раз скопипастить вам задачку с литкода. Таких буратин в каждой конторе пруд-пруди. И на пару порядков меньше людей, которые без этого булшита умеют расколоть и оценить кандидата. А show must go on, кандидатов много - поэтому буратины побеждают.
MiraclePtr
09.12.2023 18:10Помнится, в Яндексе мне как-то раз на «алгоритмическом собеседовании» попался один наглухо упоротый интервьювер, требовавший при написании кода на доске «чтобы вообще вот без ошибок было». Причем под ошибками понимались и «я точно знаю, что есть функция стандартной библиотеки с таким-то функционалом, с таким-то названием, я только не помню точно порядок аргументов в сигнатуре вызова, давайте посмотрим в доках, ну или я напишу примерно как я себе это представляю, суть от этого особо не поменяется», так и синтаксические ошибки, типа точки с запятой и скобочек. Причем он ещё опоздал на 20 минут на собес (прийдя с невыспанной и недовольной мордой), а потом в момент решения задачи объявил что время вышло и «что-то вы мало успели». Ещё из смешного - чувак был плюсист, но не знал и искренне удивился, увидев в моем коде range-based for цикл и спросив "это что такое?" - это было лет так через 5 после выхода C++11, если что.
ALexhha
09.12.2023 18:10Помнится, в Яндексе мне как-то раз на «алгоритмическом собеседовании»
попался один наглухо упоротый интервьювер, требовавший при написании
кода на доске «чтобы вообще вот без ошибок было».а почему сразу не прекратили собес ?
DenTsallaty
09.12.2023 18:10Мне никогда не пройти собеседование "на скорость", я слишком медленный. Мой мозг работает по другому - длительное время накапливает информацию, а затем выдает готовое решение во сне, стоя в душе или на прогулке, как некое озарение. Но это будет конечное, почти полностью готовое решение, которое учитывает все аспекты. Таким образом хорошо решать сложные многофакторные задачи на стыке различных областей знаний, когда нет заранее известного правильного ответа. Поэтому экзамены, олимпиады и собеседования для меня огромный стресс. На них я могу показать только весьма средний результат. Может я не один такой. Почему все собеседования построены именно на решении задач на время, как будто набирают в спецназ?
GeorgeII
09.12.2023 18:10Почему все собеседования построены именно на решении задач на время, как будто набирают в спецназ?
Думаю, это оттого, что компаниям-гигантам в первую очередь нужны среднячки+ — люди, которые в короткий срок с плюс-минус приемлимым качеством могут деливирить фичи. И алгосы являются хорошей метрикой как раз для этого случая.
Мой мозг работает по другому - длительное время накапливает информацию, а затем выдает готовое решение во сне, стоя в душе или на прогулке, как некое озарение
Как это проверять на этапе найма? Может вы просто умеете хорошо рассказывать, а на деле все обстоит хуже. А таких людей немало (я и сам скорее такой).
Я тоже не понимаю интервью как из статьи, где три секции на алгоритмы, да еще и фидбек из разряда "не выделил в отдельную функцию". Но одна секция на алгоритмы вполне норм.
Поэтому экзамены, олимпиады и собеседования для меня огромный стресс
Кстати, это можно попытаться плавно вылечить: периодически шарить свой экран коллегам (сначала тоже некомфортно, думаешь, что над тобой смеются, как ты медленно в браузере вкладки открываешь), периодически коллеги должны шарить экран (видно, с какой скоростью они работают и что затупы у всех бывают на очевидных местах, а также перенимать лучшие практики, о которых не знаешь) и побывать на таких собесах несколько раз. Лично у меня стресс от лайв-кодинга снизился после такого, хоть и не ушел полностью
i86com
09.12.2023 18:10в первую очередь нужны среднячки+ — люди, которые в короткий срок с плюс-минус приемлимым качеством могут деливирить фичи. И алгосы являются хорошей метрикой как раз для этого случая
Тогда бы разрешали гуглить.
dimaaannn
09.12.2023 18:10Хз в чём прикол алгоритмов.
Конечно во многом всё зависит от специфики, однако мне за 5 лет алгоритмы на практике ни разу не пригодились. Всё давным давно написано за меня, и протестировано миллион раз. Зачем мне изобретать свой велосипед?
wataru
09.12.2023 18:10А мне в гугле - много раз пригождались. Ваша проблема может быть в том, что вы даже не заметили, что вам алгоритмы-то нужны были.
Посмотрите те же задачки с литкода. Большая часть из них сформулирована "сделайте то-то и то-то". И можно это "то-то и то-то" буквально перевести в медленный код. А когда у вас еще и задача не сформулирована, а вам надо фичу запилить, то вот это "то-то и то-то" у вас в голове появляется как решение вашей задачи запилить фичу. Вы даже не рассматриваете это задачей, чтобы подумать, а может тут алгоритм нужен.
Всё давным давно написано за меня, и протестировано миллион раз.
Без знания алгоритмов же и как оно все работает вы не только не сможете выбрать лучший вариант, вы даже существующие нагуглить-то не всегда сможете без знания ключевых слов. Потом, многие алгоритмы не абстрагируются до библиотеки. Ну вот взять то же динамическое программирование. Это подход к решению задач. Каждая задача - свой уникальный код, что там выделять в библиотеку - циклы что ли?
SalazarMAX
09.12.2023 18:10В моей области (сиспрог) подавляющее большинство собеседований вообще не содержат задач, только вопросы по специальности. Исключения редки: один раз попросили развернуть односвязный список, и второе исключение — это Яндекс, где до секции по сиспрогу я даже не добрался. Неужели в других специальностях сплошные задачи везде?
Ioanna
09.12.2023 18:10О, у меня такая же проблема. Причем тесты на стрессоустойчивость показывают, что у меня с ней все ок, то есть проблема именно в цейтноте. Не могу выдать решение строго за отведенное время. Поэтому ищу вакансии с тестовыми заданиями.
i86com
09.12.2023 18:10Почему все собеседования построены именно на решении задач на время, как будто набирают в спецназ?
Потому что это более зрелищная клоунада, к тому же куда более понятная гуманитариям, чем реальная работа программиста.
1755
09.12.2023 18:10Похожее, поэтому я люблю больше заниматься процессами, архитектурой и большими задачами, которые требуют от месяца-двух на реализацию.
А когда изредка нужны какие-то не повседневные алгоритмы, которых нет ни в стандартной библиотеке, ни в production ready сторонних библиотеках, то расчехляю интернет, закрома памяти по алгоритмам и смотрю как реализовать.
Так что я успешно работаю, но практически уверен что завалю алгоритмические собеседования, а чтобы не завалить, нужно прям отдельно месяц-три сидеть каждый день и руку набивать.
Forum3
09.12.2023 18:10Программиста на знание можно прогнать хотя бы: алгоритмы, языки, базы данных.
А вот менеджеров кто-нибудь прогоняет так?))
AstroSphynx
09.12.2023 18:10это большая проблема торопыг, поэтому мне очень нравилось на заводе работать в свое время, там прям ногами могут побить если сразу сыпешь сомнительными решениями. Подняли проблему, никто не ждет сразу ответов, все расходятся по курилкам, через недельку у всех будут хорошо продуманные варианты
senglory
09.12.2023 18:10Почему все собеседования построены именно на решении задач на время, как будто набирают в спецназ?
Потому что кандидатов много, а Я один ). Захотят - могут потребовать ламбаду танцевать и видеоролик приложить с питчем о себе.
Merkan
09.12.2023 18:10Такая же фигня. Но только я аналитик, а не программист. И когда от меня требуется быстро выдать решение проблемы клиента, то это ничем хорошим не заканчивается. Как-то пытался, но количество неучтенных подводных камней, свалившихся мне потом на голову, перекрыло желание принимать поспешные решения.
Flyingmark
09.12.2023 18:10Да, тоже была история почти 3 года назад. Пытался найти место работы в айти после получения диплома о высшем образовании. Ну в итоге в Яндекс я попал на 3 месячную стажировку (оплачиваемую), но от первого письма до последнего когда сказали, что через 2 недели начинается стажировка и туда тебя берём, прошло не менее 4 месяцев, правда 2 недели можно вычеркнуть, майские праздники. И 3 собеседования проектных, собеседований на задачи и алгоритмы было штуки 4-5 как я помню. В итоге после стажировки не взяли, сказали мало опыта, но устроился в другую компанию.
f1opec
09.12.2023 18:10Любопытно, почему поиск по задаче выдает статью очень похожего содержания и изложения двух летней давности? Совпадения что-ли?
alan008
09.12.2023 18:10Из статьи я не понял, вас всё-таки приняли или нет, и остались ли вы там работать?
codecity
09.12.2023 18:10А зарплата примерно на какую рассчитывали? Хотя бы на 400 тыс. за эти мучения и унижения можно рассчитывать?
kdpdev
09.12.2023 18:10Если автора взяли, то врятли скажет. Если не взяли - то врятли сказали ему. На основе всяких историй на тему оплаты в яндексе у меня в голове сидит стереотип, что платят там ниже рынка. Когда последний раз общался с яндексом, вилку отказались называть, мол все индивидуально и бла бла бла, на что я им ответил, что не вижу смысла развенчивать или подтверждать интернетные мифы ценой подготовки к таким вот собесам и тратой времени на нескольких раундах.
venanen
09.12.2023 18:10Если вилку цен не озвучивают - это самый красный, даже краснючий флаг. Значит будут стараться предложить настолько мало, насколько получится, и скорее всего задачи будут давать такие, чтобы показать, что на большее вы и не подходите.
Когда еще учился в универе, к нам приходили кадровики из РКК Энергия. Про великую миссию рассказывали, про то, как космические корабли бороздят пространство вселенной, а на вопрос о ЗП - "Ну сначала устроится нужно, потом уже и за зарплату поговорим". Я не смог сдержать смех, и меня выгнали)
kasthack_phoenix
09.12.2023 18:10Яндекс мало платит на входе. Последний раз, когда давали оффер, они, зная о конкурирующем предложении, пытались убедить пойти к ним на зарплату на сто тысяч в месяц меньше, и были крайне удивлены отказом. Рекрутер даже в какой-то момент выдал огненную фразу "всех денег не заработаешь".
При этом, с RSU у них можно выйти на вполне неплохие деньги -- знакомые там 600к в месяц пробивали в довоенное время, когда ещё и рубль был подороже.
MiraclePtr
09.12.2023 18:10При этом, с RSU у них можно выйти на вполне неплохие деньги
Яндекс больше не даёт RSU. Да и те RSU, что уже были у людей, из-за остановки листинга на биржах по сути дела сгорели и превратились в тыкву. Ну и в целом для работников это такая себе затея, основную выгоду тут имеет компания.
zagayevskiy
09.12.2023 18:10Ну вот неправда же, зачем писать отсебятину на основе статей вида "«Яндекс» отобрал у сотрудников опционы."? Яндекс ничего не отбирал, просто торги остановили, компания ничего с этим сделать не могла.
Предложили разумный компромисс вестингу, больше года выдавали остатки рублями(раз в квартал). Затем остатки незавестившихся RSU переложили в зарплату.
Ссылка на коммент про стриптизёршу вообще кринж. Утверждения там голословные. Когда опционы работали, это было очень круто.
MiraclePtr
09.12.2023 18:10Яндекс ничего не отбирал, просто торги остановили, компания ничего с этим сделать не могла.
Вообще-то тексте статьи по ссылке именно это и написано, в чем претензии к статье кроме заголовка?
Утверждения там голословные.
Так-то приведены вполне четкие логические доводы в их поддержку. Называть что-то голословным не обосновывая почему это "голословно" - это ещё большая голословность :)
DSRussell
09.12.2023 18:10Не удивлюсь, что Когда Яндексу действительно нужны программисты их просто берут по знакомству и рекомендациям сотрудников без собесов
Firsto
09.12.2023 18:10Да, так бывает. Когда я прошёл все этапы и ожидал оформления, мне внезапно сообщили об отказе с формулировкой "к сожалению вакансия была закрыта внутренним кандидатом". (ノಠ益ಠ)ノ彡┻━┻
Ioanna
09.12.2023 18:10Внутреннего кандидата тоже без алгоритмических собеседований не возьмут ни на какую вакансию.
inv2004
09.12.2023 18:10Это не так. Там не будет нескольких алгоритмических раундов
Ioanna
09.12.2023 18:10Один точно есть)
inv2004
09.12.2023 18:10Это гораздо лайтовее чем для любого из вне (даже не у яндекса)
kdpdev
09.12.2023 18:10А если он его заваливает, из яндекса увольняют или что делают в таком случае?
KvanTTT
09.12.2023 18:10Полагаю что остаётся на своём же проекте.
kdpdev
09.12.2023 18:10Ну это же какой-то позор. Как честный человек такой должен сам сложить с себя полномочия разработчика в яндексе.
AlexanderS
09.12.2023 18:10Да это нормально - просто реально делающий работу человек не прошёл дурацкий тест. По идее, его непосредственному руководителю должно быть виднее увольнять его или нет)
wataru
09.12.2023 18:10а потом принялся за самое сложное - доказать собеседующему, что решить с такой сложностью возможно.
Справидливости ради, код у вас весьма переусложнен. Сравните с этим:
lass Solution { public: int trap(vector<int>& height) { int max_index = 0; for (int i = 1; i < height.size(); ++i) { if (height[i] > height[max_index]) max_index = i; } int total_water = 0; int current_max = 0; for (int i = 0; i < max_index; ++i) { current_max = max(height[i], current_max); total_water += current_max - height[i]; } current_max = 0; for (int i = height.size()-1; i > max_index; --i) { current_max = max(height[i], current_max); total_water += current_max - height[i]; } return total_water; } };
Но вообще, идея разбить массив на 2 части максимумом у вас шикарная. Если бы меня не просили решить за O(1) памяти, я бы остановился на решении за O(n) памяти: сохранил все максимумы в префиксах одним циклом в векторе, а потом при проходе назад брал бы минимум из левого и правого максимума.
Не надо никаких лябд и рэнжей, ибо основной цикл, который вы пытались не писать 2 раза - это всего 2 инструкции. С таким повторением код читабельнее, ИМХО. Ну и короче, естественно. Поиск максимума можно и заменить на
std::max_element
, но максимум одну строчку вы там сократите.Kelbon Автор
09.12.2023 18:10Код я тогда не рефакторил, просто вставил в литкод.
Вынесение повторяющегося кода в лямбду как по мне лучше, чем просто второй раз его написать (буквально в коде написано пройти слева направо и потом то же самое, справа налево)
AChep
09.12.2023 18:10Хм, можно и одним проходом:
class Solution { private data class Head( val direction: Int, var index: Int, var value: Int = 0, ) : Comparable<Head> { override fun compareTo(other: Head): Int = value.compareTo(other.value) } fun trap(data: IntArray): Int { var sum = 0 val ltr = Head( direction = 1, index = -1, ) val rtl = Head( direction = -1, index = data.size, ) do { val smallestHead = minOf(ltr, rtl) val nextIndex = smallestHead.index + smallestHead.direction val nextValue = data .getOrElse(nextIndex) { 0 } when { nextValue > smallestHead.value -> { smallestHead.value = nextValue } else -> { val rem = smallestHead.value - nextValue sum += rem } } smallestHead.index = nextIndex } while (ltr.index != rtl.index) return sum } }
255-0-0-1
09.12.2023 18:10В процессе найма тоже имел дело с яндексом.
Позвонили, НеРелевантная позиция идти в доставку с бэкграундом в электроннике, в резюме.
Выполнил тестовое (QA), отклонено, обратная связь без описания причин отказа.
-
Снова QA, ответ через 8 месяцов, без скринингов, без техинтервью, что вакансия закрыта (ммм... не удивительно).
У яндекса имеются классные продукты, но следуя кадровой политике, что оно применяет сейчас, оно может скатится в днище.
RuslanBagautdinov
09.12.2023 18:10Но не скатывается уже сколько лет такая политика найма и все только охают и ахают, а я яндекс норм существует и не разваливается
AnimeSlave
09.12.2023 18:10Есть такой эффект в рабочих процессах, как инерция. И этот эффект очень хорошо работает там, где рабочий процесс выстроен в виде бесконечного цикла. Я пример приведу, как это происходит на типичном заводе, так как в Яндекс я не работал, поэтому не смогу подобрать подходящий пример.
На заводах обычно Цикл выглядит так. Закупка необходимых компонентов -> производство продукции -> продажа готовой продукции -> закупка необходимых компонентов. То есть без денег нельзя купить новые компоненты, без новых компонентов, нельзя произвести новую продукцию, без наличия готовой продукции её нельзя продать, чтобы на полученные деньги купить новые компоненты, из который будет производиться новая продукция и так далее. И когда Цикл выходит на «проектную мощность», то он будет работать по инерции. И если на всех этапах Цикла нет косяков и достаточно рабочей силы, то все те процессы, которые не являются частью Цикла могут не влиять на него настолько, что сломают работу Цикла. И из-за этого некоторые процессы не входящие в Цикл могут быть нарушены, так как не являются основными для получения прибыли. То есть даже их поломанные процессы могут быть достаточными для того, чтобы поддерживать работу Цикла. И обычно чинить эти процессы начинают только тогда, когда они начинают влиять на работу Цикла.
У меня есть подозрение, что в Яндекс есть тоже самое. Может быть даже на уровне HR. Типа В отчётах есть нехватка спецов -> найди новых соикателей -> отсей за невыполнение заданий по алгоритмам -> добавь в отчёт нехватку спецов
angryrobot
09.12.2023 18:10Ага! Попался самозванец! Вывел тебя Яндекс на чистую воду, никакой ты не программист!
Hidden text
сарказм, конечно
hukenovs
09.12.2023 18:10Поделюсь своим опытом, летом собеседовался на позицию тимлида в ML. Обещали три секции - 1) код 2) прикладной ML 3) лидершип (скатали у Amazon лидершип принципы и всю методику).
Итак:
Код: две задачи уровня медиум литкод. Решил за 45 минут, даже осталось много времени, собеседующий сказал, что на этом всё, можем просто поболтать.
ML: секция на компьютерное зрение. Собеседующий явно не знал классические алгоритмы и предлагал построить систему исключительно на нейронках. Но договориться удалось, секция пройдена.
Лидершип: это секция булшит-вопросов в стиле «на вас орет начальник, команда вас ненавидит и устраивает гражданскую войну, ваши действия?». Был готов к ней и прошел идеально. На что получил максимально позитивный фидбек, но оценку немного снизили по причине, цитирую «скорее всего в FAANG готовился». Ха-ха.
И тут нужно было ждать финал и оффер? Как же. А давайте еще АА секцию пройдём? Алгоритмы. Причем я уточнял не раз, мне правда на позиции тимлида придется КОДИТЬ? Алгоритмы? Ну ок, не бросать же. И четвертую секцию я завалил (решил 1 задачу из 2), тк совершенно был не готов к задаче на дерево, внутри которого нужно было найти все одинаковые подмножества букв, образующиеся проходом по под-дереву). А проходной фильтр это 2/2 задач.
В итоге начались качели на два месяца из серии берем/не берем, и закончилось это фразой «ну мы можем показать другим командам, где АА секция не важна». Не интересно абсолютно.
И это не конец. Недавно пришел рекрутер в личку и предлагает пройти 5 собесов заново!! Я ему говорю — уже проходил 3 таких, вы же даже фидбеки видите. А мне в ответ — «да, вижу, хорошо прошли, но это другой Яндекс, давай заново». Смеяться или плакать?
Желаю успехов Яндексу в найме.
Kelbon Автор
09.12.2023 18:10другой Яндекс
Да, в статье это описано. Вообще опыт с их HR одновременно ужасный и смешной, я заполнял около 10 раз разным HR и их помощникам документы о том кто я, где я и так далее. Каждый из них появлялся и потом исчезал навсегда.
А потом мне прислали документы об оформлении на работу в НЕ ТУ СТРАНУ. То есть они даже не понимали, что я уже работаю в их же офисе...
Gorthauer87
09.12.2023 18:10Ясно, но если хочется именно потренироваться в собеседованиях, то это даже хорошо, их может быть сколько угодно много)
kenoma
09.12.2023 18:10А на ML секции кодить не надо было, просто пофантазировать?
hukenovs
09.12.2023 18:10К счастью, нет. Она была разделена на две части: 1) теоретические вопросы по комп. зрению (детекция, классификация, сегментация) и немного по базе глубокого обучения. 2) System Design кейс: «есть такая-то система с камерами, нужно сделать то-то». На понимание как строить полный пайплайн от сбора и разметки данных до выбора правильных алгоритмов, использования нейросетей в условиях разных ограничений на тип камеры, объем хранение данных, скорость работы алгоритмов, канал связи и т.д. и т.п.
SpiderEkb
09.12.2023 18:10Тему яндекса для себя закрыл давно и навсегда.
В далеком 17-м годе (ну не 1917-м, конечно, но все равно давно) случилось так что проект, который небольшой командой подняли с абсолютного нуля (по Кельвину) и довели до хорошего коробочного решения таки приказал долго жить. Неумное руководство, далекое от разработки вдруг решили что у них есть готовая "коробка" и они сейчас будут ее продавать и курить бамбук, а развитие, поддержка и вот это все вот - это деньги на ветер.
Короче стал искать работу (С/С++, опыт 25+ лет, все дела...). В т.ч. и в яндекс подавался. Тогда отказали, но, видимо, где-то там осел у них.
В результате попал в банк (разработка под центральные сервера и все такое). Причем, позвали сами (я как-то это направление не рассматривал), а "собеседование" представляло из себя разговор по душам с командой - чем они занимаются, чем я занимался... Пообщались минут 40, на следующий день уже прислали офер и анкету для безопасников (как потом коллеги сказали решение было мгновенным "этого - берем" как только я вышел).
А еще через полгода рекрутер из яндекса - вы нам интересны, хотели бы поговорить. На что резонно ответил что работу уже не ищу, у меня все хорошо - задачи, команда, руководство, условия - все устраивает. Но прилипла как банный лист - ну может хотя бы поговорить. Ладно, за поговорить денег не берут - вдруг там что-то мегаинтересное. Но сразу поставил условие - только разговор. Чем занимаются там, какие задачи и все такое. Может мне это сразу не подойдет, может мой опыт для них "нерелевантен"... Договорились, назначили встречу (онлайн). Подключаюсь - интервьюер сходу - у меня тут дала срочные, давайте на полчаса перенесем. Ну ладно, может действительно что-то там... Через полчаса - мы тут подготовили тестовое задание... Извините, с рекрутером договаривались иначе - вы рассказываете что у вас, я рассказываю что умею и чем занимался, а дальше смотрим возможен ли взаимный интерес. Так-то у меня уже есть работа и неплохая. Нет, у нас порядок, протокол, все такое. Ну и до свидания тогда. Мне все это сразу стало неинтересным.
С тех пор еще раз-два приходили, но тут уже сразу рекрутеру объяснял что не моя тема и даже пробовать не стану.
Нет, я не противник что-то там тестовое сделать (и приходилось делать), но это всегда было не абстрактное с литкода, а что-то из того, с чем потом реально работать придется. И это всегда проговаривалось сразу. А не так вот - с одним договариваешься об одном, а другой не в курсе и все по своему делает.
Mike-M
09.12.2023 18:10Заметил в статье весомый плюс: Яндекс предоставляет достаточно развернутую обратную связь, причем по каждому этапу собеседования. Всем бы так поступать!
dmitrii-bu
09.12.2023 18:10Зависит от того в какой Яндекс собеседутесь. Где-то месяц назад шел через их интервью пайплайн, в итоге после каждого этапа рекрутер просто назначала следующий вообще без какого-либо фидбека. Посыпался на третьем этапе после которого рекрутер сказала, что по результатам взяли другого.
sober_deer
09.12.2023 18:10Я до сих пор крайне благодарен ребятам, которые меня собеседовали еще джуном. Там собес проходил так, я пришел, мы немного пообщались на тему кто такой, кто такие, потом мне дали ноут, сказали вот развернутый пет проект, сделай то-то и то-то, как обычно работаешь - так и делай, и оставили на полтора часа делать. Сейчас я уже давно сеньор, и до сих пор очень признателен.
Portnov
09.12.2023 18:10В принципе, простая и логичная идея. Делаем 15 уровней собеседований, от изи до супер-хардкор. Если прошли все 15 уровней, берём на должность технического директора (предыдущего выгоняем, он провалился на 14м, 15й придумали уже после его прихода). Если провалились, например, на 7м — будете миддлом. Если на 9м — синьором...
;)
fat_dude
09.12.2023 18:10ХА, ЛОЛ!
Ты даже не попал на самое основное! Там ещё смешнее! Знаете почему в яндексе так много этапов собеседований? Это как напроситься монахом в какой-нибудь буддийский монастырь. Надо показать что ты очень хочешь работать с их страной велосипедов. ТАМ ВСЁ НАФИГ СВОЁ! ВСЁ! Нет, некоторые решения конечно удачные, но в основном это кривые велосипеды. Никогда не пойду работать в яндекс. Платят там не сильно больше, чем в остальных компаниях, а головняк огромный.
P.S. Я почти уверен, яндекс парсит комменты хабра на предмет хейта, так вот вам хейта. ПРИДЕЛАЙТЕ БЛИН КНОПКУ СМЕНЫ АККАУНТА ВО ВСЕХ СЕРВИСАХ! ХРЕН ЛИ Я ДОЛЖЕН ЛЕЗТЬ В ПОЧТУ МЕНЯТЬ АККАУНТ, ЧТОБ ЗАКАЗАТЬ ЕДЫ С ПРАВИЛЬНОЙ УЧЁТКИ?
Kelbon Автор
09.12.2023 18:10страной велосипедов
дошёл-дошёл, да, абсолютно всё своё. И главное - оно так не исторически сложилось, а сравнительно недавно начали такой тренд. Как по мне это просто ошибка "дизайна", взвалили на себя всё и объективно не тянут уже
bolk
09.12.2023 18:10Да какой уж недавно? Велосипедов много было всегда. Если есть доступ к внутренней вики, можно глянуть на y5 или XScript.
VADemon
09.12.2023 18:10ХРЕН ЛИ Я ДОЛЖЕН ЛЕЗТЬ В ПОЧТУ МЕНЯТЬ АККАУНТ, ЧТОБ ЗАКАЗАТЬ ЕДЫ С ПРАВИЛЬНОЙ УЧЁТКИ?
А хрен ли вы не используете Multi-Account Containers в Firefox-е?
Didimus
09.12.2023 18:10Удивляет, что разработчикам дают решать задачи для аналитиков или архитекторов. Разработчику лучше давать постановку и смотреть, как он её реализует на имеющемся стеке
alan008
09.12.2023 18:10В Яндексе разработчики должны уметь архитектуру. В статье не написано, но должно было быть ещё архитектурное интервью. 7-м или 6-м по счету , сложно сказать :)
nronnie
09.12.2023 18:10Это еще что. Пришел в одно место на собеседование на разработчика C# (веб-бекенд). И меня первым делом спросили про модель OSI. Я сперва подумал, что я по ошибке куда-то не туда зашел. (Что смешно, я когда-то в универе курсовую по этой теме писал, но это было почти 30 лет назад - и, естественно, что я уже почти ничего про это и не помню).
iroln
09.12.2023 18:10Когда-то в молодости по глупости и из интереса ходил в Яндекс на собеседования. Тогда они были даже менее упоротыми, можно было по-человечески поговорить про архитектуру и всё такое. А потом начался такой вот абсурд. Когда-то кто-то свернул не туда и понеслось.
Спасибо за статью. Плюс одна ссылка в ответное письмо рекрутерам из Яндекса.
Странно, что они до сих пор иногда мне пишут, давно попросил добавить меня в их базах в чёрный список особо токсичных и нелояльных кандидатов.
TimurBaldin
09.12.2023 18:101)Если вы копипастите собесы с FAANG, готовы ли вы предоставить такие же условия, как и они ? И почему вы решили, что такой метод отбора эффективный ?
2)В чем цель алгоритмических собесов ?
-- Вы хотите не пустить плохих спецов в компанию ? Идёте лесом, человек может вызубрить литкод при этом вообще не уметь работать и положить вашу базу такими запросами, которые даже по пьяне тяжело написать.А может и нет, лотерея.
-- Вы хотите проверить навыки мышления ? Тоже лесом, так это зубрежка. Как в ЕГЭ. Есть люди, которые любят решать такие головоломки , а я лично люблю оружие, может на собесах спрашивать про него? Если не соберёшь автомат с закрытыми глазами за 25 сек, в пролёте.. Если завтра фанги начнут так делать, это тоже будут копировать и даже будут адепты таких собесов
-- Вы хотите иметь единый стандарт отбора ? Отлично работает, если вы нанимаете кассиров, грузчиков и т.д...Типовой отбор+ огромная текучка на таких работах это норма... Очень плохо работает, если от сотрудника вам нужен интеллект (hard + soft skills) + адекватная цена + у вас не типовые проекты и задачи
wataru
09.12.2023 18:10человек может вызубрить литкод при этом вообще не уметь работать и положить вашу базу такими запросами
Конечно, бывают всякие саванты и гении, но в основном люди не способны зазубрить сотни задач с кодом. Значит, даже если человек зазубрил алгоритмы, у него хватает IQ и знаний понять какой куда и как применять. А это уже не плохо. Потом, не знаю, как в яндексе, а в гугле задачи с литкода давать запрещают. Конечно, иногда случаются косяки, но в большинстве случаев, вам известная задача с литкода не попадется. Максимум, что-то похожее. И вот тут вам уже придется ее решать и думать, сколько бы вы не зубрили.
Как в ЕГЭ.
Проблема ЕГЭ в том, что задачи очень типовые и их тип известен заранее. Если бы каждый год задачи были любые, то оптимальным способом подготовки к ЕГЭ была бы не зубрежка и тренинг именно этого типа задач, а развитие математического мышления и знание базы.
Вы хотите иметь единый стандарт отбора
Это один из главных плюсов алгоритмических интервью, да.
Очень плохо работает, если от сотрудника вам нужен интеллект
фаанги считают, что работает неплохо.
KanuTaH
09.12.2023 18:10фаанги считают, что работает неплохо.
Хех, в свое время фаанги считали, что вопросы про квадратные люки "работают неплохо", все эти дурацкие вопросы у них передирали. Сейчас "концепция поменялась", в моде 100500 алгоритмических задач, теперь принято на это "молиться", через N лет будут "молиться" на что-нибудь еще.
wataru
09.12.2023 18:10Только религия претендует на истину в последней инстанции. То, что "концепция поменялась" - это отлично. Это значит, что есть прогресс.
KanuTaH
09.12.2023 18:10Это значит, что есть прогресс.
Ой, не уверен я как-то. Больше похоже на маятник, качнувшийся в другую, не менее идиотскую сторону. А обоснования, почему текущая методика "хороша", всегда придумать можно - и с люками такие обоснования были, и сейчас есть, и со следующими методиками тоже будут. А впрочем, в каждой избушке свои игрушки.
ovn83
09.12.2023 18:10Выставил резюме на hh, от Я 3 бота начали долбить одновременно, на авах красивые девушки, явно не живые люди, абсолютно одинаковые сообщения и ответы.
heartdevil
09.12.2023 18:10Три "алго собеса" -- это, имхо, максимум который должен быть. А вообще лучше два. Какие, нахрен, 6+ алогособесов? Лучше, уж, посидеть и хорошенько придумать задачи, которые будут оценить именно умение подумать над задачей (даже если нет правильного решения), а не заучивание литкод паттернов, которые сами же интервьюеры потом пытаются опровергнуть путем вот такого же бесчисленного числа интервью. Типа, а может он заучил? Давайте еще одно интервью! А может и тут повезло? Давайте еще одно! В итоге трудозатрады на вот такие интервью у обоих сторон будут большими. А у кандидата, так еще и здоровье подсядет. Но ведь собеседование не должно быть таким стрессовым, если только не в "армию".
killerqueen
09.12.2023 18:10Хм, откликался на вакансию ночного администратора в Я(ндекс), на hh была одна сумма ЗП, а в сообщении от Я(ндекс), после прохождения теста, другая сумма и причем в меньшую сторону. Всегда интуитивно не любил Я(ндекс), а фактов убеждающих меня, что интуиции стоит верить всё больше.
pawellrus
09.12.2023 18:10Я конечно могу понять зачем существует секция кодинга для разработчика. Но вот зачем секция кодинга для DevOps/SRE? Всего лишь чтобы отсеять и попытаться сбить зарплатные ожидания?
Почему я должен тратить личное время и проходить абсолютно ненужные задачи на leetcode ради всего лишь одного интервью? Ведь это интервью нисколько не покажет мое умение писать код. Одно дело писать в стрессе, когда за тобой следят и совершенно другое - в комфортной обстановке, не спеша, с использованием лучших практик stackoverflow.
ReDev1L
09.12.2023 18:10Зависит от секции кодинга, написать простенький Cluster Operator - очень даже в тему.
pawellrus
09.12.2023 18:10И тем не менее, написать оператор можно без прохождения тестов на алгоритмы. Я лучше потрачу время на изучение нюансов ЯП и написание настоящего кода, который будет делать что-то полезное, чем на подготовку к собесу через литкод.
kdpdev
09.12.2023 18:10Все верно. Для успешного прохождения надо еще прокачать навык написания на бумажке/доске. А еще могут предъявить, что а вот тут у вас не компилится, точку с запятой не поставили. Думаешь про себя, ёмаё, это ж бумажка, пойдет для обрисовать поверхностно решение, но не продакшн код. Я не знаю кто как, но у меня хитрые моменты в коде пишутся не за одну итерацию, сперва крупными мазками так сказать, потом всякими ньюансами дополняется. Когда все это на бумажке, правки наползают одна на другую и все превращается в нечитаемую кашу из перечеркнутого, вставленного и т.п. Прокачивать скилл сразу чистого написания - идиотская затея, достижимая разве что заучиванием правильных решений, что есть абсурд.
ReDev1L
09.12.2023 18:10Я полностью согласен. Я отвечал на вопрос "зачем кодинг для devops/sre".
Я понимаю как Яндекс внутри обосновывает эту алго-чушь, но фишка в том, что она нужна им для 5-10% персонала максимум, а они её применяют ко всем.
У Avito тоже самое, проектируют твиттер на собесах, и вроде MVP, а вроде и не MVP и бюджет 20 лямов $. Просто взаимоисключающие параграфы.
Мне раньше интересно было поработать в яндексе/авитах и тд, мне интересны люди которые сделали тот же сфинкс или https://github.com/avito-tech/navigator, но я больше никогда не буду тратить время на собеседования в их компании, если прям хотят - 100$/час по предоплате за полный цикл, включая скрининги, подготовки, дорогу в офис и тд.
igrishaev
09.12.2023 18:10Я собеседовался в американскую фирму, косящую под Faang. Было четыре собеса с кодингом. Все задачи не идеально, но решил. Пришло письмо, что продолжать не имеет смысла. Так что такая петрушка не только в Яше.
Alexshev92
09.12.2023 18:10О, тоже не так давно проходил к ним собесы. С самого начала был настроен скептически, так как много читал про собесы в Яндекс, но для опыта решил поучаствовать. В итоге на третьем интервью не успел решить одну задачу и мне написали, что не могут пригласить меня на следующие (!) этапы. Вообще весь процесс был очень странным. Один из собеседующих параллельно занимался какими-то своими делами и, по-моему, даже не смотрел, чего я там нарешал. Обратная связь от HR приходила примерно через неделю. На три этапа ушёл почти месяц.
Karl_Benz
09.12.2023 18:10Где-то есть рейтинг российских IT компаний по отзывам работников и кандидатов?
Ctuh
09.12.2023 18:10Этим летом написала эйчар с предложением пособеседоваться в минский офис в команду которая занимается алисой. Первые два собеседования (естественно с задачами) прошли ровно. Из удивительного: на первом собеседовании, после того как я быстро решил задачу и ответил на уточнающие вопросы по алгоритму, собеседующий начал задавать вопросы по плюсам и чем я занимаюсь на нынешней работе (необычная ситуация для собеседования в яндекс, я считаю). Вторая секция была типичной для Яндекса, но вот третья. Эйчар сообщила что на третьей секции будет специальный собеседующий, то ли он какой-то лютый алгоритмист, то ли он только собеседованиями и занимается. Так вот на третьей секции я жестко затупил на второй задаче, собеседующий мне сразу сказал, что можно получить сложность O(1). Я эту задачу и так крутил и этак, ну никак не получалось O(1), с горем пополам и подсказками от собеседующего выдал решение O(n) и его это не устроило. В коцне концов он написал своё O(1) решение, мне ещё тогда показалось странным, что он проигнорировал один входной аргумент. Я тогда решил, что раз уж собеседующий в очках, то он умнее меня и не стал задавать вопросы. Сразу после собеседования начал крутить его решение и оказалось что оно работает только в определённом случае и вообще его можно назвать неправильным. То есть если бы эта задача была на литкоде, то 100% его решение не было бы принято.
swordgna
09.12.2023 18:10Пост с юмором, очень понравилось! Особенно изображение компьютера, к которому идёт палец Татьяны )))
CrazyElf
09.12.2023 18:10Мне кажется как-раз в Яндекс я решал задачки вообще без конкретного языка, там нужно было просто в блокноте рисовать как ходят у меня указатели на данные и объяснять, что я хочу сделать. Это вот было на алгоритмы как-раз. Я так понимаю задачка - это на конкретном языке решение, а алгоритмы - это просто алгоритм придумать и на пальцах описать, код не нужен. )
klimensky
09.12.2023 18:10Вхожу, снимаю куртку и вешаю её, переступая человека с ноутбуком на полу (места нет), подыскиваю себе с кирпичом свободное место и знакомлюсь с командой... В которой нет никого, кто пишет не на Python.
У меня аж слезы выступили от смеха. Воистину театр абсурда какой-то)
shiru8bit
09.12.2023 18:10Я наверное что-то не понимаю, но какова мотивация людей проходить много кругов собеседований до того, как объявлена предлагаемая ЗП?
sensem
09.12.2023 18:10Доказать нацеленность на работу в компании, потратить силы и время, чтобы потом, увидев дисконт в пару десятков процентов к желаемой зарплате, радостно согласиться на предлагаемые условия.
mdevaev
09.12.2023 18:10@wataruа можно я воспользуюсь случаем и поинтересуюсь, почему в чудесном хроме, написанном не менее прекрасными олимпиадниками, начиная с какого-то момента диалог сохранения файлов перестает появляться сразу после запуска браузера, и пока вручную не скажешь ему удалить историю загрузок? При том, что после перезапуска в истории всплывают айтемы, которые там были чуть ли не полгода назад, несмотря на удаление. Наверняка там этим завидует какой-то хитрый алгоритм. Я бы даже сказал, слишком хитрый, чтобы работать нормально.
jackcrane
09.12.2023 18:10гипотеза: этот код не тестировался совсем, у тестировщиков браузер настроен "по-безопастному" - "удалять всю историю при выходе" или вообще "Incognito" (в терминологии фаерфокса "Private browsing mode").
wataru
09.12.2023 18:10Всмысле? Вы нажимаете сохранить чего-то, но диалог не запускается? А отчистка истории это фиксит? И в итории что-то всплывает после отчистки при перезапуске? Очень странный баг.
Самый частый источник багов - дополнения. Не стоит ли у вас что-нибудь этакое, лазящее в историю? Попробуйте временно отключить все дополнения. Восстановление удаленных элементов списка звучит как защищенные от перезаписи какие-то файлы в профиле. Не попал ли какой-то файл оттуда в карантин антивируса? Если создать пустой профиль, на нем проблема воспроизводится?
Оставьте, пожалуйста, баг-репорт на crbug.com. Сразу советую: запустите хром с включенным логированием, воспроизведите проблему и приложите файл chrome_debug.log к вашему репорту.
А так, ошибки допускают абсолютно все. И самый крутой олимпиадник иногда что-то где-то упустит. И даже несмотря на сотни всяких тестирующих серверов и сотни тысяч тестов, покрывающих почти весь код, и нисмотря на код ревью, нет-нет, а какой-то баг и просочиться в итоговую версию. Ваш случай очень странный - какое-то очень редкое стечение обстоятельств, которое очень сложно предусмотреть.
mdevaev
09.12.2023 18:10Давайте я попробую чуть подробнее всё описать. Сразу оговорюсь: у меня не совсем хром, а хромиум на линуксе. Антивируса, естественно, нет. До какого-то момента все было хорошо, баг случился где-то полгода назад и с тех пор сохраняется от обновления к обновлению.
Запускаем браузер, открываем какой-нибудь сайт. Пытаемся сохранить картинку. Диалог не появляется.
Заходим в историю загрузок, чистим ее полностью. Диалог появится при следующей попытке сохранения.
Если перезапустить браузер, то баг снова проявится. При этом в истории загрузок могут всплыть элементы, которые уже были ранее удалены.
Что я выяснил по ходу дела:
Ошибка привязана к профилю. Он у меня очень старый, еще с каких-то пятидесятых версий тянется, емнип. В новых профилях ошибки нет.
Ошибка НЕ связана с расширениями. Их у меня самый минимум, и те тривиальные. Плюс, я пробовал выключать расширения, ошибка все еще воспроизводится.
В дебаг-логе нет абсолютно ничего в момент "непоявления" диалога сохранения файла.
Не принимайте близко к сердцу по поводу олимпиадников. У меня просто с ними довольно негативный опыт работы. Они делают хорошие алгоритмические решения, но часто пишут отвратительный код. Если в FAANG еще какое-то ревью, возможно, делают, то в российских компаниях на это кладут болт, и порождение ужаса продолжает плодиться. Олимпиадник хорошо работает вкупе с руководителе-архитектором/лидом, который ему объясняет, как правильно проектировать.
mdevaev
09.12.2023 18:10UPD: Вот сейчас, после очередного перезапуска, в истории загрузок есть один айтем от 2016 года, в дополнение к исключительно сегодняшним. Хотя с того момента удалений было тьма.
Yoschi
09.12.2023 18:10Логику этого решения я объясняю ?.. отсеиванием слишком квалифицированных сотрудников?..
Логика в том, что в оценке после интервью ставят не только "нанять / не нанять", но и грейд, с которым нанимать. И если дать слишком простую задачу, то у кандидата не будет шанса доказать свою сеньорность/лидовость, получит обычный средненький грейд.
AADogov
09.12.2023 18:10А помогите решить задачу со столбиками воды. У меня она до сих пор не решеная на leetcode.
Я как раз думал над ней последнею неделю, и тут в статье обсуждается подобная задача. Причем я пришел к выводу что у меня совершенно нет идей как решить её меньше чем за О((n^2)/2). Собеседование я бы завалил, но я и не стремлюсь в яндекс, а решать алгоритмические задачи люблю. Код не смотрю специально, хочу сам додуматься. Нужна только идея в какую строну думать.
vkni
09.12.2023 18:10Hint: проход в одну сторону, потом проход в другую.
Это в своё время, скорее всего, была научная статья. Поэтому либо вы знаете, как решать такие задачи, будучи натренированными на них, либо у вас нет никаких шансов её «решить». На собеседовании вы не решаете задачи — для этого слишком мало времени, а вспоминаете решение подобных.wataru
09.12.2023 18:10Hint: проход в одну сторону, потом проход в другую.
Это очень плохая подсказка на самом деле.
Это в своё время, скорее всего, была научная статья.
Ну уж нет. Можно до этого допереть лишь чуть-чуть подумав. Рассмотрите один столбик. Если там вода какой-то высоты, значит, она на этой высоте не вытекает и где-то слева и справа во что-то упирается. Значит и слева и справа должны быть столбики хотя бы такой высоты. Раз выше этого уровня вода стекает, то хотя бы с одной стороны максимальный столбик именно такой высоты и не выше.
1Kovalevskiy
09.12.2023 18:10А почему ты hr не написал, что у тебя собеседующий не знал кресты и ты ему весь собес рассказывал про них? Причем, кажется, что нужно было сразу после собеса писать и не дожидаться результатов
PSIAlt
09.12.2023 18:10Там пройди тренинг на интервьюера и походи-пособеседуй, много нового узнаешь...
inv2004
09.12.2023 18:10две хард - вызывает уважение, хотя одна из них встречалась, но сталкивался с hard, которую я решал неделю
Duck7722
Если бы решили и последнюю задачку хорошо, был бы ещё один собес с задачей. У меня было 6 таких раундов, на шестой, как и у вас у меня попался собеседующий, который не знает моего ЯП. И его я как бы завалил. Тогда и до общения с финальными командами допустили.
Kelbon Автор
Получается реально сильные олимпиадники всё ещё в этом круговороте, потому что всегда решают задачи? Я то думаю, куда друг пропал
Duck7722
Когда Я(ндексу) надоедает, он использует чит-код - собеседующий с фразой "нам будет сложно".
/на правах шутки-юмора
venanen
Это собеседование было сложным. Мы столкнулись с колоссальными вызовами, но научились жить в таких жестких условиях, решать сложные задачи и смогли это сделать благодаря нашей солидарности! Надеемся, что в следующем собеседовании проблемы отступят. С новым
годомраундом. /sAbobcum
ЧСХ, моём общение с яндексом закончилось через несколько раундов также на собеседующем, который не знает языка.
bert2000
Т.е. не знает ЯП он, а не приняли тоже вас? Круто у яшки всё я погляжу.
ioncorpse
Вдруг в этом и смысл? Если вы не можете решить задачу и объяснить ее тому, кто не знает язык - вы плохой специалист.
Хотя не, показалось. Бардак просто.
Abobcum
После этих слов я осознал, что специалисты, которые решают проблемы им точно не нужны. Им нужны специалисты по решению задачек.
MordorReal
Сорвали с языка просто. Сам об этом постоянно говорю. К сожалению, такие процессы по приему людей выстроены не только в Яндекс. Еще посчитайте сколько компании теряют денег на такие сложные собеседования.
vkni
Это правда, но на это требуется время и желание того, кому объясняем. Вообще нельзя забывать, что олимпиадные задачи — это же бывшие научные статьи, на каждую потрачено по месяцу-другому работы светлых мозгов.
PsyHaSTe
Ну кажется очевидным, что у них условие выхода из цикла такое. Если вы супергений-полигглот то будете годами решать задачки пока на 32ой неделе наконец не выдохнитесь
Fedorkov
У меня было 7 раундов на мидла.
Mike-M
Я не понимаю другое: зачем нанимать олимпиадников, если в результате они всё равно выпускают бажные продукты?
cherkalexander
Прям ужасного качества?)
M_AJ
Иногда прямо да. Один мой знакомый до сих пор помнит один из релизов клиента Я.Диска, который сносил на Windows диск С под корень https://habr.com/ru/articles/204580/
wataru
Ошибка очень неприятная, но ничего не говорящая о качестве кода. Склоее всего в каком-то конфиге кто-то нечаянно вставил лишний перевод строки. Косяк, что это не заметили в код-ревью.
M_AJ
Зато много говорящая о качестве продукта, ну и процессов заодно. А дальше уже вопрос, что они хотят выпустить, код или продукт. Я лично вообще не понимаю смысла в "качественном коде ради качественного кода", на мой взгляд единственное ради чего он должен существовать – положительно влиять на качество продукта.
И на тестировании тоже.
vkni
«тяжело найти чёрную кошку в тёмной комнате, особенно если её и не особо искать».
chupasaurus
Могу дать пример поинтереснее, но непубличный. Я.Облако при создании виртуалок пачкой (включая 2) умеет давать неуникальные внутренние IP адреса. Поддержка ответила в стиле "ну так бывает, deal with it".