Comments 13
Ну это все отлично и свежо, если бы не знать что там с Яндексом происходит и то что HRы яндекса у меня помоему скоро уже из холодильника начнут вылезать с вакансиями помоему ВО ВСЕ свои сервисы...вот реально мне кажется если я эти уже десятки писем соберу - там будет полный комплект всех сервисов яндекса с вакансиями от миддла до тимлида в каждом... там чё все уволились чтоли уже? финтех вечеринку они устраивают ага
Возможно, HR стоит взглянуть под новым углом на пулл кадров.
возможно яндексу пора снять корону и упростить собесы, я вообще не рассматриваю их вакансии потому что нахрен я видел ..скоко там сейчас 3-4-5 этапов техсобесов проходить которые я скорее всего завалю из-за их упоротости (с моей точки зрения) и потрачу своё время, а вилка у них точно такаяже как сейчас у меня
Это помоему как цирк уже выглядит ейбогу
Это мероприятие выглядит действительно крутым и смелым шагом.
Ничего необычного в этом я не вижу, на моей памяти тут были уже подобные движняки и не от яндекса
Я рад, что у нас есть компании, толкающие индустрию вперед!
Дааа... вот уж толкатели индустрии так да.
Задача решается меньше, чем за минуту - достаточно посмотреть текст ошибки в девтулзах
Что ж, "а ларчик просто открывался". Действительно существуют разные нотации и интерпретации как читать, все как в мире человеков.
Первое же, что должно было насторожить еще до того, как вы начали переводить все в ASCII - так это то, что все байты заканчиваются нулем. Тут одно из двух: или зашифрованная строка состоит исключительно из букв с четными кодами, или биты как-то переставлены.
Вариант с четными буквами исключаем сразу: некоторые коды имеют установленный старший бит, а это уже не стандартное ASCII. Вряд ли организаторы закодировали там русский текст в UTF-8. Значит, перестановка.
Из перестановок наиболее простые - это реверс и ROL (первый слева бит идет в хвост, остальные соответственно сдвигаются влево). Других простых вариантов, которые бы оставили справа нули, я лично сходу не придумал. Ковырять в сторону логических операций тоже смысла мало, т.к. задача по задумке простенькая.
И это называется "расшифровать"?! Стыд и позор не знать терминологии. Публичную задачу можно было сформировать корректно, бррр, до сих пор пробирает. Это не шифр, а максимум стеганография.
Стеганография - это когда скрыт сам факт передачи информации. А тут таки да, шифрование. Можно поспорить, что это просто кодирование, но нет: у нас тут есть и замена, и перестановка. У нас есть исходный текст, который кодируется в ASCII, затем происходит замена кодов другими (да, по тривиальному алгоритму, но все же). Затем даже есть перестановка! Тоже тривиальная, но все же.
Так что не стоит хаять сей прекрасный шифр: он хоть и прост, но вполне имеет право называться шифром.
Сложно представить, каким образом эта задача и её цепочка решений может помочь мне и остальным разработчикам в обычной работе.
Как и любые головоломки. То же самое можно сказать и о задачках про гномиков. Гугль, вроде, отказался от загадок на собеседованиях, так что даже в гугле с этим постулатом, в принципе, согласны. Но и вы согласитесь - решать такие головоломки прикольно.
Лично я изучал Little / Big endian один раз в качестве "любопытно знать" и с тех пор мне это пригодилось 0 раз вплоть до этого дня (чудо, что я вообще вспомнил). Между разработкой и Little / Big endian лежит очень много уровней абстракции.
Ну, тут не биг/литтл как таковой, поскольку в большинстве случаев порядок бит в байте что там, что там одинаковый. Но мне, помнится, приходилось читать логи некой древней АТС, в которой биты шли слева направо. Было весело. :)
Опять же, во многих сетевых протоколах надо уметь разбираться с битами. Так что это не совсем пустые навыки.
Я не буду навязывать конкретное решение, только дам свой пример: варианты кода с нарушением ООП / SOLID / code style (pep, black, eslint и т.д.).
У яндекса раньше были задачки именно на это. Например, давался кусок кода и надо было найти в нем глюки. Насчет кодестайла, правда, это вы перегибаете слегка - в разных конторах могут быть разные соглашения, и отсеивать кандидатов только за то, что на предыдущем месте работы он ставил скобки не по-нашему, не по-египетски - моветон, кмк.
Минимум времени и усилий от всех участников, все ошибки известны заранее, оценки формализованы и объективны.
И наймут человека, который офигенно умеет находить глазами ошибки в чужом коде. А надо, чтоб он сам код писал. Это разные навыки.
Такая задача хорошо подойдет как единый знаменатель для всех направлений: сетевики, devops, разработчики ядра, hardware и т.д. (хотя у последних все равно будет несомненное преимущество).
- Чем вы занимаетесь?
Чем вы занимаетесь?1. Шифр должен иметь ключ, что здесь ключ? Является ли текст, написанный справа налево шифром? - Это все равно, что назвать римские цифры шифром.
2. Чтение справа налево это просто иной способ, если я правильно понимаю, часть аппаратуры без проблем поймет такое сообщение.
3. <<Cтранное сообщение мы тут написали>> - раз странное, значит стеганография."код пишется 1 раз, а читается 10", - так что не соглашусь, поиск глазами ошибок в коде это офигенный навык.
Говоря про фильтр линтером я подразумеваю не спорный кодестайл, а тот, который осуждается всеми.
Такая задача хорошо подойдет как единый знаменатель
Если я правильно понимаю, эта задача только первый этап для "поговорить с HR". А одним из вопросов HR вполне может быть каким образом вы пришли к ответу. И может статься, что "правильным" ответом на этот вопрос для бэкендера будут не сложные (на самом деле - простые) логические рассуждения, а именно что в "инструментах разработчика подсмотрел"
Шифр должен иметь ключ, что здесь ключ?
Формально это можно представить хоть как шифр простой замены (ну и дополнительный разворот текста задом наперед). Ключом соответствующая таблица замены (то, что ключ не случаен, на формальную сторону вопроса никак не влияет.
раз странное, значит стеганография.
Очень стеганографичное утверждение )
поиск глазами ошибок в коде это офигенный навык
Навык офигенный, но другой
По поводу критики: такое задание должно удовлетворять важному условию: элегантность/красота. В задаче "найди изъяны в коде" нет элегантности... А в этом задании есть.
Это не little endian, а переставленные в обратном порядке биты.
Ну и да, сразу видно, что у всех байтов 0 на конце, что является подсказкой к правильному решению. Хорошая задача.
Обожаю подобные задачки.
Для тех кто в теме предлагаю вариант по сложнее: 500942519780201142020759479682883160614803951
Зашифрованное сообщение то же самое, лишь в нижнем регистре. Следует восстановить алфавит.
Подсказки:
1) sizeof_byte - 2
2) Не забываем про старший бит, он равен нулю!
Тест на секретную вечеринку Яндекса, — ночь в финтехе