Pull to refresh

Comments 21

То есть, до вас только сейчас дошло, что навык решения алгоритмических задач показывает только навык решения алгоритмических задач?

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

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

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

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

Почему вместо всей этой фигни просто не предложить ему в уме прикинуть, как бы он сделал Х. А если добавить условие У? И у нас еще вот такая Z особенность есть. Не забудьте учесть еще вот такие-то параметры. И все. Ты понимаешь, как человек мыслит и мыслит ли вообще и реальный ли у него опыт (задачу можно основывать как на вашей специфике, так и на резюме кандидата).

другое - заучивать виды сортировок

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

а на настоящей работе просто вращаешь json-ы.

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

Недавно, один упорно упоротый человек на хабре проходил кучу алгоритмических собесов в Яндекс, а толку?

Да, бросьте. Алгосекция в Яндексе - это чуть выше лёгкого и ниже среднего уровня литкода. Пройти их как нефиг делать. Причём человеку не задрачивающему себя литкодами. Ещё встречал алгосекцию в Тинькоффе - там уровень соответствует лёгкому в литкоде. Если кто-то, как вы говорите, действительно упарывался и действительно решал задачи в литкоде, то я не знаю как должны сойтись звёзды, чтобы не пройти эту фигню. Я за всю жизнь на литкоде решил пару изи задач и штук пять средних чисто чтобы узнать что вообще такое этот литкод. Дальше наскучило. Институт с алгоритмами заканчивал чёрт-те-когда, да и не по алгоритмам. Поэтому, для меня алгосекции немного лоттерейны - задачи на динамическое программирование я вообще не решу ни в каком, тк в универе мы их либо не проходили либо они иначе назывались, с задачами на графы буду долго париться, тк графы изучал только с теоретико-математической точки зрения. Ну, да, попадётся ДП - скажу - звиняй брат, бананьев нема. Попадётся граф - что получится, то уж получится. Ну, какие проблемы? Собес - всегда лоттерея. Сравнительно сложное пограммирование было с Хуавеем - там была сначала обычная алгосекция, а потом в беседе с другим чуваком мы куда-то упоролись в дебри многопоточки и примитивов синхронизации. Сейчас я всё позабывал и слился бы где-то в начале, а тогда мы довольно глубоко забрались :).

а выяснили лишь то, что человек умеет обходить массивы.

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

Была слита в унитаз куча человеко-часов, причем, весьма дорогостоящих

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

Почему вместо всей этой фигни просто не предложить ему в уме прикинуть, как бы он сделал Х. А если добавить условие У? И у нас еще вот такая Z особенность есть.

А тут несколько ответов:

  1. Потому что для входного фильтра это избыточно и требует привлечения ЕЩЁ более дорогостоящих специалистов. Напомню мой тезис - алгосекции НЕ для того, чтобы взять тех, кто умеет их проходить, а частично отсечь балбесов, частично "неудачников" - в этом месте, да, лотерея, но она так или иначе будет при наличии более одного кандидата на вакантное место. Тут законодательство формально требует дать обоснованный отказ и при подбрасывании монеты обоснованного отказа не будет, а при проваленной алгосекции будет.

  2. Такая секция тоже есть, называется "Архитектурная секция". Но, поскольку, она, как уже говорилось, требует для проведения более дорогостоящего специалиста, добираются до неё не все - большинство вылетает на предыдущих.

  3. Система несовершенна, но более совершенная система существенно более ресурсоёмка. И уж точно не стоит тратить время ещё более дорогостоящего специалиста на то чтобы узнать, что кандидат "всего лишь" не может обойти массив(!).

Поэтому, нет, конечно же собеседующие не полные балбесы не понимающие в чём проблемы алгосекции :). Всё они прекрасно понимают. Как я и говорил в предыдущем комменте, причина её наличия - необходимость жёсткого фильтра для хоть какого-то отсеивания 99% претендентов-балбесов (ну, и немного небалбесов, а просто недостаточно мотивированных :) ). Поток большой - ставим фильтр. А когда у Дзена входящий поток иссяк, тогда они и ослабили/убрали фильтр. Всё логично.

Ну, просто поставьте себя на место собеседующего - к вам приходит ежедневно десяток кандидатов, с каждым вы должны провести "как бы он сделал Х. А если добавить условие У?" - архитектурную, по сути, секцию, а у вас только 8 рабочих часов. Спихнуть архитектурную секцию на джунов-миддлов вы не можете и сами должны быть сеньором-техлидом-архитектом (и у вас ещё своя работа же есть). А вот алгосекцию спихнуть можете - там всё довольно формально. Вот и получается так. Но это для больших. Для мелкой компании, в которую наоборот надо с огнём кандидата искать, можно раз в месяц и про "как бы он сделал Х. А если добавить условие У?" поговорить. Ну, и для кандидата тут тоже плюс - если компания мелкая и кандидатов не очередь, а начинают мороку с алгосекциями - это флажок, что в компании не понимают зачем они это делают и это хороший повод не связываться с ними.

И немного совсем недавних реалий - из десятка пройденных свежих собеседований алгосекция была у одной(!). Это был Тинькофф. Уровень - вери изи. Ещё в одном месте какую-то ерундень покодировал ("алгоритм" был уровня перекладывания джейсонов) и в одном "поревьюил" кусок мерзкого кода :). Остальное был трёп за жизнь и за технологии :) Так что всё не так и плохо в действительности. Ну, а в Яндекс - в Яндекс, да, желающих слишком много, поэтому правила игры там вот такие, какие есть.

UFO just landed and posted this here

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

Как говорится, "все профессии нужны, все профессии важны", в том числе нужны и жсоновращатели, так что нет ничего странного в том, чтобы туда идти. Зачем идти туда на работу? Человек обычно хочец кушац и обменивать свою способность к труду на деньги. И да, даже на такие работы пришел этот рак в виде алгоритмов. Этот мем намного ближе к правде, чем кажется.

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

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

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

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

Нет ничего плохого в том, чтобы с ноги ворваться в созвон и спросить, как бы человек сделал Х. Если он начинает нести пургу, даёшь ему ее донести, рассказываешь об условиях работы и "мы вам перезвоним". Даже оторвать меня на пол часа(в случае пурги, даже меньше) от работы будет дешевле, чем заставить обезьянок проводить несколько раундов алгоритмов.

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

И немного совсем недавних реалий - из десятка пройденных свежих собеседований алгосекция была у одной(!). Это был Тинькофф. Уровень - вери изи. Ещё в одном месте какую-то ерундень покодировал ("алгоритм" был уровня перекладывания джейсонов)

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

Почему вместо всей этой фигни просто не предложить ему в уме прикинуть, как бы он сделал Х

Это ж интервьюеру придется думать, вникать, слушать, поддерживать разговор. А тут дал задачки из интернета, поставил баллы и все. Еще и можно ощутить чувство собственного превосходства, подловив человека на незнании O-нотации для алгоритма сортировки кандибобриком (про который ты сам узнал вчера пока готовил вопросы для интервью).

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

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

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

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

Ну, и hr-ы то здесь причём? У них другая работа. Кстати, функция hr-ов в яндексе сломана. Они там сильно про resources и почти совсем не про human.

UFO just landed and posted this here

Когда в 2020 году проходил собеседование в Яндекс.Дзен, то одной из секций было написание таск шедулера на неком пуле потоков в ide за ноутбуком в присутствии двух интервьюеров.
История циклична.

Имхо, собеседования на middle и выше должны включать только вопросы по проектам и решение прикладных задач, а все остальное - это уже формат джунов (да и то совсем зеленых, если у джуна уже имеется какой-то вменяемый опыт, его также стоит интервьировать в прикладной сфере). А то вот есть одна замечательная компания, в которой тоже очень любят алгоритмы спрашивать, так у них полмесяца нельзя было отчет по трафику на сайт скачать в формате pdf, хотя "разработчики знали о проблеме и усердно работали над ее устранением". Я даже не сомневаюсь, что ошибка обрабатывалась за честные O(1), но от этого было как-то не легче.

Да, "Розовые Пони" есть в головах делающих интервьюрование, а понимание сложнoстей/нетривиальностей решения текущих/реальных задач в их оценку компетенции не входит (хотя это как бы подразумевает)


P.S. Вот сколько таких принятых кандидатов посыпались, если не были прикрыты кем то по результатам их работы? (кто то далее, вероятно, стал адекватным разработчиком с позиции Джуна :)

А алгоритмы senior писать не будут? Не знание базы - структуры данных, алгоритмов я вижу как проблему текущих "senior" (те кто сейчас только получил опыт 5 лет), такое ощущение что надо держать отдельных senior 10+ лет или отбирать 10%.

А все потому, что большинство этих 5 лет опыта, отдается 1-5 технологиям программирования, а сложные задачи скидываются на других опытных членов команды. Технологии важны, но база важна тоже.

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

Наконец то! Хоть кто-то додумался до адекватных задач на собеседование программистов!

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

А Что хорошего в яндексе?зарплата в 10 раз выше рынка, или отсутствие некометентного руководства? Или главное печенки в офисе?

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

Врут, HR предлагает порешать алгоритмы из leetcode. И семь кругов ада в придачу, с лайвкодингами и проч. деребеденью. Только не видно каких-то киллер фич, сделанных VK по отношению к конкурентам. Отбор не помог?

Sign up to leave a comment.