Pull to refresh

Comments 183

литкод на стажера. "дефицит кадров" как он есть 🙈

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

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

либо котолампа, либо цирк. скорее всего и того и того пополам

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

оцениваю это скорее как стокгольмский синдром, но пожалуйста, дело ваше.

странное хобби, как по мне, свободное время тратить на прохождение собесов, чтобы вас там по литкодам погоняли

особенно учитывая что вы изначально знали что оффер не примете (чего я изначально не понимал, когда писал первый коммент).

мне удивительно что вам сам процесс доставляет удовольствие

Так ему для опыта, он же еще джун)

Я уже далеко не джун, но мне это доставляет удовольствие. Во-первых, проверить себя, во-вторых потренировать стрессоустойчивость, в-третьих посмеяться потом с друзьями надо задачами вроде "родить с нуля БПФ на javascript". Если есть свободное время, конечно.

мне это доставляет удовольствие.

посмеяться потом с друзьями надо задачами вроде ***

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

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

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

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

А собеседование это прямо три игры в одной:

  • поразбирать на базаре позиции в шахматы

  • поторговаться за товар (труд)

  • получить офер выше рынка, и потом картинно уйти в закат в белом пальто :)

Если платят норм деньги за эту стажировку условную, то какая разница? Или там беда вообще?

литкод на стажера

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

вот что начало с поведенческой секции и "как вы решаете конфликты" -- это как раз удивительно.

что у стажёра ещё спрашивать?

в какой-то момент я вообще перестал понимать человечество.

вы берете стажеров, которые ЗАВЕДОМО без опыта, чтобы УЧИТЬ и РАССКАЗЫВАТЬ, и потом отобрать тех, кто лучше всего УСВАИВАЕТ.

или теперь стажировка это что-то другое?

Так сейчас из-за бешеного спроса на стажера требования, как раньше на миддла :)

В Сбер, я думаю, приходит несколько сотен откликов на одну позицию, так чего бы им не повыбирать. Захотят - добавят секцию с лучшим пением (чтобы проверить голос для созвонов, конечно) или чтением стихов (проверка памяти!). И ничего, будут петь, танцевать, решать алгоритмы, лишь бы попасть на стажировку.

Танцевать алгоритмы? Как в Индии?

Поищите "sorting dance" на ютубе. Будете удивлены.

Офигеть!
А я еще думал что атомно пошутил))
"Быстрая сортировка как венгерский народный танец" - круто же! Спасибо за наводку.

"Быстрая сортировка как венгерский народный танец" - круто же!

Там ещё и пузырьковая есть.

А вот ответьте кто-нибудь, что в Сбере/Тиньке/Яндексе такого что туда прям очередь стоит ? Судя по их вакансиям - ничего особого, ЗП, мягко говоря, середина рынка, чего туда народ так ломится ? Джуны/Мидлы за строчкой в резюме ?

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

P.S. Сейчас сотни откликов на позицию даже в ООО "Мир гидроприводов", не только в Сбер.

Из того что я вижу в открытом доступе у российского бигтеха куда входит и Сбер в среднем 300-350к на позицию синьора, что в 2024 году с учетом инфляции немного не серьезно. Плюс требования к кандидату на уровне гугла. При +- аналогичном уровне знаний можно спокойно получить оффер с linked in на 5-6к usd, что как-бы раза в два так больше. Да, куча геморроя с казахскими/киргизскими банками, криптой и тд, но блин, разница реально в два раза по деньгам.

в среднем 300-350к на позицию синьора

Я, к сожалению, не могу обсуждать конкретные цифры, но это не так.

Даже если было бы так, часто ли стажёры могут устроиться на 5-6к в заграничную компанию? Ладно, пусть мидл/сеньор, ну получаешь ты 500-700к рублей, но нет никакой гарантии, что тебя завтра не уволят одним днём, кинув попутно на последнюю зарплату, как нет и больничных, отпусков, пенсии и многого другого, зато есть головняк с валютным контролем и уплатой налогов, а может и нездоровый интерес органов, учитывая текущую политическую ситуацию.

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

или теперь стажировка это что-то другое?

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

Кстати, хороший вопрос. Я как-то работала в компании, и у нас на стажировку брали даже тех, у кого нет не то, что практического опыта, но даже и хорошей теоретической базы, кроме совсем базовых знаний основ. Соответственно, отсев шел по принципу, кто за установленный срок способен хоть чему-то научиться, чтобы пройти дальше, а кто вообще не в зуб ногой в программировании. При этом стажерам еще и платили зп, хоть и условную в 10-15к руб в мес, потому что так или иначе они работали и решали задачки, хоть и с обучением в процессе решения. Вообще, в вакансиях мне часто попадались вакансии на стажера, в которых порой даже не было требований что-то знать вообще. Но там не платили) Помню, меня тоже как-то звали так на работу php разработчиком с моими супер базовыми знания на уровне скрипта для отправки формы, причем на зп 30к в мес. xD Но там предполагалось, что за мес меня должны были превратить в уверенного джуна, который сможет решать поставленные задачи на проекте. Это было вполне реально, и я даже всерьез задумывалась об этом, но в итоге отказалась ибо идти в бэкэнд у меня планов не было.

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

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

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

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

самых старательных, проявивших рвение, но не продемонстрировавших достаточные результаты (или просто ярких) приглашать на след. поток в приоритетном порядке, хвалить, предлагать другие варианты карьеры в компании.

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

зависимости между литкодом и успехами в обслуживании корпоративного кода нет и быть не может.

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

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

в стажере нужно искать потенциал, а не навыки, вы одурели чтоли со своими литкодами

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

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

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

Вообще, по-хорошему, стажеров надо приглашать/отбирать на старших курсов вузов и именно по показателям их успеваемости там. А уже после практики оставлять в компанию как будущих джунов после окончания вуза только лучших из тех, кто прошел ее до конца. А вот такой адовый собес на стажировку (но уже оплачиваемую) как та, что описана в данной статье, проводить тем, кто вкатывается в ИТ после курсов или сам по себе, а не после профильного ВУЗа. Тут, чтобы отсеять тех, кто не особо то и горит желанием кодить, а в ИТ идет только потому что так модно или так получилось)

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

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

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

Без опыта – не значит же, что без образования.

Приведённые вопросы не требуют опыта работы.

вас несколько этапов гоняли по алгоритмам

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

У меня такой же случай был. Дал девочке примитивную, неалгоритмическую задачу пробежаться по массиву и достать данные. Она начала получать данные из массива, не в цикле, хардкодом arr[0], arr[1], arr[2]... А потом возмутилась, что не знала, что на джуниора нужно решать олимпиадные задачи. При этом это уже был кандидат, который закончил Яндекс практикум настолько хорошо, что его даже взяли на двухнедельную стажировку в том же ЯП

Сказал массив на 10 - не удивляйся a[1].
Кстати, как бы ты решал задачу, когда на вход подают 3 числа и тебе надо бы их отсортировать (и потом что-то дальше делать, учебная задача, так что без библиотек) - писал бы сортировку, или набором if ов?

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

А про leetcode задачу в данном случае - ну какие там, блин, алгоритмы. Школьная арифметика второго или третьего класса, если не первого (даже не знаю, в котором сейчас сложение в столбик изучают). Я её раньше не смотрел, но у меня в голове её решить ушло меньше времени чем прочитать условие, код даже писать не стал - просто неинтересно.

За что, вот, как раз не люблю leetcode - сами задачи часто интересные, но именно чтобы решать их в голове или на бумажке. С точки зрения написания кода они во-первых неинтересны вообще, а во вторых этот самый код абсолютно никак не оценивается - напиши все одним методом/функцией с переменными x1, x2, ....., x42, восемью вложенными циклами и полудюжиной вложенных ветвлений, и для leetcode это полностью ОК.

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

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

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

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

Обычно вопросы типа "что выведет код" — на глубокое понимание языка.

Тоже думал над этим, после боя - нужно поблагодарить соперника и пожать руку.

Какие выводы я сделал по итогу данных собесов:

  1. Нужно решать больше задачек на LeetCode. Нужно как можно больше практики!

С такими выводами, да ещё и на первом месте, будущему IT точно конец.

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

В данном кейсе эта цель, как мы видим, не была достигнута.

Но меня в этой статья куда больше зацепило начало:

Ещё год назад я новоиспечённый гофер, только начинаю познавать основы языка ... Забавно, как быстро растут аппетиты, когда знаешь себе цену и на что ты способен.

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

Я подстраиваюсь под условия рынка найма)

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

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

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

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

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

С такими выводами, да ещё и на первом месте, будущему IT точно конец.

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

И что поменялось за эти 15 лет? Ни-че-го.

Даже курсы по решению литкод задач не шибко популярны.

  1. Я подал заявку на стажировку

  2. Меня взяли на стажировку

  3. Я отказался, так как считаю, что я уже перерос стажерство

Все ок с причинно-следственными связями?

ну и как-то странно читать про тяжкое прохождение этапа алгоритмов с подсказками и следом «я уже год работаю и целых полгода даже не джуном!»

Как-то потребности не соответствуют возможностям

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

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

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

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

Работать год в компании и решать алгоритмические задачки это разные вещи. Это считай другой аспект собеседования, к которому нужно ОТДЕЛЬНО готовится.

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

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

Все ок с причинно-следственными связями?

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

Потеряли интервалы времени.

  1. Я подал заявку на стажировку

  2. Прошел месяц, за это время я (опущено в тексте) и потерял смысл в этой стажировке

  3. Меня пригласили на собеседование

  4. Я прошел несколько этапов и меня пригласили на стажировку

Но поезд уже ушел.

Как по мне, так всё логично. Хочешь научиться проходить собеседование - надо проходить собеседование.

  1. Нужно решать больше задачек на LeetCode. Нужно как можно больше практики!

Интересно нынче выглядит практика. А потом те кого отобрали с практиками как написать не более 10 строчек кода, пишут (или дописывают) очередную "Войну и Мир".

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

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

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

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

с таймлимитом, под присмотром, в стрессе.

абсолютная чушь

с таймлимитом, под присмотром, в стрессе

У вас начинается тряска от того что задачу нужно кому-то продемонстрировать свои навыки? Стресс от просьбы перевернуть дерево?

Бедняга, вам срочно надо организовать сейф-спейс где вам платят за то что вы красивый.

Да даже a + b бывает тяжело написать под взглядом незнакомого тебе человека. И если, скажем так, отсутствие стеснения, для кого-то не является врождённым, ему действительно помогает тренировка. Мне много лет потребовалось, чтобы начать писать код прилюдно не хуже, чем одному.

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

Завтра дед лайн. Нужно написать миллион строчек кода. Все бегают по кабинету и кричат "Мы все умрем".

Стресс и таймлимит уже есть.

Я конечно преувеличиваю, но стресс и таймлимиты есть и в обычной работе.

самое интересное, что те кто надеется на всеобщее знание СВОЕЙ алгоритмической задачки, обычно не в состоянии решить (или даже просто понять) любую алгоритмическую задачку из смежной области или даже ту же задачку в другой формулировке и/или с чуть измененными начальными условиями.

Ладно бы только присмотр. Но когда дают лайвкодинг в блокноте Яндекса без подсветки синтаксиса и привычных подсказок, я не факт, что даже foreach нормально объявлю, не то, что какой-то сложный код напишу. 5 лет работы на одном языке и в одной IDE, я большинство конструкций уже за счёт мышечной памяти банально набираю, так что такие алгосекции кажутся чем-то сродни розыгрышу.

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

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

Написание алгоритмов за короткий срок не покажет мыслительный процесс.

Алгоритм - буквально формализованный мыслительный процесс. Ещё как покажет.

Навык, который отдельно развивается только для того, чтобы пройти собеседования.

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

К реальной работе, и задачам на работе такой навык не применим.

Только если ваша работа - перекраска кнопок и выставление центрирование дивов.

Испытуемый на собеседовании действует наоборот, он сначала делает, а потом думает.

Это по вашему собственному опыту? Почему я на алгособесах сначала думаю, а потом делаю, как и в реальной работе?

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

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

От сюда понять про кандидата его уровень не возможно.

Просто не верно.

Алгоритм - буквально формализованный мыслительный процесс. Ещё как покажет.

Нет. Алгоритм - это конечная стадия. В нём нет процесса его создания. Когда время ограничено, у кандидата, есть возможность воспользоваться тем способом, который он знает. И он именно этим будет пользоваться. В этом нет мыслительного процесса. Обдумывания. Исследования. Проработки. Эксперимента. Теста. Много чего не будет. Будет только вышколенное или зазубренное решение. Банально в этом не будет творчества.

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

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

Только если ваша работа - перекраска кнопок и выставление центрирование дивов.

О, ярлыки. Не только. Много где всё, что связано с алгоритмами не встречается.

Это по вашему собственному опыту? Почему я на алгособесах сначала думаю, а потом делаю, как и в реальной работе?

Так это вы. А есть те, кто так не делает. Что теперь все должны быть как вы? Нет. Все люди разные. И у них разные возможности, опыт и навыки.

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

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

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

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

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

Очень интересно. Когда обьявили мобилизацию, по ощущениям, 90% моих коллег и самых разных знакомых испытали такой стресс, что выпали из рабочего процесса на несколько дней. О каких тогда проверках идет речь?)

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

Откуда стрессы и форс-мажоры при нормально организованном процессе разработки и выкатки? Я больше поверю в горение задниц у девопсов в час ночи, там легко такое представить.
Алгособес должен проверять имено знание алгоритмов, причём не только на практике, но и в теории. Я про Манакера не зря упомянул -- хороший пример падения сложности, если когда-то хотя бы слышал про такое. Толку от того, что кто-то решит-таки задачу за O(n^3), если есть решение за O(n). Интервьюер скажет "молодец, справился, берём"? А если решающий скажет, что нормальное решение он не напишет по памяти, т.к. надо алгоритм в букваре подглядеть -- завалил? Или-таки в реальной работе он без стресса и проблем сделает O(n) и обойдётся без форсмажоров, при условии, что ревьювер сходу поймёт алгоритм, а тестер сможет проверить все пограничные случаи?

У меня был как-то баг в клиентском мобильном приложении, проявлявшийся только по 31-м числам и только в високосные годы, что шансы поймать его на тестировании сильно уменьшало. Приводил к резкому росту количества запросов на бэк, на грани DDoS-а. Когда он выплыл на проде, аврал был изрядный.

Но при этом баг оказался достаточно воспроизводимым, чтоб его можно было быстро локализовать и исправить? :)
Вряд ли это всё было связано с умением решать литкодовские задачи на время.

У меня как-то на одной из прошлых работ коллеги тоже словили нехилый dog pile, когда разработали и внедрили новую либу кеша у себя, но поленились сделать стресс тесты на значениях посещаемости, сильно превышающих среднесуточный максимум. Через полгода случилось. Но не было никакого аврала: упало, откатили либу на предыдущую версию, пофиксили, оттестили и выкатили заново.

Откуда стрессы и форс-мажоры при нормально организованном процессе разработки и выкатки?

На изи. Google выпускает запрет на библиотеку (библиотека собирает данные, который запрещено собирать), все приложения использующие эту библиотеку автоматом удаляются с Google Play. Нужно менять приложение, искать другие библиотеки за короткий срок, иначе потеря пользователей. Не были в такой ситуации никогда? Я вам описал пример, который случился два раза в этом году. И этот форс-мажор от разработчика не зависит. И не зависит от системы разработки, тестов, CI/CD и прочего. Это воздействие из-вне.

Толку от того, что кто-то решит-таки задачу за O(n^3), если есть решение за O(n). Интервьюер скажет "молодец, справился, берём"? А если решающий скажет, что нормальное решение он не напишет по памяти, т.к. надо алгоритм в букваре подглядеть -- завалил?

После этого я не понял что вы мне описываете. Один вопрос одну сторону тезиса затрагивает, другой вопрос - другую. Какая задача у компании, которая ищет сотрудника? Найти просто сотрудника, который будет просто выполнять работу? Найти лучшего сотрудника - суперзвезду, который будет решать задачи с блеском? Потому что с точки зрения вашего же тезиса «просто сотрудник» алгособес не пройдёт. Только суперзвезда. Вот он собственно отсев, о котором я писал комментариями выше. Но рынок у нас не состоит только из суперзвёзд. Я, к примеру, не смогу дать быстрое решение на алгособесе, если я его не знаю. Если я с задачаей не сталкивался ранее. И теперь получается я не достоин проходить собесы? Ну чушь же

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

Потому что с точки зрения вашего же тезиса «просто сотрудник» алгособес не пройдёт. Только суперзвезда.

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

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

Так менять системообразующую библиотеку в проекте -- это совершенно другой экспириенс.

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

Чтоб разбираться в алгоритмах не обязательно быть суперзвездой.

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

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

Просто любопытно - а когда, в каких условиях и где вам последний раз приходилось руками писать сортировки вместо библиотечных? Исключая всякую экзотику, кажется под любую платформу (я имею ввиду язык + стандартная библиотека + сторонние библиотеки) для разработки давным давно все возможные оптимальные сортировки написаны. Если еще на написаны - LLM напишет либо уже сейчас, либо в ближайшее время.

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

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

Наличие единственно верного решения как раз отлично показывает, что это hit or miss задача, прохождение которой сводится в принципе к... прорешиванию задач. Чем огромная часть людей и занимается.

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

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

P.S. Достаточно иронично то, что вы ML инженер судя по профилю и в целом должны как никто понимать ценность этой алгоритмики в перспективе :)

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

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

В 2019 году фронтендеры из смежной команды при написании одной внутренней тулзы умудрились поддерживать некое множество объектов в сортированном виде за тот же квадрат, что эффективно замедляло работу около сотни человек в компании, пока кто-то не выяснил что проблема не в "плохом html5 плеере" а в плохом образовании у этих самых фронтендеров.

LLM всё напишут за вас
Достаточно иронично то, что вы ML инженер судя по профилю и в целом должны как никто понимать ценность этой алгоритмики в перспективе :)

Вот как раз потому что я ML инженер я прекрасно понимаю ценность этой алгоритмики в перспективе. Спойлер - она будет только расти, по мере накопления "качественного" кода сгенеренного LLMками и закоммиченого в полной уверенности что машина - лучший друг человека.

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

по мере накопления "качественного" кода сгенеренного LLMками

Текущая проблема LLMок не в том, что они пишут "некачественный" код в алгоритмической секции (независимые проверки от комьюнити показывают что тот же о1 решает 21 задачу из 22 в произвольной выборке на плюсах в leetcode, включая hard), а в том, что если им генерировать код подряд - будет солянка, в нем не хватает целостности и того самого понимания "а нафига оно тут вообще", о котором я выше говорил и ценность программиста собственно будет состоять именно в этом. И вот это как раз та большая штука, которую важно и нужно проверять. Вся беда в том, что есть очень много людей, которые умеют в литкод, но не умеют в разработку. Беда то как раз в том, что люди начинают задрачивать литкод, компании понимают что отбор начинает работать плохо, повышают сложность литкода, оно опять начинает работать плохо и так по кругу. В итоге получается отбор, который отбирает лучших специалистов по литкоду с непредсказумым результатом в рамках реальных задач. Я не знаю насколько это заметно на российском рынке, но на глобальном - очень заметно. И читерство в плане прохождения подобных собеседований тоже вырасло в разы, тот же chatgpt вполне может парсить экран, слушать интервьюера, искать и решать задачу и тут же показывать ответ тут вот сбоку на экранчике за основным монитором (и даже начитать в наушник во втором ухе). Дальше нужно просто по ролям разыграть.

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

В чем пока выигрывает однозначно человек - это в рамках решения сложных абстрактных задач с неопределенным контекстом. Условно - GPT рисует вполне нормальную базовую архитектуру решения допустим, но не может ее обосновать, вдаться в детали, прикинуть в уме или допустить какие-то неуказанные штуки, очевидные для того, кто условно "в теме". Ну и человек может целостно собрать решение от начала до конца, модельки (пока, по крайней мере) не могут. И оценить его нужность\ненужность конечно в рамках сверхширокого контекста. Это имеет шанс сохраниться хоть сколь-нибудь долго из-за проблемы загрузки контекста. А вот потом... ну, потом и посмотрим.

независимые проверки от комьюнити показывают что тот же о1 решает 21 задачу из 22 в произвольной выборке на плюсах в leetcode, включая hard

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

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

Проблема не в обучении на "плохом коде", проблема в том что языковая модель занимается вероятностным выводом а не рассуждением, что бы там не писали про "chain of thought". Это буквально классическая китайская комната.

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

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

В чем пока выигрывает однозначно человек - это в рамках решения сложных абстрактных задач с неопределенным контекстом.

А это буквально единственное что важно. Все остальные задачи LLM "выигрывает" так же как их выигрывает индус с доступом к гуглу и stackoverflow в 2015 году. Да, этого почти что хватает для крудогенерации для очередного магазина, но это не то чего хочется.

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

А это буквально единственное что важно. Все остальные задачи LLM "выигрывает" так же как их выигрывает индус с доступом к гуглу и stackoverflow в 2015 году. Да, этого почти что хватает для крудогенерации для очередного магазина, но это не то чего хочется.

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

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

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

То есть да, я знаю много людей, которых только AGI и заменит. Но подавляющее большинство (в процентном соотношении) недалеко ушли и от текущего поколения LLM.

так как на нём есть почти все задачи в схожих формулировках то перформанс на олимпиадных задачах просто нет смысла смотреть.

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

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

Проблема в том, что на самом деле индустрия состоит по большей части из таких вот индусов.

Тут конечно спору нет, однако даже самый последний индус всё ещё всухую выигрывает у LLM по длине контекста и возможности учитывать контекст из реального мира и так называемый common sense. Задачи в которых этот контекст не нужен это зачастую локальная правка кода в которой LLM по сути являются сжатой копией stackoverflow и примеров кода с гитхаба. Да, гораздо удобнее но не качественно лучше.

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

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

Тоже поделюсь. Регулярно пишу сортировки, структуры данных и другие около алгоритмические штуки.

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

На 1с периодически пишу пузырек, т.к иногда написать пузырек под какую нибудь хитрую сортировку будет быстрее чем библиотечный код написать. А то что он квадратный мне пофигу - массив на <100 элементов можно хоть молитвой сортировать

Простите, но что такое "пузырек под хитрую сортировку"?

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

А что, в 1С нет сортировки с параметром в виде функции, по значениям которой нужно сортировать?

Нету. В десяток строк пишется конечно, но "из коробки" таблицы сортирует по возрастанию/убыванию. Для ссылочных типов - возрастанию гуида, что конечно дает однозначность, но редко надо.

Только если ваша работа - перекраска кнопок и выставление центрирование дивов.

Это вы про себя сейчас?

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

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

Это вы про себя сейчас?

Ого, вот это у вас изящная риторика, я аж дара речи лишился от такого мощного аргумента.

Вероятно, потому, что на реальной работе занимаетесь такой же ерундой, как на собеседованиях?

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

Покажите свой гитхаб, мы посмотрим, сколько там подписчиков

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

уровня от доктора наук

Зачем вы указали именно ту категорию людей которые к написанию продакшн кода в принципе не способны?

… я аж дара речи лишился от такого мощного аргумента.
… даже спорить не буду с профессионалом с такой высокой культурой общения.

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

… ваш-то гитхаб открыт и код там не самый красивый мягко говоря.

Быстро же вы с реализации сложных алгоритмов «слились» на «вкус и цвет фломастеров».

… которые к написанию продакшн кода в принципе не способны?

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

Скажите честно, у вас всё хорошо? Приём медикаментов не пропускаете?

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

Вы вообще пост и ветку комментариев читали? Понимаете о чем в нём речь, что имеется ввиду под алгоритмической подготовкой? Какие ещё мои алгоритмы, я что, рассказывал тут о каких-то своих особых авторских алгоритмах перевернувших весь CS?

Быстро же вы с реализации сложных алгоритмов «слились» на «вкус и цвет фломастеров».

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

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

Может вы прекратите приписывать оппоненту утверждения которые он не делал?

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

Складывается впечатление что ваше ЧСВ летает выше спутников данные с которых вы обрабатываете, а беглый просмотр профиля с перечислением регалий и высокопарного "не отвлекайте по пустякам, ведь каждый разговор занимает и ваше и мое время" (что особенно смешно в контексте того что вы сами с двух ног влетели в ветку начав бросаться фекалиями) только подтверждает ощущение того что вы считаете себя самым умным а свои 500 звёздочек на гитхабе - дающими право разговаривать с людьми свысока.

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

Прекращайте быть ЧСВшным душнилой с навыками общения девятиклассника - и люди к вам потянутся.

Складывается впечатление что ваше ЧСВ летает выше спутников…

С профессорами же я работал и ВСЕ они выдают код ещё хуже вашего…

Прекращайте быть ЧСВшным душнилой…

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

утверждаете, что все профессора, включая, видимо, Дональда Кнута, вам в подметки не годятся

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

Зачем вы указали именно ту категорию людей которые к написанию продакшн кода в принципе не способны?

Ух как вы однозначно всех докторов наук))) Не надо так категорично, бывают(редко) разные варианты

Алгоритмических задачек

написание тестов

Чего?

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

Или, если в основном главное это алгоритмы, то для какого рода компаний и позиций это актуально?

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

Алгоритмы это не самое главное но их хорошее знание это надёжный признак того что человек легко освоит любое количество необходимых технологий и у него всё нормально с абстракциями и способностями к архитектуре. Для меня это эдакий маркер mental capacity.

Софт-скилы это вообще отдельная тема, качаются они вопреки техническим.

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

а какие реальные навыки надо тестировать? Умение не заснуть на дейликах и копипаст со стековерфлоу?

Что то типа:

Придумай 5 вариантов выступления на дейли, если ты всю неделю на другом проекте, а рп от клиента не должен об этом догадаться.

Я всегда считал и буду считать что для бэкенд разраба на уровень выше джуна нет ничего лучше собеседования где минимум 70% времени отведено на код ревью или задачу на проектирование архитектуры какого-то сервиса. Еще до 20% времени можно отвести на какие-то технические вопросы которые остались непонятны после практической задачи (ну или наоборот начать с разогрева техническими вопросами). 10% - все остальное.

Ходит слух, что если компании нужен разработчик, она его берет и устраивает ему испытательный срок. А кому не особо, устраивает 78 раундов игры в шахматы.

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

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

получил сеньорскую лычку по выслуге лет но при этом вообще не дружит с логикой? Таких сейчас немало.

Это да.

Или вы хотите на третий рабочий день обнаружить что сеньор отнюдь не сеньор и не знает джуновскую матчать?

Но тут, я думаю, что если дотнетовский чувак может рассказать про LSP и CQRS/ES, то уж что такое boxing/unboxing и разницу между interface и abstract class он, наверное, все-таки, знает.

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

Почему? Из же задача была в том, что бы дать новый опыт человеку. Человек взял в том объеме, в котором посчитал нужным. По идее они достигли цели и должны быть довольны

Это лайВкодинг. Автор пропустил "в". Это когда ты шаришь свой экран и решаешь какие-то алгоритмические задачки.

В принципе тоже что и лафкодинг но в Сбере после каждого решённого задания принято лаять.

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

Кандидат врёт, что он умеет программировать, рекрутер врёт, что возьмёт на работу

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

Небольшая забавная опечатка. Исправил)

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

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

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

Было же написано: стажер Sber Devices. А присказка: RTFM

У вас когнитивное искажение. Очень сильно зависит от того, куда попадёшь, а вы всех под одну гребенку. Да и вообще это не банк.

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

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

Судя по тому что Вы написали, Вы даже близко не понимаете как все устроено в Сбере и как они зарабатывают деньги. Как и то что Сбер это уже давно не только банк, тем более что автор статьи написал что собесился в Sber Devices. И да, уверены что Вы их посылаете, а не они Вас?)

Тот или не том, мне проверять самому не досуг. У меня давно отбило желание к экспериментам. И совершенно пофиг куда: сходил на совбес в Сбертех и там сидела совершенно безграмотная баба-тест лид. Вам нравится, работайте.

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

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

Вы же общаетесь не с вашим (возможно) ближайшим окружением из винно-водочного... Здесь культурное общество, так что выбирайте выражения!

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

Вы даже близко не понимаете как все устроено в Сбере и как они зарабатывают деньги

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

Когда тех лид с умным видом на конференции рассказывал, как он проверяет форматирование кода на код ревью, а не использует PM, Checkstyle, Sonar для таких проверок, уровень Сбера стал понятен

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

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

Как было раньше:
1. публиковалась вакансия;
2. приходили кандидаты, которые хотят получить работу/стажировку;
3. собеседования/отбор;
4. вакансия закрыта.

Как стало сейчас:
1. публикуется вакансия;
2. приходит толпа любителей просто походить по собеседованиям без каких-либо намерений;
3. собеседования/отбор;
4. goto 2.

Автор молодец в любом случае и не в его огород камень, времена изменились. Раньше в голову мало кому приходило мотаться по собеседованиям just for fun: надо отпрашиваться или договариваться на "после работы" и т.д. А сейчас онлайн да хоть по 3 штуки в день, главное, чтобы мозг не плавился от алгоритмов. Но позицию закрывают в разы дольше.

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

HR-ы в поте лица ищут сотрудников и раздувают себе штат (сотрудников-то не хватает)
Программисты весело скучают в рабочее время, наблюдая как соискатель решает задачку с leetcode.
Соискатели изучают теорию, тренируют алгоритмы и навыки общения в свободное время.
Вроде бы все в плюсе. Бизнес оплатил время своим сотрудникам "процесс поиска", соискатель получил опыт и в процессе подготовки и в процессе собеседования.

раньше кандидаты отбирали работу, а не наоборот. Если знал что такое синглтон считай работа гарантирована. А трениновочные собеседования были всегда.

Все же не надо сравнивать бигтех и "рога и копыта"-компании. 10 лет назад в хорошую компанию собеседования тоже не были "про синглтон".

ну ок, про синглтон тебя были готовы расцеловать не 10, а 20 лет назад. В 14 году был кризис типа текущего. А вообще человека берут исходя из того, на сколько он нужен, а не исходя из знаний. Щаз HR лютуют потому что могут и потому что нужно придумать любые фильтры что бы обрабатывать поток желающих писать код. Тут подойдут и поведенческие вопросы и просто отправка 90% резюме в урну

Маленький оффтопик про задачу с литкода. Зашёл с телефона, прочитал условие по диагонали, подумал, что в голове списка самый значимый разряд. Сразу же мысль: «Да, интересная медиум-задача, надо прикинуть, какие есть опции, кроме разворачивания входных списков». Уже прикинул нормализации длин, возможности хранения мест переносов, мелкие оптимизации, а потом пошёл в эдиториал и убедился, что я не умею читать в час ночи. Зато в комментариях там сплошной вой «Ааа, у вас написано, что там интежер, а ваши кейсы в интежер не влезают!!1!» и в очередной раз убедился, что две вещи неизменны: человеческая глупость и проблемы с оценками сложности задач на литкоде.

Если бы задача стояла НЕ крутить списки то решал бы так :

Посчитать проходом по спискам отступ между головами.

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

Самое интересное это переносы. Последовательности вида "9 10" мы можем в наивном решении(два указателя current, next) устранить одним проходом. Но каждая девятка в последовательности увеличивает число проходов на один.

Чтобы этого избежать, будем крутить доп. цикл пока next = 9 (либо дойдем до 10+ и обновим значение по адресу current, а затем сменим current, либо встретим 8- и закончим цикл со сменой current). Временные затраты это не увеличит, затраты по памяти тоже, решение мне нравится.

Остаётся только проблема переноса из старшего разряда, но она на связных списках тривиальна.

Итого получаем 2N + M по времени (длины списков) и N+M по памяти (можно уменьшить до N если хранить исходные списки в ПЗУ, и можно ещё попытаться запихнуть список сумму в файл, но там труднее)

И это я за последние 3 года ни разу алгоритмических задач такого плана не решал. Предполагаю что мое решение не идеально.

чуток кликбейтный заголовок я кликнул. в моём понимании оффер - это всё-таки позиция какая-то + зп, а не стажёрство. если бы предложили стать сеньором, а вы их опрокинули, то вот это интересно. хотя и стажировку можно оффером считать. но без кликбейта, название статьи: "как я отказался от стажировки"

Внутрянка слайсов, мэпов и интерфейсов — это точно знания, которые нужны стажёру? ИМХО такое нужно сеньёрам, и то не всем.

Внутрянка слайсов, мэпов и интерфейсов — это точно знания, которые нужны стажёру?

Middle минимум должен знать. Иначе будут часто паники.

Ну если этого мидла забанили в гугле, то да, возможно

Увы, это не то чтобы "внутрянка", это базовые знания про структуры данных языка.

Если их не знать, то можно наделать неприятных ошибок.

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

Зачем мелочиться? Идите сразу в синьоры!

Несколько недель назад я подал заявку на стажировку в Сбер.

  Я не готов снова проходить стажировку, и мне пришлось отказаться от приглашения.

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

Ясно-понятно.

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

Проверить свои силы - разве не достаточная мотивация?

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

Здравствуйте, мы из Сбер*. До сих пор жалеем. Плачем. Рвем волосы на ж*пе. Как же мы вас упустили.

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

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

И алгоритмические задачи 100%)))

У стажёров щас правда спрашивают, умеют ли они работать в команде? 🤔

конечно, ровно как и другой формализированный список вопросов типа "кем вы видите себя через 5 лет? планируете ли расти в сениора/тим-лида/архитектора? какие у вас слабые места? как вы решаете конфликты в команде?"

Задание 3:
Преобразовывать юникод-строку в массив байтов - это неправильно. Один символ может состоять из нескольких байтов. В данном случае, правильным выбором будет rune.

Это действительно хорошее замечание, исправлю!

Дожились, джуны учатся не профессии, а успешному прохождению многоэтапных собеседований))

Второй раз к ряду вспоминаю слово "гофер". Совпадение?..

*да, я вспоминаю именно тот "гофер", из 90-х.

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

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

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

Какая забавная опечатка:

лайкодинг

Типа liecoding? =)

Ждал, что под таким заголовком окажется история "я старался, прошёл, получил приглашение, но узнал подробности, и отказался уж очень условия были "не очень" - а в итоге читаю "я напрягся, прошел, там были еще кандидаты, меня выбрали, но я решил не идти" (притом причины прозаические, и причины - изначально на ответственности автора). Это же Хабр, не просто "мой милый дневничок", или я не прав?

Ну вот правда, Вам бы предложили попробоваться на роль дворника. Вы согласились, Вам предложили обсудить с бабками во дворе моду молодежи - и Вы успешно прошли этап. Дали тестовую метлу и тестовый дворик, посмотрели, что убирать умеете - дали тачку и полулицы - а Вы и тут не подкачали. В итоге, Вас позвали, а вы прикинули, что дворником быть совсем не дело для разработчика, и отказались. Вопрос: куда написать, в газету для дворников или в СМИ для разработчиков?

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

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

Так отбирать на стажировку... Ну это пипец. Кем они себя возомнили? Я думаю, на стажировку в Google, Facebook или Tesla проще отобраться. Вы молодец, что прошли всё и описали свой опыт здесь. И молодец, что отказались. Удачи вам в дальнейшем поиске работы.

Спорно, всех брать с лицы дорого, ведь на них будет тратиться время опытных сотрудников, но конечно 100500 этапов на стажировку это перебор

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

Вспоминается небезызвестный диалог из х/ф «О чем говорят мужчины?»:

- Что, правда отказал?

- Отказал.

- Жанне Фриске?

- Ну да.

- …

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

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

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

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

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

Тогда нужно было именно так описывать статью. Потому что заголовок не отражает наполнение. Заголовок - кликбейт. Даже не смотря на то, что заголовок кликбейтный. Он подразумевает, что внутри будут разбирать взаимоотношения с HR, техлидом, рекрутерами, и так далее, прохладные былины так с казать, а не разбор задач. И с такой стороны статья вышла так себе. Это лично мой мнение. Потому что она неоднозначна. Ощущается, что вы что-то умалчиваете. Нехватает деталей.

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

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

Ссылка интересная, изучу её обязательно.

Спасибо за обратную связь!

Моё ощущение от статьи странное, как и мир автора. " Как вы ведёте себя в конфликтных ситуациях?", " умеете ли признавать ошибки?" - очень сложные вопросы, к которым надо " быть готовым заранее" . Это шикарная характеристика для выпускника детсада и младшего школьника. Далее, обилие специальных терминов, что подчёркивают невероятную важность( сольфеджио, басовый ключ...) и выдуманных слов и новых смыслов принадлежности в среде обитания( "собес" у автора и бабушки и разные по смыслу вроде, а генерация, в отличие от бабушек дегенерация, типа детских музыкалка и училка). Есть термин " слабоумие врачей", тут же представлена " дебильность айтишника", и она невероятно хвастлива и по-босятски хамовита - автор просто купается в изысканной глупости как городская сумасшедшая в розовых пластмассовых очках на пол лица, шляпках с цветами и вычурных нарядах из бабушкиного сундука. Но это лишь моё ощущение. Для критиков: представьте здесь статью детского анестезиолога или хирурга по его теме, к примеру. Ему это нужно? Нет. Специальная терминология интересна? Не очень. Будет ли звучать " пневмойка/пневмонийка", " аппендицитка/аппка", "скальп" вместо скальпеля или " катер" вместо катетера? Сомневаюсь.

"Как вы ведёте себя в конфликтных ситуациях?"

Топаю ногами, брызгаю слюной.

"умеете ли признавать ошибки?"

Я их не делаю.

На такие вопросы я обычно так отвечаю :D

Очень резкая агрессивная критика без указания конкретных деталей.

Глупый вопрос задам.

Смотрел много раз собесы по GO на джунов, мидлов.

Почему на них не спрашивают gRPC, swagger или например graphQL?

gRPC не во всех проектах применяется, где-то обходятся REST API. Меня спрашивали на одном из собесов про типы передач данных (унарный, потоковая передача от сервера, потоковая передача от клиента, двунаправленная потоковая передача).

Про swagger не могу представить, что можно спросить на собесе. Это больше практический навык.

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

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

Sign up to leave a comment.

Articles