А в Швеции наоборот, еще и заставляют проехать по льду на скорости (или по разлитому маслу летом), уворачиваться от симулируемого лося, выходить из заноса.
С протонами уже все проще. И вообще, что вы к пространственным границам привязались? Элементарный заряд, он может быть один, два, или 100500 - натуральные числа в чистом виде.
Надо на квантовый уровень смотреть. Там все дискретное и 1 вполне себе есть. Вот летит себе электрон. Он один. У него один элементарный заряд. Он может столкнуться с 1 позитроном и аннигилировать.
Ну я же вам привел задачи в пример. Там нет никаких алгоритмов на графах и деревъях. И даже всякие трюки с массивами не используются. Чисто инжинерные задачи отформатировать текст.
Меня интересует не результат (знает или не знает человек алгоритмы), а процесс
Меня тоже. Если человек рассуждает по делу, имеет хоть какие-то логичные идеи, и хотя бы с подсказками придумывает что-то умнее полного перебора - это Hire от меня.
Во-первых, задача абстрагирована и никакого контекста там нет. Просто есть данные с ними что-то надо сделать. Больше нигде в коде это делать не надо. Даже чего-то похожего нет.
Потом, это было к тому, что задачи даются реалистичные, навык решения которых нужен в реальной работе. По себе не меряю, но сложность задачи откалибрована под интервью: куча деталей убраны.
Плюс, я подсказываю и не требую идеального оптимального решения за интервью. Хоть что-то умнее плоного перебора, даже с подсказками, придумайте за пол часа, да закодте 10-15 сток кода за оставшиеся 10 минут по делу и это будет Hire от меня.
Если кандидат ее не решил за интервью, это же вообще ни о чем не говорит, он вполне может решить ее за день за два
Это было лишь к тому, что задачи даются вполне реалистичные, что умение их решать пригодится в работе. А не к тому, что я по себе меряю.
Потом, не обязательно за время интервью задачу решить и необязательно даже самостоятельно. Если кандидат хоть какие-то здравые рассуждения о задаче высказывает, но не придумывает решение, я подсказываю. И даже получив очень сильные подсказки (описывающие все основные идеи почти полностью), можно интервью пройти на hire. И не обязательно все решение за интервью закодить. Главное его объяснить, чтоб я понял, что кандидат придумал и хотя бы 10-15 строк осмысленного кода, похожего на реализацию этой идеи из себя выдавить.
Вы сейчас подтвердили мои слова в точности. Эта ваша задача это именно " Если же вы эту задачу начнете абстрагировать от деталей и упрощать, чтоб ее можно было хотя бы за 5 минут объяснить - у вас получаются задачки с литкода ".
В отличие от летиткода
Эту задачу чуть формализовать и хоть сейчас на литкод добавляй - она там как родная будет.
Задач такой сложности на литкоде полно: 12. Еще нагуглилость парочка почти таких, но они платные. Только тут еще сверху неточность формулировки задачи навешана.
Стрессовая обстановка на экзамене по вождению куда ближе к средневзвешенной стрессовости вождения
Да ладно. Большая часть претензий на стресс это: Не могу кодировать, когда смотрят из-за плеча. Ровно это и происходит на экзамене по вождению. Экзаменатор. Плюс тоже нельзя тупить и стресс от возможного провала.
на том же экзамене на вождение у вас не спрашивают, например, как работает blind spot monitor,
Если взять теоретическую часть, то аналогия полная. Сколько раз в жизни вы сталкнетесь с ситуацией, где к перекрестку одновременно подъезжает трамвай, автомобиль, мотоцикл и инвалядная коляска на переходе, там не работает светофор и рядом стоит куча знаков с модификаторами. И вам надо решить, кто едит первым за весьма быстро (на экзамене то время ограничено). А экзамен состоит из таких искусственных и накрученных ситуаций почти полностью.
Нет, вы никогда в жизни после экзамена по этому маршруту ездить не будете. И не будете искать место для остановки вот в этом проблемном месте. Вы будете парковаться, где вам удобнее, в том районе, где вам надо. И не будете объезжать вот эти вот конусы. Да, вы водите машину каждый день, но вы делаете более простые действия.
а деревья я поварачиваю почти никогда
В реальной работе вы тоже пишите код. Ровно как на интервью. Вы тоже составляете алгоритм, выбираете как что-то сделать пооптимальнее, кодируете его. Да, задачи у вас попроще, чем разворот дерева, но тут разница как припарковаться где вам удобно и припарковаться в узкое место, куда указал экзаменатор.
У вас тут фактически происходит обход в ширину дерева рекурсии. Только, если вы захотите его сделать ассимтотически оптимальным, вам придется еще значения c, o в списке хранить вместе со всеми возможными началами валидных строк текущей длины.
Еще всегда можно написать свой собственный стек и превратить рекурсивный алгоритм в итеративный. Потом можно любой итеративный алгоритм (даже тот, что я описал выше), записать в виде хвостовой рекурсии.
А в Швеции, кстати, это в законе прописано. Если совершаются сокращения, то нельзя увольнять более старых сотрудников раньше более молодых. Если должность такого удаляется, то старому сотруднику пердлагается занять аналогичную должность более молодого сотрудника, который сокращается вместо него.
Всегда можно найти задачу из своей области, чтобы за 30-40 минут посмотреть что человек реально умеет!
Это гораздо сложнее, чем вы думаете. Потому что задачи из своей области - это "есть вот эта кодовая база, там 30 компонентов, которые как-то взаимодействуют, надо запилить вот такую вот фичу". Вы кандидату это будете час только объяснять, а кандидат еще час будет кодовую базу раскуривать. Потом уже будет 30-40 минут, да. Если же вы эту задачу начнете абстрагировать от деталей и упрощать, чтоб ее можно было хотя бы за 5 минут объяснить - у вас получаются задачки с литкода. Чаще всего easy, почти без алгоритмов и структур данных. И, если у вас поток кандидатов 1000 на одно место, то вам придется задачки усложнять. Тупо увеличивать объем broiler plate кода - это не усложнение. Хотя, можно, конечно, и по скорости печати кандидатов отсеивать, но алгоритмы, которые проверяют способность думать, тут подходят гораздо лучше (если не давать одни и те же баянистые задачи, конечно. Тогда действительно можно случайно проверять способность зубрить).
Конечно, если у вас мелкая контора и вы пол года закрыть вакансию не можете, то возможно вам будет достаточно и Fizz Buzz. А тестовое задание или "поговорить по душам" будет лучше алго-собесов.
Полагаю, когда вы решаете какую-то задачу вы это делаете не на время и не с "надзирателем за спиной"
Когда вы водите машину - вы в машине чаще всего один, без инспектора. И ездите вы из дома до работы, а не по вот тому району, где ГАИ проводит экзамен. Но экзамен на ПДД вы сдаете с "надзирателем за спиной", в стрессовой обстановке, где вам дают противоречивые команды.
Интервью - это экзамен. И у него свойства экзамена. Это не тестовое задание, где вы без ограничения времени и надзора делаете задачу в удобной для вас обстановке. Тестовые - хороший вариант для маленьких контор, но для ФААНГов они не подходят. Их очень долго проверять, их долго готовить, там элементарно читерить. И тут на хабре их ненавидят не особо меньше этих алгособесов.
Более того, в фаангах, которые эти алгоритмические интервью и придумали далеко не только формы клепают. Там очень много команд, в которых эти самые алгоритмы как раз приходится применять. И динамическое программирование, и всякие структуры данных где очередь с хеш-таблицей переплетены, и математика иногда нужна. Не каждый день, даже не каждый месяц, но без достаточной базы даже не заметишь, что вот тут, оказывается, алгоритм нужен, и вместо наивного решения за 2^N можно написать N log N какой-нибудь.
Я, вот, на интервью справшиваю как раз ту задачку, которую лично в прод коммитил. Абстрогированную и упрощенную, конечно, но все равно она неотличима от литкодовских mid-hard задач.
Вы без знания даже запрос гуглу на зададите. С развитем ЛЛМок у вас уже есть какой-то шанс, что она вам нагаллюционирует что-то близкое к теме, но без знания базы вы может даже в этом не разберетесь, даже если что-то полезное найдете. И адаптировать под ваш конкретный случай не сможете.
Ах, да, в том сниппете не обрабатываются клетки на границе, вы правы.
Код-то покажите, пожалуйста. Не очень понял, что вы там поменяли.
А в Швеции наоборот, еще и заставляют проехать по льду на скорости (или по разлитому маслу летом), уворачиваться от симулируемого лося, выходить из заноса.
С протонами уже все проще. И вообще, что вы к пространственным границам привязались? Элементарный заряд, он может быть один, два, или 100500 - натуральные числа в чистом виде.
Надо на квантовый уровень смотреть. Там все дискретное и 1 вполне себе есть. Вот летит себе электрон. Он один. У него один элементарный заряд. Он может столкнуться с 1 позитроном и аннигилировать.
Ну я же вам привел задачи в пример. Там нет никаких алгоритмов на графах и деревъях. И даже всякие трюки с массивами не используются. Чисто инжинерные задачи отформатировать текст.
Меня тоже. Если человек рассуждает по делу, имеет хоть какие-то логичные идеи, и хотя бы с подсказками придумывает что-то умнее полного перебора - это Hire от меня.
Во-первых, задача абстрагирована и никакого контекста там нет. Просто есть данные с ними что-то надо сделать. Больше нигде в коде это делать не надо. Даже чего-то похожего нет.
Потом, это было к тому, что задачи даются реалистичные, навык решения которых нужен в реальной работе. По себе не меряю, но сложность задачи откалибрована под интервью: куча деталей убраны.
Плюс, я подсказываю и не требую идеального оптимального решения за интервью. Хоть что-то умнее плоного перебора, даже с подсказками, придумайте за пол часа, да закодте 10-15 сток кода за оставшиеся 10 минут по делу и это будет Hire от меня.
Это было лишь к тому, что задачи даются вполне реалистичные, что умение их решать пригодится в работе. А не к тому, что я по себе меряю.
Потом, не обязательно за время интервью задачу решить и необязательно даже самостоятельно. Если кандидат хоть какие-то здравые рассуждения о задаче высказывает, но не придумывает решение, я подсказываю. И даже получив очень сильные подсказки (описывающие все основные идеи почти полностью), можно интервью пройти на hire. И не обязательно все решение за интервью закодить. Главное его объяснить, чтоб я понял, что кандидат придумал и хотя бы 10-15 строк осмысленного кода, похожего на реализацию этой идеи из себя выдавить.
И на интервью спрашивают в основном именно первое. Не просят реализовать AVL деревья, а просят придумать, как применить std::set.
Вы сейчас подтвердили мои слова в точности. Эта ваша задача это именно " Если же вы эту задачу начнете абстрагировать от деталей и упрощать, чтоб ее можно было хотя бы за 5 минут объяснить - у вас получаются задачки с литкода ".
Эту задачу чуть формализовать и хоть сейчас на литкод добавляй - она там как родная будет.
Задач такой сложности на литкоде полно: 1 2. Еще нагуглилость парочка почти таких, но они платные. Только тут еще сверху неточность формулировки задачи навешана.
Да ладно. Большая часть претензий на стресс это: Не могу кодировать, когда смотрят из-за плеча. Ровно это и происходит на экзамене по вождению. Экзаменатор. Плюс тоже нельзя тупить и стресс от возможного провала.
Если взять теоретическую часть, то аналогия полная. Сколько раз в жизни вы сталкнетесь с ситуацией, где к перекрестку одновременно подъезжает трамвай, автомобиль, мотоцикл и инвалядная коляска на переходе, там не работает светофор и рядом стоит куча знаков с модификаторами. И вам надо решить, кто едит первым за весьма быстро (на экзамене то время ограничено). А экзамен состоит из таких искусственных и накрученных ситуаций почти полностью.
Нет, вы никогда в жизни после экзамена по этому маршруту ездить не будете. И не будете искать место для остановки вот в этом проблемном месте. Вы будете парковаться, где вам удобнее, в том районе, где вам надо. И не будете объезжать вот эти вот конусы. Да, вы водите машину каждый день, но вы делаете более простые действия.
В реальной работе вы тоже пишите код. Ровно как на интервью. Вы тоже составляете алгоритм, выбираете как что-то сделать пооптимальнее, кодируете его. Да, задачи у вас попроще, чем разворот дерева, но тут разница как припарковаться где вам удобно и припарковаться в узкое место, куда указал экзаменатор.
У вас тут фактически происходит обход в ширину дерева рекурсии. Только, если вы захотите его сделать ассимтотически оптимальным, вам придется еще значения c, o в списке хранить вместе со всеми возможными началами валидных строк текущей длины.
Еще всегда можно написать свой собственный стек и превратить рекурсивный алгоритм в итеративный. Потом можно любой итеративный алгоритм (даже тот, что я описал выше), записать в виде хвостовой рекурсии.
А в Швеции, кстати, это в законе прописано. Если совершаются сокращения, то нельзя увольнять более старых сотрудников раньше более молодых. Если должность такого удаляется, то старому сотруднику пердлагается занять аналогичную должность более молодого сотрудника, который сокращается вместо него.
Это гораздо сложнее, чем вы думаете. Потому что задачи из своей области - это "есть вот эта кодовая база, там 30 компонентов, которые как-то взаимодействуют, надо запилить вот такую вот фичу". Вы кандидату это будете час только объяснять, а кандидат еще час будет кодовую базу раскуривать. Потом уже будет 30-40 минут, да. Если же вы эту задачу начнете абстрагировать от деталей и упрощать, чтоб ее можно было хотя бы за 5 минут объяснить - у вас получаются задачки с литкода. Чаще всего easy, почти без алгоритмов и структур данных. И, если у вас поток кандидатов 1000 на одно место, то вам придется задачки усложнять. Тупо увеличивать объем broiler plate кода - это не усложнение. Хотя, можно, конечно, и по скорости печати кандидатов отсеивать, но алгоритмы, которые проверяют способность думать, тут подходят гораздо лучше (если не давать одни и те же баянистые задачи, конечно. Тогда действительно можно случайно проверять способность зубрить).
Конечно, если у вас мелкая контора и вы пол года закрыть вакансию не можете, то возможно вам будет достаточно и Fizz Buzz. А тестовое задание или "поговорить по душам" будет лучше алго-собесов.
Когда вы водите машину - вы в машине чаще всего один, без инспектора. И ездите вы из дома до работы, а не по вот тому району, где ГАИ проводит экзамен. Но экзамен на ПДД вы сдаете с "надзирателем за спиной", в стрессовой обстановке, где вам дают противоречивые команды.
Интервью - это экзамен. И у него свойства экзамена. Это не тестовое задание, где вы без ограничения времени и надзора делаете задачу в удобной для вас обстановке. Тестовые - хороший вариант для маленьких контор, но для ФААНГов они не подходят. Их очень долго проверять, их долго готовить, там элементарно читерить. И тут на хабре их ненавидят не особо меньше этих алгособесов.
К сожалению нет. Когда задачи утекают, приходится придумывать новые. Редко какую задачу можно ужать до интервью и абстрагировать.
Из других примеров - встречались вот эти задачи: sliding window max, eating bananas
Более того, в фаангах, которые эти алгоритмические интервью и придумали далеко не только формы клепают. Там очень много команд, в которых эти самые алгоритмы как раз приходится применять. И динамическое программирование, и всякие структуры данных где очередь с хеш-таблицей переплетены, и математика иногда нужна. Не каждый день, даже не каждый месяц, но без достаточной базы даже не заметишь, что вот тут, оказывается, алгоритм нужен, и вместо наивного решения за 2^N можно написать N log N какой-нибудь.
Я, вот, на интервью справшиваю как раз ту задачку, которую лично в прод коммитил. Абстрогированную и упрощенную, конечно, но все равно она неотличима от литкодовских mid-hard задач.
А что можете посоветовать встроить в хабр, что бы статьи писались людьми, а не чатжпт?
Вы без знания даже запрос гуглу на зададите. С развитем ЛЛМок у вас уже есть какой-то шанс, что она вам нагаллюционирует что-то близкое к теме, но без знания базы вы может даже в этом не разберетесь, даже если что-то полезное найдете. И адаптировать под ваш конкретный случай не сможете.