ebanoe.dev
0
legacy_Жук··1 перегляд

JS-гуру возмущен неоплаченным тестовым

Пишет Анонимус: «Здравствуй, ебаная редакция и не менее ебаные читатели!
Наткнулся сегодня в ленте LinkedIn на публичную жалобу к украинской галерку по причине отсутствия ответа на присланное тестовое.

В Intetics требуют выполнить унизительные тестовые задания.

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

Заходим на GitHub (https://github.com/hirdbluebird/Intetics), видим задание, уже становится интереснее:

Напишите программу, которая возвращает наибольшее число палиндром, которое является произведением двух простых пятизначных чисел, а также возвращает сами сомножители. Простое число — это натуральное число, которое делится нацело только на 1 и на себя само (2, 3, 5, 7, 11, …) Палиндром – строка, которая читается одинаково в обоих направлениях (например ABBA)

Кульминация настанет если открыть код. Мало того, что он тупо перебирает все возможные варианты самым тупым циклом и забивает память непойми зачем, задание вообще выполнено неправильно. И выполняется целых 4 минуты на промежутке от 10000 до 100000. (15 часов затраченного времени, карл!)

Да, компания явно не права, что сразу не ответила «вы долбоеб и нам не подходите», но аутизму парня можно позавидовать: заявляться с таким тестовым на серьезных щщах — это ебаная суперспособность».

Прислал Анонимус

Комментарий ебаной редакции

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

З архіву ebanoe · Опубліковано 15 квітня 2018 р.

Коментарі (115)

Сортування:ТопНовіСтарі
  • legacy_АнтиЖук

    Кому первый защекоин?

    • legacy_Уважаемый_1

      Привет ты че охуел

      • legacy_Посыстрым

        Я вам не скажу за всю Одессу,
        Но понадусэшная пиздота обожает Надю Савченко!

        Так, я хэрой — я воюваф, а ты дэ буфф? На пэрэдку буфф, сука москальська?

        • legacy_Уважаемый_1

          Привет ты че охуел

          • legacy_Капитан_Сиська

            Я надеюсь он там хоть с конца перебирает? От 99999 до 10000?

            • legacy_Капитан_Сиська

              Вообще это очень простая задача. Во первых, надо во вложенном цикле перемножить все числа в диапазоне от 10000 до 99999 и сохранить в массив. Затем следует выбрать из этого массива все палиандромы, для чего во в двух вложенных циклах перебрать весь массив чисел и выбрать те, в которых есть совпадения первой половины со второй. Затем полученные числа в двух вложенных циклах делить на числа в диапазоне от 10000 до 99999. Полученные сохранять в массив. Затем выбрать из массива те, что поделились без остатка, то есть не имеют дробной части. Затем перебрать полученные числа, деля их при этом последовательно от 1 и до самого числа. Те, что поделились только на себя и на единицу, считать простыми. После чего найти максимальные числа. И готов ответ!…)))

              • legacy_HR_Intetics_Inc

                Мы не берём тебя на работу, и знаешь почему? Да потому что ты сожрал всю память. Не умеешь писать не пиши. И забудь про IT.

              • legacy_Aen_Saevherne

                Еще один говнокодер
                >> Затем полученные числа в двух вложенных циклах делить на числа в диапазоне от 10000 до 99999.
                Во-первых, сначала умножать, а потом делить снова перебором идея так себе. Во-вторых, ты так рискуешь отобрать палиндромы которые являются произведением простого и не простого, к тому же тебе нужны оба множителя, а ты во второй массив (на этом моменте тебе уже нужно разбить ебало) записываешь только частное
                А по сути — перебирать нужно в диапазоне от 99999 до 10001 только по нечетным, и делить на все числа в диапазоне от 3 до округленного квадратного корня числа с шагом 2 (тоже по нечетным). А уже найденные таким способом записывать в ма… в список, и при нахождении нового, поочередно умножать его на каждый элемент (начиная с большего) списка и проверять на палиндром. Первый найденный палиндром и будет искомым. И не нужно, сука, двух массивов и две пары вложенных циклов. А такую хуйню:
                >> Затем перебрать полученные числа, деля их при этом последовательно от 1 и до самого числа.
                Простить можно только фронтенд-макаке, если ее не придется подпускать к D3.js

                • legacy_TL

                  > перебирать нужно в диапазоне от 99999 до 10001 только по нечетным
                  Я думаю ты получишь O((N/2) ^ 2). Все равно 2 цикла вложенных.

                  Не проще ли построить сегментированным способом решето Эратосфена, у которого O(n log (log n)).

                  А уже потом спускаться для a и b линейно уменьшая индекс массива на 1.
                  Притом случаи когда a == b проверяются только один раз.

            • legacy_Дебил-контроль

              Увожаемый, вы можете помериться с героем статьи количеством извилин.
              Ответ 99899 вам за щеку.

              • legacy_Уважаемый_1

                какого хуя ты мне это пишешь, долбоёб?

        • legacy_Аноним

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

          Хотя, к чему это Вы? 🙂

    • legacy_Членохуй

      Ахаха, формошлёп возмущён тем, что не оценили его «программистские» способности (которые отсутствуют)

  • legacy_Xmldumper

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

    • legacy_Веб-дев

      Мы срем только на женский пол, а вот мальчиков обожаем!

  • legacy_Am_Dm

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

    • legacy_Poor_Student

      Дайте мне, пожалуйста. методичку с примерами.

      • legacy_Am_Dm

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

    • legacy_Лактобактерия

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

      • legacy_Am_Dm

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

        А «у всех», то есть в реальном мире реальных предметов, на тестовом задании потенциальный работодатель ЗАРАНЕЕ тратит на тебя ресурсы и деньги. Неважно, кем ты пришёл работать : резчиком по дереву, металлообработчиком или поваром. Тебя приводят в оборудованное помещение, выдают материалы, инструменты, а в случае станка/плиты/мясорубки и т д — ещё и оборудование, жрущее прорву энергии. И если ты зафейлил — тебе просто укажут на дверь, хотя просрали только что на твою «попытку показать» дохуя немало. Правда, логично, что и об оплате независимо от результата речи быть не может?

        А тут ещё веселее. Придёт #яжевремятратил, который это же самое время гарантированно с нулевой отдачей может потратить на очередной сеанс дрочки. Слава яйцам, что на этот раз он никакого физического ущерба не наносит. Ему даётся выбор : хочешь начать зарабатывать здесь — покажи, что ты это можешь. Всё.
        Задание не «по делу»? А давно была статья от дизайнера, где он хуями крыл хитрых работодателей, дающих как «тестовое» визитки или флаеры, разработка которых иначе стоила бы денег? Тогда уже определитесь, что хорошо, а что плохо

    • legacy_Steve_Blowjobs

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

      • legacy_Am_Dm

        Я ж не о том, как «по факту». Я касательно хотелок героя статьи

    • legacy_Зигмунд_Фройд

      Договор подпишут, ага.

  • legacy_TL

    Всё решил комментарий ебаной редакции ))

  • legacy_Не_JS-гуру

    Тестовое странное, конечно, но чувак — долбоёб. В следующий раз этот гуру будет перебирать все элементы выборкой из БД.
    Реджект сразу, желательно с припиской, что он долбоёб.

  • legacy_Витя_с_химмаша

    Базука опять шалишь? Шучу, шучу 🙂

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

    • legacy_Зигмунд_Фройд

      Где в требованиях быстродействие и ресурсы?

      • legacy_C_форевер

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

  • legacy_FkingSinior

    Если дев, «который будет сталкиваться только с РИАЛЬНЫМИ задачами», не может написать fizzbuzz, или палиндром, то пусть идет нахуй, серьезно. Я такого бы не взял, пусть он хоть в 100 раз круче всех умеет сверстать говностраницу, или круду наговнокодить. Я бы и не брал бы, если профильного, или околопрофильного образования нет. Ебаные полукровки

    • legacy_TL

      Ждем ваш алгоритм на любом си-подобном языке… C, C++, C#, Java.
      Да хоть паскаль.. вообще на любом, разберемся.
      Но очень хочется взглянуть! You are welcome!

      • legacy_FkingSinior

        public static bool IsPalindrome(this string input)
        {
        if (string.IsNullOrWhiteSpace(input))
        throw new ArgumentNullException(nameof(input));

        if (input.Length == 1)
        return true;

        return input.SequenceEqual(input.Reverse());
        }

        Ну и че ты хотел увидеть ?

        • legacy_devnull_1

          Нет, конкретно решение это задачки, а не ебучий палиндром. P.S. Ты еще и гавнокодер.

          • legacy_FkingSinior

            И где тут говнокод, алень ?)

        • legacy_TL

          Я имел ввиду решение задачи для джуна!

          Но конкретно по-твоему примеру нет смысла проверять на white space, потому что есть куча символов (особенно unicode-specific), которые не будут white space, но будут не видны на экране.
          Да и по задаче джуна там только цифры должны быть, т.е. если УЖ И ПРОВЕРЯТЬ, то чем-то типа:
          Char.IsDigit Method (String, Int32)

        • legacy_Senior_Олег_Дерипаска

          Лови два защекойна:
          1. Пустая строка — палиндром.
          2. Производительность: можно брать первую половину символов и сравнивать с реверсом второй половины.

          Я бы хотел увидеть что-нибудь такое:
          public static bool IsPalindrome(this string input)
          {
          int halfLength = input.Length / 2;
          return input.Take(halfLength).SequenceEqual(input.Reverse().Take(halfLength));
          }

          • legacy_Зигмунд_Фройд

            Где про производительность в условии? У тебя за щекой?

            • legacy_Senior_Олег_Дерипаска

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

          • legacy_Капитан_Сиська

            А ежели палиандром вида ABCBA ?

            • legacy_Am_Dm

              Пардон, увидел уже после того как написал свой коммент

            • legacy_Senior_Олег_Дерипаска

              Все ок: если количество букв нечетное, то центральную проверять не надо.

              Для любой строки из 5 символов надо сделать две проверки: сравнить 1 символ с последним и второй с предпоследним.

              Количество проверок: 5/2 = 2(для целых чисел в при делении округление идет вниз).
              Для строки «ABCBA» обе проверки будут успешны, функция вернет true.

          • legacy_Am_Dm

            Синьор Олег, на минуточку… Нет-нет, подальше, коллеги услышат — ещё чего подумают…
            А теперь смотри мне в глаза и расскажи о производительности, если в палиндроме (внезапно) НЕЧЁТНОЕ количество символов.
            Баг, да? «Непредсказуемый», блин, «жучок залез и повредил работу отлаженной системы»? Force Major, божественное вмешательство, да?
            Ты — молодец, я верю. Твой продукт будет «обновляться» до тех пор, пока не сдохнет заказчик или его терпение.

            • legacy_Senior_Олег_Дерипаска

              И в чем проблема?
              «».IsPalindrome() -> true
              «a».IsPalindrome() -> true
              «bab».IsPalindrome() -> true

              • legacy_Am_Dm

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

                • legacy_Senior_Олег_Дерипаска

                  Ммм.. Куда там носом ткнули? Ты путаешь что-то: тебе просто защекойн прилетел.

                  Прямым же текстом сказано, что на строках нечетной длины код корректно работает. Менять его не надо.

                  Если не согласен, приведи контр-пример: палиндром, на котором эта функция выдаст false.

                  Так что лучше последуй своему совету: прежде чем блеснуть, подумай.

          • legacy_Ява-хуява

            сейчас бы в C#/Java делить строки ради производительности…

      • legacy_Єбтыть

        https://pastebin.com/6mNqNPL9 я там накидал ему в каментах, 3.5 сек на жієс. При том, что жієс я, тащемта, не знаю) Алгоритм очевидный, практически в лоб, без изъебов. Я просто чуть оптимизировал узкие места. Ну епта, надо ж такое делать, не?

    • legacy_devnull_1

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

      • legacy_ЕбисьКонем

        Боюсь, оно за 30-сантиметровый еще и поблагодарит )

  • legacy_deez_nuts

    сделай задание на выходных и получи защеку защекоин и за шиворот зашивроин!

  • legacy_Аппле_говно

    Це рівень розробки на js. Просте завдання з котрим б сі або ➕ ➕ розробник б за пів години впорався б у нього зайняло 15 годин.

    • legacy_devnull_1

      У Js Девов и ++ разные задачи и разные ниши, поэтому сравнивать их это зашквар, это все равно что сравнивать ебучий БТР и гоночную машину на формуле 1.

      • legacy_Ебучий_БТР

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

      • legacy_Єбтыть

        Да оно гуглится. И всё и по частям, как угодно. Чувак его просто не сделал, у него ответ неверный. Он гуглом не умеет пользоваться даже.

  • legacy_Истории_о_педиках_уже_6_историй_httpspul

    90% вайти соискателей бы не справились с этим заданием.

    • legacy_Истории_о_педиках_уже_6_историй_httpspul

      А как вообще это решить без перебора?

      И кто-нибудь понял, зачем он:

      // if value is less than start point remove it

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

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

      • legacy_Тоха

        «сначала делает расчеты для чисел до 10000, а потом удаляет их из массива? Он не сразу понял, что можно начинать расчеты сразу с 10000 или че?»

        Найти простые числа для деления нужно все, а не только после 10000. Потому и ищется с двойки.

        • legacy_Артурка-защитник

          Тоха, нельзя с 10к начинать. ты не вникаешь

      • legacy_Aen_Saevherne

        С двойки он начал чтоб перебор не такой дебильный был, это у него такое решето Эратосфена. Гифку он посмотрел, а вот алгоритм переписать не смог. Собственно в текущих условиях, когда начинать нужно «сверху», толковый перебор
        [range(2, sqrt(n), 2)] справится быстрее, и затраты памяти меньше будут.