Тёмный

Interview of a Middle Frontend developer 

Front-end Science with Sergey Puzankov
Подписаться 62 тыс.
Просмотров 197 тыс.
50% 1

Начинаем новую серию видео с фронтенд собеседованиями.
Сегодня интервью проходит Алексей, он пробуется на должность 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собеседование

Опубликовано:

 

30 июн 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 570   
@frontendscience
@frontendscience 3 года назад
👍 Друзья, поддержите, пожалуйста, Алексея в комментариях - он самый смелый, прошел у нас интервью первым. И поставьте ему большой красивый лайк!
@user-hf2gs8vh4h
@user-hf2gs8vh4h 10 месяцев назад
😢😊🎉😂 ❤😮😢❤❤😊х😮😮🎉😊 л😂🎉😂😅😅е😊😢😅вы❤❤😂😂❤😊 😅😮😮х😮😢😮😂😅😢😅😮😊🎉к😢😊😢😢😂😊😊🎉🎉🎉😢😢😊😢эх😊😮😢😮😅😮😮😅❤😮😮😮❤😢😂😊😊😂😢🎉❤😊😢л😮🎉😊 7:41 🎉😅😢😢😢 7:55 🎉😢😊😅😊😢😮😢😢😅😊😮😢🎉😮😂😢з 8:б😅❤😂😊 10:17 42 как 8:54 😮х😂❤😮😊😢 9:56 😢😊😢😅😮х😢🎉😢ф😢😂😢😊😅😊😢😮🎉😊😅😊😮😮❤😊😊😮😊ч😂😮🎉😂😊
@maxtor5088
@maxtor5088 3 года назад
У нас есть два JS, тот который мы используем каждый день и о котором говорим на собеседовани ))
@zheil2977
@zheil2977 2 года назад
У нас есть два программирования, то которое мы используем каждый день и о котором говорим на собеседовании )))
@user-rf3ui4cc6w
@user-rf3ui4cc6w 2 года назад
Согласен, в реальности все по другому, а здесь какие-то магические слова :)
@ELDlabIo
@ELDlabIo 2 года назад
@@user-rf3ui4cc6w Ну на самом деле слова не магические) Просто часто работа превращается в рутину и все мы работаем не с целью чему-то обучиться, а просто выполнять задачи, ибо начальству только это важно, к несчастью( Но я считаю, что если хочешь быть не просто кодером, а программистом думающим и отвечающим за каждую свою строчку кода, то надо чтобы все-таки все эти слова перестали быть магическими)
@michaelpetrov4965
@michaelpetrov4965 2 года назад
@@zheil2977 можно подставить php, ничего не изменится.
@CJ19000
@CJ19000 Год назад
+++++
@suslikest3708
@suslikest3708 3 года назад
Мне лично сразу в кандидате понравилось то что он свободно и без напряга общается при этом в рамках приличия как по мне уже крутой показатель.
@user-vc6mo5nl8g
@user-vc6mo5nl8g 2 года назад
Да, парень - крут!
@maksimmnatsakanov2853
@maksimmnatsakanov2853 3 года назад
Круто, спасибо, ждал! Люблю смотреть публичные собеседования)
@phone1429
@phone1429 2 года назад
Алексей, спасибо за участие в интервью. Считаю, отлично справился, несмотря на волнение. Успехов, профессионального и карьерного роста!
@sergeyplotnikov5031
@sergeyplotnikov5031 3 года назад
Хорошая обратная связь и классные задачки. Спасибо!
@Maiq-The_Liar
@Maiq-The_Liar 3 года назад
Чувствуется, что готовился усердно :) Круто.
@anastasiaviva5721
@anastasiaviva5721 3 года назад
Контент просто огонь! Алексею респект! Сергей, огромная благодарность за такой формат!!!
@frontendscience
@frontendscience 3 года назад
Рад что понравилось! Благодарю за поддержку!
@tatianovnafrutti8982
@tatianovnafrutti8982 3 года назад
Крутой формат!! Лайк! Побольше собесов )))
@user-gi3sh6ul2j
@user-gi3sh6ul2j 3 года назад
Спасибо. Было полезно) Надеюсь увидеть собес на сеньера)
@user-rp3fc4dh7c
@user-rp3fc4dh7c 2 года назад
Many thanks!! Такие интервью дают больше понимания, чем обучающие материалы!!
@alexr6829
@alexr6829 3 года назад
Было круто, спасибо Сергей! Еще так много нужно узнать и еще большему научиться)
@frontendscience
@frontendscience 3 года назад
И тебе спасибо! Больших успехов!
@boldureans
@boldureans 3 года назад
Ты оч крутой!
@murad40
@murad40 3 года назад
блиин, так круто прошел, можно было бы попросить у вас телегу или мэйл?)
@murad40
@murad40 3 года назад
обещаю не спамить, хотел спросить про ваши ресурсы для подготовки
@srjoyme2525
@srjoyme2525 Год назад
огонь собес )
@dmitrykorovin4356
@dmitrykorovin4356 3 года назад
прям очень круто! Алексею респект)
@user-pe6ku5lu6q
@user-pe6ku5lu6q 2 года назад
Алексей молодец! Все знания можно помножить на 2, а то и на 3 - учитывая что все это происходит в стрессовой обстановке.
@user-lx5vv3uu8u
@user-lx5vv3uu8u 3 года назад
Отличный формат! Сергей, благодарю!
@frontendscience
@frontendscience 3 года назад
И я Вас благодарю )
@seryozhamangushev9638
@seryozhamangushev9638 2 года назад
Я так долго ждал этот формат.
@frontendscience
@frontendscience 2 года назад
Здорово! Рады, что нравится 👍
@user-dk6mj3xk9t
@user-dk6mj3xk9t 2 года назад
Алексей крут конечно!!!! Зная что выступаешь на широкую аудиторию нервишки шкалят еще больше!!!! С учетом волнения его знания можно во много раз приумножить)) Такие видео помогают избавится от эффекта самозванца) Сергей вам огромный респект!!!! На некоторых конторах, на Middle позицию, спрашивают ядро JS и после по специфике конторы React, Redux, Typescript, Webpack и т.д. Хотелось бы увидеть собеседование в таком формате))
@FireORcolD
@FireORcolD 2 года назад
у меня спрашивали чем отличается event loop браузера и nodejs, зачем эта инфа, что она решает, не понятно, учитывая что я ему рассказала как работает event loop браузера решая задачу, в итоге не взяли, может я был глуп для них, но была закономерность, придумывались абсурдные задания, что в итоге сказал сам интервьюер, не желаю никому на такого попасть, кстати есть ещё прикол, зачем-то сбивать с логики, я решая задачу сказал какой будет результат, а он старался сбить меня с моей логики раза 4-5 в одном вопросе, это что за способ самоудовлетворения, надеюсь что следующий интервьюер будет как Сергей
@alexkostrov5186
@alexkostrov5186 2 года назад
Алексей красава просто! очень хорошие знания показал
@nk_77777
@nk_77777 Месяц назад
Классный ролик, спасибо)❤
@8_Artem_8
@8_Artem_8 3 года назад
Хорошее собеседование и вопросы адекватные. Еще интересно было бы увидеть собеседование на react разработчика.
@andriikarnaukh5864
@andriikarnaukh5864 2 года назад
Отличный формат! Спасибо большое за этот собес)
@frontendscience
@frontendscience 2 года назад
Рад, если полезно!
@stormd2902
@stormd2902 3 года назад
Спасибо, очень полезно
@dmytromoroz4451
@dmytromoroz4451 3 года назад
Отличный контент. Большое Вам спасибо!
@frontendscience
@frontendscience 3 года назад
И Вам спасибо 😉
@guldenbazheeva297
@guldenbazheeva297 2 года назад
Алексей большой молодец! Очень смело публично проходить собеседование! Успехов ему и вам!
@nickkorol5387
@nickkorol5387 3 года назад
Очень круто и качественно!!! Я вчера проходил на трейни, так мне три задачи попались такие как тут проходили... узнал бы немножко пораньше !) В целом, спасибо, тут есть чему поучится !
@frontendscience
@frontendscience 3 года назад
Прикольно! А какие именно задачи? И что еще было? Ребятам тут будет полезно узнать
@nickkorol5387
@nickkorol5387 3 года назад
@@frontendscience Мне попилась по приоритетам(event loop and setTimeout, ну там добавили мне и IIFE), так же "Про замыкания и IIFE". от такое еще было: const arr = [ [true, false, true], [false, false, true] ] // надо поменять с true на false на оборот.
@frontendscience
@frontendscience 3 года назад
Благодарю что поделился!
@user-me4pb8qs2t
@user-me4pb8qs2t 3 года назад
Завтра буду слушать , надеюсь будет крутяк !!!
@BROnik
@BROnik 3 года назад
спасибо что проинформировал
@frontendscience
@frontendscience 3 года назад
Прикольно! У вас тут весело 😆
@dw_tv3992
@dw_tv3992 3 года назад
Сергей спасибо за контент, очень хочется увидеть, как вы собеседуете джуна
@frontendscience
@frontendscience 3 года назад
Заполняйте форму! И можете не только увидеть, но и поучаствовать :)
@abffggjhf516
@abffggjhf516 3 года назад
@@frontendscience Собеседовался на джуна, вопросы как здесь на мидла...
@frontendscience
@frontendscience 3 года назад
@@abffggjhf516 Я тебе больше скажу - такие же вопросы будут и если на синьора собеседоваться, здесь важна точность и глубина ответов.
@user-pu1ro1kw4u
@user-pu1ro1kw4u 3 года назад
Собеседование крутое! Так держать!
@vladbazhanov8321
@vladbazhanov8321 3 года назад
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 года назад
Да return Алексей забыл добавить. Бывает
@vladbazhanov8321
@vladbazhanov8321 3 года назад
@@frontendscience Но counter тоже инкрементировать стоит, в реализации на видео будет возвращать всегда 1. Но это мелочи )
@frontendscience
@frontendscience 3 года назад
@@romanmed9035 Да именно так замыкания и работают. Они хранят контекст с переменными даже если эта функция уже отработала. У Алексея в решении была ошибка в решении: необходимо вместо строки counter + 1 делать return ++counter. Таким образом сохраняется увеличенное значение переменной counter и самое главное из функции возвращается значение.
@frontendscience
@frontendscience 3 года назад
@@romanmed9035 Успехов!
@deem5471
@deem5471 3 года назад
const inc = () => { inc.counter = inc.counter || 1; return inc.counter++; } а с iife крутое решение, сразу в голову не пришло
@nikolay6143
@nikolay6143 2 года назад
Спасибо за отличный видос, подписался с надеждой увидеть ещё в подобном формате, несмотря на то, что довольно успешно решаю задачи бизнеса во фронтенде уже более 4х лет понимаю что до уровня миддла надо подтянуть знание базовых вещей, таких как замыкание/карирование
@frontendscience
@frontendscience 2 года назад
Желаем Вам успехов!
@NEMEDYINYI
@NEMEDYINYI 3 года назад
Крутой контент! Было бы интересно смотреть прямую трансляцию лайва, и + в таком формате как сейчас с монтажом публиковать ролик.
@frontendscience
@frontendscience 3 года назад
А какие Вы видите плюсы от собеседования в лайве? Мы изначально так и планировали, но сейчас вот придумать не можем профита. Чат? Ну так он будет отвлекать участника или ведущего... свое решение задачек высылать? Так их и просто в комментариях можно писать, как и любые вопросы... поделитесь мнением!
@dobermanpharaoh7567
@dobermanpharaoh7567 3 года назад
@@frontendscience Собеседоваться когда тебея смотрят 10k человек - такое себе))
@frontendscience
@frontendscience 3 года назад
@@dobermanpharaoh7567 вообще-то 20k, но кто считает )))
@QwDragon
@QwDragon 2 года назад
@@dobermanpharaoh7567 так всё равно посмотрят же.
@mxrquez7692
@mxrquez7692 2 года назад
1:00:12 Вдруг кому-то нужно или интересно решение задачи с каррированием и рекурсией, на которую решили не тратить время const sum = (a) => { let result = a; return addMore = (b) => { result += b ?? 0; return b === undefined ? result : addMore; } }
@olegtsesko
@olegtsesko Год назад
const sum = a => b => b ? sum(a + b) : a sum(1)(2)(3)() // 6
@user-kn3ut1sh2o
@user-kn3ut1sh2o 3 года назад
Крутой формат! Лайк, подписка!
@frontendscience
@frontendscience 3 года назад
Благодарю за поддержку)
@sceptic571
@sceptic571 Год назад
Классное собеседование. Алексей - молодец! Я искренне переживал за Алексея и тоже решал с ним задачки.
@igornosatov1908
@igornosatov1908 3 года назад
Супер 🥳🥳🥳
@marynashubna203
@marynashubna203 2 года назад
респект Алексею!
@pavel.arepev
@pavel.arepev 3 года назад
Спасибо! Очень классно проводите собеседования. Вы бы могли в дополнение говорить в конце - взяли ли бы вы человека на данную позицию к себе на работу?
@frontendscience
@frontendscience 3 года назад
Алексея я бы пропустил на следующий этап технического собеседования
@Aleal616
@Aleal616 3 года назад
Блин не собирался смотреть это видео, 1 : 29 :52, но как то затянуло, самое интересное, что я не занимаюсь ни фронтом ни бэком, ни вообще IT разработками. Было просто интересно, продолжайте делать дальше такие видео.
@frontendscience
@frontendscience 3 года назад
:) Благодарю!
@grbak
@grbak 2 года назад
Видос отличный, Алексей красава
@maxkarrtopelka3718
@maxkarrtopelka3718 2 года назад
в задаче с замыканием, есть вариант вот такой реализации: const inc = (counter => () => ++counter)(0); console.log(inc()); // 1 console.log(inc()); // 2 console.log(inc()); // 3
@frontendscience
@frontendscience 2 года назад
Да отличный вариант1
@alexanderkosinskiy7339
@alexanderkosinskiy7339 2 года назад
Украдено с Хекслет
@eakzit3181
@eakzit3181 3 года назад
Когда работаешь каждый день с фреймворками, забываешь азы. Мне на самом деле чуток пришлось даже поднапрячься с рекурсивным решением курринга...Спасибо за фановый контент, азы нуно знать, есть что повторять :)
@astrotrain
@astrotrain 3 года назад
Формат отличный, если ещё будут разборы резюме, то ещё лучше! Но мне кажется, что лучше всё же формат записи, а не лайв, потому что в записи вырезано лишнее и не нужно отвлекаться на комментарии.
@frontendscience
@frontendscience 3 года назад
Сижу вот тоже думаю, какой профит от лайва кроме того, что я люблю с вами общаться)
@andreiryabikov4896
@andreiryabikov4896 3 года назад
Очень крутой формат, спасибо! Алексею респект) И вопрос про var и hoisting: это все еще актуальные знания, чтобы их задавать на интервью?
@frontendscience
@frontendscience 3 года назад
Очень даже актуальные ) Во-первых код до сих пор на проектах компилируется в ES5. во-вторых хойстинг работает не только с var но и function declaration. В-третьих есть куча библиотек и пакетов в которых до сих пор var - и надо понимать особенности его работы.
@user-lq5fs9eb8v
@user-lq5fs9eb8v 2 года назад
@@frontendscience в задача на 20мин выводится 5, почему ничего не должно выводится?
@frontendscience
@frontendscience 2 года назад
@@user-lq5fs9eb8v потому что внутри функции свой скоуп. И происходит всплытие объявления переменной (хойстинг). Но изначально она undefined. До тех пор пока не произойдет присвоение. Поэтому if не пройдет проверку и ничего не выведется в консоль
@frontendscience
@frontendscience 3 года назад
Ребята, а было бы интересно посмотреть behavioural интервью?
@vladsosnov3749
@vladsosnov3749 3 года назад
System design тоже)
@vpetryniak
@vpetryniak 3 года назад
Да очень
@victorkrasnov5576
@victorkrasnov5576 2 года назад
Про замыкания и IIFE. let inc = (function() { let counter = 0; return function() { return counter + 1; } })(); Код не будет работать :) Надо return counter + 1 заменить на ++counter А за видос спасибо, крутейший контент - позволяет представить себя на месте интервьюируемого и попрактиковать задачки. Подписался.
@frontendscience
@frontendscience 2 года назад
Выше в комментариях я уже отвечал про эту задачу.
@oleksandrsavych4526
@oleksandrsavych4526 2 года назад
Кльовий формат і грамотний гість!
@yevhenfodorov121
@yevhenfodorov121 9 месяцев назад
Очень качественные интервью.. Когда продолжение?
@HIghtowerSever
@HIghtowerSever 3 года назад
Привет. Все четко, кроме размера шрифта кода на экране. Учитывая, сколько на экране свободного места, шрифт можно увеличивать раза в 3-4. И тогда удобно будет смотреть на мобилке... Мобайл-ферст - не забывай, плиз.
@frontendscience
@frontendscience 3 года назад
Спасибо, учтем
@wpcity-pm2wk
@wpcity-pm2wk 3 года назад
Yes, I'm also watching it from my phone
@al77ex1
@al77ex1 Год назад
Ой! Случайно перепроверил пример про инк. )) У меня какие-то неправильные решения полезли на ноч глядя let inc = function () { if (!this.c) this.c = 0; this.c +=1; return this.c } Но в целом собес супер! Алексей молодец держался хорошо! Спасибо за видео!
@andreyzinovjev3920
@andreyzinovjev3920 3 года назад
Сергей спасибо за видео, очень азартно) скажите как то вы оцениваете скорость выполнения кандидатом задач, его размышления а главное ошибки или если в отведенное время решил - то это + ?
@frontendscience
@frontendscience 3 года назад
Много зависит от того на какую должность собеседую. Если на синьйора - то да ожидаю что он быстро поотвечает на все легкие вопросы. В любом случае смотрю как человек мыслит - особенно если не знает ответа на вопрос изначально. Как пытается дойти до него. Или как использует подсказки, или какие вопросы задает. Все это учитывается. время чаще просто как ограничение - чтобы не потратить его все на один вопрос (которые никак не может решить кандидат) а наоборот мог проявить себя на разных вопросах.
@user-bh6mc8pd8g
@user-bh6mc8pd8g 2 года назад
подивився до кінця, круто
@gykan
@gykan 2 года назад
Трехтысячный лайк мой ))
@frontendscience
@frontendscience 2 года назад
👍
@user-cg7hj4br2p
@user-cg7hj4br2p 3 года назад
Вот эта работа в видео!
@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 года назад
Благодарю за решение! Успехов с каррированием )
@user-gc2df1mn8v
@user-gc2df1mn8v 3 года назад
Спасибо за такой формат, очень познавательно. Можете пожалуйста пояснить про 6 одновременных соединений с сервером? Я думал, что это только для http
@frontendscience
@frontendscience 3 года назад
Ну так вся статика (картинки скрипты стили) запрашивается именно по http. Браузер при загрузке страницы сможет параллельно загружать 6 картинок с одного домена ( цифра 6 варьируется от браузера). Поэтому если распределить эти картинки по разным доменам то браузер сможет из все ( больше 6 если на странице) параллельно загружать
@user-gc2df1mn8v
@user-gc2df1mn8v 3 года назад
@@frontendscience Спасибо за ответ! Но всё же не совсем ясно, почему нужно отдавать статику с http если https позволяет за одно соединение загрузить несколько файлов одновременно? Я пытаюсь разобраться в этом вопросе, вроде бы информации много, но нигде толком ничего не объясняется, было бы здорово увидеть видео на эту тему...
@MrGourmetRazzy
@MrGourmetRazzy 2 года назад
Под конец у парня лицо было краснее, чем его футболка). Застеснял пацана.
@uNkind33
@uNkind33 3 года назад
спасибо за видос, давай теперь на синьора !
@frontendscience
@frontendscience 3 года назад
Подумаю - а то смотрю многие просят )
@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);
@kirsanov2008
@kirsanov2008 3 года назад
вот такие должны быть джуны! респект!
@user-pv9rw4cs2j
@user-pv9rw4cs2j 3 года назад
Хорош в теории, слаб в практике
@DmitriiRepnikov
@DmitriiRepnikov 3 года назад
По знаниям он полноценный мидл, то что в режиме лайвкодинга он не может сосредоточиться - это обычная история даже для сеньора. Может когда-нибудь собеседующие это поймут, и не будут давать советы уровня “будь внимательнее“, потому-что этому совету сложно следовать когда хмурый дядька палит на процесс твоей работы Хотя может и не мидл, ведь я не слышал вопросов по боевым задачам (смотрел на перемотке), а мидла, по мне, должны сильно изучить как он знает требуемый стек своих инструментов. Потому-что знание только фундамента требуется от джунов, а от мидла ждут что он быстрее возьмется за боевые задачи, а не будет изучать тонкости нужного фреймворка
@kirsanov2008
@kirsanov2008 3 года назад
@@DmitriiRepnikov этот парень - джун, не более того. Мидл должен знать свой ЯП в совершенстве и уметь его готовить. Такого рода задачки мидл должен щелкать как семечки и это не должно быть в принципе центром собеседования. Даже если чел закрывает 100% задач на проекте он автоматом не становится синьером. Если тебя палит "хмурый дядька" и ты сразу посыпался то ты не более чем джун. Как я сказал, с уверенным мидлом и уж тем более с синером эта часть собеседования закончится через 10 минут. А если ты начинаешь сомневаться когда кто-то смотрит на твою работу а ты вроде как заявляешь себя мидлом/сеньером, то у тебя большие проблемы с пониманием где ты находишься и что делаешь... ну или ты просто надутый в попу письтюк... (не конкретно ты :))
@DmitriiRepnikov
@DmitriiRepnikov 3 года назад
@@kirsanov2008 твоё мнение полно максимализма как у подростка, и судя по нику это кажется логичным. Объяснять почему твоё виденье неверно я не буду, т.к. судя по настрою твоего сообщения ты из тех кто изменит своё мнение только тогда когда появляется хоть какой-то опыт.
@kirsanov2008
@kirsanov2008 3 года назад
@@DmitriiRepnikov 2008 это не дата моего рождения, а год, когда я зарегался в гмайле, но ты первый кто обратил на это внимание в таком ключе) я раньше даже не думал об этом))
@alexshubin1
@alexshubin1 2 года назад
Пишу на ангуляр. Думаю что все примеры в собеседовании нужны только для того чтобы понять как работает код другого программиста, который хотел всех удивить)
@frontendscience
@frontendscience 2 года назад
😂
@1kvolt1978
@1kvolt1978 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 2 года назад
отлично вышло! благодарю за решение!
@1kvolt1978
@1kvolt1978 2 года назад
@@frontendscience Спасибо.
@user-te7xb2to9f
@user-te7xb2to9f Год назад
из видео я понял, что знаний основ js между мидлом и джуном не особо много... на данный момент я не имею боевого опыта разработки, но прорешал больше 200 задач на codewars на js и все задачи приведенные в собесе мне показались скорее джуновскими в чем отличия мидла?
@murad40
@murad40 3 года назад
Оч крутое и полезное видео, но почему сразу с мидла начали, хотелось бы посмотреть на вопросы и собеседование junior`a. Если не трудно скажите плиз какие вопросы задавали бы джуниору? ThankYouInAdvance!
@frontendscience
@frontendscience 3 года назад
Скоро будет на канале видео и на джуниора! Не забудьте нажать на колокольчик 🛎 😊
@ccmadminstrator
@ccmadminstrator 3 года назад
это и был джуниор, слабенький.
@user-dk1ru3yx9i
@user-dk1ru3yx9i 2 года назад
интересно спс
@bibblebabl
@bibblebabl 3 года назад
Было бы круто, если бы использовался какой-нибудь онлайн редактор кода по типа codeinterview с возможностью выполнить код для наглядности
@frontendscience
@frontendscience 3 года назад
Думаю в следующий раз так и сделаем, благодарю за рекомендацию редактора
@user-rq8fp8fe2k
@user-rq8fp8fe2k 2 года назад
огонь
@user-pz5mf8bq6r
@user-pz5mf8bq6r 3 года назад
Задачку с фруктами можно было бы решить создав мапу: ключ - фрукт, значение - количество. Затем создать массив пар (количество, фрукт). Отсортировать по первому элементу. Вывести второй элемент.
@frontendscience
@frontendscience 3 года назад
Да так получится. Можно еще немного сократить количество преобразований: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-3jgE1ySa8xA.html
@SergeyDovzhenko
@SergeyDovzhenko 3 года назад
интересно на матерого синиора глянуть)
@amirkerimov95
@amirkerimov95 Год назад
Привет! У меня вопрос по поводу решения в блоке про замыкания (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 не хватает
@bakhtiyor_sulaymonov
@bakhtiyor_sulaymonov 2 года назад
super 👍
@Amkonax
@Amkonax 3 года назад
Интересно, все задания по js из интервью решал почти сразу в уме, но до сих пор боюсь проходить собеседование на джуна)
@frontendscience
@frontendscience 3 года назад
А чего именно боишься? В худшем случае все останется так же как сейчас. Если уже натренировался решать задачки, теперь надо натренироваться проходить собеседования.
@Amkonax
@Amkonax 3 года назад
@@frontendscience Ну я 20 лет проработал системным администратором. Всю жизнь мечтал быть разработчиком, но как-то не сложилось. А сейчас сокращение на фоне пандемии, вот и подумываю сменить род занятий. Боюсь, потому что уже 40 лет за плечами, поздновато наверное становиться программистом)
@frontendscience
@frontendscience 3 года назад
​@@Amkonax Ничего не поздно! Сейчас открыты возможности ремоута по всему миру практически. То есть даже если в твоем городе/стране в 40 лет ты боишься дискриминации на новой должности, то в мире это нормальный возраст, чтоб начать. Тем более, что ты свитчишься из айтишной специальности. Обязательно опиши этот опыт в резюме. И давай не тяни с собеседованиями! Успехов!!
@Amkonax
@Amkonax 3 года назад
@@frontendscience спасибо за поддержку и за ваши видео, которые я все с удовольствием смотрю. Обязательно буду пробовать!)
@misteranderson6058
@misteranderson6058 3 года назад
@@Amkonax А почему девопс не рассматриваете?
@user-me4pb8qs2t
@user-me4pb8qs2t 3 года назад
В честь день рождения.... Хотелось бы разбор задачи codewars 4 или 3 kyu
@from_brest2631
@from_brest2631 2 года назад
пончик крепкий джуник, молоток 👍
@artemkrasnogir4673
@artemkrasnogir4673 3 года назад
Для продвижения)
@trewerguli1727
@trewerguli1727 Год назад
Судя ответам опытный проходитель собеседований😜
@LNMaster_
@LNMaster_ 3 года назад
Задача на замыкание без use strict и без вложенных функций: function inc() { if (!window.res) res = 0 return ++res }
@frontendscience
@frontendscience 3 года назад
Видать, не услышали условие до конца. В глобальном контексте должна быть только одна переменная inc и ничего больше.
@frontendscience
@frontendscience 3 года назад
@@user-rq2gs4uc7r ачивка за находчивость!
@LossevSergey
@LossevSergey 3 года назад
Спасибо, видео помогло понять, какого уровня я джаваскриптист, если бы собеседовался на эту роль. Хоть и не являюсь им вообще ни разу, а js - просто побочный продукт более общего опыта работы в веб-аналитике )
@jorgen5462
@jorgen5462 3 года назад
- ааа, у нас же идёт не по алфавиту, а по встречающимся элементам ... Серёга: 38:26 😂😂 попался, милок!
@DreamingDolphing
@DreamingDolphing 3 года назад
Круто, у меня примерно такие же знания (где то больше), но к сожалению они теоретические, поэтому я считаюсь трейни.
@frontendscience
@frontendscience 3 года назад
Нарабатывай практику!
@Nikita-qb3hu
@Nikita-qb3hu 3 года назад
нормально)
@kozubskyi
@kozubskyi 3 года назад
27:43 есть ошибка, забыли возле "+" поставить "=" , так все время будет возвращать 1,1,1. Надо прописать return () => counter += 1, тогда все будет работать
@frontendscience
@frontendscience 3 года назад
Пролистай комменты, там все обсудили
@yuTimer
@yuTimer 2 года назад
как сервис для шаринга кода называется?
@user-dr8pb2nu2v
@user-dr8pb2nu2v 2 года назад
По сути собеседование крутое и супер полезное, поэтому большое спасибо за контент) НО, на 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 2 года назад
Что значит запутать? Это условие задачи! Я даже сделал подсказку таким образом. Если бы Вы были на собеседовании и не поняли бы - я бы Вам объяснил иначе.
@frontendscience
@frontendscience 2 года назад
Но судя по решению, условие поняли. Задачу решили правильно. Так в чем именно вопрос?
@r4_serega
@r4_serega 2 года назад
Круто! но видно что у парня хорошая база, но не хватает опыта) Через год-второй будет синьйором ;)
@user-db2zy9le6z
@user-db2zy9le6z 3 года назад
хотелось бы видеть Ваш вариант решения задачки на каррирование с рекурсией
@frontendscience
@frontendscience 3 года назад
Вообще стоит в планах отдельное видео про каррирование. Думаю туда включу эту задачу
@user-cv6dh7ux7s
@user-cv6dh7ux7s 2 года назад
​@@frontendscience Cпасибо за Ваш труд на канале, очень познавательно. Подходящее решение? const sum = number => number2 => number2 ? sum(number + number2) : number; sum(1)(2)(3)(4)(); //10 И это ведь не совсем каррирование, верно?)
@user-ek3ov4jy2r
@user-ek3ov4jy2r 2 года назад
Мне интересно. Если на собеседовании претендента спрашивают over 9999 оверхедов про всякие всплытия с var и без него. Это он должен знать иначе без этого никуда. И он должен обязательно их помнить и забивать ими голову. Почему у человека в голове не щелкает, что такого, как бы, не должно быть в нормальном-то языке программирования.
@zacker-tech
@zacker-tech 3 года назад
Код с iife не работает. Его нужно немного по-другому сделать.
@frontendscience
@frontendscience 3 года назад
Да, уже в комментах выше обсудили. Должен быть return ++counter.
@astrotrain
@astrotrain 3 года назад
Задача про рекурсивное каррирование: думаю нужно рекурсивно отдавать функцию, у которой смотреть параметры (точнее один первый параметр), если он есть, то складировать в массив, который будет объявлен в этой же функции и доступен по замыканию, если параметра нет, то возвращать сумму элементов массива, например через редьюс.
@sergeys4732
@sergeys4732 3 года назад
Зачем так сложно , можно каунтер объявить и в него складывать заначения пока на вход подаются аргументы. Сам каунтер замкнуть в колбек функции которая будет рекурсивно вызывать исходную функцию) это что в голову быстро пришло щас
@astrotrain
@astrotrain 3 года назад
@@sergeys4732 я тоже самое описал вроде.
@frontendscience
@frontendscience 3 года назад
@@astrotrain Синьер Помидор предложил не хранить массив с числами. И потом его редьюсить, а сразу просто суммировать все что приходит в агрументах и хранить только одно число.
@astrotrain
@astrotrain 3 года назад
@@frontendscience ааа, понял. Ну это уже нюансы.
@leonidshvab6233
@leonidshvab6233 3 года назад
еще более древний вариант) const obj = { a: 4, say: function() { let self = this; setTimeout(function () { console.log(self.a) }, 1000) } }
@frontendscience
@frontendscience 3 года назад
да - "дедовский" метод )
@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 года назад
Благодарю за решение
@Jonstonrich
@Jonstonrich 10 месяцев назад
1:07:23 - method => a => b => method(a, b); можно упростить
@tarasgordienko
@tarasgordienko 3 года назад
Задача про фрукты у меня так получилась 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 года назад
Благодарю за решение!
@vasylhabalevych2049
@vasylhabalevych2049 3 года назад
Спасибо за видео! В задаче с фруктами с помощью reduce у нас будут не верны значения в обьекте. Предлагаю такой вариант: const obj = {}; for (const fruit of fruits) { obj[fruit] = obj[fruit] ? obj[fruit] + 1 : 1; } может у кого-то будет правильное решения для reduce?
@frontendscience
@frontendscience 3 года назад
Вот тут комментарий с решением через reduce: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-3jgE1ySa8xA.html&lc=Ugy1AiC9Aniy5nenL0F4AaABAg
@rem-singer
@rem-singer 2 года назад
в задаче на 20:16 я и с let и с var, и с const вывожу в консоль undefined, никаких ошибок. Как же так?
@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
@vsromanc
@vsromanc 3 года назад
цікавий формат) наступне senior level?
@frontendscience
@frontendscience 3 года назад
Senior тоже будет )
@user-nk2cq1vp5s
@user-nk2cq1vp5s 2 года назад
мне кажется или на 55:52 это не финальное решение?
@fazanaka
@fazanaka 2 года назад
Каррирование const sum = a => b => b ? sum(a + b) : a; Cчетчик const inc = (n => () => ++n)(0);
@frontendscience
@frontendscience 2 года назад
Отлично вышло! Компактно! :)
@user-xt9nl7no8e
@user-xt9nl7no8e 2 года назад
full stack самоучка, больше реакт чем бекенд, еще не работал, написал для резюме пару проектов: интернет-магазин с фильтром товаров и полной адмикой по редактированию и масштабированию сайта, соц сеть, месенджер, музыкальную площадку, но это собеседования не прошел бы))
@frontendscience
@frontendscience 2 года назад
Наверное потому что самоучка и не работал еще, а это собеседование на миддл позицию?)
@TheBorninmotion
@TheBorninmotion 3 года назад
systems design было бы интересно
Далее
I Built 100 Homes And Gave Them Away!
09:36
Просмотров 42 млн
A deep dive into LLAMA Agents
19:06
Просмотров 4
I Built 100 Homes And Gave Them Away!
09:36
Просмотров 42 млн