ОГОНЬ Задача с моего ПЕРВОГО собеседования на Junior Frontend Developer

Поделиться
HTML-код
  • Опубликовано: 21 сен 2024
  • Тогда я прошел собеседование. Это была продуктовая компания. Был сложный проект - почти на чистом javaScript разработали spa low-code платформу. Она позволяла создавать кастомные CRM для крупных гос корпораций. На клиенте ты задаешь структуру БД - каждая сущность это модель - класс. Сущности связаны ключами и наследованием
    Telegram t.me/bzuqpo
    Instagram / agaf89

Комментарии • 60

  • @agaf89
    @agaf89  Год назад +5

    Забыл в задаче указать в 11 строчке - вызови метод join(" ") после reduce - чтобы получить - 'лон ес'

  • @MirrorWorlds-
    @MirrorWorlds- 6 месяцев назад +2

    условие первой задачи было вывести строку "лон ес" а у Вас в конце получился массив с элементами "лон" и "ес". Задание выполнено не доконца...
    Решение первой задачи одной строкой
    str.split(', ').filter((_, i) => i % 2).map(val => val.substr(1)).join(' ');

    • @agaf89
      @agaf89  6 месяцев назад

      Отлично молодец 👍🏼

  • @disoff8950
    @disoff8950 Год назад +4

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

    • @agaf89
      @agaf89  Год назад

      Спасибо 🚀❤️

  • @alexandroppolus
    @alexandroppolus Год назад +32

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

    • @agaf89
      @agaf89  Год назад +2

      100%. Я ни разу такого потом подобного не встречал. Компания небольшая была. Чел который меня собесил закончил МФТИ, так что мне еще тогда повезло с заданием

    • @gregdmitriev2784
      @gregdmitriev2784 Год назад

      😄 точно

  • @hackzem07
    @hackzem07 7 месяцев назад +1

    Для фибоначчи можно сделать так:
    const fib = (num) => {
    const rfib = (num, acc = 0, acc2 = 1) => {
    if (num

    • @ПожилойБилибоба
      @ПожилойБилибоба Месяц назад

      Рекурсия потребляет больше ресурсов, поэтому лучше через цикл решать

  • @АраАкобян-ч1д
    @АраАкобян-ч1д 11 месяцев назад

    интересная задача, хорошо, что вы рассказали

  • @diatm1506
    @diatm1506 6 месяцев назад

    JavaScript-изеры вперед)

  • @Roman-qr4xg
    @Roman-qr4xg Год назад +2

    Было бы интересно услышать историю как сменили профессию на fronted разработчика,как учились, сколько времени занял путь до 🍅

    • @agaf89
      @agaf89  Год назад

      Ага, сделаю обязательно, но чуточку позже🫶

  • @lesjoni8347
    @lesjoni8347 Год назад +5

    Не пойму зачем джуну знать про фибоначи? Разве это хоть когда то пригодится в реальных проектах? Почему не давать тестовые задания которые прямо связанны с реальными задачами? 🥸 Но объяснения хорошие 🙏

    • @agaf89
      @agaf89  Год назад

      Сложно ответить. Знания Фибоначчи это специфические знания. В реальности применения не видел. Но я думаю задача была оценить как джун может выкрутиться из этой ситуации.

    • @MaloyDjo
      @MaloyDjo Год назад

      Если бы, некоторые HR, сами были проф пригодными, для своей же должности, то и вопросы были из реальной жизни.

    • @Happy-wt9dy
      @Happy-wt9dy Год назад

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

  • @spllit9212
    @spllit9212 Год назад

    Вместо промисов можно было async await, я думаю, использовать. Они тоже промис возвращают

  • @fokspoks
    @fokspoks Год назад

    отличное видео

  • @jamjam3337
    @jamjam3337 Год назад +1

    👏👍

  • @lostagrkesh7596
    @lostagrkesh7596 Год назад

    Произведение это умножение, а Фибоначчи это сумма двух чисел

    • @agaf89
      @agaf89  Год назад

      Да я сделал правку в видео: *сумма

    • @agaf89
      @agaf89  Год назад

      6:21 *сумма

  • @ИззатТурсунов
    @ИззатТурсунов Год назад

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

  • @lostagrkesh7596
    @lostagrkesh7596 Год назад +1

    Я немного не понял почему в числах Фибоначчи f1 = 1 и f2 = 1? Поидее первое число f1 должно равняться 0, а второе f2 равно 1

    • @agaf89
      @agaf89  Год назад

      Ага тут есть несколько вариантов, зависит от источника литературы. Мы опускаем F0 и счет ведем с F1.
      Цитата из Википедии:
      Правда, в некоторых книгах, особенно в старых, член
      F
      0
      F_{0}, равный нулю, опускается - тогда последовательность Фибоначчи начинается с
      F
      1
      =
      F
      2
      =
      1
      {\displaystyle F_{1}=F_{2}=1}[5][6].

  • @Egoriy1977
    @Egoriy1977 Год назад +1

    Оговорился. Не произведение, а сумма соседних чисел

    • @agaf89
      @agaf89  Год назад

      Верно, я это указал в видео *Сумма 👍🏼

  • @TheMonsterLPchanel
    @TheMonsterLPchanel Год назад

    если использовать рекурсию при вычислении числа Фибоначчи и использовать async await то всё решается буквально в 4 строки
    const getSomeData = async (str, num) => [ await getStr(str), await fib(num)]
    const getStr = async (str) => str.split(', ').reduce((acc, val, index) => index % 2 !== 0 ? [...acc, val.slice(1, val.length)] : acc, []).join(' ')
    const fib = async (n) => n

    • @agaf89
      @agaf89  Год назад

      Круто, молодец ❤️

    • @js8n35
      @js8n35 7 месяцев назад +1

      753 вызова функции fib для того, чтобы вычислить 13 число фибоначи. Такое себе решение

  • @АндрейРосовский

    Интересно, нужно было именно через промисы делать или async/await тоже засчитали бы?

    • @agaf89
      @agaf89  Год назад

      Я думаю их интересовала тема промисов, понимание самой конструкции

    • @vladislavstepanov7591
      @vladislavstepanov7591 Год назад

      async await это тоже промисы. Просто сахар над ними

    • @agaf89
      @agaf89  Год назад +1

      @@vladislavstepanov7591 про async/await на собесе спросят в самую последнюю очередь, а вот new Promise - это почти всегда. Решая задачи на собесе, нужно давать интервьюеру то, что он хочет или ожидает от тебя - это залог успеха любого собеса

    • @ЕленаМонастырская-т1л
      @ЕленаМонастырская-т1л Год назад

      @@agaf89 Вы уверены про последнюю очередь? Мне попадалось.. Если задача звучала как "сделать асинхронность через new Promise", то всё ок, а если просто "сделать асинхронность", то можно и нужно решать задачу оптимальным в своем понимании способом. И async/await здесь бы смотрелся максимально уместно. Если интервьюер хочет какой-то конкретный способ решения, он скажет. А гадать что он там хотел - неблагодарное дело

  • @gregdmitriev2784
    @gregdmitriev2784 Год назад

    а не проще ли было асинхронную часть сделать через asinc/await ?

    • @agaf89
      @agaf89  Год назад

      Нет. Это собес. Там не спрашивают про async await

  • @front_interviews
    @front_interviews Год назад

    1/5 года опыта, могу ли теперь найти новый проект?

    • @agaf89
      @agaf89  Год назад +1

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

  • @jerrext9272
    @jerrext9272 Год назад

    а как подобное можно было бы решить через async/await?

    • @agaf89
      @agaf89  Год назад

      Навтыкать в двух функциях async - но надо быть готовым решить через промисы

  • @Sltkbeaver199
    @Sltkbeaver199 Год назад

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

    • @agaf89
      @agaf89  Год назад

      Tabnine

    • @Sltkbeaver199
      @Sltkbeaver199 Год назад

      Насколько же это удобно…
      Огромное спасибо.

  • @nazarhlukhaniuk2686
    @nazarhlukhaniuk2686 Год назад

    вирішувати пошук чисел по фібоначі, за допомогою міліона змінних - точно рівень "сіньйора")
    Типовий інфоциган

    • @agaf89
      @agaf89  Год назад +1

      Не понимаю

  • @user-mg1mu1sn7z
    @user-mg1mu1sn7z Год назад

    Что за плагин, который код подсказввает серым?

    • @agaf89
      @agaf89  Год назад +1

      Tabnine - нейронка обучается, если новый проект, то слабо подсказывает. Платная ПРО версия творит чудеса

    • @user-mg1mu1sn7z
      @user-mg1mu1sn7z Год назад

      @@agaf89 Как думаешь, новичку следует пользоваться такого рода инструментами или лучше пока набивать руку с обычными снипетами еммета?

    • @agaf89
      @agaf89  Год назад

      @@user-mg1mu1sn7z сложно сказать. Я думаю все таки самому писать, только потом когда уже автоматизм появится, то можно юзать табнайн

  • @АндрейЛ-щ3э
    @АндрейЛ-щ3э Год назад +2

    лон ес можно было получить проще.
    const sliced = string.split(', ').filter((el, i)=> i % 2 !== 0).map(el => [...el].slice(1).join('')).join(' ')

  • @jacktwinn
    @jacktwinn 10 месяцев назад +1

    Я бы лучше регуляркой слова вытащил, иначе если будут случайно двойные пробелы, без пробелов или вообще другие символы, то по пизде пойдёт ответ) ну и slice(1) можно просто написать)
    str.match(/[а-яa-z]+/gi)
    .reduce((acc, el, i) => {
    if (i % 2 > 0) {
    acc.push(el.slice(1));
    }
    return acc;
    }, [])
    .join('');

    • @SerzhNesteruk
      @SerzhNesteruk 5 месяцев назад

      С регуляркой идея интересная, но в коде всё же не учтён один граничный случай. При передаче пустой строки (или не содержащей букв) должна вернуться пустая строка.