Interview of a Middle Frontend developer

แชร์
ฝัง
  • เผยแพร่เมื่อ 28 ส.ค. 2024

ความคิดเห็น • 568

  • @frontendscience
    @frontendscience  3 ปีที่แล้ว +132

    👍 Друзья, поддержите, пожалуйста, Алексея в комментариях - он самый смелый, прошел у нас интервью первым. И поставьте ему большой красивый лайк!

    • @user-hf2gs8vh4h
      @user-hf2gs8vh4h ปีที่แล้ว

      😢😊🎉😂 ❤😮😢❤❤😊х😮😮🎉😊 л😂🎉😂😅😅е😊😢😅вы❤❤😂😂❤😊 😅😮😮х😮😢😮😂😅😢😅😮😊🎉к😢😊😢😢😂😊😊🎉🎉🎉😢😢😊😢эх😊😮😢😮😅😮😮😅❤😮😮😮❤😢😂😊😊😂😢🎉❤😊😢л😮🎉😊 7:41 🎉😅😢😢😢 7:55 🎉😢😊😅😊😢😮😢😢😅😊😮😢🎉😮😂😢з 8:б😅❤😂😊 10:17 42 как 8:54 😮х😂❤😮😊😢 9:56 😢😊😢😅😮х😢🎉😢ф😢😂😢😊😅😊😢😮🎉😊😅😊😮😮❤😊😊😮😊ч😂😮🎉😂😊

  • @maxtor5088
    @maxtor5088 3 ปีที่แล้ว +849

    У нас есть два JS, тот который мы используем каждый день и о котором говорим на собеседовани ))

    • @zheil2977
      @zheil2977 3 ปีที่แล้ว +14

      У нас есть два программирования, то которое мы используем каждый день и о котором говорим на собеседовании )))

    • @user-rf3ui4cc6w
      @user-rf3ui4cc6w 3 ปีที่แล้ว +15

      Согласен, в реальности все по другому, а здесь какие-то магические слова :)

    • @ELDlabIo
      @ELDlabIo 3 ปีที่แล้ว +13

      @@user-rf3ui4cc6w Ну на самом деле слова не магические) Просто часто работа превращается в рутину и все мы работаем не с целью чему-то обучиться, а просто выполнять задачи, ибо начальству только это важно, к несчастью( Но я считаю, что если хочешь быть не просто кодером, а программистом думающим и отвечающим за каждую свою строчку кода, то надо чтобы все-таки все эти слова перестали быть магическими)

    • @michaelpetrov4965
      @michaelpetrov4965 2 ปีที่แล้ว +1

      @@zheil2977 можно подставить php, ничего не изменится.

    • @CJ19000
      @CJ19000 ปีที่แล้ว

      +++++

  • @phone1429
    @phone1429 2 ปีที่แล้ว +16

    Алексей, спасибо за участие в интервью. Считаю, отлично справился, несмотря на волнение. Успехов, профессионального и карьерного роста!

  • @suslikest3708
    @suslikest3708 3 ปีที่แล้ว +67

    Мне лично сразу в кандидате понравилось то что он свободно и без напряга общается при этом в рамках приличия как по мне уже крутой показатель.

    • @user-vc6mo5nl8g
      @user-vc6mo5nl8g 3 ปีที่แล้ว +2

      Да, парень - крут!

  • @Maiq-The_Liar
    @Maiq-The_Liar 3 ปีที่แล้ว +53

    Чувствуется, что готовился усердно :) Круто.

  • @user-pe6ku5lu6q
    @user-pe6ku5lu6q 3 ปีที่แล้ว +39

    Алексей молодец! Все знания можно помножить на 2, а то и на 3 - учитывая что все это происходит в стрессовой обстановке.

  • @alexr6829
    @alexr6829 3 ปีที่แล้ว +54

    Было круто, спасибо Сергей! Еще так много нужно узнать и еще большему научиться)

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว +6

      И тебе спасибо! Больших успехов!

    • @boldureans
      @boldureans 3 ปีที่แล้ว +1

      Ты оч крутой!

    • @murad40
      @murad40 3 ปีที่แล้ว +2

      блиин, так круто прошел, можно было бы попросить у вас телегу или мэйл?)

    • @murad40
      @murad40 3 ปีที่แล้ว +2

      обещаю не спамить, хотел спросить про ваши ресурсы для подготовки

    • @srjoyme2525
      @srjoyme2525 ปีที่แล้ว

      огонь собес )

  • @user-dk6mj3xk9t
    @user-dk6mj3xk9t 2 ปีที่แล้ว +6

    Алексей крут конечно!!!! Зная что выступаешь на широкую аудиторию нервишки шкалят еще больше!!!! С учетом волнения его знания можно во много раз приумножить)) Такие видео помогают избавится от эффекта самозванца) Сергей вам огромный респект!!!! На некоторых конторах, на Middle позицию, спрашивают ядро JS и после по специфике конторы React, Redux, Typescript, Webpack и т.д. Хотелось бы увидеть собеседование в таком формате))

    • @FireORcolD
      @FireORcolD 2 ปีที่แล้ว +4

      у меня спрашивали чем отличается event loop браузера и nodejs, зачем эта инфа, что она решает, не понятно, учитывая что я ему рассказала как работает event loop браузера решая задачу, в итоге не взяли, может я был глуп для них, но была закономерность, придумывались абсурдные задания, что в итоге сказал сам интервьюер, не желаю никому на такого попасть, кстати есть ещё прикол, зачем-то сбивать с логики, я решая задачу сказал какой будет результат, а он старался сбить меня с моей логики раза 4-5 в одном вопросе, это что за способ самоудовлетворения, надеюсь что следующий интервьюер будет как Сергей

  • @8-Artem-8
    @8-Artem-8 3 ปีที่แล้ว +55

    Хорошее собеседование и вопросы адекватные. Еще интересно было бы увидеть собеседование на react разработчика.

  • @vladbazhanov8321
    @vladbazhanov8321 3 ปีที่แล้ว +114

    28:00
    const inc = (function() {
    let counter = 0
    return function () { counter + 1 };
    })()
    Не возвращается значение, и не переопределяется сам counter:
    const inc = (function() {
    let counter = 0
    return function () { return ++counter };
    })()

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว +1

      Да return Алексей забыл добавить. Бывает

    • @vladbazhanov8321
      @vladbazhanov8321 3 ปีที่แล้ว +12

      @@frontendscience Но counter тоже инкрементировать стоит, в реализации на видео будет возвращать всегда 1. Но это мелочи )

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว +5

      @@romanmed9035 Да именно так замыкания и работают. Они хранят контекст с переменными даже если эта функция уже отработала.
      У Алексея в решении была ошибка в решении: необходимо вместо строки counter + 1 делать return ++counter. Таким образом сохраняется увеличенное значение переменной counter и самое главное из функции возвращается значение.

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว +1

      @@romanmed9035 Успехов!

    • @deemdeemdeem
      @deemdeemdeem 3 ปีที่แล้ว +12

      const inc = () => {
      inc.counter = inc.counter || 1;
      return inc.counter++;
      }
      а с iife крутое решение, сразу в голову не пришло

  • @victorkrasnov5576
    @victorkrasnov5576 2 ปีที่แล้ว +4

    Про замыкания и IIFE.
    let inc = (function() {
    let counter = 0;
    return function() {
    return counter + 1;
    }
    })();
    Код не будет работать :)
    Надо return counter + 1 заменить на ++counter
    А за видос спасибо, крутейший контент - позволяет представить себя на месте интервьюируемого и попрактиковать задачки. Подписался.

    • @frontendscience
      @frontendscience  2 ปีที่แล้ว

      Выше в комментариях я уже отвечал про эту задачу.

  • @mxrquez7692
    @mxrquez7692 2 ปีที่แล้ว +29

    1:00:12
    Вдруг кому-то нужно или интересно решение задачи с каррированием и рекурсией, на которую решили не тратить время
    const sum = (a) => {
    let result = a;
    return addMore = (b) => {
    result += b ?? 0;
    return b === undefined ? result : addMore;
    }
    }

    • @olegtsesko
      @olegtsesko ปีที่แล้ว +6

      const sum = a => b => b ? sum(a + b) : a
      sum(1)(2)(3)() // 6

  • @user-rp3fc4dh7c
    @user-rp3fc4dh7c 2 ปีที่แล้ว +4

    Many thanks!! Такие интервью дают больше понимания, чем обучающие материалы!!

  • @maksimmnatsakanov2853
    @maksimmnatsakanov2853 3 ปีที่แล้ว +6

    Круто, спасибо, ждал! Люблю смотреть публичные собеседования)

  • @sergeyplotnikov5031
    @sergeyplotnikov5031 3 ปีที่แล้ว +12

    Хорошая обратная связь и классные задачки. Спасибо!

  • @nickkorol5387
    @nickkorol5387 3 ปีที่แล้ว +9

    Очень круто и качественно!!!
    Я вчера проходил на трейни, так мне три задачи попались такие как тут проходили... узнал бы немножко пораньше !)
    В целом, спасибо, тут есть чему поучится !

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว

      Прикольно! А какие именно задачи?
      И что еще было? Ребятам тут будет полезно узнать

    • @nickkorol5387
      @nickkorol5387 3 ปีที่แล้ว +2

      @@frontendscience Мне попилась по приоритетам(event loop and setTimeout, ну там добавили мне и IIFE), так же "Про замыкания и IIFE".
      от такое еще было:
      const arr = [
      [true, false, true],
      [false, false, true]
      ] // надо поменять с true на false на оборот.

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว +2

      Благодарю что поделился!

  • @anastasiaviva5721
    @anastasiaviva5721 3 ปีที่แล้ว +6

    Контент просто огонь! Алексею респект! Сергей, огромная благодарность за такой формат!!!

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว +1

      Рад что понравилось! Благодарю за поддержку!

  • @maxkarrtopelka3718
    @maxkarrtopelka3718 3 ปีที่แล้ว +28

    в задаче с замыканием, есть вариант вот такой реализации:
    const inc = (counter => () => ++counter)(0);
    console.log(inc()); // 1
    console.log(inc()); // 2
    console.log(inc()); // 3

  • @frontendscience
    @frontendscience  3 ปีที่แล้ว +67

    Ребята, а было бы интересно посмотреть behavioural интервью?

    • @vladsosnov3749
      @vladsosnov3749 3 ปีที่แล้ว +5

      System design тоже)

    • @vpetryniak
      @vpetryniak 3 ปีที่แล้ว

      Да очень

  • @alexkostrov5186
    @alexkostrov5186 3 ปีที่แล้ว +7

    Алексей красава просто! очень хорошие знания показал

  • @al77ex1
    @al77ex1 2 ปีที่แล้ว +1

    Ой! Случайно перепроверил пример про инк. )) У меня какие-то неправильные решения полезли на ноч глядя
    let inc = function () {
    if (!this.c) this.c = 0;
    this.c +=1;
    return this.c
    }
    Но в целом собес супер! Алексей молодец держался хорошо! Спасибо за видео!

  • @tatianovnafrutti8982
    @tatianovnafrutti8982 3 ปีที่แล้ว +5

    Крутой формат!! Лайк! Побольше собесов )))

  • @HIghtowerSever
    @HIghtowerSever 3 ปีที่แล้ว +13

    Привет. Все четко, кроме размера шрифта кода на экране. Учитывая, сколько на экране свободного места, шрифт можно увеличивать раза в 3-4. И тогда удобно будет смотреть на мобилке... Мобайл-ферст - не забывай, плиз.

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว +2

      Спасибо, учтем

    • @wpcity-pm2wk
      @wpcity-pm2wk 3 ปีที่แล้ว

      Yes, I'm also watching it from my phone

  • @user-gi3sh6ul2j
    @user-gi3sh6ul2j 3 ปีที่แล้ว +4

    Спасибо. Было полезно) Надеюсь увидеть собес на сеньера)

  • @eakzit3181
    @eakzit3181 3 ปีที่แล้ว +13

    Когда работаешь каждый день с фреймворками, забываешь азы. Мне на самом деле чуток пришлось даже поднапрячься с рекурсивным решением курринга...Спасибо за фановый контент, азы нуно знать, есть что повторять :)

  • @amirkerimov95
    @amirkerimov95 2 ปีที่แล้ว +8

    Привет! У меня вопрос по поводу решения в блоке про замыкания (28:00): разве там всё работает? Там же по сути в замыкании остаётся значение counter = 0 и при каждом вызове inc он будет сначала 0 потом увеличится на 1. Там кстати return тоже надо добавить. В целом, задача такая, что нужно сохранить этот counter где-то кроме global scope. Я решил это так: сделал так же функцию, поместил в переменную inc, внутри сохранил counter как свойство (функция это объект) this.counter = 0. Потом из той же функции вернул другую функцию, которая это свойство и меняет this.counter += 1. И теперь всё работает

    • @TheHackedpro
      @TheHackedpro 2 ปีที่แล้ว

      let inc = (function(){
      let count = 0
      return ()=> count+=1
      }())

    • @PussyDestroyerUK
      @PussyDestroyerUK ปีที่แล้ว

      Да там ошибка, функция будет возвращать undefine.

    • @maryheaven9273
      @maryheaven9273 ปีที่แล้ว

      @@PussyDestroyerUK там просто return не хватает

  • @Aleal616
    @Aleal616 3 ปีที่แล้ว +3

    Блин не собирался смотреть это видео, 1 : 29 :52, но как то затянуло, самое интересное, что я не занимаюсь ни фронтом ни бэком, ни вообще IT разработками. Было просто интересно, продолжайте делать дальше такие видео.

  • @guldenbazheeva297
    @guldenbazheeva297 2 ปีที่แล้ว +1

    Алексей большой молодец! Очень смело публично проходить собеседование! Успехов ему и вам!

  • @dw_tv3992
    @dw_tv3992 3 ปีที่แล้ว +21

    Сергей спасибо за контент, очень хочется увидеть, как вы собеседуете джуна

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว +6

      Заполняйте форму! И можете не только увидеть, но и поучаствовать :)

    • @abffggjhf516
      @abffggjhf516 3 ปีที่แล้ว +1

      @@frontendscience Собеседовался на джуна, вопросы как здесь на мидла...

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว +7

      @@abffggjhf516 Я тебе больше скажу - такие же вопросы будут и если на синьора собеседоваться, здесь важна точность и глубина ответов.

  • @andreiryabikov4896
    @andreiryabikov4896 3 ปีที่แล้ว +11

    Очень крутой формат, спасибо! Алексею респект) И вопрос про var и hoisting: это все еще актуальные знания, чтобы их задавать на интервью?

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว +5

      Очень даже актуальные ) Во-первых код до сих пор на проектах компилируется в ES5. во-вторых хойстинг работает не только с var но и function declaration. В-третьих есть куча библиотек и пакетов в которых до сих пор var - и надо понимать особенности его работы.

    • @user-lq5fs9eb8v
      @user-lq5fs9eb8v 2 ปีที่แล้ว

      @@frontendscience в задача на 20мин выводится 5, почему ничего не должно выводится?

    • @frontendscience
      @frontendscience  2 ปีที่แล้ว

      @@user-lq5fs9eb8v потому что внутри функции свой скоуп. И происходит всплытие объявления переменной (хойстинг). Но изначально она undefined. До тех пор пока не произойдет присвоение. Поэтому if не пройдет проверку и ничего не выведется в консоль

  • @seryozhamangushev9638
    @seryozhamangushev9638 2 ปีที่แล้ว +1

    Я так долго ждал этот формат.

    • @frontendscience
      @frontendscience  2 ปีที่แล้ว

      Здорово! Рады, что нравится 👍

  • @dmitrykorovin4356
    @dmitrykorovin4356 3 ปีที่แล้ว +5

    прям очень круто! Алексею респект)

  • @kirsanov2008
    @kirsanov2008 3 ปีที่แล้ว +47

    вот такие должны быть джуны! респект!

    • @user-pv9rw4cs2j
      @user-pv9rw4cs2j 3 ปีที่แล้ว +2

      Хорош в теории, слаб в практике

    • @DmitriiRepnikov
      @DmitriiRepnikov 3 ปีที่แล้ว +25

      По знаниям он полноценный мидл, то что в режиме лайвкодинга он не может сосредоточиться - это обычная история даже для сеньора. Может когда-нибудь собеседующие это поймут, и не будут давать советы уровня “будь внимательнее“, потому-что этому совету сложно следовать когда хмурый дядька палит на процесс твоей работы
      Хотя может и не мидл, ведь я не слышал вопросов по боевым задачам (смотрел на перемотке), а мидла, по мне, должны сильно изучить как он знает требуемый стек своих инструментов. Потому-что знание только фундамента требуется от джунов, а от мидла ждут что он быстрее возьмется за боевые задачи, а не будет изучать тонкости нужного фреймворка

    • @kirsanov2008
      @kirsanov2008 3 ปีที่แล้ว +10

      @@DmitriiRepnikov этот парень - джун, не более того. Мидл должен знать свой ЯП в совершенстве и уметь его готовить. Такого рода задачки мидл должен щелкать как семечки и это не должно быть в принципе центром собеседования. Даже если чел закрывает 100% задач на проекте он автоматом не становится синьером. Если тебя палит "хмурый дядька" и ты сразу посыпался то ты не более чем джун. Как я сказал, с уверенным мидлом и уж тем более с синером эта часть собеседования закончится через 10 минут. А если ты начинаешь сомневаться когда кто-то смотрит на твою работу а ты вроде как заявляешь себя мидлом/сеньером, то у тебя большие проблемы с пониманием где ты находишься и что делаешь... ну или ты просто надутый в попу письтюк... (не конкретно ты :))

    • @DmitriiRepnikov
      @DmitriiRepnikov 3 ปีที่แล้ว +48

      @@kirsanov2008 твоё мнение полно максимализма как у подростка, и судя по нику это кажется логичным. Объяснять почему твоё виденье неверно я не буду, т.к. судя по настрою твоего сообщения ты из тех кто изменит своё мнение только тогда когда появляется хоть какой-то опыт.

    • @kirsanov2008
      @kirsanov2008 3 ปีที่แล้ว +5

      @@DmitriiRepnikov 2008 это не дата моего рождения, а год, когда я зарегался в гмайле, но ты первый кто обратил на это внимание в таком ключе) я раньше даже не думал об этом))

  • @gykan
    @gykan 2 ปีที่แล้ว +2

    Трехтысячный лайк мой ))

  • @user-lx5vv3uu8u
    @user-lx5vv3uu8u 3 ปีที่แล้ว +2

    Отличный формат! Сергей, благодарю!

  • @astrotrain
    @astrotrain 3 ปีที่แล้ว +5

    Формат отличный, если ещё будут разборы резюме, то ещё лучше!
    Но мне кажется, что лучше всё же формат записи, а не лайв, потому что в записи вырезано лишнее и не нужно отвлекаться на комментарии.

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว +5

      Сижу вот тоже думаю, какой профит от лайва кроме того, что я люблю с вами общаться)

  • @user-me4pb8qs2t
    @user-me4pb8qs2t 3 ปีที่แล้ว +4

    Завтра буду слушать , надеюсь будет крутяк !!!

    • @BROnik
      @BROnik 3 ปีที่แล้ว +2

      спасибо что проинформировал

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว +1

      Прикольно! У вас тут весело 😆

  • @sceptic571
    @sceptic571 2 ปีที่แล้ว

    Классное собеседование. Алексей - молодец! Я искренне переживал за Алексея и тоже решал с ним задачки.

  • @MrGourmetRazzy
    @MrGourmetRazzy 3 ปีที่แล้ว +4

    Под конец у парня лицо было краснее, чем его футболка). Застеснял пацана.

  • @alexshubin1
    @alexshubin1 3 ปีที่แล้ว +5

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

  • @nk_77777
    @nk_77777 3 หลายเดือนก่อน

    Классный ролик, спасибо)❤

  • @1kvolt1978
    @1kvolt1978 3 ปีที่แล้ว +2

    Я вымучил таки фруктовую функцию. :)
    Заняло примерно два часа с учётом вспоминаний синтаксиса стандартных методов на w3schools, попутного ознакомления с Map и Set и частыми перекурами.
    Вот что получилось (немного изменил первоначальный массив, потому что иначе получался сразу отсортированный итоговый и я не мог проверить правильность сортировки):
    // Вывести новый массив из уникальных элементов заданного, отсортированный по числу вхождений
    let fruitsArr = ["banana", "grapefruit", "orange", "grapefruit", "orange", "banana", "orange", "banana", "orange"];
    function uniSortByEntr(wordsArr) {
    const uniWordsObj = {};
    // uniWordsObj - объект с уникальными ключами-элементами данного массива и значениями,
    // равными числу вхождений соответствующего элемента
    wordsArr.forEach(function(word) {
    uniWordsObj.hasOwnProperty(word) ? uniWordsObj[word]++ : uniWordsObj[word] = 1;
    });
    // Сортируем ключи объекта uniWordsObj по убыванию их значений, т.е. вхождений соответствующих элементов
    // в данный массив, создаём отсортированный массив из этих ключей, который добавляем к объекту uniWordsObj,
    // возвращаем этот объект, содержащий ключи-слова со значениями-числами вхождения и отсортированный массив
    const uniWordsArr = Object.keys(uniWordsObj);
    uniWordsObj.uniSortArr = uniWordsArr.sort(function(a, b) {
    return uniWordsObj[b] - uniWordsObj[a];
    });
    return uniWordsObj;
    }
    console.log(uniSortByEntr(fruitsArr));
    Я возвращаю весь объект, потому что инфа о количестве вхождений слов может оказаться полезнее самого отсортированного конечного массива, а это массив просто цепляю к возвращаемому объекту.
    Теперь можно и посмотреть, что у Алексея получилось. :)

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว +1

      отлично вышло! благодарю за решение!

    • @1kvolt1978
      @1kvolt1978 3 ปีที่แล้ว

      @@frontendscience Спасибо.

  • @andriikarnaukh5864
    @andriikarnaukh5864 3 ปีที่แล้ว

    Отличный формат! Спасибо большое за этот собес)

  • @jorgen5462
    @jorgen5462 3 ปีที่แล้ว +4

    - ааа, у нас же идёт не по алфавиту, а по встречающимся элементам ...
    Серёга: 38:26 😂😂 попался, милок!

  • @ihordubenko7357
    @ihordubenko7357 3 ปีที่แล้ว +5

    Хорошее собеседование! =) Классные вопросы. Сам затупил на первом вопросе=). Однозначно лайк и подписка!
    const sortFruits = (arr) => {
    const hash = {};
    for (const i of arr) {
    hash[i] = hash && hash[i] ? hash[i] + 1 : 1
    }
    return Object.keys(hash).sort(function(a, b) { return hash[b] - hash[a] });
    }

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว

      Благодарю за поддержку! Клессное решение вышло!

  • @pavel.arepev
    @pavel.arepev 3 ปีที่แล้ว +2

    Спасибо! Очень классно проводите собеседования. Вы бы могли в дополнение говорить в конце - взяли ли бы вы человека на данную позицию к себе на работу?

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว +4

      Алексея я бы пропустил на следующий этап технического собеседования

  • @NEMEDYINYI
    @NEMEDYINYI 3 ปีที่แล้ว +8

    Крутой контент! Было бы интересно смотреть прямую трансляцию лайва, и + в таком формате как сейчас с монтажом публиковать ролик.

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว +5

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

    • @dobermanpharaoh7567
      @dobermanpharaoh7567 3 ปีที่แล้ว +1

      @@frontendscience Собеседоваться когда тебея смотрят 10k человек - такое себе))

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว

      @@dobermanpharaoh7567 вообще-то 20k, но кто считает )))

    • @QwDragon
      @QwDragon 2 ปีที่แล้ว

      @@dobermanpharaoh7567 так всё равно посмотрят же.

  • @nikolay6143
    @nikolay6143 2 ปีที่แล้ว

    Спасибо за отличный видос, подписался с надеждой увидеть ещё в подобном формате, несмотря на то, что довольно успешно решаю задачи бизнеса во фронтенде уже более 4х лет понимаю что до уровня миддла надо подтянуть знание базовых вещей, таких как замыкание/карирование

  • @dmytromoroz4451
    @dmytromoroz4451 3 ปีที่แล้ว +1

    Отличный контент. Большое Вам спасибо!

  • @marynashubna203
    @marynashubna203 2 ปีที่แล้ว +2

    респект Алексею!

  • @marial8473
    @marial8473 2 ปีที่แล้ว +2

    Друг, ты не middle, ты супер крутой senior!
    Отлично справился!👍

  • @EvilYou
    @EvilYou 3 ปีที่แล้ว

    Я решил задачи [59:47 Про каррирование и рекурсию] и [1:03:15 Про High order functions и карриррование] не зная, что такое каррирование и high order functions😂
    Использовал знание рекурсии и вложенных функций (по аналогии с замыканиями).
    Мое решение задачи [59:47 Про каррирование и рекурсию]:
    function sum(a) {
    return function(b) {
    return isFinite(b) ? sum(a + b) : a;
    }
    }
    console.log( sum(1)(2)(3)(4)() ); // 10
    Другую решил так же, как и Алексей.
    P.S. Видосы с собеседованиями на этом канале мне очень нравятся. Когда смотришь такое видео и понимаешь, что вполне смог бы решить ту или иную задачу, это мотивирует.
    P.P.S. Теперь нужно изучить каррирование :D

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว +1

      Благодарю за решение! Успехов с каррированием )

  • @murad40
    @murad40 3 ปีที่แล้ว +7

    Оч крутое и полезное видео, но почему сразу с мидла начали, хотелось бы посмотреть на вопросы и собеседование junior`a. Если не трудно скажите плиз какие вопросы задавали бы джуниору? ThankYouInAdvance!

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว +1

      Скоро будет на канале видео и на джуниора! Не забудьте нажать на колокольчик 🛎 😊

    • @ccmadminstrator
      @ccmadminstrator 3 ปีที่แล้ว

      это и был джуниор, слабенький.

  • @user-te7xb2to9f
    @user-te7xb2to9f 2 ปีที่แล้ว +2

    из видео я понял, что знаний основ js между мидлом и джуном не особо много...
    на данный момент я не имею боевого опыта разработки, но прорешал больше 200 задач на codewars на js и все задачи приведенные в собесе мне показались скорее джуновскими
    в чем отличия мидла?

  • @user-nk2cq1vp5s
    @user-nk2cq1vp5s 2 ปีที่แล้ว +2

    мне кажется или на 55:52 это не финальное решение?

  • @user-hk4bq3tt2m
    @user-hk4bq3tt2m 2 ปีที่แล้ว

    Про High order functions и каррирование
    const sum = (a,b) => a + b;
    const mul = (a,b) => a * b;
    const calc = cb => a => b => cb(a,b);

  • @andreyzinovjev3920
    @andreyzinovjev3920 3 ปีที่แล้ว +4

    Сергей спасибо за видео, очень азартно) скажите как то вы оцениваете скорость выполнения кандидатом задач, его размышления а главное ошибки или если в отведенное время решил - то это + ?

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว +9

      Много зависит от того на какую должность собеседую. Если на синьйора - то да ожидаю что он быстро поотвечает на все легкие вопросы. В любом случае смотрю как человек мыслит - особенно если не знает ответа на вопрос изначально. Как пытается дойти до него. Или как использует подсказки, или какие вопросы задает. Все это учитывается. время чаще просто как ограничение - чтобы не потратить его все на один вопрос (которые никак не может решить кандидат) а наоборот мог проявить себя на разных вопросах.

  • @user-dr8pb2nu2v
    @user-dr8pb2nu2v 3 ปีที่แล้ว +1

    По сути собеседование крутое и супер полезное, поэтому большое спасибо за контент)
    НО, на 48 минуте вы спрашиваете про массив уникальных значений, и не очень понятно зачем?) Запутать собеседуемого?)
    Ведь это объект, все ключи строки, и это значит после reduce там будет всего три ключа со значениями) а значит они все уникальны и задача отсортировать по значениям и вернуть ключи
    function sortFn(words) {
    const objData = {};
    words.forEach((word) =>
    objData[word] ? (objData[word] += 1) : (objData[word] = 1)
    );
    return Object.keys(Object.fromEntries(Object.entries(objData).sort((item1, item2) => item2[1] - item1[1])))
    }
    я еще не смотрел дальше 48 минуты), если вас не затруднит можно ли короткий фидбэк по моему решению

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว

      Что значит запутать? Это условие задачи! Я даже сделал подсказку таким образом. Если бы Вы были на собеседовании и не поняли бы - я бы Вам объяснил иначе.

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว

      Но судя по решению, условие поняли. Задачу решили правильно.
      Так в чем именно вопрос?

  • @user-ek3ov4jy2r
    @user-ek3ov4jy2r 2 ปีที่แล้ว +4

    Мне интересно. Если на собеседовании претендента спрашивают over 9999 оверхедов про всякие всплытия с var и без него. Это он должен знать иначе без этого никуда. И он должен обязательно их помнить и забивать ими голову. Почему у человека в голове не щелкает, что такого, как бы, не должно быть в нормальном-то языке программирования.

  • @oleksandrsavych4526
    @oleksandrsavych4526 3 ปีที่แล้ว

    Кльовий формат і грамотний гість!

  • @yevhenfodorov121
    @yevhenfodorov121 11 หลายเดือนก่อน

    Очень качественные интервью.. Когда продолжение?

  • @Jonstonrich
    @Jonstonrich ปีที่แล้ว

    1:07:23 - method => a => b => method(a, b); можно упростить

  • @user-xt9nl7no8e
    @user-xt9nl7no8e 2 ปีที่แล้ว +1

    full stack самоучка, больше реакт чем бекенд, еще не работал, написал для резюме пару проектов: интернет-магазин с фильтром товаров и полной адмикой по редактированию и масштабированию сайта, соц сеть, месенджер, музыкальную площадку, но это собеседования не прошел бы))

    • @frontendscience
      @frontendscience  2 ปีที่แล้ว +1

      Наверное потому что самоучка и не работал еще, а это собеседование на миддл позицию?)

  • @user-kn3ut1sh2o
    @user-kn3ut1sh2o 3 ปีที่แล้ว +1

    Крутой формат! Лайк, подписка!

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว

      Благодарю за поддержку)

  • @amirkerimov95
    @amirkerimov95 2 ปีที่แล้ว +4

    59:52 решение, если кому интересно
    function sum(a) {
    if (a) {
    return function (b) {
    if (b) {
    return sum(a + b)
    }
    return a;
    }
    }
    return 0;
    }
    и не забыть вывести результат в консоль
    console.log(sum(1)(2)(3)(4)());

    • @andidandi1866
      @andidandi1866 2 ปีที่แล้ว

      зачем так много букв.
      const sum = (a) => (b) => b ? sum(a + b) : a;
      console.log(sum(1)(2)(3)(4)(5)(6)(7)());

  • @stormd2902
    @stormd2902 3 ปีที่แล้ว +3

    Спасибо, очень полезно

  • @user-uy9zy1gy8b
    @user-uy9zy1gy8b ปีที่แล้ว

    А я зробив curring, де можна робити необмежену кількість викликів. Не лише 2.
    const plusik = (function (){
    let s = 0;
    function add (a) {
    s = s + a
    return add;
    }
    add.toString = function(){return s};
    return add;
    })()
    document.write(plusik(3)(4)) // виведе 7
    document.write(plusik(3)(4)(5)) // виведе 12

  • @SergeyDovzhenko
    @SergeyDovzhenko 3 ปีที่แล้ว +3

    интересно на матерого синиора глянуть)

  • @trewerguli1727
    @trewerguli1727 2 ปีที่แล้ว

    Судя ответам опытный проходитель собеседований😜

  • @grbak
    @grbak 2 ปีที่แล้ว

    Видос отличный, Алексей красава

  • @igornosatov1908
    @igornosatov1908 3 ปีที่แล้ว +3

    Супер 🥳🥳🥳

  • @LossevSergey
    @LossevSergey 3 ปีที่แล้ว +4

    Спасибо, видео помогло понять, какого уровня я джаваскриптист, если бы собеседовался на эту роль. Хоть и не являюсь им вообще ни разу, а js - просто побочный продукт более общего опыта работы в веб-аналитике )

  • @user-bh6mc8pd8g
    @user-bh6mc8pd8g 2 ปีที่แล้ว

    подивився до кінця, круто

  • @tarasgordienko
    @tarasgordienko 3 ปีที่แล้ว +1

    Задача про фрукты у меня так получилась
    function getUniqueAndSort(array) {
    const addCountProperty = (word) => {
    const count = array.filter((item) => item === word).length;
    return { word, count };
    };
    return [...new Set(array)]
    .map(addCountProperty)
    .sort((a, b) => b.count - a.count)
    .map((item) => item.word);;
    }

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว

      Благодарю за решение!

  • @neveren2011
    @neveren2011 3 ปีที่แล้ว +1

    Я знал, что мармок ведёт ещё один канал по деву

  • @user-wk4dj2lq4h
    @user-wk4dj2lq4h 2 ปีที่แล้ว +4

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

  • @Amkonax
    @Amkonax 3 ปีที่แล้ว +3

    Интересно, все задания по js из интервью решал почти сразу в уме, но до сих пор боюсь проходить собеседование на джуна)

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว +3

      А чего именно боишься? В худшем случае все останется так же как сейчас.
      Если уже натренировался решать задачки, теперь надо натренироваться проходить собеседования.

    • @Amkonax
      @Amkonax 3 ปีที่แล้ว +3

      @@frontendscience Ну я 20 лет проработал системным администратором. Всю жизнь мечтал быть разработчиком, но как-то не сложилось. А сейчас сокращение на фоне пандемии, вот и подумываю сменить род занятий. Боюсь, потому что уже 40 лет за плечами, поздновато наверное становиться программистом)

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว +9

      ​@@Amkonax Ничего не поздно! Сейчас открыты возможности ремоута по всему миру практически. То есть даже если в твоем городе/стране в 40 лет ты боишься дискриминации на новой должности, то в мире это нормальный возраст, чтоб начать. Тем более, что ты свитчишься из айтишной специальности. Обязательно опиши этот опыт в резюме. И давай не тяни с собеседованиями! Успехов!!

    • @Amkonax
      @Amkonax 3 ปีที่แล้ว +4

      @@frontendscience спасибо за поддержку и за ваши видео, которые я все с удовольствием смотрю. Обязательно буду пробовать!)

    • @misteranderson6058
      @misteranderson6058 3 ปีที่แล้ว +1

      @@Amkonax А почему девопс не рассматриваете?

  • @alexanderommm
    @alexanderommm 3 ปีที่แล้ว +17

    Чет вопросы и задачки не очень. Не понимаю, как вопросы по всплытие и var в 2021 скажут об опыте разработчика. ИМХО.

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว +2

      Тебе и не надо понимать для чего эти вопросы! На своем уровне тебе надо пройти собеседование. Это тимлиды должны понимать зачем и какие вопросы задавать.

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว

      @Raiku каррирование задают на собеседованиях для понимания насколько человек сможет свободно работать high order functions.

  • @alexandercelevra2393
    @alexandercelevra2393 3 ปีที่แล้ว +21

    "ка-эс-эс как это правильно говориться" :) Джун если объективно, но за год вполне толковый результат. Или я просто уже ворчливым становлюсь с годами, "дед опять забыл выпить таблетки и опять про какие-то клирфиксы и джпеги с закругленными углами")

  • @r4_serega
    @r4_serega 2 ปีที่แล้ว

    Круто! но видно что у парня хорошая база, но не хватает опыта)
    Через год-второй будет синьйором ;)

  • @user-gc2df1mn8v
    @user-gc2df1mn8v 3 ปีที่แล้ว

    Спасибо за такой формат, очень познавательно. Можете пожалуйста пояснить про 6 одновременных соединений с сервером? Я думал, что это только для http

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว

      Ну так вся статика (картинки скрипты стили) запрашивается именно по http. Браузер при загрузке страницы сможет параллельно загружать 6 картинок с одного домена ( цифра 6 варьируется от браузера). Поэтому если распределить эти картинки по разным доменам то браузер сможет из все ( больше 6 если на странице) параллельно загружать

    • @user-gc2df1mn8v
      @user-gc2df1mn8v 3 ปีที่แล้ว

      @@frontendscience Спасибо за ответ! Но всё же не совсем ясно, почему нужно отдавать статику с http если https позволяет за одно соединение загрузить несколько файлов одновременно? Я пытаюсь разобраться в этом вопросе, вроде бы информации много, но нигде толком ничего не объясняется, было бы здорово увидеть видео на эту тему...

  • @leonidshvab6233
    @leonidshvab6233 3 ปีที่แล้ว

    еще более древний вариант)
    const obj = {
    a: 4,
    say: function() {
    let self = this;
    setTimeout(function () {
    console.log(self.a)
    }, 1000)
    }
    }

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว

      да - "дедовский" метод )

  • @Alexander-fp4fs
    @Alexander-fp4fs 3 ปีที่แล้ว +3

    про фрукты
    let obj = {};
    for (let i = 0; i < arr.length; i++) {
    obj[arr[i]] = obj[arr[i]] + 1 || 1;
    }
    const res = Object.entries(obj).sort((a, b) => a[1] + b[1]).map((el)=> el[0]);

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว

      Благодарю за решение. Вышло красиво. PS: можно укоротить самую малость и избавиться от map.

    • @akimy1583
      @akimy1583 3 ปีที่แล้ว

      Ошибка в компараторе. Сортировка сбитая. NaN || 1 - не пишите так пожалуйста, воткните лучше тернарник или лишний if/else - стейтмент но фактически тут ошибки нет (перемешивать типы арифметикой не оч.хорошо). Если из одной структуры линейным сканированием надо склеить другую, например хеш-таблицу в вашем случае, то подойдёт reduce. А в целом норм, лучше чем кандидат с видео справился).

    • @misteranderson6058
      @misteranderson6058 3 ปีที่แล้ว

      Ну и сахар) Ужасный синтаксис после Golang

    • @DmitriiRepnikov
      @DmitriiRepnikov 3 ปีที่แล้ว +1

      @@misteranderson6058 да не в синтаксисе дело, просто в js-среде многие меряются длиной своего уанлайнового решения. Как выше написали, if/else стейтмент здесь был бы приятнее.

    • @misteranderson6058
      @misteranderson6058 3 ปีที่แล้ว +1

      @@DmitriiRepnikov Пускай меряются, я думаю, что код должен быть читабелен, как белый лист, а не вот этот вот сахар со стрелочками палочками с кавычками. Ведь в реальном проекте кода на десятки тысяч строк и нет времени вникать в синтаксический сахар. Js позволяет написать такой код? Наверно да, зависит от мастера.

  • @herr_imko
    @herr_imko 3 ปีที่แล้ว +2

    Не посмотрел еще но судя по названию частей это не на фронта собеседование а на JS кодера чисто)

  • @uNkind33
    @uNkind33 3 ปีที่แล้ว +1

    спасибо за видос, давай теперь на синьора !

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว +2

      Подумаю - а то смотрю многие просят )

  • @fazanaka
    @fazanaka 2 ปีที่แล้ว

    Каррирование
    const sum = a => b => b ? sum(a + b) : a;
    Cчетчик
    const inc = (n => () => ++n)(0);

    • @frontendscience
      @frontendscience  2 ปีที่แล้ว

      Отлично вышло! Компактно! :)

  • @bibblebabl
    @bibblebabl 3 ปีที่แล้ว +1

    Было бы круто, если бы использовался какой-нибудь онлайн редактор кода по типа codeinterview с возможностью выполнить код для наглядности

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว +2

      Думаю в следующий раз так и сделаем, благодарю за рекомендацию редактора

  • @user-pz5mf8bq6r
    @user-pz5mf8bq6r 3 ปีที่แล้ว

    Задачку с фруктами можно было бы решить создав мапу: ключ - фрукт, значение - количество. Затем создать массив пар (количество, фрукт). Отсортировать по первому элементу. Вывести второй элемент.

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว

      Да так получится. Можно еще немного сократить количество преобразований: th-cam.com/video/3jgE1ySa8xA/w-d-xo.html

  • @user-cg7hj4br2p
    @user-cg7hj4br2p 3 ปีที่แล้ว

    Вот эта работа в видео!

  • @vitaly-
    @vitaly- 3 ปีที่แล้ว +3

    Замыкание:
    const inc = ((i = 0) => () => console.log(++i))();
    inc();
    inc();

    • @SS-jg8ye
      @SS-jg8ye 3 ปีที่แล้ว

      Тебе функция число должна возвращать, а не undefined

    • @vitaly-
      @vitaly- 3 ปีที่แล้ว

      @@SS-jg8ye а с чего ты взял, что она undefined возвращает?

    • @SS-jg8ye
      @SS-jg8ye 3 ปีที่แล้ว

      @@vitaly- с того, что я очевидно понимаю в отличие от тебя как работает ахинея, что ты написал, но никто тебе не мешает самому в этом убедиться

    • @vitaly-
      @vitaly- 3 ปีที่แล้ว

      @@SS-jg8ye хахахахаах, что ты понимаешь? В чем проблема испробовать код который я написал? Хотя бы чисто в браузере? Чел, что ты вообще забыл на канале про прогу?))

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว

      Смотри, ты написал все правильно, но выводишь просто все в консоль, а не возвращаешь результат работы функции. Подправь просто этот момент и все будет ок.

  • @1powernic
    @1powernic 3 ปีที่แล้ว +1

    Не совсем понятен вопрос про несколько доменов для статики, где одновременно может загружаться всего по 6 файлов. Это проблема была в протоколе http/1, с приходом http/2 проблема не актуальна. Надо лишь веб сервер со статикой перенести на http/2

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว

      Да, все верно. Спрашивал, потому что до сих пор много серверов все еще работают на http/1.

  • @GregKurman
    @GregKurman 2 ปีที่แล้ว +1

    17:20 Совсем не верно, хоть бы запустили.... будет ошибка на варе в блоке Uncaught SyntaxError: Unexpected token '=' А если убрать "var =10" то ИФ спокойно сработает, так как он берет из области видимости своей.... то что у вара область видимости функциональная это значит, что он не выйдет из своей функции, а вот во внутрь других функций заходит ... в данном примере он глобальный и в любой функции появится

  • @MrReflection540
    @MrReflection540 ปีที่แล้ว +1

    1:14:41
    На самом деле тема холиварная, потому как поход браузером к DNS-серверам за информацией тоже замедляет работу

  • @kozubskyi
    @kozubskyi 3 ปีที่แล้ว

    27:43 есть ошибка, забыли возле "+" поставить "=" , так все время будет возвращать 1,1,1. Надо прописать
    return () => counter += 1, тогда все будет работать

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว

      Пролистай комменты, там все обсудили

  • @PimiTree
    @PimiTree ปีที่แล้ว

    Сергій, а чи була у Вас співбесіда, коли все пройшло супер чотко?

  • @DainSPb
    @DainSPb ปีที่แล้ว +1

    а почему мидл? Разве это не джуниорские вопросы?

  • @dobermanpharaoh7567
    @dobermanpharaoh7567 3 ปีที่แล้ว

    как вариант задачка с фруктами ещё так решается:
    const mySuperSort = (array) => {
    fruitUnique = Array.from(new Set(array));
    obj = {};
    fruitUnique.forEach(i => {
    len = words.filter(f => f === i).length;
    obj[i] = len;
    });
    return Object.keys(obj).sort((a,b) => obj[b] - obj[a]);
    }

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว

      Благодарю за решение

  • @viktorkniahnitskyi2947
    @viktorkniahnitskyi2947 3 ปีที่แล้ว

    00:35:00
    const words = ["banana", "grapefruit", "banana", "grapefruit", "banana", "orange", "banana"];
    const sortHelper = (a, b) => {return words.filter(itm => itm === b).length - words.filter(itm => itm === a).length;
    }
    [... new Set(words.sort(sortHelper))];

  • @yaroslav8609
    @yaroslav8609 2 ปีที่แล้ว

    задачку про фрукты решил за 2 минуты. (мимо стажер)
    const arr = ['a', 'b', 'b', 'b', 'c', 'a'] // ['b', 'a', 'c']
    const frequencies = arr.reduce((ac, el)=>{
    if(el in ac) ac[el] +=1
    else ac[el] =1
    return ac
    }, {})
    console.log(frequencies)
    const res = Object.entries(frequencies).sort((a,b)=>b[1]-a[1]).map((el)=>el[0])
    console.log(res)

    • @frontendscience
      @frontendscience  2 ปีที่แล้ว

      Благодарю за решение 👍

  • @LNMaster_
    @LNMaster_ 3 ปีที่แล้ว

    Задача на замыкание без use strict и без вложенных функций:
    function inc() {
    if (!window.res) res = 0
    return ++res
    }

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว

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

    • @frontendscience
      @frontendscience  3 ปีที่แล้ว

      @@user-rq2gs4uc7r ачивка за находчивость!