Подготовка к собеседованию на Frontend Developer
Менторы
Специалисты своей области, которые смогут помочь вам
Middle .Net Developer
Senior Product Manager
Middle Python Developer
Ведущий программист
Backend Software Engineer (PHP)
Senior .NET/C# developer
Middle DevOps Engineer | Tbilisi, Georgia
Middle C# .NET
Senior PHP-разработчик
Middle python developer
Каналы
Полезные Telegram каналы и чаты
Транскрипция видео:
друзья всем привет с вами сергей ползунку сегодня мы с вами начинаем новый формат видео это видео с собеседованиями и у нас сегодня будет собеседование с алексеем на должность мило фронтенд разработчика в этот раз мы провели это собеседование формате записи возможно на будущее мы будем это проводить формате наших субботних лишь стримов сегодняшнее видео будет состоять из двух частей первая часть это приз queen интервью а вторая часть это уже непосредственно техническая интервью после каждого этого
00:00:00 - 00:01:05
интервью я дал алексею свой фидбэк она что было хорошо какие моменты необходимо подтянуть и что улучшить друзья я хочу дать максимум пользы от такого формата поэтому будут по ходу подсказывать как лучше было бы ответить на тот или иной вопрос очень надеюсь что этот формат видео вам понравится уже нажимайте лайк и не забудьте подписаться на канал если вы этого еще не сделали нас впереди будет еще много интересных собеседований ты вы сами хотели бы поучаствовать в такого рода собеседований то вы можете заполнить
00:00:33 - 00:01:36
форму внизу она в описании под этим видео переходим к собеседованию приятного просмотра ещё раз всем привет у нас сегодня с вами собеседование с нами сегодня алексей и у нас техническое собеседование на должность middle front-end разработчик алексей привет принципе мы можем начинать да начнем с того что расскажи пожалуйста о вкратце о себе интересует подробнее понятное дело твой опыт работы интересует над какими проектами работал какие технологии использовал слово тебе да значит я начинал с ручного
00:01:06 - 00:02:37
тестирования это где-то полтора года назад было быстро понял наверно как и все тестировал бег совсем забыл сказать понял что руками конечно мне просто лень это все делать есть большая вероятность ошибки начал что-то писать для себя я пользовался программой так называемая postman она позволяет делать запросы на сервер тестировать их смотреть и прям там же можно было писать язык java script поэтому я начал учить жесткой естественно джесс можно научить только связке с фронтон наверно в начале в самом это самое простое и самое
00:01:51 - 00:03:03
наглядное пособие то есть и сразу же видишь вот результаты работы результат выполнения скрипта там анимашки начинают двигаться как изменяется страница ну подломил а пандемия в компании пошли сокращения прошли отпуска за свой счет пришлось искать что-то новое собеседование на пиве и тоже ребята спросили кем видишь себя через пять лет я честно сказал хочу разработку я вижу вот будущее для себя как разработчика ну ребята согласились взять меня скажем так на разработчик вот я уже год front-end разработчик
00:02:28 - 00:03:54
с чем получилось про эти это конечно же верстка чистый html css в связке с bootstrap am использовался это желание заказчика вот значит дальше проекты были на такой интересной технологии честного и не очень понравилось называется выпало конструктор сайтов но немножко более такой продвинутый то есть и в принципе свои скрипты можно было записывать то же желание заказчика значит после чего это проекты на реакция на gps конкретным использован для статической генерации сайтов то есть это какие-то может быть небольшие вот я делал блок я
00:03:10 - 00:04:41
делал сайт компании там было достаточно много анимации с и ряд сейчас проект достаточно большой считается как продукт сожалений могу раскрывать детали его но там используется неджес связь с риком да окей хорошо примерно понял общую картину сейчас более подробно по тем технологиям которые интересны и нашей компании расскажи пожалуйста давай начнем наверно с верстки по поводу верстки то есть пути правильно понимаю что у тебя опыт не только использование допустим готовых библиотек типа быстро по но и в принципе
00:03:56 - 00:05:29
верстки с нуля без каких-либо библиотек да конечно про окей хорошо ну и понятное дело как бы сейчас без этого никуда то есть это и под мобильные когда разные устройства что-нибудь из разряда не знаю там bm доводилось использовать честно я вот честно скажу не буду врать я читал проблем я пытался понять я понял что вроде с виду кажется что все просто все понятно но когда ты начинаешь его применять оказывается что стыковой не понял нужно глубже въезжать и так как просто но наверное нет настолько большого проекта пока что моя биография
00:04:42 - 00:06:11
я не не до конца разобрался в общей концепции мне понятны но до конца с домом я так и не разобрался я не постиг его философию те снг с мне как-то больше подход нравится что не нужно задумываться не минге классов просто можешь там тайтл делает хоть на 200 компонент но singers использовал правильно понимают в принципе да окей хорошо что по при процессором на скажи пожалуйста что доводилось использовать доводилось использовать счас и с с больше понравился с ес потому что он ближе к нативном у как это правильно
00:05:26 - 00:06:49
говорится ксс вот и вложенность в основном что-то миксины немножко использовал что-то более так вот супер продвинутый вроде циклов не доводилось использовать честно временная влажность и миксины окей понял хорошо если говорить про джесс то есть опыт разработки на чистом джесси да то есть были ли у тебя проект и вот когда у тебя просто джесс я понимаю что у тебя был опыт разным как бы написание допустим тех же тестов да то есть там в принципе это и есть чистый джеймс ну допустим что-то frontend на
00:06:07 - 00:07:18
этом vanilla джесс навоняли джесс мы писали дашборд для тоже для компании то есть мы в принципе да есть определенного под плане ля хорошо следующий тогда вопрос по поводу react to react использовали он там чистый из хуками или связки среда ксама бык сам то есть какая-то система еще было кроме самого говоря react чисто на руках политика компании что ну хоть и бились не просто так ну естественно это подкрепляется и самолет документации react разработчики чтобы кеа не менее затратно чем классовые компоненты классные компоненты я тоже
00:06:42 - 00:08:19
изучал тоже в принципе знаю жизнь стадии методы жизненного цикла вся разработка чистого coupe ну хорошо по поводу сборки допустим тем же в паком доводилось ли не знаю мы живем так править сборку то есть не использовать допустим все что идет из коробки рек стартеры стартует вот что-то там свое дописывать менять конфигурацию и много пока в парк не доводилось залазить вот насчет битве джесс там естественно доводилось прописывать некоторые плагины насколько я смотрел и изучал это все в принципе очень похожи и методики то есть формат
00:07:32 - 00:09:05
json там дописываем что мы подключаем какие модули описан как они должны работать опция но наверно общую концепцию я понимаю хорошо так это есть теперь следующий вопрос по поводу опыта с но дай расскажи поподробнее что именно доводилось делать на dex ds ты сказал или макс next на наш что там такого рода проект да что что было то есть это просто сервер сайт рендеринг или там что-то более сложное было там идет на сколько я понял что и забортная генерация странице то есть те которые быстро обновляется ну там есть
00:08:23 - 00:09:47
графики там сервер на генерации естество отключена дабы экономить вот и на такие статической страницы вроде там что-то нас ложек они уже идут с сервер сайт рендерингом супер прям так что то дописывать есть кстати динамические мы подключаем компоненты что-то прям супер дописывать или писать это с нуля и тоже не приходилось опять же все только там поправить доделать дописать написать мало компоненту где-то ее вставить строит чтобы ничего не сломалось окей понял хорошо мы говорим помимо допустим вот frontend ней к этой части был ли у
00:09:04 - 00:10:36
тебя опыт чего-то написания бак n2 ну чисто для себя чисто для себя и я скачал воду скачал при джесс френ гор на доски попробовал написать сервер ну вроде хэллоу old и все сервер отвечал это все заняла там строчек 15 неверно я подумала нифига себе как просто спасибо изучу дальше ряд потом может быть вернуться до пони то есть такого супер опыта нет я работал годы когда был тестировщиком я работал со сквером немножко делать запрос от базу естественно с быком допросами хорошо ты понял и еще наверное вопрос тогда по
00:09:51 - 00:11:30
поводу самих приложений до века клиентских расскажи в двух словах про функциональность этих самих приложений да то есть ну допустим там это это дашборд или это какой не там контент-менеджмент систему то есть какого рода сами приложениями интересно насколько бы сложно этом логика на клиенте было до 1 маркетинг веб-сайт второе это дашборд третье это доз с ивентами которые мир алименты дальше это тоже маркетинг веб-сайт но уже поменьше на реакции с анимации много анимации очень сложная и следующее это что-то
00:10:43 - 00:12:22
вроде бирже где много графиков где идут постоянные запросы на сервер ответ то есть генерация по картинке который можно будет скачать делается с ним а графика во времена окей и наверное закругляемся по технологиям в двух словах с как ты если опыт работы допустим там с той же консолью и забитом из консоли как с этим тебя мозги том я стараюсь работать только из консоли опять же все команды что-нибудь там может быть развернуть настроить тоже только из консоли потому что моя философия простая если ты
00:11:30 - 00:13:12
понимаешь как это работает с консолью ты понимаешь принцип работы технологии уже там нога и ты конечно можешь просто тыкать клацать кнопочки японии хорошо а в принципе наверное все и последний вопрос как у тебя с английским с английским наверное чуть похуже в принципе где-то уровень может быть переходный между а 2 к1 если брать международные стандарты я проходил тест правда он был на бесплатном сайте это не официальные заключения с дипломом так вот он показал а 2 + тут вопрос смотри то есть допустим
00:12:22 - 00:13:55
могу читать документацию написать письмо второй вариант могу по присутствуют на митинге и понять что там говорят и могу поприсутствовать на митинге не только понять что там говорят на еще я ответить хотя бы там где можно вот что-то между могу поприсутствовать на митинге и немножко ответить если вопрос не требует сильно сложно и сильно сложного объяснения с технической точки зрения то вполне да я могу на него ответить но если прям нужно что-то разложить по полочкам я начну тупить троить и заикаться хороша в принципе на этом мы
00:13:10 - 00:14:37
заканчиваем нашу первую часть по поводу английского лично я в принципе когда я беседую я обычно в принципе про английский не спрашиваю потому что я когда там сучара my dad взаимодействовать первое это они узнают допустим по уровню английского и там не знаю пару предложений на английском могут перекинуться с кандидатом вот поэтому эту часть мы сейчас оставим как бы перейдем более интересно нам это технической части поводу фидбэка допустим по первой части чтоб потом не забылось да у меня вопросов никаких нету
00:13:54 - 00:15:12
отлично все ответил что меня интересовало по поводу резюме твоего у меня есть пожелания по по исправлению надо ему думаю мы это сделаем вообще в принципе отдельно может мы сделаем нас на канале рубрику с разбором с резюме в принципе которому обновить его и если да то есть но если вкратце то чего мне не хватало это отдельного списка тех технологии с которыми ты работал на то есть прям вот как отдельный технолоджис дальше у тебя идет описание твоего опыта работы по поводу описания опыта работы по каждой
00:14:36 - 00:15:58
из как бы должностей которые у тебя были каждой компании каждой компании тебе необходимо более подробно описать расписать чем именно ты там занимался в том числе и quay вот в свете того как ты сейчас рассказывал это мне да то есть ты рассказывал в свете того что будет как бы полезно знать именно для должности фронтенд разработчика да я работал с постным там отлично то есть я я для себя уже понимаем он уже умеет работать способа нам потому что в принципе я достаточно часто с ним работаю просто как фронтенда мне надо проверить как там
00:15:16 - 00:16:29
сыпем сыпем что-то как взаимодействует микро сервисами между собой я в чистую отправляю туда запрос и отлично окей он писал на java script этом сами тесты супер он уже то он уже там же сам работал то есть это не так что у него через год работы на последнем месте только снг самому же раньше начала работать вот эти все моменты необходимо расписать для того чтобы читает твою резюме уже было понимание ага нам этот человек подходит потому что у него там как бы достаточный опыт допустим работы с тем же весам дауни опыт работы там с
00:15:53 - 00:16:58
тем же реак там там чуть поменьше наук нам подходит вот то есть эти моменты должны быть сразу там освещены то чего не хватало да хорошо тогда принципе переходим ко второй части нашего собеседование переходим к технической части итак начнем с 1 задание расскажи пожалуйста что будет выведена в консоль после того как мы выполним этот код и так значит у нас бар имеет функциональной область видимости также она хостится то есть поднимается поэтому мы увидим в консоли после выполнения кода то что а ровно 10 из 10 расскажи пожалуйста
00:16:26 - 00:18:20
чуть подробнее про хостинг как как это происходит что именно происходит когда у нас есть хостинг джесс но это очень оптимизированный язык сам по себе и движок jira скриптовый и при первом проходе он по моему jit компилятор идет just in the wind компилятор он проходит по всему коду сверху вниз поднимать берет все объявления переменных inception declaration и поднимает их выше по ходу в самый верх где они просто инициализируются но им еще не присылаются и какое значение из панчин declaration хорошо давай тогда
00:17:27 - 00:18:58
более подробно посмотри по вот этому коду который у тебя есть как будет произведен хостинг чему будет равен а и короче надо подумать потому что ответ не верный у тебя вышел хорошо подсказывала уже прямо значит что мы видим мы видим объявление уж прям прям вот не знаю коммент написать как как будет задекларированы тот твой а чему он будет равен немножко не понял про комментарий ну ты можешь коммент написать то есть там строчку с комментом как будет все задекларировал а ну да да здесь будет а будет равен 5 так разве
00:18:13 - 00:20:06
вот это объявление на 7 строке они должны а тут блок есть его ну по логике по правильному если я правильно понимаю и область видимости вара товар у нас должен подняться вот сюда точно тот он поднимется и он будет равен и это условия блока не выполнится можно вот так сделать их тогда у нас не пройдет и просто консоль ничего не будет увидена да это это верно теперь это правильно что я чуть-чуть тормознул я торопился следующую задачку что будет в этом случае выведена в консоль в первом и втором так теперь торопиться не
00:19:13 - 00:21:33
буду буду размышлять вслух значит как я и говорил раньше у нас war поднимется выше и в перемены под дни под именем а будет присвоен define после чего в консоль лоб у нас выведется значение ondemand присвоено присвоится новое значение 7 дальше когда мы дойдем до пятой строчке и у нас консоль лоб попытается получить доступ переменной п она у нас объявлена через life он выкинет ошибку сейчас точно не скажу будет по-моему type-r то что мы пытаемся получить доступ переменной выше ее инициализации выше и объявления
00:20:23 - 00:22:09
и все пойдет с ошибкой а если я контом напишу вместо лета это ничего не поменяет то есть будет тот же эффект добыты тот же эффект окей хорошо переходим к более интересным вещам тебе необходимо написать функцию которая называется young инкремент который будет вести себя следующим образом когда я ее вызову она вернет один когда я вызову второй раз она вернет 2 при этом важный момент в глобальном скупе ну то есть вот что это вот весь колб который мне есть мне должна быть задекларирована только young
00:21:14 - 00:22:34
то есть я не могу здесь сделать там например там лет каунтер dade county то есть такого не должно быть единственной переменной который мне нужно остаться в глобальном скорбь и это young как такое сделать так но можно попробовать через замыкание значит вот это у нас не строгий режим здесь у нас сейчас не строгий режим так попробуем написать бонус нечего будет принимать значит но тут мельница лидируем переменную присваиваем присваиваем ей изначальное значение счетчика по дефолту поставим 0 пока других требований у нас нету чтобы мы
00:21:56 - 00:23:38
начинали сколько-нибудь цифры не пустят нас мы мы начинаем с нуля ну смысле когда ты первый раз вызовешь кинг тебе необходимо вернуть единицу это единственное требование так и значит в возвращаемым значением и будем ritorna каунтер наш плюс один поэт форматирование 4 4 пробела стоит из лесу просто так смотрим что у нас есть у нас есть функция внутри которой доступно переменная кантер возвращаемые значения счетчика + 1 должна работать смотри давай вот первый раз я вызываю эту функцию что что происходит рассказываем
00:22:57 - 00:25:18
и что будет возвращено так у нас значение к утра 0 а вот вот что можно сделать и я понял мы можем вернуть функцию которая увеличит наш счетчик на 1 мы же можем пользоваться вспомогательная функция правильно пожалуйста ну то есть до тех пор пока у тебя в глобальном скорбь и всего лишь одна переменная пожалуйста допустим так и мы глаза им так теперь надо избавиться от helper а то есть ты в принципе все правильно написал вот теперь твой код будет работать то есть ты действительно сделал замыкание тут а то как бы что изначально
00:24:07 - 00:26:20
сказалось что необходимо сделать для того чтобы решить эту задачу но теперь у тебя в глобальном скопища с две перемены у тебя есть young у тебя есть helper функция которой ты просто берешь и вызываешь так можно избавиться вот сейчас от от переменной в глобальном склоки который называется helper ну наверно мы можем воспользоваться ими dead lingo faction экспресса нам так мы вернем так вот вернем тогда как сложными сдаёшь очки так можно сделать анонимной тип и у нас должно работать ответ неправильный ну как опять же
00:25:14 - 00:27:13
подсказываю сейчас ход мыслей правильный но ответ неправильный потому что твой вот этот рекорд function eng этот young нигде кроме как внутри твои функции young доступен сейчас не будет то есть сейчас у тебя в глобальном скоб и вообще нету никаких переменных то есть у тебя выводится сейчас отрабатывает этот код который возвращает функцию который никуда не присваивается то твой и мидле immediately in вал фарша твой efi отработал вернул функцию ноты и никуда не присвоил и у нас должна быть только тебе надо что
00:26:42 - 00:28:03
будет ну как бы я должен young вот вызвать здесь еще раз вот это вот как бы efi возвращает правильную функцию но и и никуда мы сейчас не присвоили то есть мы можем просто объявить переменную допустим функция у нас вызывается возвращает нам новую функцию которая записывается в функцию young ниже по ходу оно вызывается увеличивая каунта теперь это будет работать ваши нервы шалят окей итак у нас есть вот такой вот код что будет выведена когда мы его запустим и так что мы тут видим мы видим объект у которой есть это даже
00:27:23 - 00:29:33
все так есть у нас set time out он пойдет тоски и выполнится у нас через заданное количество миллисекунд через секунду до 1000 1000 миллисекунд выведет он нам из эй но и этот объект уже будет а он же не создает у нас область видимости литерал объекта поэтому у нас выведет по-моему он define дам ему виндового пытаемся спросить что-то кореей и не найдет этого просто хорошо а как сделать так чтобы он не вывел 42 какие есть варианты можно взять нам стрелочным функцию либо же за какую стрелочный функцию где она должна быть здесь или
00:28:36 - 00:30:22
здесь исправь сейчас так чтобы она заработала у нас должна взять свой контекст из из верхней области видимости поэтому поэтому сейчас я подумаю еще раз хорошо эта функция возьмет у нас концессий возьмет свой контекст негласное правило слева точки это будет объект после чего придется нам set them out так принципе попробуем если будет вот так стрелочная функция должна будет взять контекст о родительской функции и это будет у нас сыма вызываем не объекта да вот наверное так должно быть это правильный ответ
00:29:31 - 00:31:30
хорошо а теперь представим себе ситуацию что давай за но сейчас я хотел control и сделать а давай себе тебе теперь представим ситуацию что мы не можем пока что сливочную функцию использовать какой если способ не из есть шесть решить ту же самую задачу да конечно мы можем немножко skip тереть поднять нашу функцию чуть-чуть наверх я пожалуй назову ее доброй традиции holder и мы можем забанить контекст нашему helper у то есть использовать метод функции point первым аргументом он у нас принимает контекст
00:30:42 - 00:32:36
а какой к никакой ну ты сама должны написать сюда то что будет контекстом то что будет за сам мы жестко говорим что он вернет метод бант вернет нам новую функцию у которой контекст будет уже вот этот вот отжиг и теперь должно быть правильно большое ладно 1 1 с бандам начали говорить за bine давай мы еще тогда вот такую задачу решим это правильно давай решим вот такую задачку но секундочку мы пытаемся за балдеть стрелочные функцию вот во второй строке получается и этого сделать нельзя по моему документации было что стрелочным функция
00:31:46 - 00:34:09
нельзя применять не тот bine поэтому в первый раз мы получаем сумму нашего 7 плюс 12 это в 19 будет на этой строке вы fix выплюнет ли он нам ошибку нужно проверять честно не могу сказать да давай давай сделаем вот как пока что я сделаю вот такую вещь то есть мы сделаем вот так представим себе что вот так написано я понял у тебя есть вопросы к стрелочным функциями банда ok для начала мне просто интересно сейчас бандам разобраться потом перейдем обратно к вопросу стрелочной функция поймал вот в таком варианте что будет выведен
00:33:01 - 00:34:48
когда мы вызываем fix x так первым аргументом и перед m-com контекст но мы нигде его не используем ходе и первым аргументом это значение были у нас будет 10 десяточка залетит и получается выполнится они там по порядку по моему будут приходить и fx выполнится как результатом будет 17 теперь возвращаемся к вот этому варианту стрелочник это стрелочной функция открываем консоль запускаем и видим что все отлично работает хорошо теперь следующая задача будет у нас это же больше сейчас немножко поговорим про алгоритмы
00:33:59 - 00:35:59
я бы в базовом варианте представим себе что у тебя есть массив со словами твоя задача написать функцию которая на вход принимает массив с фруктами а на выходе возвращает нам другой массив который отсортирован в котором есть только уникальные наши фрукты и они отсортированы в порядке от большего к меньшему то есть те которые чаще всего встречались и тут начали те которые реже всего встречались идут в конце на выходе у тебя получится вот так вот у нас банан был больше всего на тусе сейчас без кавычек уже напишу потом был
00:35:04 - 00:36:42
у нас два раза грейпфрут и в конце у нас остался оранж вот то есть это то что мы должны получить на выходе а здесь ты пишешь свою функцию так сразу спрошу про ограничения можно ли использовать объекты можно есть up to you так значит функция принимает нас рей и что мы делаем мы должны значит первым делом избавиться от всех повторяющихся элементов я предлагаю так как ограничение у нас нету предлагаю воспользоваться из объектом сета и создать массив с уникальными элементами unit usi по моему если ваш правильно
00:35:53 - 00:37:46
пишу мы говорим что это у нас будет массив из предам мы распределяем результат выполнения придут от создания нового сета куда помещаем наш первый отлично решаем вопрос с сортировкой предлагаю тогда воспользоваться тоже струйным методом сорт значит и наверное будем сразу же возвращать результат наш метод результат сортировки ищем return и их конечно сомнения что я правильно пишу так метод массива сорт у нас принимает на вход функцию callback а точно у нас же идет не по алфавиту а по встречающимся элементом сколько раз
00:37:06 - 00:39:41
они встречались вот оно в чем хорошо немного меняем тактику тогда воспользуемся наверно радиусом функции reviews on не будут думать как назвать примерную сделал так радиус принимает точно также функцию callback и мы можем сказать ему финальные наше значение наверно я буду хранить в объекте пока что значит что мы делаем мы забыл обо аргумента который принимает это аккумулятор и текущее значение так пробегаемся reviews on и смотрим аккумулятор если у него сейчас вот индексом возьмем индексом наш текущий элемент они
00:38:27 - 00:40:34
индексом а элемент свойства вроде как правильно говорит и проверяем проверяем на вдыхаем или 0 + 1 возвращаем обязательно не забываем про аккумуляторов так тут мы имеем объект теперь где у нас количество всех банана у нас будет получается с индексом 3 4 грейпфрут 2 и arrange один так чтобы себя тоже не запутать из объектов как мы можем это забрать и превратить в массив можно пройтись циклом for win и мы воспользуемся методом кодекс entries который возвращает на связку ключ-значение из нашего объекта так и я
00:39:45 - 00:42:31
создам пожалуй черный перемена что это пустой массив и на каждой итерации цикла мы будем тушить вырезал вырезал наша наш и по итогам так проверяем пробегаемся по массиву возвращаем ключ-значение мы получили до должно сработать хорошо тогда сразу наводящий тебе вопрос ну вот мы сейчас не гарантирую чем мы сейчас получим с тобой объект в котором в случайном порядке находятся наши entries отдельных где происходит само сортировка по ряду я от большего к меньшему я ее пока что не вижу здесь да я забыл он же нам не
00:41:26 - 00:43:49
гарантирует порядок этот ключей так хорошо тогда вернёмся к другому варианту будем думать у нас есть объект наш которым ключ это название нашего фрукта и значение у него это то что мы должны получить да с этим посложнее так что мы можем тут использовать чтобы пробежаться по объекту так так так вот так в принципе есть одна идея а мы оставляем только уникальные значения и они должны быть в порядке в котором чаще всего встречаются но чаще встречается идут начале массива которые реже встречаются ведут в конце
00:42:44 - 00:44:36
так а если мы решим задачу просто блок и возьмем два цикла for [музыка] будем решать как говорится блог я наверное выделю отдельную переменную назову ее line ro будет нам говорить ай да и и перед плюс чтобы мы не запутались вот наша переменной так мы берем первый наш фрукт это korn сейчас секундочку надо подумать как это лучше сделать обе я гарант элемент скажем что это у нас с индексом и но это попробуешь вначале попробуйте рассказать как ты это будешь реализовывать прежде чем реализовывать допустим вот у тебя есть два цикла да
00:44:15 - 00:46:16
рассказывай что делать на каждом этапе но на 5 запускается у нас внешний цикл мы получается создаем новую переменную которую перемещу помещаем текущий элемент массива и идем дальше во внутренний цикл провалимся туда и внутренним циклом я хотел попробовать перебор просто пока мы прошлись по каждому элементу и сравнили совпадает ли он у нас с выбранным элементам и дальше есть проблемы но из такого что это надо наверное создавать еще несколько переменных это решение тоже не очень плохое не очень хорошие вернее решил
00:46:19 - 00:48:00
давай сделаю небольшую подсказку он тебе бы и не знаем это возможно или нет но на control эти тебе бы откатиться до предыдущего варианта где-то дело в начале объект сама идея в принципе правильно и да но вот первая часть действительно тебе поможет собрать объект в котором у тебя есть все уже уникальные элементы и при этом у тебя есть количество использования каждого из них есть тебе необходимо как-то получить массив не объекту тяги у тебя есть объект на тебе нужен получить массив с уникальными элементами
00:47:12 - 00:48:35
а потом их каким-то волшебным образом отсортировать подумай как это можно сделать и она давай начнем с первой части как можно получить массив уникальных кажется я понял но ник массив уникальных значений из предыдущего массива не у тебя есть объект теперь из объектов ну вот ты себе не знаю вот как когда проход делаешь ты пишешь там себе объект равно вот прям в качестве подсказки шоу тебя получится да здесь всегда так написать что у тебя там банана равен она на тебя равен трем если не ошибаюсь ну и так далее то есть уже
00:47:54 - 00:49:34
понимаешь а у тебя лежит в этом объекте дальше пишешь свой код исходя из того что у тебя есть у тебя есть такой объект как из этого объекта можем ли мы из этого объекта получить массив с уникальными мы можем из этого объекта получить массив в принципе как ключей так и значение мы можем воспользоваться методом отжиг в и льюс или он жидкий с в данном случае наверно нам надо объект в и льюс использовать и он преобразует этот объект в массив ключей не совсем понял ты сказал нам надо использовать объект вылез и он преобразует этот
00:48:49 - 00:50:22
массив преобразует объект массив ключей нам волю силики из надо использовать отжиг из мы используем и получаем количество линкольн и ну количество ключей написал что он напишет что получится то есть если мы сделаем ложек this у нас будет массив банана игры и значит это отжиг из нам даст и мы можем делать мужик в лес сортировка у нас как бы ну то есть банана грейпфрут его раньше то в принципе правильный ответ но они могут быть отсортированы в абсолютно любом порядке то даже мы получим наш ответ поэтому то есть может быть грубо говоря
00:49:35 - 00:51:31
там получится а раньше банана грейпфрут ну допустим мы еще возьмем вылью с наши методом отжиг values мы получим 3 2 1 тебе необходимо отсортировать массив с элементами учитывая информацию о чистоте их встречи в исходном массиве что давай давай да еще одну подсказку тоже вот смотри у тебя есть банан а здесь у тебя будет грейпфрут 2 вот у тебя есть такой объект с помощью объект кисты можешь получить массив уникальных можешь ли ты сортировать смотря на ну сортировать ключи но смотреть на количество их
00:50:33 - 00:52:45
использования так а если мы сделаем вот примерно сейчас сатья сделай давай раз мы уже пошли в эту сторону давая напишешь там subject киску сок потому что могу нас его сейчас нету носи столько какой-то темп так что то что то ты не пишешь я не вижу по крайней мере так года чтобы обновить мне тоже попробованный том что я теперь вижу все это у меня не было вот так отжиг из и передаем туда наш временный объект который я создавал так хорошо получили ключи были получили все ключей теперь что мы можем сделать
00:51:46 - 00:53:37
мы можем с нашим исходным на лишние пока что мы можем пробежаться ключами давай давай еще одну подсказку даю теперь тебе необходимо отсортировать его как мы сортируем с помощью чего с помощью функции сорт можно отлично давай вот прям прям давай так функция callback пойдем он принимает хорошо как работает sort of что что как бы необходимо возвращать что будет происходить из функций call back a sorta получается если у нас возвращается положительное число то элемент будет поставлен по большему yandex чем элемент b
00:52:43 - 00:54:42
если у нас возвращается отрицательное число то элемент b будет поставлен начал сам саранчи а раньше будет поставлен чем а я стал для тебя приходит в а и vb вот сейчас допустим мы начали с первых двух элементов к примеру до что в а у тебя лежит так в а у нас пришло это банана данным и б у нас грейпфрут получился теперь допустим да можем обратиться к нашему объекту там и сказать больше ли я понял кажется т.п. ну ты там кстати писал более сокращенную версию ты писал если не ошибаюсь с минусом решение что же можно работать здесь она
00:53:44 - 00:56:10
же числа нам не надо сравнивать там строки или еще что-то на то есть точно только надо теперь их поменять местами если ты хочешь от большего к меньшему сортировать тебе необходимо от b отнимать а точно так что возвращаюсь с моей суперсофт ничего вот так ну теперь теперь ответ будет верным хорошо хорошо тогда продолжим дальше грамм сейчас хорошо следующая задачка необходимо написать функцию которая может принимать не неограниченное количество аргументов и соответственно в результате будет возвращать 6 8 10 12
00:55:07 - 00:57:40
будет возвращать массив чисел умноженных на 2 каждая по отдельности необходимо написать такую функцию до первое что приходит в голову мы воспользуемся проезд параметрами остаточные параметр называется не очень хочу использовать псевдо массив аргумент хотя в принципе можно и песню ла нам через раз будем делать так он у нас 1 параметр она походит все наши аргументы в массив и после чего мы можем сделать просто пройтись махом по нему [музыка] взять элемент массива и умножить его на 2 да это должен быть нашим ответом
00:56:35 - 00:59:00
хорошо окей здесь ок следующая теперь необходимо написать немного по-другому необходимо написать функцию сумма на тризну ко всему function сумму здесь здесь внутри твой кот так чтобы мы могли делать пустим сумму три четыре мы складываем два числа на но передаем аргументы вот таким вот образом как это можно реализовать так это у нас кодирование мы получается преобразуем функцию с из из функций с большими аргументами с меньшими аргументами уменьшаем or ность функции нашей значит как мы это делаем мы возвращаем здесь
00:58:14 - 01:00:16
наверно возвращаем новую функцию и вот этой новой функции мы возвращаем сумму наших и плюс b на все теперь этот вариант работает хорошо и следующим этапом мы немного усложняем задачу можешь ли ты написать обновленную версию су которая может принимать неограниченное количество элементов не того чтобы закончить прием аргументов мы вызываем его вот таким вот образом у нас получится сейчас сколько 33 то есть 10 ответ здесь и да у нас получается в этом случае как необходимо модифицировать функцию сумму для того чтоб получился
00:59:20 - 01:01:21
такой вариант и так сейчас 2 секунды на подумать значит тут наверно можем взять рекурсию [музыка] так создадим внутри функции еще одну функцию что ж на сегодня с нами нгам назван тоже харпер так что эта функция должна делать она у нас должна проверить допустим вот аргументу ноль так посмотрим мы будем рекурсивно возвращать нашу функцию теперь если тип аргумента функция то нам нужно вызвать ее так так так так так и тех и наверное есть есть некоторые сомнения сейчас я просто думаю о как ты попробуй вспомнить еще
01:00:24 - 01:03:42
раз как у тебя была реализована до этого я понял тут тут сложно тут с этим сложность давать тогда я тебе дам немного другую задачу но с этой а потом подумаешь как такое реализовать представь себе что у тебя есть function которая называется су он принимает два аргумента а.б. и она у нас возвращает ритер и а плюс да есть такая функция теперь ты хочешь сделать новую функцию которая будет делать следующие call кул эйд она будет называться я это пока сейчас все удалил тебе необходимо написать эту функцию выведет теперь все следующим
01:03:01 - 01:04:38
образом ты делаешь call кул эйд она принимает первым аргументом например со вторым аргументом принимает один потом принимает два извините принимает два и на выходе я должен получить 3 если например у меня будет кстати можно было даровано сделать если у меня будет b и это все делает а умножить на b да то есть с тем же успехом тут ладно давай вот так 2 и 2 это будет 4 та блин 32 во все 32 это будет так здесь плюс это 5 до а если мы делаем умножением тепла это у меня будет здесь 6 вот то есть как мне написать теперь
01:03:52 - 01:05:36
этот кал кувейт чтобы он работал вот таким вот раз он так теперь это у нас получается частичное применение должны использовать возвращаем отсюда у нас которые у нас принимает он был тут у нас 2 вызвало получается дойдут тебя два аргумента нужно для каждой из этих функций сейчас я подумал первой функции у нас в мир и возвращается мы туда пробраться дрг наш и его в остальных функциях нужно еще раз вызвать так значит пишем аргументов у нас может быть 2 так так правильно да да то есть вот это все тут
01:04:45 - 01:06:39
не не до бесконечности тебе ли того чтоб сумму вычислительно только два аргумента можно делать на привычными функциями callback hell и тут верна и применено и так против должна работать итак смотрим мы берем вызываешь call кул эйд да а а вот нее прилетает себе кубок наш и наверное не будет лишних здесь тогда будет работать до хорошо окей давай тогда последнюю задачку сейчас когда мы вызовем вот этот вот код что будет вызвана выведена в консольки итак что мы имеем две доски у нас появляется в лук попадают значит первым
01:06:19 - 01:08:41
мы увидим собственно консоль лак с единичкой после чего мы сразу же увидим без какой-либо задержки консоль лоб 4 после чего у нас выполнится функция с этой мало там с нулем и мы увидим консоль лоб 3 и через секунду получается мы увидим этот троллоп 21432 вот принципе здесь у меня по задачкам все так то есть и давай еще у нас не так много времени осталось давай еще немного вопросов таких общих по задаю расскажи пожалуйста что такое в твоем понимании курс курс это браузерная политика безопасности
01:07:45 - 01:09:48
то есть она защищает нас от каких видов а так как крос бро xss атак и это кросс распроданы и разменные скриптинг блин забыл расшифровку вот xss атак значит работает она примерно как мы посылаем на наш сервер печати тебе запросы заголовком и [музыка] запрашиваем курс policy браузер нам возвращает домены которые разрешены которые он доверенным список доверенных доменов и браузер на эти домены может делать запросы все остальные будут запросы с данной странице будут блокироваться где эти данные пересылают
01:08:47 - 01:10:37
сервер джейсоном он не его присылает глубин это это будет фейдерах федора request a mage его то есть лари джон по-моему называется и исак домена еще тогда тебе вопрос что такое [музыка] что за запрос http с типом общин это как он там называется приплыла и уксус приплыть запрос то он у нас делает он ну из названия наверно завис этой стороны он позволяет нам настроить взаимодействие сервера то есть посмотреть политики какие у нас есть и наверно так честно это видел по прям у клуба хочется с ним не работал по моему
01:09:41 - 01:11:54
его просто сразу печали ну просто так его отключить нельзя вам автоматически отправляется браузером но окей хорошо давай тогда дальше расскажи пожалуйста что такое силен для чего нужен для чего используется content delivery network используются это значит not как было раньше наверно из этого наверное стоит начать у нас был server server генерировано html css и немного джесса и отправлял это все пользователю большая нагрузка на сервер возможны большие пики если сервер у нас допустим стоит где-то допустим в
01:10:48 - 01:12:11
северном полушарии соединенных штатов сидим на северном полушарии америке а мы находимся в китае может быть задержка вот и естественно с развитием технологии single application как когда он получались появлялись пришли сиделки они позволяют хранить данные на своих серверах и они распространены по миру равномерно что облегчает доступ к информации то есть мы получаем гораздо быстрее и они позволяют хранить в принципе можно можно наверное прям сервера там грузить но будет наверно очень дорого в общем просто не позволяют
01:11:34 - 01:13:12
нам получать контент гораздо быстрее ок хорошо и тогда последний вопрос на сегодня если у нас есть основной домен с которым мы даем наше приложение и раньше была частая практика что прямо с этого же домена у нас отдавалась куча статике типа картинки java script и так далее на основном домене у нас непосредственно наше приложение с авторизации то есть там организационной cookies и прочее вот в чем профит если мы всю нашу статику будем отделять на отдельный домен для чего это вообще делают в чем до вопрос с
01:12:23 - 01:13:59
ответом спасибо значит вся суть заключается в том что cookies у нас гоняется с каждым запросом и ну если у нас есть какие-то там авторизационные cookies и идет большая нагрузка cookies принадлежат к домену то у нас сервер получается и канал забивается сервера очень сильно страдает по этому поводу поэтому есть резонно способ отделить наши статический контент вроде картинок отдельно пределах домена и тем самым мы разгружаем просто канал разгружаем сервер перекладываем нагрузку ну в принципе тут вопрос даже не всегда
01:13:09 - 01:14:31
в разгружаю канала тут еще вопрос в целесообразности и гонять cookies когда ты запрашивает какую-то микро картиночку то есть тебя может быть картинка которая весит байты или спешка при этом куб у тебя может быть пару килобайт то есть это тоже очень важный момент особенно для мобильных я понимаю что тут надо смотреть и может быть оптимизировать в принципе количество запросов но достаточно часто кейс казалось бы ты грузишь страницу у тебя там много различных запросов гоняешь ты по сути cookies они контент
01:13:53 - 01:15:16
который у тебя есть вот ну опять же сюда еще мог бы там от себя добавить то что часто кейс это когда статика находится у нас на ни на одном каком-то статическом домене а их там несколько например abcd и ты часть картинок запрашивать а часть картинок с бы часть картинок с c для чего такое может быть поразительным у тебя одна страница да у тебя одна страница и у тебя некоторые картинки грузятся с а . мой сайт static точка com 2 часть картинок б . мой сайт статик . ну наверное мы можем предзагрузить
01:14:35 - 01:16:04
показать браузеру какие картинки мы можем начать прит загружать фоне чтобы при переходе на эту страницу они давались из кэша браузера уже повышая тем самым производительность нашел ну оптимизация это один из видов реализации ну это один из видов оптимизации но немного не про то что ты говоришь у нас браузер одновременно а зависит от браузера но допустим часть браузеров с одного домена может грузить одновременно только шесть статических допустим тебя картинки джесс и так далее ресурсов и соответственно если у тебя их
01:15:21 - 01:16:42
много то ты грузишь одновременно только шесть если у тебя там четыре экзаменов ты же там грузишь допустим уже там в четыре потока что считаю что есть с каждого из sap доменов ты можешь загрузить теперь по 6 ресурсов груси одновременно все ну а также если тебе интернет хороший то почему бы нет окей хорошо и все interviewer а теперь мой фидбэк тебе по сегодняшнему собеседованию по первой части которая у нас была это при screen я фидбэк ожидал там принципе все хорошо и действительно как бы с таким пыли
01:16:01 - 01:17:30
скринам мы бы тебя пригласили на следующий этап уже технического интервью по техническому интервью у тебя сразу как бы из общих моментов которые я заметил тебя достаточно хорошая сильная база по java script у есть ты знаешь фундаментальные моменты допустим по тем же замыканием carrera ванию что там хостингу таким вот моментом допустим с тем же иван глупом ты понимаешь как все работает почему сад тайм-аут 0 у тебя отработает позже чем там следующая строка то есть вот эти моменты мне понравились единственная вижу что даже
01:16:49 - 01:18:06
имея эти фундаментальные знания ты очень часто торопился и из за этого дела какие то ошибки вот это очень важный момент что торопиться не стоит а лучше сделать паузу дать себе время на подумать даже если это там + 2 какие-то секунды сказать длинная а можно вот или просто взять вот тебе дали вопросы не знаю там глотнул долго так слюну в это время ты успел подумать они сразу начал говорить это это очень-очень полезно по поводу мелких заданий то есть не задачки даже мелких заданий то есть у нас было там задачка
01:17:28 - 01:18:57
самая задачка 1 по поводу хостинга да и ты все понимаешь как все происходит но не правильный ответ бы просто потому что ты торопился кейт адам тут war 10 все ответ 10 вот когда начали разбирать пошагово я вижу что у тебя есть понимание того как работает хостинг как интерпретируется принципе код и построчно ты сам ответил на этот вопрос в целом на интервью опять же зависит как бы от текущие позиции но но для меня я понимаю что изначально ты ответил неправильно но дальше ты сам разобрался понял в чем где была ошибка то есть ну
01:18:13 - 01:19:39
как бы с моей стороны я это засчитаю как небольшая подсказка вот но это не будет не правильным ответом на беду позицию в целом такое может быть на senior позицию я ожидаю что такие задачи решаются ну как бы без и без задержек а как семечки щёлкаешь вот дальше у нас были задачки с летами конскими ворами там все было ок дальше была задача про янг и в целом опять же ты говорил все правильные слова ага нам надо сделать замыкание ты потом уже сам дошел до efi я никак не подсказывал здесь практически но дальше
01:18:55 - 01:20:26
какая то вот непонятка было то есть опять же написал код прежде чем как бы говорит да все все типа всего пройтись еще раз все будет происходить окей мы вызовем эффект efi возвращает функцию и все как бы и вот она возвращает функцию которая уходит в никуда да то есть типа пустоту вот то есть еще раз пройдитесь по своему коду посмотри как как будет выполняться этот код и что будет в конце и тут к тебе придет осознание того что а если вообще никуда не присвоила таифе и ничего не будет работать поэтому здесь
01:19:41 - 01:21:00
ну как бы это эти важные важный момент не торопиться проверять свой коды прежде чем говорить что мы идем дальше дальше были задачки на контекст и там в принципе практически все верно изначальный ответ с ирфан кхан был правильный есть понимание как работает контекст дворов ангсана вы все там там в принципе более менее все ок вот дальше у нас было задание с фруктами с алгоритмами и вот здесь вот было все а посложнее опять же хитрость момента заключается в том что ты начал с правильного решения но ты начал сразу
01:20:21 - 01:21:46
писать код моя большая рекомендация не писать сразу код а вначале попробовать озвучить что именно ты будешь делать продумать в голове как ты будешь решать это а потом только при приступать к написанию кода самый 0 этап про это я постоянно говорю в видео задачками собеседования это задать вопросы по поводу того какие у тебя будут входные данные и какие у тебя могут случиться эти кейсы в данном случае я не собирался делать каких-то подводных кораблей типа там не знаю передать внутри этого массива еще числа
01:21:03 - 01:22:21
функцию on be found in all вот но такое может быть то есть в целом вас есть пример массива который как бы вам передается но как бы очки из и никто не не отменяет если вы понимаете что да там должны быть только название фруктов только строки но на всякий случай спросите а мне нужно учитывать кейс там будут только строки я могу идти по не делать дополнительных проверок сам скажет да это будет только большим вам плюсом на то что вы гонки по думает о входящих данных потому что в реальных проектах к вам как раз придется учитывать эти все
01:21:42 - 01:23:08
моменты как бы такие моменты то есть особенно когда это пользовательский ввод до пользователи вводили там список своих покупок ну допустим и вам теперь надо собрать допустим весь класс отправил школьников отправил какие фрукты вам необходимо закупить ну как бы и кто-то написал банан кто-то написал банан с большой буквы а надо ли мне учитывать разные регистр вам скажет например но нет примера во входящие данные обрабатываются а потом вы задаете вопрос а там может быть он define например или вообще число ну в школьник
01:22:26 - 01:23:38
вел не то надо это все вам только даст плюс плюсов в корму и баллов на собеседования поэтому это учитываете момент следующий момент это то про что я говорил не прыгайте сразу писать код а вначале пытайтесь продумать весь алгоритм и сможете ли вообще с этим алгоритмом дойти до нужного результата я понимаю вас выбрасывают смо читая внутри кукурузного поля и us и ты сразу взял и побежал в одну сторону я точно знаю вот мне нужно сюда а потом выходит так вот вышло с этим типа ты взял стёр все ты вдруг понимаешь он походу и ты не
01:23:00 - 01:24:25
туда бежишь но не разбираясь куда тебе такие надо ты побежал бац и сразу следующую сторону хотя в принципе ты бежал изначально в правильном направлении джек свернул вправо там ну как-то так вышло то есть это было очень резко неожиданно для меня если бы то изначально подумал так мне как бы я буду решать ее вот так там не знаю образом в том же в кукурузном поле ты посмотрел там а солнце у нас здесь значит мне сюда надо бежать и ты понимаешь что до в целом с таким алгоритмом я дойду до конца иногда вы ним не сможете понять
01:23:44 - 01:24:54
все вот эти вот эти кейсов при решении задачи из изначально но вы хотя бы направление будете понимать и потенциально понимать да с таким алгоритмом скорее всего я найду то что мне нужно вот что мне понравилось то что ты в целом ты озвучивал все что ты писал да то есть весь свой код ты озвучивал это не было типа молчаливое написание там лишь печатается что-то то есть ты озвучиваешь это очень-очень важный фактор и большой плюс тебе на собеседовании это очень полезно вот короче с задачей в принципе
01:24:19 - 01:25:36
задача это я думаю многие узнали у нас на канале она называется классный мтс рекомендую зайти пересмотреть задачи интересны и полезны и и мною любима и дальше у нас были еще задачки по поводу по поводу курирования опять же сканированием принципе начал все хорошо но когда мы дошли до бесконечного количества этих элементов почему то вообще все стерто было хотя это просто знаешь как enhancement той задаче который был вот поэтому здесь вышел опять же перебор надо сесть дать себе подумать вот и всегда смотреть на те
01:24:57 - 01:26:29
аргументы которые передаются функции а я могу ещё раз вызвать функцию значит мне должна возвращаться функция которая принимает в качестве аргумента число самом деле сканированием я думаю мы сделаем вообще отдельное видео уже ребята просили он у меня в ближайших планах есть это такая частая тема и на собеседованиях и в принципе важно понимать как это работает вот поэтому сделаем видео на это счет вот по поводу вопросов общих на насчет курс absence и и прочее в целом об собственность мне понравилось что ты не зная конкретно
01:25:45 - 01:26:55
ответа на данный вопрос но хоть как ты наш как типа есть человек который знает есть человек который сидел в одном кабинете с тем кто знает вот примерно так у тебя собственность получилось ты как бы ты вроде как рядом был с общим сам поэтому интуитивно примерно понял про что это про что это а учитывая то что мы дуэтом обсудили курс бы более-менее правильно понял для чего вообще этот запрос у нас нужен в целом действительно это получить от сервера все возможные варианты общение с ним том числе absence нам
01:26:21 - 01:27:42
может вернуть что у тебя еллоу origin типо мило origin и запросто туда сделать свой пост и запрос на на этот адрес ты сделать не сможешь вот это то это в принципе было гуд в целом у меня все благодарю тебя за собеседование может тебе есть чего еще сказать да конечно спасибо большое за такую возможность вообще про соседа ваться ребят не спешите да не повторяйте моих ошибок все было очень круто спасибо важный момент пока сейчас я в работу ничего это просто такой действительно способ посмотреть на себя со стороны
01:27:01 - 01:28:26
опытного интерьера и ну то есть вот получить этот фидбэк естественно понять свои пробелы в знаниях возможных технологиях на и конечно вот самое главное что сейчас мне дало это собеседование это большущий пробелов скиллах что нельзя обижать вот этого трубить этого кукурузу в разных направлениях до сделал выводы конечно постараюсь быть гораздо лучше спасибо большая сергей спасибо большое подписчики да все благодарю спасибо огромное тебе я в этот раз мы делали собеседование формате записи я думаю что
01:27:43 - 01:29:07
мы дойдем до того что мы это сможем делать и в live формате для того чтобы вы могли комментировать прям в живую и сами решать те же самые задания вот благодарю что досмотрели до конца и до новых встреч алексей все успела compact собеседование получилось напишите пожалуйста внизу в комментариях понравился ли вам такой формат поддержите это видео лайком поделитесь этим видео с друзьями напишите что-нибудь хорошая для алексея поддержите его он очень старался если вам на собеседование попадались вопросы на которые вы не знали как
01:28:26 - 01:29:36
ответить то напишите об этом в комментариях я постараюсь подсказать на будущее с какой стороны лучше или правильнее заходить если вы еще не подписались на наш канал то обязательно прямо сейчас крикете подписаться и нажимайте на колокольчик чтобы не пропустить новые выпуски если вы хотели бы сами поучаствовать такого рода собеседования вы можете заполнить форму ссылочка внизу в описании еще раз благодарю алексея за то что он поучаствовал в таком собеседование и желаем успехов в его карьерном росте все
01:29:05 - 01:30:02
ребят всем успешных собеседований крутых офферов два новых встреч пока хочешь посмотреть еще интересные видео про frontend двигай сюда
01:29:33 - 01:29:51