REACT FRONTEND || НЕСТАНДАРТНОЕ СОБЕСЕДОВАНИЕ В СБЕР || ДАЛИ ОФФЕР НА 250К

Поділитися
Вставка
  • Опубліковано 2 гру 2024
  • Таймкоды:
    17:20 - самопрезентация
    26:23 - что предложил по изменению стека?
    31:00 - опыт в B2C vs опыт в B2B продуктах
    31:40 - важность хорошей команды
    34:35 - в бар часто ходите?
    35:40 - кто ты на вечеринках?
    37:00 - ЗАДАЧА на виртуализацию и рендеринг больших списков
    1:34:55 - заключение
    #javascript #js #reactjs #programmer #programming #обучениепрограммированию #программист #программирование #developers #frontend #собеседование #frontenddeveloper #webdevelopment #programmingcourses #typescript #nextjs #reactdeveloper #javascript #js #reactjs #programmer #programming #обучениепрограммированию #программист #программирование #developers #angular #vuejs #webpack #frontend #собеседование #frontenddeveloper #webdevelopment #typescript #nextjs #reactdeveloper

КОМЕНТАРІ • 54

  • @АлександрКасатов
    @АлександрКасатов 6 місяців тому +18

    Эта задача на виртуализацию могла бы быть очень крутой и приближенной к жизни, если бы не требование писать ее в блокноте, без обратной связи от консоли и браузера. Предполагаю, что данная компания в собеседованиях на 400к требует писать код гусиным пером по пергаменту, а на 500к - еще и своей кровью) Мне кажется, что цель собеседования - поставить кандидата в реальные условия и посмотреть, как он справляется с задачей, а не проонанировать ему мозги.

    • @ПользовательПользователь-с8к
      @ПользовательПользователь-с8к 6 місяців тому +2

      Факт

    • @Наталья-и2я7э
      @Наталья-и2я7э 6 місяців тому +1

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

    • @mir-itishki
      @mir-itishki  6 місяців тому +2

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

    • @ПользовательПользователь-с8к
      @ПользовательПользователь-с8к 6 місяців тому

      @@mir-itishki в идеале вообще, чтобы давали возможность писать в своей среде разработки, но с отключением Copilot/Tabnine к примеру

  • @ПользовательПользователь-с8к

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

  • @OKaIroN
    @OKaIroN 6 місяців тому +1

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

    • @mir-itishki
      @mir-itishki  6 місяців тому

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

  • @РоманУмбетов-к2ы
    @РоманУмбетов-к2ы 6 місяців тому +2

    Было бы хорошо, если от hr обратную связь вставлял. Я так и не понял, прошел или нет

    • @mir-itishki
      @mir-itishki  6 місяців тому

      Окей, постараюсь внедрить) спасибо за фидбэк)

    • @mr-kopeika
      @mr-kopeika 6 місяців тому

      Прошел. В названии "дали оффер" - значит, что прошел

  • @inqvisitor3722
    @inqvisitor3722 6 місяців тому +1

    надо было массив длиной visibleItemCount создавать

  • @andrew7189
    @andrew7189 3 місяці тому

    Возможно я что-то не правильно понял, но задачу можно было решить вот таким достаточно простым способом:
    onScroll={(e) => {
    if (e.target?.scrollHeight - 700 < e.target?.scrollTop) {
    setVisableItemsCount((prevState) => prevState + 30);
    }
    }}
    ну и ниже
    {list.slice(0, visableItemsCount).map((_, i) => (
    {children(i)}
    ))}

    • @АндрейБочарников-х5ъ
      @АндрейБочарников-х5ъ 3 місяці тому +1

      в таком случае видимые элементы будут постоянно добавляться и добавляться, тогда где тут оптимизация? И как быть если ты начнеш скролить вверх? Плюс такие топорные значения, 700 и 30, любое изменение верстки которое не будет подходить к этим числам, просто приведет к тому, что код перестанет работать как надо

  • @nikitos1234530
    @nikitos1234530 6 місяців тому +3

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

    • @mir-itishki
      @mir-itishki  6 місяців тому

      именно так все и было)

    • @НиколайХаритонов-й3н
      @НиколайХаритонов-й3н 6 місяців тому

      ​@@mir-itishki Правда так и было?

    • @АлексейБомко-ь1ш
      @АлексейБомко-ь1ш 5 місяців тому

      Я уже вижу эти моменты 😅 Видно что сначала идёт пауза и никакого движения по задаче) значит Карен анализирует ответ чата жпт 😂

  • @NarutoJavaScript
    @NarutoJavaScript 23 дні тому

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

  • @MassEffecn
    @MassEffecn 6 місяців тому +1

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

    • @mir-itishki
      @mir-itishki  6 місяців тому

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

    • @ПользовательПользователь-с8к
      @ПользовательПользователь-с8к 6 місяців тому

      Зачем подавать инфу наверх от элементов?
      А не проще разве просто определить, какая сейчас позиция скролла и декларативно рассчитать, какие элементы списка у нас видны? Определяем "от" (позиция скролла) и "до" (позиция скролла + высота контейнера. Также, все элементы внутри позиционируем абсолютно. И передаём на отображение только нужные элементы. И всё, ничего сложного не вижу

    • @ПользовательПользователь-с8к
      @ПользовательПользователь-с8к 6 місяців тому

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

    • @MassEffecn
      @MassEffecn 6 місяців тому

      @@ПользовательПользователь-с8к Затем что бы взять сопоставить то что есть с тем что уже на экране и добавить/удалить элементы с экрана. Этоим должен заниматься кто то один, а не каждый элемент списка, иначе фпс просядт. Ставить все на абсолютах и считать позиции тоже не подойдет, чтение и перезаписи top значений вызывают рефлоуи репеинт, на больших массивах данных фпс сильно сядет. и это только начало, не забывайте что у нас еще каждый браузер по разному отдает дельту на обработчиках wheel, его нужно нормализовать, убрать дребезги, для мобилок добавить фолбеки на тач эвенты, а там тоже не все так просто.
      Это только в теории и голове выглядит как посмотри где стоит и выкинь/добавь. Для вывода в прод это очень комплексная задача с кучей подводных камней.
      + Не понял что вы имеете ввиду под "декларативно рассчитать", при том что декларативность не подразумивает никаких рассчетов.

    • @ПользовательПользователь-с8к
      @ПользовательПользователь-с8к 6 місяців тому

      ​@@MassEffecn согласен, есть такой момент, короче, надо самому пробовать)
      Я на когнитивное искажение попался, можно сказать 😅

  • @aspdof-wy7nj
    @aspdof-wy7nj 6 місяців тому +1

    спасибо, а ты принял в итоге оффер?

    • @mir-itishki
      @mir-itishki  6 місяців тому +1

      нет, не принимал)

    • @inqvisitor3722
      @inqvisitor3722 6 місяців тому

      так ему и не предложили офер

    • @aspdof-wy7nj
      @aspdof-wy7nj 6 місяців тому

      @@inqvisitor3722 читай в названии автор написал что предложили оффер

    • @dw_tv3992
      @dw_tv3992 6 місяців тому

      @@mir-itishki ждешь, когда больше предложат или тебе не интересно? мне понравился момент с временным лимитом)

    • @mir-itishki
      @mir-itishki  6 місяців тому

      @@inqvisitor3722 предложили вообще-то

  • @buduj2386
    @buduj2386 6 місяців тому +2

    250 к за такую задачу? хех, я бы теорию + такую задачу минимум 350 давал бы лол

  • @Icanfly-
    @Icanfly- 4 місяці тому

    Можно сразу слать подальше когда на собесе такую задачу дают.

    • @mgrm7031
      @mgrm7031 4 місяці тому +1

      почему?

    • @mr-pony
      @mr-pony 4 місяці тому

      @@mgrm7031 сликом времязатратно. И без гугла такое проблематично решить