Interview of a Middle Frontend developer

Поделиться
HTML-код
  • Опубликовано: 2 авг 2024
  • Начинаем новую серию видео с фронтенд собеседованиями.
    Сегодня интервью проходит Алексей, он пробуется на должность Middle Front-end разработчика. Сразу скажу, интервью получилось интересное и надеюсь, остальным будет полезно. Старался оставлять свои комментарии по ходу собеседования. Если у вас возникают какие-то вопросы - все пишите в комментариях, буду стачать отвечать.
    👍 Друзья, поддержите, пожалуйста, Алексея в комментариях - он самый смелый, прошел у нас интервью первым. И поставьте ему большой красивый лайк!
    🤓 Все, кто хотел бы поучаствовать в нашем проекте и попробоваться в прохождении тестового интервью - заполните, пожалуйста, форму: forms.gle/c1Z6wptfcv2rXtNr8
    Тайм коды:
    00:00:00 Про новый формат видео
    00:01:14 PreScreen собеседование
    00:14:27 Обратная связь по PreScreen interview
    00:16:45 Техническое собеседование
    00:16:55 Про хойстинг в JS
    00:20:11 Про let, var, const
    00:21:31 Про замыкания и IIFE
    00:28:08 Про контекст вызова, arrow function, bind
    00:32:33 Про передачу аргументов через bind
    00:35:00 Задача про фрукты (массивы, объекты, sort)
    00:56:10 Про arguments и rest
    00:58:22 Про каррирование
    00:59:47 Про каррирование и рекурсию
    01:03:15 Про High order functions и карриррование
    01:07:26 Про event loop и setTimeout
    01:08:23 Что такое CORS
    01:10:07 HTTP запрос OPTIONS
    01:10:59 Что такое CDN
    01:12:26 Про отдельные домены для статики
    01:16:27 Обратная связь по техническому интервью
    01:28:44 В качестве заключения
    Задача про ClassNames: • Задача с frontend собе...
    ---
    Если видео было для вас полезным, ставьте лайк и поделитесь им с друзьями.
    Подписывайтесь на наш канал: bit.ly/fs-ytb
    ---
    Присоединяйтесь к нам в соцсетях:
    FB: / frontendscience
    Instagram Сергея Пузанкова: / puzankovcom
    Заходите на наш сайт: frontend-science.com/
    ---
    Music: Blue Wednesday.
    #ityoutubersru​, #frontend, #itсобеседование

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

  • @frontendscience
    @frontendscience  3 года назад +132

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

    • @user-hf2gs8vh4h
      @user-hf2gs8vh4h 11 месяцев назад

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

  • @maxtor5088
    @maxtor5088 3 года назад +847

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

    • @zheil2977
      @zheil2977 3 года назад +14

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

    • @user-rf3ui4cc6w
      @user-rf3ui4cc6w 2 года назад +14

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

    • @ELDlabIo
      @ELDlabIo 2 года назад +13

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

    • @michaelpetrov4965
      @michaelpetrov4965 2 года назад +1

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

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

      +++++

  • @maksimmnatsakanov2853
    @maksimmnatsakanov2853 3 года назад +6

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

  • @suslikest3708
    @suslikest3708 3 года назад +66

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

  • @phone1429
    @phone1429 2 года назад +16

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

  • @Maiq-The_Liar
    @Maiq-The_Liar 3 года назад +52

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

  • @sergeyplotnikov5031
    @sergeyplotnikov5031 3 года назад +12

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

  • @user-pe6ku5lu6q
    @user-pe6ku5lu6q 2 года назад +38

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

  • @alexr6829
    @alexr6829 3 года назад +54

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

    • @frontendscience
      @frontendscience  3 года назад +6

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

    • @boldureans
      @boldureans 3 года назад +1

      Ты оч крутой!

    • @murad40
      @murad40 3 года назад +2

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

    • @murad40
      @murad40 3 года назад +2

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

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

      огонь собес )

  • @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 крутое решение, сразу в голову не пришло

  • @tatianovnafrutti8982
    @tatianovnafrutti8982 3 года назад +5

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

  • @anastasiaviva5721
    @anastasiaviva5721 3 года назад +6

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

    • @frontendscience
      @frontendscience  3 года назад +1

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

  • @dmitrykorovin4356
    @dmitrykorovin4356 3 года назад +5

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

  • @user-gi3sh6ul2j
    @user-gi3sh6ul2j 3 года назад +4

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

  • @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!! Такие интервью дают больше понимания, чем обучающие материалы!!

  • @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 года назад +54

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

  • @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

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

  • @alexkostrov5186
    @alexkostrov5186 3 года назад +7

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

  • @user-lx5vv3uu8u
    @user-lx5vv3uu8u 3 года назад +2

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

  • @stormd2902
    @stormd2902 3 года назад +3

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

  • @seryozhamangushev9638
    @seryozhamangushev9638 2 года назад +1

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

    • @frontendscience
      @frontendscience  2 года назад

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

  • @user-pu1ro1kw4u
    @user-pu1ro1kw4u 3 года назад +5

    Собеседование крутое! Так держать!

  • @andriikarnaukh5864
    @andriikarnaukh5864 3 года назад

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

  • @nikolay6143
    @nikolay6143 2 года назад

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

  • @nk_77777
    @nk_77777 2 месяца назад

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

  • @dmytromoroz4451
    @dmytromoroz4451 3 года назад +1

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

  • @dw_tv3992
    @dw_tv3992 3 года назад +21

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

    • @frontendscience
      @frontendscience  3 года назад +6

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

    • @abffggjhf516
      @abffggjhf516 3 года назад +1

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

    • @frontendscience
      @frontendscience  3 года назад +7

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

  • @guldenbazheeva297
    @guldenbazheeva297 2 года назад +1

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

  • @user-me4pb8qs2t
    @user-me4pb8qs2t 3 года назад +4

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

    • @BROnik
      @BROnik 3 года назад +2

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

    • @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

  • @NEMEDYINYI
    @NEMEDYINYI 3 года назад +8

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

    • @frontendscience
      @frontendscience  3 года назад +5

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

    • @dobermanpharaoh7567
      @dobermanpharaoh7567 3 года назад +1

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

    • @frontendscience
      @frontendscience  3 года назад

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

    • @QwDragon
      @QwDragon 2 года назад

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

  • @victorkrasnov5576
    @victorkrasnov5576 2 года назад +4

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

    • @frontendscience
      @frontendscience  2 года назад

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

  • @user-kn3ut1sh2o
    @user-kn3ut1sh2o 3 года назад +1

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

  • @eakzit3181
    @eakzit3181 3 года назад +13

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

  • @igornosatov1908
    @igornosatov1908 3 года назад +3

    Супер 🥳🥳🥳

  • @sceptic571
    @sceptic571 2 года назад

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

  • @Aleal616
    @Aleal616 3 года назад +3

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

  • @pavel.arepev
    @pavel.arepev 3 года назад +2

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

    • @frontendscience
      @frontendscience  3 года назад +4

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

  • @frontendscience
    @frontendscience  3 года назад +67

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

  • @andreyzinovjev3920
    @andreyzinovjev3920 3 года назад +4

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

    • @frontendscience
      @frontendscience  3 года назад +9

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

  • @HIghtowerSever
    @HIghtowerSever 3 года назад +13

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

  • @yuTimer
    @yuTimer 2 года назад

    как сервис для шаринга кода называется?

  • @astrotrain
    @astrotrain 3 года назад +5

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

    • @frontendscience
      @frontendscience  3 года назад +5

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

  • @marynashubna203
    @marynashubna203 2 года назад +2

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

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

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

  • @grbak
    @grbak 2 года назад

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

  • @user-te7xb2to9f
    @user-te7xb2to9f Год назад +2

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

  • @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 не пройдет проверку и ничего не выведется в консоль

  • @oleksandrsavych4526
    @oleksandrsavych4526 3 года назад

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

  • @rem-singer
    @rem-singer 2 года назад

    в задаче на 20:16 я и с let и с var, и с const вывожу в консоль undefined, никаких ошибок. Как же так?

  • @amirkerimov95
    @amirkerimov95 Год назад +8

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

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

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

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

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

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

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

  • @alexshubin1
    @alexshubin1 3 года назад +5

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

  • @zacker-tech
    @zacker-tech 3 года назад +1

    Код с iife не работает. Его нужно немного по-другому сделать.

    • @frontendscience
      @frontendscience  3 года назад

      Да, уже в комментах выше обсудили. Должен быть return ++counter.

  • @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

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

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

    25:03 - у меня этот код неработает как требуется. что я делаю не так?

  • @user-cg7hj4br2p
    @user-cg7hj4br2p 3 года назад

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

  • @valdasstonkus5493
    @valdasstonkus5493 2 года назад

    At end of 27 minute code is wrong, it will not return 1 and 2, it will return twice undefined. But you sayed that it will work.

  • @gykan
    @gykan 2 года назад +2

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

  • @user-bh6mc8pd8g
    @user-bh6mc8pd8g 2 года назад

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

  • @MrGourmetRazzy
    @MrGourmetRazzy 2 года назад +4

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

  • @kirilldonenko5387
    @kirilldonenko5387 2 года назад

    Подскажите такое решение задачки на массив уникальных элементов с сортировкой норм?
    let array = ['banana','grapefruit','banana','orange','grapefruit','banana','grapefruit','banana'];
    let unique = [...new Set(array)];
    let temp = unique.map(el => {
    return {
    [el]: array.filter(item => item === el).length
    }
    });
    let res = temp.sort((a,b) => {
    return Object.values(b)[0] - Object.values(a)[0];
    }).map(el => Object.keys(el)[0]);
    console.log(res);

    • @frontendscience
      @frontendscience  2 года назад

      Благодарю за решение. Там проблема с сортировкой Object.values(b) - должен принимать в качестве аргумента объект -а тут в него передается строка

  • @user-nk2cq1vp5s
    @user-nk2cq1vp5s 2 года назад +2

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

  • @user-me4pb8qs2t
    @user-me4pb8qs2t 3 года назад

    В честь день рождения.... Хотелось бы разбор задачи codewars 4 или 3 kyu

  • @uNkind33
    @uNkind33 3 года назад +1

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

    • @frontendscience
      @frontendscience  3 года назад +2

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

  • @user-ek3ov4jy2r
    @user-ek3ov4jy2r 2 года назад +4

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

  • @yevhenfodorov121
    @yevhenfodorov121 10 месяцев назад

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

  • @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);

  • @murad40
    @murad40 3 года назад +7

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

    • @frontendscience
      @frontendscience  3 года назад +1

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

    • @ccmadminstrator
      @ccmadminstrator 3 года назад

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

  • @maksimmnatsakanov2853
    @maksimmnatsakanov2853 3 года назад +2

    А что значит палец на 22:37?

    • @frontendscience
      @frontendscience  3 года назад +1

      Ачивка за внимательность 👍 Я просто показывал оператору куда вставлять провод.

  • @bibblebabl
    @bibblebabl 3 года назад +1

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

    • @frontendscience
      @frontendscience  3 года назад +2

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

  • @user-gc2df1mn8v
    @user-gc2df1mn8v 3 года назад

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

    • @frontendscience
      @frontendscience  3 года назад

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

    • @user-gc2df1mn8v
      @user-gc2df1mn8v 3 года назад

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

  • @bolovy6093
    @bolovy6093 2 года назад

    Всем привет, а функция ведь не работает на 28:02

  • @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 это не дата моего рождения, а год, когда я зарегался в гмайле, но ты первый кто обратил на это внимание в таком ключе) я раньше даже не думал об этом))

  • @Smerrrtnik
    @Smerrrtnik 3 года назад

    Эксперты, объясните, плиз, по коду первого задания, разве там логнется хоть что-то? думаю, if не сработает и консоль лог просто не вызовет.

    • @frontendscience
      @frontendscience  3 года назад

      Да, так и есть. Ты все верно понял. К этому в видео и пришли, что в if обработчик не зайдет и в консоль ничего не выведется.

    • @Smerrrtnik
      @Smerrrtnik 3 года назад +1

      @@frontendscience спасибо, а то по видео я понял, что консоль выдаст андефайнд.

  • @user-dk1ru3yx9i
    @user-dk1ru3yx9i 3 года назад

    интересно спс

  • @bakhtiyor_sulaymonov
    @bakhtiyor_sulaymonov 2 года назад

    super 👍

  • @user-rq8fp8fe2k
    @user-rq8fp8fe2k 2 года назад

    огонь

  • @kozubskyi
    @kozubskyi 3 года назад

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

    • @frontendscience
      @frontendscience  3 года назад

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

  • @TheBububo
    @TheBububo 2 года назад +1

    Ограничение по 6 соединений на домен, это же про http1. Для http2 это же не актуально?

    • @frontendscience
      @frontendscience  2 года назад

      Да, все верно. Но до сих пор очень много сервисов работает именно на http1. И бывают случаи, когда по объективным причинам его нельзя перевести на http2.

  • @SergeyDovzhenko
    @SergeyDovzhenko 3 года назад +3

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

  • @vasylhabalevych2049
    @vasylhabalevych2049 3 года назад

    Спасибо за видео!
    В задаче с фруктами с помощью reduce у нас будут не верны значения в обьекте.
    Предлагаю такой вариант:
    const obj = {};
    for (const fruit of fruits) {
    obj[fruit] = obj[fruit] ? obj[fruit] + 1 : 1;
    }
    может у кого-то будет правильное решения для reduce?

    • @frontendscience
      @frontendscience  3 года назад

      Вот тут комментарий с решением через reduce: ruclips.net/video/3jgE1ySa8xA/видео.html&lc=Ugy1AiC9Aniy5nenL0F4AaABAg

  • @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 Спасибо.

  • @DreamingDolphing
    @DreamingDolphing 3 года назад +1

    Круто, у меня примерно такие же знания (где то больше), но к сожалению они теоретические, поэтому я считаюсь трейни.

  • @user-pz5mf8bq6r
    @user-pz5mf8bq6r 3 года назад

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

    • @frontendscience
      @frontendscience  3 года назад

      Да так получится. Можно еще немного сократить количество преобразований: ruclips.net/video/3jgE1ySa8xA/видео.html

  • @techno7761
    @techno7761 3 года назад

    А что, front end бывает только в веб-приложениях?

    • @frontendscience
      @frontendscience  3 года назад

      Нет бывает не только в веб приложениях. Но на IT рынке когда говорят front-end подразумевают именно front-end web-разработку.

  • @user-wk4dj2lq4h
    @user-wk4dj2lq4h 2 года назад +4

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

  • @artemkrasnogir4673
    @artemkrasnogir4673 3 года назад +1

    Для продвижения)

  • @user-xu7rj3vs4w
    @user-xu7rj3vs4w 3 года назад +1

    у меня выдает
    //1
    //1
    let inc = (function () {
    let counter = 0;
    return function () {
    counter + 1
    //console.log(counter + 1);
    }
    })()
    inc();
    inc();

    • @frontendscience
      @frontendscience  3 года назад +1

      почитай комменты плиз - там вместо counter + 1 должно быть return counter++;

  • @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 А почему девопс не рассматриваете?

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

    Что такое heap stack, generators это мне задавали на middle а

  • @jorgen5462
    @jorgen5462 3 года назад +4

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

  • @veli2698
    @veli2698 2 года назад

    каким образом корс от xss защищает?

    • @frontendscience
      @frontendscience  2 года назад

      Тут Владимир ошибся. От xss он не защищает.

  • @Nikita-qb3hu
    @Nikita-qb3hu 3 года назад

    нормально)

  • @1powernic
    @1powernic 3 года назад +1

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

    • @frontendscience
      @frontendscience  3 года назад

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

  • @user-db2zy9le6z
    @user-db2zy9le6z 3 года назад

    хотелось бы видеть Ваш вариант решения задачки на каррирование с рекурсией

    • @frontendscience
      @frontendscience  3 года назад +4

      Вообще стоит в планах отдельное видео про каррирование. Думаю туда включу эту задачу

    • @user-cv6dh7ux7s
      @user-cv6dh7ux7s 2 года назад

      ​@@frontendscience Cпасибо за Ваш труд на канале, очень познавательно.
      Подходящее решение?
      const sum = number => number2 => number2 ? sum(number + number2) : number;
      sum(1)(2)(3)(4)(); //10
      И это ведь не совсем каррирование, верно?)

  • @alukret
    @alukret 2 года назад

    28:02 не совсем понял что за counter + 1, надо или counter++ или counter = counter + 1, иначе переменная не увеличивается

    • @frontendscience
      @frontendscience  2 года назад

      уже много раз отвечал на это в комментариях - если интересно, пролистайте

  • @user-mm6df5ff3r
    @user-mm6df5ff3r 3 года назад

    Здравствуйте срочно нужно помощь

  • @GreeNders10
    @GreeNders10 3 года назад +1

    На кукую ЗП собеседуется сотрудник?