Подготовка к собеседованию на 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 каналы и чаты
Транскрипция видео:
это сейчас будет обидно окей ладно я постараюсь быть уважительным java скрипта но ничего не обещает посмотрим на легко thing юрская это такая часть которая меня во front-end совсем не возбуждает я скажу это честно при этом возбуждает интерфейсы есть у тебя есть проблема и ты хочешь решить при помощи регуляров значит у тебя две проблемы все так ой слушай хорошо что я спросила твой вообще в другую сторону думал [музыка] всем привет и добро пожаловать на наше публично интервью она у нас сегодня будет не самая обычная потому что во
00:00:00 - 00:01:32
первых нашим сегодняшним гостем будет очень интересно разработчик и во-вторых по ходу самого собеседования мы будем раскрывать какие-то тайны с точки зрения со беседующего какие-то фишечки подсказывать и делиться секретами как проходить собеседования и так давайте познакомимся меня зовут ира я работаю в крупный аутсорс компании и грубо говоря грибу сеньором на галере в разработке уже очень давно занимаюсь контентом всем вот этим вот в общем-то обо мне наверное и хватит и так дмитрий расскажи пожалуйста себе
00:00:49 - 00:02:11
все что же все что хочешь окей привет ребят меня дмитрий зовут мне 35 лет в программировании я меня назвать новичком наверное сложно потому что сейчас я работаю backend разработчикам четвертый год я работала пишу на питание в javascript для меня ну наверное с этого года я начал знакомиться более-менее серьезно вот поэтому я чувствую себя совсем не скажем так не так как я чувствую себя когда мне нужно решать задачи при помощи питона собственно с программированием наверно я годы с 11 познакомился начинал
00:01:29 - 00:03:08
спички там какие то вещи писал для себя автоматизировал работу и собственно потом узнал про питон и что ты так нам напрокат вам говорю как будто я пытаюсь здесь продать как будто беседуя на питоне я не буду скрывать чтобы это нравится мне больше чем java script и меня дико горячего когда я переходил на java script наверное было бы грамот не делать наоборот как пересаживаться с шестерки в машину получше вот а мне как будто бы я наоборот дауншифтинг вот работает сейчас будет обидно но окей ладно я постараюсь быть
00:02:19 - 00:03:29
уважительным java script у но ничего не обещаю такие работы много и котики все я заработал уже там эти задачки со звездочками окей работу я в главном радиочастотном центре это такая аббревиатура которая солидно круто звучит на самом деле это во-первых государственная компания где мы занимаемся вопросами мониторинга средств массовой информации то есть кто-то должен следить за тем чтобы в новостях в социальных сетях на сайтах не было всяких нехороших вещей типа мото там оскорбление так далее обычно когда ты
00:02:54 - 00:04:12
говоришь что ты работаешь главную отечества там центре то люди более менее знающие понимают что это один из подрядчиков роскомнадзор и и начинает говорить все понятно это выйти самые которые блокируют телегу и потом становится сложно людям объяснять о том что ну падальщиков у роскомнадзора много и мы делаем работу которую в принципе я могу не скрепя сердце называть наверное полезной обществу более того тот же самый telegram это корпоративный messenger который мы используем как бы и мы этим не занимаемся поэтому когда
00:03:33 - 00:04:39
обычно мы едем на конференцию то на базе как пишем просто аббревиатуру в губ горчицы хер знает что это значит главное чтобы нам не было претензий по телеграм такая вот история вам реально очень интересно потому что последнее время очень много хейта в сторону аркаим естественно никто не будет копаться чем ты занимаешься полезным не полезным это уже как климову и лесенка очень здорово что мне кажется мы здесь сейчас более менее проясняем как-то этот момент что не все органчик и плохие и действительно святитель скробот и
00:04:06 - 00:05:21
действительно я тоже считаю что не все в интернете должно существовать расскажи как она там в госструктурах слушай как там оно но как в госструктурах наверно этого как слышится так и видится но не за исключением того что главный радиочастотный центр это вот такая вот не врезаются в рамки экрана хреновина не масштабов государственного устройства махина и мы тому как бы вот такой вот кусочек который сбоку живет как бы отдельно по своим правилам у нас даже офис на боковой отдельный самостоятельный не там где обычно
00:04:43 - 00:06:07
находится самое главное управляющие так далее вещи то есть мы такое маленькое государство в государстве и соответственно это позволяет нам как то более менее спокойно себя чувствовать как по как по требованием как по уменьшенному количеству какой-то бумажной волокиты и так далее и но наверное это здорово на самом деле потому что я не знаю как например какие интерфейс кие структуры там свои продукты делают например при этом них там строгостью за сертифицирована регламентировано шаг влево шаг вправо не сделаешь и так далее
00:05:25 - 00:06:37
но есть конечно же какие-то свои нюансы свои тонкости вот о них нужно упомянуть этого получится какая реклама моделью компании за которые мне не заплатили а скажи часто слышу что в госструктурах используется waterfall никаких аджай лофта ну потому что джалла очень сложно настроить это неправда но сушей вот именно в нашей структуре нет каких-то сверху спущенных требований о том что вы должны работать именно так именно этими инструментами и никак иначе но в определенных рамках то есть мы работаем
00:06:01 - 00:07:14
по старому ну не полностью прям [музыка] скрам как он там есть в его идиоматических форме там какие-то элементы мы используем изготовлению из гибкого что-то и держа его но то есть у нас нет такой как бы у нас больше даже что мне нравится именно то что наши команды не такие довольно представленные сами себе то есть мои вольны выбирать инструменты которые мы используем там те же самые м фреймворке какие-то там технологии который нам больше подходит потому что опять же ну я тоже участвовал собеседованиях людей которых нам
00:06:38 - 00:07:46
приходят и люди которые работают вот в тех там каких-то около армейских конторах но них там бывает так что например вот там 2022 году они обязаны использовать бетон именно версии там три там . 4 потому что именно он прошел какие-то там сертификации и так далее а для незнающих как бы питон 3 4 это как бы там 45 лет назад где-то примерно то тату уровень но вот и они как бы ничего не могут с этим поделать как бы хочешь не хочешь бери ковыряйся со старыми инструментами там конечно же эволюционируют за это время становится
00:07:12 - 00:08:19
более удобнее там так далее так далее у нас нет такого то есть в этом плане как бы нам жаловаться не на что поэтому наверное скорее именно нашей истории это больше чем больше такая ошибка выжившего исключение на это раз я рассказывал здесь про это что там как бы не все так плохо потому что история разных то есть продуктовые разработки то в принципе готов ко всем процессом поэтому я как бы считаю то что хоть и с точки зрения там java скрипта для всего лишь пять месяцев назад отучился на фронт интернах и кстати и буквально вот
00:07:46 - 00:08:56
месяц назад я сдал последний проект то есть как бы но джун джуном но тем не менее скажем так у меня есть опыт работы с той стороны то есть со стороны бэкенда соответственно я же как бы общался с людьми которые нашей команде frontend дыры и я примерно не примерная проект как бы представляет том какие требования какие-то вопросы решаются то есть любом случае на каком-то языке одно мы уже будем говорить что касается там продуктов разработки так далее так далее то я могу сказать очень очень большой плюс потому что
00:08:20 - 00:09:20
часто то даже сеньором иногда сложно найти общий язык с бы киндерами особенно писать что что требуется какие структуры данных потому что иногда встречаются с тем что тебе такое приходит тебе еще нужен там кучу времени потратили пример чтобы как-то обработать эти данные до чтобы их отобразить с ними было удобно работать вот общем это это реально большой плюс теперь самый важный вопрос который меня интересует все это время почему frontend почему ты решил switch на то как а я слушаю это такой прекрасный вопрос что я сейчас немножко
00:08:51 - 00:09:55
патина время попиваю водичку эта театральная пауза суть в том что вообще сам по себе я человек именно визуалу вот и соответственно с интернетом я знаком суши наверное больше половины своей жизни там просидел к счастью к сожалению не знаю и мне больно видеть какими интерфейсами приходится пользоваться людям когда они сталкиваются с какими-то продуктами то есть в интернете как бы этого полно но еще больше это в каких-нибудь компаниях где интерфейсы и там рабочие кабинеты пишут какие-то программисты ну не для людей и
00:09:22 - 00:10:42
не знаю для кого нет и пишут ими невозможно пользоваться мне искренне жаль тех пользователей которые пользуются нашими продуктами но эти люди внутри нее как бы они подневольный они там все стерпит но тем не менее как бы я как человек который но я с графическим дизайном знакомым я одно время free-lance.ru то есть скажем так человек близки к какому-то ощущению там прекрасного хорошего опять же с точки зрения и забивайте тоже у меня есть опыт я руководил отделом одно время когда работал занимался интернет маркетингом и
00:10:04 - 00:11:04
я понимаю что такое удобный сайт что такой неудобный и соответственно мне всегда хотелось быть ближе именно вот к этой грани и где пользователи впервые на первых порах на первых подступов знакомиться с вашим продуктом с вашей программой и соответственно именно там у него уже формируется ну как это сейчас модно называть experience то есть то что он ощущать какой-то продукт хороший быстрый интуитивно понятный или наоборот медленно дерьмовый бог с ним как бы дай бог не меньше общаться поэтому мне вот и
00:10:34 - 00:11:40
хотелось постоянно именно вот из глубин бэг-энда когда ты как бы в принципе сидишь там что-то пишешь твой кот может быть замечательным принципе твой кот может быть наверное каким угодно на вот но пользователь который в итоге пользуются продуктом он же этого не видит он же этого не знает если фронт-энд при этом будет ужасный только него подруга быть любом случае как по мне это обидно потому что ну как бы тут люди стараются мы все-таки делаем для людей какие-то вещи продукты вот поэтому я собственно хочу сдвинуться вот
00:11:07 - 00:12:05
как раз к этому поближе к краюшку и работать именно там где соответственно пользователь встречает собственно эти продукты эти интерфейсы вот отсюда у меня собственно пошла это тяга именно к фронтенда вот я мано должен ответить отметить что как бы попытки java script он познакомится у меня были и до этого года до курсов текста но опять же как бы переходя из питона в java script это было как бы много более наверное эти курсы питона наверное это третья попытка моя доведенная до конца полноценно прийти разобраться может быть немножко с
00:11:36 - 00:12:51
возрастом поумнеть и понять штука бы насколько бы мне корявым жарусски не казался на опять же это моё личное мнение по сравнению с питоном опять же этой же всего лишь инструмент которым ты производишь с делаешь свою работу делаешь какие-то свои вещи и к этому можно относиться как-то более философски что я не знаю хорошо я думаю про разницу java скрипта и питона мы еще поговорим когда надо наткнемся на обливка wading скажи не страшно вот так вот с таких позиций заезжать то переходить слушай ну не знаю
00:12:14 - 00:13:21
сейчас очень модно и выражение там про но сейчас можно говорить про выгорание про такие вещи и в принципе наверно я четыре года но без одного квартала четыре года это самый длинный строк срок которым я занимался каким-то одним конкретным делом на имеет силу как профессия как именно backend разработчик поэтому я принесли могу сказать что как бы какие бы там хорошие деньги не платили сколько бы там компетенция не набрал как бы я готов с этим но перед перелистнуть эту страницу сказать как бы что там какие-то свои вещи свои
00:12:46 - 00:13:54
достижения я сделал закончил и приступить к следующему поэтому понятное дело что вы естественно первое время там явно я не будет наивно рассчитывать в катится у рынок фронтенда даже дай бог с половиной той зарплаты который у меня сейчас есть но честно говоря когда меня это не особо пугать потому что речь идет именно о том на что я трачу свою жизнь своевременную поэтому как бы и страшное на самом деле нет более наверное больше именно как-то по-английски говорят и иксайты заинтересован потому что честно говоря
00:13:21 - 00:14:33
когда я вот если кто-нибудь из зрителей или вас ездил на электричках подмосковных и покупал били их покупал билет есть вода в терминалов которые там вот стоят господи это кошмар я когда первый раз подходил к этим терминалом я человек как бы с техническим образованием я человек знакомы с компьютеры с интерфейсом я нихера не понимал что нужно нажимать чтобы купить сраный билет но так так так нельзя делать на так не вы так невозможно если я могу как бы со своим там опытом со своими видениям хотя бы немножко улучшить на таком примере то
00:13:58 - 00:15:10
чем пользуются люди каждый день на что они вы вынужден тратить время как бы представьте обычного человека который там много просто там не знаю кем угодно работает не а хищником как ему с этих с этими инструментами ковыряться если я могу это улучшить как бы то я считаю то что это правильное направление это потрясающая мотивация на самом деле я поражена честно я бы я тебя уже взяла просто за мотивацию потому что я вот ну я прошла пути от лидов и и сеньоров и прочих и очень много ходило тоже людей
00:14:35 - 00:15:36
вот эти вот пресловутые горящие глаза я очень люблю турниров у синьоров уже это не так конечно выраженных и редко встретишь ее раз горящими глазами но вот у junior of это это значит мы сработаемся ты подожди меня хвалить мы еще бы технически но я палю мотивацию это это цветного это важно очень важно заниматься тем что тебе нравится это будет приносить удовольствие поговорили про интерфейс и скажешь версткой что-нибудь уже уже делал я такой moda проекте естественно да там power стал что-то да смотри верстка это
00:15:05 - 00:16:15
такая часть которая меня в front индии совсем не возбуждает я скажу это честно при этом возбуждает интерфейса этой серии за да это такое немножко сложно но есть мне в первую очередь калита что вообще сам фронт-энд опять же в отличии от того же питона с которым я хочешь не хочешь провожу параллели как явно так и не явно в этом плане ну просто потому что это мой опыт я должен с чем-то сравнивать как иначе я буду строить свое мировоззрение это такая вещь которая вынуждена собирать в себе все те вещи
00:15:42 - 00:16:48
которые были там 15 лет назад там не знают 10 лет назад они не могут просто напросто взять сделать мы выкатываем новую мажорную версию несовместимую с предыдущими где все сделано классно красиво здорово интуитивно понятно не можем мы тащимся за собой мы тащим за собой наследие html протокола который там был каком там году в 90-х годах был и делом и хочешь не хочешь мы вынуждены как бы с этим бороться с этим считаться то же самое про css и так далее несмотря на его современное развитие всех этих
00:16:15 - 00:17:17
технологий все равно купит мне такое ощущение как бы что мне больше всего от горячего что я как будто будто что-то такое вот сажусь в машину и отправляюсь в 70 где сидят такие люди в толстенных стеклах за огромными моей фрей нами мы фреймами и туда короче без компьютерной степени докторской просто можем даже не приходить и от этого мне горячего когда и видео подходы которые как бы ну больше для людей рассчитаны как бы питон как-никак все-таки такая более человек ориентированное что ли не знаю история
00:16:47 - 00:17:49
вот поэтому такая популярная вот поэтому это я про верстку начал издалека вот йоркском не как-то не особо почему потому что блин казалось бы ты сталкиваешься какой-нибудь простой истории мне нужны отцентровать блок посередине господи ну это такая очевидная задача что на нем должно быть просто настолько очевидное решение что я даже должен как пользователь пришедших первый раз я даже наверное должен заглядывать документацию это должен как-то интуитивно абсолютно не нихера вот тебе раз который не работает вот
00:17:17 - 00:18:17
тебе два нас так overflow рецепт который будет работать но там где-то там еще с другого стороны косяка вывезет или что нибудь такое и как бы блин ребят и и это как бы вот ведущий технологии мира как бы но не знаю по крайней мере фага еще привет кроссбраузерности вот это все ой слава богу я сейчас со беседу с двадцать втором году они на когда это тут история была когда нужно было еще там еще на 4 браузерах это дело протестить выпилить что танкиста кастилии накостылять вот такая история честно gaga мотивирует на
00:17:47 - 00:18:50
вот поэтому насчет верстки ну конечно же хочешь не хочешь я понимаю что придется что не столкнуться в профессии frontend вот ну как бы это та часть которая который сделать нужно а некоторые были дело с удовольствием вот такая озерске нас есть куча опять же инструментов которые украшают это все какие-то фримаркет и щупал у нас основной css фреймворка это bootstrap который использовался в двух из четырех проектов наш текст лети и соответственно про bootstrap я не могу сказать ничего плохого это классно
00:18:19 - 00:19:24
здорово это как раз гораздо ближе к тому моему представлении как должен выглядеть инструмент который именно нацелен на то чтобы сделать какой-то продукт а не утонуть в глубинах там реализации и так далее так далее но опять же постоянно как бы только только тебе нужно сделать какой-то шаг в сторону от того что предусмотрели в будет strappy или то например в том же самом реакции bootstrap но для реакция you там начинается господи гугле не на stackoverflow какие то вот такие вот решения на три страницы и так далее так
00:18:51 - 00:19:59
далее вот поэтому это здорово да я но для меня это не особо такая панацея а так быстро как бы про остальные четыре там слышал но вот про шаблонизатор и для чтимых как бы но опять же такой в целом скорее как кругозор sky развитие но bootstrap до достаточно популярная штука а скажи какие анимашки ты делал потому что нет такой маркон я не ваших знаком не про фреймворке анимашки никто не заглядывал я но со стандартными которые сейчас появились там недавно все эти транзисторы не меньшими как то так вот
00:19:26 - 00:20:36
это делал вот а так как бы анимация ну честно говоря но опять же с отвечу про свой на прямой свой вопрос и потом естественно засыпается сверху своим и субъективным опытом как обычно основные вещи пониматься я представляю соответственно какие-то анимации которые предусмотрены в будут strappy но там те же самые ладдеры спиннеры там я не знаю какие то еще другие вещи файги там так далее с этим да мы сталкивались как бы с этим ok но опять же последнее время может быть я старше становлюсь и просто становлюсь таким консервативным рычащим
00:20:00 - 00:21:03
битком но в интернете слишком много анимации на мой взгляд ну not not слишком много вот ребята я больше наверное времени жду пока анимация закончится особенно если ты работаешь с каким-то инструментом какие-нибудь кабинетом там всю всю свою весь свой рабочий день но я не завтракаю жизни своей трачу просто на то что посмотреть как этот вот красивый логотипчик покрутился перед тем как мне показали форму для логина воды не знаю мне от этого кайф от горячего поэтому анимации как бы такая вещь которая типа
00:20:32 - 00:21:32
нужно знать поэтому согласно скажи я с какими-нибудь дизайнерскими инструментами ты знаком фильмы скетч ну в смысле что тебе пришла дизайнер пакет да ну начнем с того что я женат на фотошопе наверное с 9 своего класса господи дай бог памяти какие-то когда начала двухтысячных то есть опять же то как выглядит изображение мне прекрасно знакома ну и соответственно пищи отсылка к тем временам когда фильма не скинула с пьедестала первенство инструмент для создания макетов queen был photoshop но тем ни менее из фильма
00:21:01 - 00:22:35
я тоже знаком ну опять же как бы я там какие-то курсы смотрел пользовался науки примерно представляю как там это все дело вылезает вот я не особо скажем так могу сказать что есть такой опыт когда вот мне прислать какой-нибудь там лендинг макеты когда когда конечно никакого реал разбирал там чтобы понять представление о структуре так далее вот ну скорее так более опять же для эрудиции общие представления и вот здесь опять же такой нюансик я сейчас эта болтология разложу просто чтобы понимать представление о
00:21:49 - 00:22:52
том почему я иду именно во front-end потому что казалось бы я говорю про интерфейса да типа нотки и нравится интерфейса ну так иди в ее x его дизайнеры и рисую своей там эти кружочки прямоугольнички квадратики на вот я вписывался год назад или даже полтора в обучении от яндекс практикума как раз именно по этой специальности я был очень недоволен как бы да простят меня там те кому это понравилось не форматом обучения не такими вещами как бы там ну как организация и так далее так далее вот и тут как будто нужно
00:22:21 - 00:23:28
понять то что якобы человек то больше технические ну раз я программист наверное скорее так вот все-таки дизайн и дизайн интерфейсов это в первую очередь конечно дизайн интерфейсов мимо дизайн то есть это такая вещь такая именно творческая художественная то есть там нет определенного да или нет там нет конкретики там нет красоты логике которую ты можешь найти в программировании как бы которая ну грубо говоря либо работает либо не работает там это больше какую историю ты сможешь продать или не сможешь продать вот и
00:22:54 - 00:24:02
поэтому скажем так вот я и из той крайности и из бэг-энда глубин бэг-энда из крайности именно быть и дизайнером интерфейсом такой вот золотую серединку как мне кажется нашел который это именно и называется фронт-энд разработкой в принципе да у нас есть алгоритмы у нас есть и всякие красивые штучки часто вы не часто иногда мы работаем без дизайнеров и все строится чисто на нашем собственном понимании прекрасного до общем я тебя прекрасно понимаю в этом плане хорошо мы в принципе неплохо так очень
00:23:28 - 00:24:40
мне кажется поговорили про опыт про всякие мнение прочие давай немножко к теории перейдем по фронтенда есть основа основополагающие понятно что там все любят создавать вопросы просеять и вот это все я очень люблю задавать вопрос про то как работает браузер как отрисовка мы видим сайт то есть пользователь заходит на страничку у него что-то там показывается вот как это все происходит и может что-нибудь рассказать про это смотри давай чтобы я в правильном направлении начал мыслить мы сейчас подразумеваем то как отображается html
00:24:04 - 00:25:18
страница со скриптами да вот примерно в этом направлении или про то как там на движок браузеры построен изнутри там на всех нас есть эти два про движок браузера нет про то как он он же получает да ну практически чистый строки как он эти строки преобразовывает в формочки какие то какие процессы происходят как как вот как данный си создан накладываются на вот эти квадратики как вот вот оно все происходит окей давай начну откуда я представляю стоило бы начать а ты меня если что поправляй поэтому потому что я легко
00:24:41 - 00:25:55
могу ехать некуда к нужно окей браузер это наше окно в мире в мир интернета до сейчас по моему говорят что написать браузер сложнее чем создать операционную систему я принципе готов это поверить ok первоначально как бы браузера tor browser что требовалось получить как тотально сказал строку который является html документ даже обычная строка разметочку своей собственной соответственно он этот и чтимый документ мы сейчас вот самый простой ти и смотрим просто тупо построчно проходит смотрит какие там теги выбили не выделены там
00:25:18 - 00:26:30
естественно работает колоссальное мне кажется по сложности история под лексической парсинга это вот всей истории там какие там деревья и так далее сложные вещи и соответственно он эту строку преобразовывает в дом дерево собственно это иерархия которая состоит из наших тегов точнее из элементов которые в тайге окружены и ну там еще там куча нюансов ну грубо говоря так получается такой вот дерево такой дом дом дерево да действительно окей это чтобы касается сам простого и сам простой истории когда у нас просто видно
00:25:54 - 00:27:17
html к есть окей насчет все с с а соответственно кроме когда мы открываем страничку же по современен а который весь не только просто штеменко прочь и еще там какие-то дополнительные скрипты или стиль и соответственно браузер он параллельно все это дело начиная загружать когда он загружает css-файл он естественно портит его находит по тем правилам после с селектором те элементы на которые мы хотим повесить какие-то определенные свойства это добро пожаловать и нерсес с это дело производит соответственно когда
00:26:36 - 00:27:42
нам на медленном интернете мы сначала даже можем застать эту историю когда мы сначала увидели только головы html составляющие то есть просто контент и потом раз произошло что-то красиво тебя шрифты старый нормальные как бы там какие то там появились форматирование и так далее так далее вот это что касается с с той системой у нас для контента css для придания этому контенту формы наверно свойств тоже окей вот и соответственно есть у нас скрипты и java script для придания как изначальной интерактивности
00:27:09 - 00:28:25
страницам соответственно если внутри html или есть какие-то скрипты browser также подтягивает и их там есть разные способы как в какой последовательности их их запустить указать соответственно и тогда в дело вступают именно эти скрипты которые там ходят куда-нибудь по сети меняют какие-то там элементы что-то там короче начинают делать вот в этом направлении до того да все правильно а скажи как задать последовательность выполнения скриптов кольта классная история будучи 35-летним и старичком я вам расскажу как
00:27:46 - 00:29:11
было да и как происходит сейчас в общем раньше была какая история была такая рекомендация если ты например хочешь воткнуть на свой бестолково никому не нужный сайт какой-нибудь счетчик какой-нибудь там рекламу или плачущей и тощую такую штуку там обычно питала писалось рекомендация типа размещайте этот скрипт в конец body перри закрывающим тегом баги соответственно для чего это делалось это делалось по по следующим причинам во первых как я уже упомянул браузер читает html-файл построчно и если например
00:28:28 - 00:29:44
представим что какую-то порцию html и мы прочитали распарсить или по заложили в дерево и здесь посередине например нас какой-нибудь скрипт находится то что браузер делает но при прочих равных он берет бросают все то что делал до этого и начинает выполнять скрипт но сначала нам загрузит начнет выполнять его и прикол в чем том что если это скрипт во первых но если он тяжелый соответственно пользователь не увидит а оставшиеся контента он вообще как бы потеряет контроль над браузер наставить языковым
00:29:07 - 00:30:12
это это раз соответственно а во вторых если этот скрипт должен взаимодействовать с теми элементами которые находятся ниже в нашем html документе то он просто не увидит потому что как бы на их еще нет в дереве браузеров еще не добавил поэтому было была рекомендация втыкать все скрипты в самый конец документа соответственно это делалось для того чтобы сначала штеменко полностью прогрузилось и только потом когда пользователь уже увидит какой-то надеюсь полезный ему контент уже начинали работать все эти рекламы и
00:29:39 - 00:30:51
счетчика метрики это носит это ерунда соответственно какой в этом случае происходит трейдов как это по-русски если интернет-соединение медленно это как бы эти счетчики могут не загрузится ну как бы именно если мы говорим про счетчики как бы бог богу ты с ними как бы да и ладно так вот про последовательности говорила слава богу потом появились у нас атрибуты тега script они dfr и осинок или dfr мозгу бог знает простите мой прекрасный английский язык и собственно как бы они собственно принесли здесь
00:30:15 - 00:31:38
сути и порядок что такое dfr он говорит о том что браузер ты давай скачивай ну проходи до конца html-страничку загружай скрипт и соответственно запуская его после того как будет выполнена танка и события дом контент лаубе что такое ну как правило это то что чаще всего требуется на сначала нужно получить распоряжении все что мерки чтобы они собрались в цель на дерево дом дерево и только потом уже начинать со ответственности ним работать если таких скриптов будет подключено несколько все с бисером соответственно
00:30:58 - 00:32:11
будет выполнен в том порядке в котором мы их объявили вычтем и документе вот они могут загрузится в разном последовательности ну в зависимости там от куда еще кочевать качается размер и так далее но выполнится соответственно последовательно а sing это похожая альтернативы единственное что он не соблюдает порядок ну то есть там какие-нибудь два разных счетчик от разных провайдеров нам без разницы какой не запустится первым поэтому можем использовать а sing и там еще какой то что там помни какой-то нюанс именно с
00:31:35 - 00:32:45
тем ивентом на который он начинает 3 делиться но я не помню какая такая история вот это что касается последовал субботам это даже я что-то задумалась что такое там было я не помню вот в google им это попозже хорошо прекрасный ответ то что ты описал по тому как браузер строит страницу может быть знаешь это называется критический путь рендера critical render in pace проблем директ я знаю the critical и честно скажу слышу впервые это это красивое название всего того что ты описал все действительно происходит так
00:32:09 - 00:33:33
философское название такое критично да и собственно на этих шагах иногда возникают проблемы с перфомансом я очень люблю улучшать performance все вот эти вот метрики счетчики скажи во-первых знаешь ли ты какие-нибудь метрики как можно мерить насколько твой сайт быстрый отзывчивый и вот это все ну смотри здесь расскажу про очевидные вещи это во-первых благодаря разработчикам углу у нас есть как маяк по английский торт очень маяк точно lighthouse да это классный инструмент который тебе покажет отчет по
00:32:52 - 00:34:19
твоему сайту по разным там категориям что там быстро не быстро что-то можно оптимизировать и так далее я думаю это было бы первое направление в которой я бы полез для того чтобы решить этот вопрос вот а так что касается производительности но и есть какие-то сторонние инструменты я более чем уверен например там почему-то про react мне пришло в голову там тоже как бы чего можно найти в выводе консоли как от самого react а так я думать и других вещей то есть вот такой вот у меня будет ответ прекрасный ответ да собственно все
00:33:35 - 00:34:52
метрики lighthouse вот это как раз там контент в paint вот эти вот всякие штуки которые просто булки дают lighthouse дает тебе сводку по ним дать ответ на показывает где что можно улучшить отлично вопрос ты рассказал что когда скрипты подгружаются на сайт да не что могут чувачек и всякие прочие они могут что-то изменять на сайте [музыка] как бы вопрос поставить насколько поставим так вопрос как сделать так чтобы твои изменения которые ты делаешь череда вскрыт дом дерево или чего-то там еще они были
00:34:14 - 00:35:40
укладывались 60fps вот это вот все наше стандартное чтобы пользователь не лагало ничего потому что иногда бывает что ты скроллишь у тебя все дергается да это портит очень сильное впечатление как это можно чего стоит избегать чего не стоит избегать и как это можно улучшить может что-нибудь рассказать это все опять же водка туда к критическому пути рендера этапа . да спасибо тоска . bakida давай начну тоже с таких простых вещей прикол-то в чем в том что интерпретатор java-script он эта штука 1 поточная все
00:34:59 - 00:36:21
взаимодействие которое происходит с браузером она работает по его and bass как-то по-русски ну короче цена и основанный на событиях той соответственно что-то происходит ты там мышкой павел опыт и события ты там нажал клик это событие и соответственно большую часть времени движок-то браузера скорее всего ничего не делает он ожидает какие-то события или их генерирует и соответственно смотрит типа кто-нибудь слушает эти события или не слушает и так вот это я к чему рассказываем к тому что движок однопоточный соответственно если
00:35:41 - 00:36:55
мы ему в лепим такую задачу которое долго выполняется соответственно он будет занят только тем что выполняет ее то есть там какой-нибудь не знаю там будем считать мы какие-нибудь на сложные математические формулы и будем все это дело выполняйте тут наверно нужно подойти к таким понятием как макро тоски да наверное эриком микро тоски собственно тут что можно рассказать о том что из за того что движок однопоточный уже третий раз повторяю соответственно реализован на выполнение конкретных инструкции в виде очереди он так и
00:36:17 - 00:37:32
называется call stack и соответственно эта штука которая в которую накладываются какие-то там твои инструкции из кода и они ответственно последовательно выполняются и самое главное то что выполняется как бы одна штука про макро тоски это такая задача которой выполняется целиком то есть внутри рамы опишем одну функцию в которой не знает там считается факториал от 1000 например мне кажется это будет долго вот и соответственно эту функцию просто запустим то соответственно что произойдет мы задали одно мокрота макро
00:36:55 - 00:38:00
задачу в горячем и ее в наш call stack она пошла на выполнение и если мы в это время будем там к мышкой клейкой что-то там на клавиатуре нажимает пытаться может быть скролить то браузеру соответственно с не увидит не услышит он будет выполнять эту задачу поэтому собственно соответственно что нужно делать хорошему нужно во-первых планировать свои задачи которые ты производишь чтобы они производились асинхронно то есть грабители при помощи тому сама простой при помощи set time out а то есть делать так либо дробить ее
00:37:27 - 00:38:32
по частям вычисления если этого чего конечно возможно и соответственно нарезать это на задачки при помощи с этой mode мы нарезаем на задачки которые кладутся отдельно в очереди выполняются тоже последовательно на прикол в чем в том что render странички происходит между этими между выполнением этих макро задачек и соответственно наша задача сделать так чтобы эти макро задачки не растягивались на такое расстояние но если на графический мыслить в которые не поместится 60 раз в секунду отрендерить страничку прекрасно да очень
00:38:00 - 00:39:17
хорошая тема как раз i want love это очень-очень любят задавать на собеседованиях сюда но есть куда копать хорошо а микро тоски тогда что такое мика тоски такая история которая ну опять же насколько я понимаю она завязана на это эта история про то как promise работает то есть wintech фамилии это как раз те методы которые явно представляют собой микро тоски ну там к это еще не тот есть который можно завернуть обычное задание в микро задание но я не залезу так глубоко так вот прикол в чем не катаске они сделаны
00:38:39 - 00:39:52
их особенность скорее в том что они выполняются после каждой макро задачи то есть сначала идет макро задача потом если есть какие-то микро тоски они все выполняются после этой макро задачи и соответственно и дальше идет следующая макро задача мне кажется перепутал микро и макро ну вы поняли про что я говорю в принципе да такой вопрос а если микро задача создать еще одну микро задачу а научил следующую очередь и или хороший вопрос я смотри если это микро задача явно порождает еще одно микро задачу то
00:39:15 - 00:40:28
скорее всего она соответственно уходит точно также через механизм мтс какую-то и соответственно я ставлю на то что скорее всего она уйдет в следующее утро цвет даже если мы будем мы можем так опять же вызвать всякие стакой про flow и прочее если микро тоски будут порождать микро тоски они будут в этой же очереди капица пока пока вся очередь не раз тащиться до мы не перейдем дальше ничего страшного отлично будем за будем за есть куда копать у меня еще такой вопрос про синхронность мы говорили да а потом
00:39:54 - 00:41:11
не два вопроса первое может быть ты знаешь это вопрос высшего уровня такого прям мы может быть слышал java script однопоточный все правильно но есть способы сделать в многопоточном и это не про миссы не и не вот это все не нет асинхронность которая синкавы игра не совсем это тоже так как как-то создает это тоже асинхронность но не через афин cowhide не через про мясо и это прям реально многопоточность назовем это многопоточность создается отдельный трек где выполняется тяжелой задачей который не надо дробить про
00:40:32 - 00:41:46
serviceworker и миша ну да это отдельный инструмент который скажем так создан насколько я понимаю для фонового выполнения как раз таких сложных задач и там немножко такая своя собственная история вот я по не слышал просто когда читаешь документацию почему-то про них говорится что то отдельным словом типа а вот здесь это работает по-другому 1 кей это все что могу сказать действительно ножка по другому как тот же java script данный немножко по-другому работает создается отдельная очередь и я могу сказать что когда-то я
00:41:11 - 00:42:18
оптимизировала очень тяжелой таблицы и прочее и там всякие сортировки не были на фронте ненамного кэнди я все это унесла worker и прирост был примерно в 5 раз в производительности опять же как когда все работает worker of у тебя не виснет интерфейс то есть может также продолжать кликать и прочее у тебя грубо говоря погрузчик это выполняется эта задача но это так вот маркеры для руки цель да и последний вопрос который тоже связан со всеми вот этими штуками слышали ты когда мы такие штуки как рипа int или flow
00:41:44 - 00:43:00
чет такое слышал [музыка] слышал звон да не знаем делать скажу наш любимый критический путь рендера у него вот как ты описал есть стадии да когда у нас создается дом дерево создается css он тоже по сути дерево потом они вместе сливаются в одно это называется рендер три дерева рендера потом браузер начинает операцию layout он выстраивает определяет ширину высоту карши распределяет все вот эти вот крупные блоки да по страничке и потом у него начинается операций paint он это все закрашивает то есть он это не
00:42:22 - 00:43:44
параллельно делает поочередно по сути дела и соответственно операции репо и тарифу который заставляет браузер пересчитать расположение блоков или перерисовать опере перекрасить цвета поменять вот что-нибудь где не почитал про про такое скажу честно нет это глубины которые находятся ниже чем там где я плаваю на самом деле одни из основных от оттуда обычно лезут все проблемы с перфомансом когда мы используем много операций например есть немного операций который заставляет браузер делать layout вызывать то есть рифлаф
00:43:03 - 00:44:34
например когда мы берем ширину окна казалось бы мы просто берем ширину окна в этот момент до браузер все начинает пересчитывать мы берем высоту элемента браузера 5 ч фигачит все опять пересчитывать и самая хреновая идея опять же для будущих твоих анимаций никогда не стоит анимировать ширину высоту и margin и потому что анимация а ширина вот это все опять вызывает перерисовку всего документа вот небольшая образовательная минутка да на эту тему я наверное скрыт надеюсь что правильно вынес такое утверждение о том что операции с дом это
00:43:48 - 00:45:22
удовольствие дорогое поэтому нужно это иметь ввиду ну собственно я так понимаю эта причина появления такой библиотеки как react которая при помощи виртуального дома делает это делаю оптимизированные но так висеть то повыше подам и совершенно верно про плавно подходим к реактору да правильно путем они до were акте считается антипатр использовать обращение к дому как раз таки да что же как но если нам вдруг надо все равно обратиться что что мы делаем но есть же специальные хуки для этого юзф что такое вот наверно
00:44:35 - 00:45:51
единственное что я использовал для того чтобы из с высоты об станции react нырнуть в дом дерево да совершенно верный узрев и честно даже не на что еще есть кроме прямого обращения к дому и узрев вам позволяет а какие хуки ты узнаешь kookie cookie хуки хуки но самое очевидное это your state для работы с состояниями потом у нас есть из эффект которые честно говоря название на мой взгляд такой довольно не говорящие при помощи него как правило чаще всего используется для того чтобы сделать какую-то операцию один раз при
00:45:14 - 00:46:32
первичной соответственно загрузки вот но вообще как бы там ее слова и effects по ходу от слова side effects и танкует и можно раскрутить эту историю и уйти там это же замена когда в react классах были специальные методы компонент mount on mount там можно было как-то более точечно и более наглядно наверно по названию понимать то что типа это событие произойдет тогда не событие а этот метод будет вызван тогда когда компонент за монтировался когда он собирается размонтировать и так далее в общем юзать ect как то насколько я понял
00:45:53 - 00:47:04
собирает вот эти вот истории эти методы соответственно про узрев мы сказали третью положу себе в копилку есть такие вещи как usa мимо или мимо как это по-русски для для мимо и зации вот и наверное на этом про юз а она всякие юз селекторы это как бы уже найти из дополнительных настроек из реакторе докса как бы там уже оттуда и и selectornews диспетчер или что такое испечь да отлично про методы да совершенно верно называется метод жизненного цикла о lifecycle до суши наверное но я немножко докопаюсь дают эффекта он вызывает же не
00:46:28 - 00:48:02
только на первичный на на маунте да да да ты совершенно права я просто имел ввиду то что как правило в том в тех ситуациях которые но если когда мы изучаем программировании мы изучаем новые всего много и соответственно мне это для понимания нужно свести какую-то простую фразу типа чувак если ты хочешь чтобы это выполнилась один раз usa эффект но соответственно там дополнительно тоже передаёт эти dependency обществе что такое такого черепе туда пустой массив очень интуитивно правильно и соответственно
00:47:15 - 00:48:19
это что как работает один раз соответственно там но и можно и по-другому использовать их эффект и не только не только ли как подругам он тома пикетти пример чеки а смотри на самом простой пример что я скажу соответственно если теперь я что-то пустой массив соответственно это отрабатывает один раз есть и ты в этом массиве причисляешь те господи above правильно вспомнить к элементы переменные скажем так которые могут меняться здесь то соответственно этот метод будет вызываться тогда когда меняются эти переменные
00:47:48 - 00:48:55
да но есть небольшое ограничение на эти переменные не все переменные вызов вот этот эффект я здесь не расскажу тебе про это хорошо у нас что вызовет смена проб saw естественно что вызывает если ты побудешь вопросу что что заставляет заставляет этот эффект вызываться вот в этих до пензы до мы придаем туда предложим пачку переменных здесь есть среди них есть пропсы они вызовут эффект среди них есть стоит он вызовет эффект соединив есть узрев и узрев не вызовет смены из эффект дают рифф еще часто используются для
00:48:21 - 00:49:48
хранения таймеров например он не вызывает render компонентом вот соответственно если узрев изменится у тебя эффект не вызовется вот и вот здесь я сомневаюсь честно говоря если мы обычные переменную туда опрокинем мне кажется что не будет вызываться тоже хотя их смена в любом случае будет вызывать render но будет идти вызывать эффект от никогда такого не делала поэтому не могу сказать но вот срез сто процентов так отлично итак мы поняли что у нас есть пропсы у нас есть стоит чем отличаются могу сказать про пса ацтой
00:49:07 - 00:50:23
там как сказала чем отличается ноутбук от трамваев мне кажется не наверно как бы ты проводить эти вещи гораздо ближе чем моем примере руки и что такое состоит это собственное состояние как это можно понять из слова и суть в том то что состояние это какая-то отдельная структура отдельная ну давай район-то очень просто отдельный грубо говоря переменная которую мы меняем определенным образом и соответственно смена изменения этих переменных приводит к серии render у этого компонента вот соответственно что такое пропсы но
00:49:45 - 00:51:00
это просто атрибуты который аргументы но атрибут аргумента который мы передаем в компоненты зрения как типа как функцию поэтому что у них общего ну потому что это наверное то и другое то переменная но как то вот вопрос стоит скорее да да да спроси в чем разница но типа чем разница в том что они используются как для разных целей мне кажется одессе не уловил суть вопроса но это мне подсказать да наверное хотела услышать ответ что стоит это именно внутреннее состояние которое хранится самому компоненте props они
00:50:27 - 00:51:35
могут прокиды ваться там до по цепочке это что-то внешнее по отношению к компоненту ну да я как обычно представляю это как будто функция которую ты можешь положить аргументы вот пожалуйста эти аргументы почему то назвали проб сами такое слово пропсы пропсы ни о чем не говорит но пропить из понятно но как бы да в принципе так отлично наверно тогда по теории задам последний вопрос опять же с реактор до знаком с классовыми компонентами и опоили функции предпочтение слушай ясно самом деле здесь скажу то
00:51:01 - 00:52:15
что есть вещи которые мне симпатизировали и в классах и которые мне симпатизируют и в функциональных компонентах и соответственно и как как выбор вы панов через конечно же функциональные потому что это такая более лаконичная вещь меньше кода писать как-то но он более современно и так далее но что мне нравилось в функциональных компонентах там состоянии описывалось в одном месте вот одна строчка соответственно как этого вначале это состояние ты такой смотришь то за видел структуру лаки и хорошо соответственно в функционале компонентах
00:51:41 - 00:52:56
получается что у нас может быть несколько устоит они могут быть размазанные ну как бы ни в одном месте как будто там сделал найти и типу ты такой у нас есть первое состояние компонентов второе состояние это все отдельная структура это все нужно держать голове но как-то на мой взгляд это было немножко раньше было немножко так это поудобнее но это к это старческое брюзжание просто потому что классного компоненты я узнал первaя вот как предпочтение но конечно сейчас и пишут наверное ну я думаю на функциональных компонентах хотя говорят
00:52:19 - 00:53:25
классы выкидывать не собираются почему классовые компоненты ну понятно что то не собирается копировать есть одна фишечка классов компонентах она доступна только в классов компонентов функциональный так не умеет это вот эта история про те методы связанные слатина не совсем и тасс обработка ошибок больше связан кофты слушая такую тему я тебе не расскажу в реакции существует штука который зывается error boundaries от лап отлов ошибок на разных уровнях и в общем компонентом р-р boundaries может быть
00:52:51 - 00:54:00
только классовый функционально быть не может я не знаю почему я честно еще не докопалась до этого но да и наверное самый последний точно и потом пойдем лайкосик последний вопрос use фет почему мы не можем положить эффект условные поражения почему не можем положить ее effects например даже сада iv и не знает он юзера 2 ст и us эффект такой то напряг старик сразу нас просто пошлет очень далеко я предположу то что знаю чтобы совсем уж дурачком не выглядеть что это может быть связано с тем что но с передачи по ссылке или созданием
00:53:26 - 00:55:03
новых новых переменных с этой истории не туда приблизительно да кстати обращу внимание самый лучший подход если вы не знаете ответа начать рассуждать по всегда поддержат это очень ценится окей но суть в том то что у нас же вызывается перри render компонента когда у нас там меняется либо просто либо стоит и соответственно на сайдов не тем не менее опасно использовать в этих вещах каждый раз генерить новую например новый список за на заново ну то есть там мы по фильтрам или так далее потому что будет
00:54:23 - 00:55:42
создаваться с новая ссылка новая переменная которое для вас может выбить одинаково а для реакции то будут совершенно разные объекты что будет выдергивать провоцировать ривендер компонента вот мне кажется я не такая хорошая но не совсем что-нибудь знаешь про такой процесс roxy как рикон сильнейшим честно не знаю по-русски звучит а я честно не знаю это как раз вот virtual да да прекрасно как так уже знака около мы знаем что такое портал дом напомни лир трудом на смотри в двух словах щас попробую суть в чем как мы уже упоминали
00:55:04 - 00:56:25
о том что операция с домом штука дорогая соответственно их нужно экономить и собственно красота реакторов в том что он становится такой прослойкой между твоими действиями с домом и собственно непосредственно рендерингом дом дерево внутри браузера потому что он соответственно смотрит какие-то там изменения хочешь внести грубо говоря но раньше напрямую же ходили в дерево соответственно меняешь это меня что элементы создаются изменяются и так далее соответственно он сначала эти вещи собираются виртуальном доме
00:55:44 - 00:57:01
потом смотрит как это все дело можно оптимизировать для того чтобы например не каждый раз пересчитывать пересчитать какие-то изменения в один проход грубо говоря и соответственно это делает в этом как бы красота виртуального дома вот тесте примерно практически ответил на этот вопрос у рек то есть предыдущее состояние есть следующая и он сравнивает их так если мы добавим эффект в какое-то выражение соответственно это у нас нарушится нарушится цепочка мы не сможем предугадать какой основная фишка реакция такая система он
00:56:23 - 00:57:47
всегда имеет предыдущее состояние кто знает откуда мы пришли и куда мы идем если мы положим эффект в условное выражение мы понятия не имеем у нас было до этого тут у нас условия не выполнилось хрен его знает что там было у нас по рушатся все реактор ские процессы но рассуждение была хорошая просил кидает это тот тоже очень хорошо зацепила что знаешь то что посылки разные разные переменные ну что же давай начнем life коде тогда секция легко zynga сразу подсказки с точки зрения того что что можно что
00:57:05 - 00:58:23
нельзя делать очень часто на секциях легко динка запрещено вызывать код то есть вы вообще понять они меч будет он работать или нет но я честно скажу что ваша беседующих тоже не знает будет он работать или нет он составлен свой опыт смотрят взлетит не взлетит во вторых читаете описания если даже малейшие какое-то сомнение есть что вы что-то не поняли всегда уточняйте лучше вот 500 раз переспроси чем начать делать не то и последнее если вы забыли какой-то метод что он делает как он называется какие
00:57:44 - 00:58:54
аргументы принимает всегда спрашиваете почему обычно гу блин опять же здесь часто запрещено гуглить всегда спрашиваете следующий всегда вам поможет окей с дисплеем дисклеймер не закончили меня и так задачка это для разогрева каша задании нам нужно написать функцию которая вырезает символ из строки после определенного количества повторов так имеется ввиду после определенного количества повторов этого символа так сейчас секундочку мы получается передаем на вход строку и количество повторов а какого символа то
00:58:19 - 00:59:45
любого но количество все символы если все символы повторяются несколько раз им дозволено повторяться только два раза то есть окей получается эй би си и и би си то есть я правильно понимаете что те символы которые успели скажем так попасться у нас на глаза моей собственной про них и говорим да то есть мы должны их набрать то есть если например здесь где-нибудь в конце был бы символ x и он не повторилось это нам как бы да и ладно с ним да мы его ставим и [музыка] да я читал что у тебя там была опыт
00:59:02 - 01:00:29
очень большой фигурками обойдемся без регулярных господин ты брони даже вспомнила я даже на ней про них не вспоминал нет я чист вообще не представляю как здесь что-то с регулярными сделать но на всякий случай я в них очень плохо шарю как говорится есть у тебя есть проблема и ты хочешь решить и при помощи регуляров значит у тебя две проблемы так окей kashiwa покажет я приста понятия не имею как то решать поэтому как рекомендует нам давайте мы по перед тем как бросаться в омут с головой писать код немножко
00:59:53 - 01:01:04
порассуждаем вообще какие структуры какие ли нам тут методы обхода помогут вот потому что меня смутило то что ты назвал отели разогрева страшно представить что будет дальше водки и хорошо значит так у нас есть строка и соответственно очевидно то что но и здесь без цикла не обойдется мы будем интегрироваться по этой строке соответственно далее очевидно что нам нужно собирать где-то ту информацию то количество повторов которые у нас есть и и потом эту структуру проверять набралось ли она я чувствую что я в
01:00:28 - 01:01:50
сложном направлении ковыряясь мне знать что пришло в голову не пришло в голову то что а давай-ка мы сейчас делаем объект в который мы будем вкладывать каждый встреченный символ и будем считать количество повторений в нем то есть типа группировка по символу и соответственно а потом типа нам нужно на каждом этапе на каждом этапе соответственно нужно проверять что каждый каждое значение в ключе этого объекта будет равно двум но вот это вот последний шаг мне кажется какой-то немножко порнушкой но вот то есть какие
01:01:13 - 01:02:21
там будет что еще один цикл что любой уходить проверять и звучит так что это должно выглядеть решения должна бублик это более изящно что ли на вибро объект подскажу я бы тоже думала сторону объектом почему у нас есть штука которая называется оценка сложности алгоритма входят объекты это же идеально штуку не х0 о единичка наверное там самоуничтожились народ и сказала простите да а единичка совершенно верно у нас очень легко оттуда достать поэтому объекты очень хорошая структура да твой слушай я сочту это за подсказку с твоей
01:01:47 - 01:03:12
стороны и сейчас я же могу здесь дописать для себя типа вот сейчас появится вой классно здорово ты запретила мне запускать я уже даже испугался еще что есть может делать хоккей я сейчас мысленно кидает примерно ту структуру которую я соответственно примерно получи потом посмотрим что с ним можно сделать соответственно я буду что делать я буду это не рваться наполнять этот объект новыми значениями у меня что будет получается я получил ключи к там будет значение 1 но я просто буду плюсовать соответственно у меня
01:02:29 - 01:03:28
получится потопа но мы на втором сейчас видно даже что я добавляю сюда во тьме я решаю кран действительно соответственно у б я увижу 1 ну и соответственно так дальше и c тоже увижу 1 далее начинается более интересная история когда мы со второй раз третьем а соответственно я плюса на двоечку и как бы получается напрашивается что после каждого но в каждой итерации я должен совершать какую-то проверку которая скажет что а что нам не скажет она должна не сказать что все значения во всем ключам которые у меня
01:02:59 - 01:04:20
есть в объекте до который я успел собрать они все должны равняться двоечки точно ли равняться но мы можем разные эти делать равно больше не равно если ты про это ну я потому что же символ может только один раз встречаться а что типу ты и между исключить сейчас секунду я сейчас обратил внимание вот на второй пример я сейчас без того на первом давай посмотрим на 2 соответственно [музыка] вырезать символ из строки сейчас секунду она вырезает символ из строки до если она идет нашла символ который там в последнем примере второй раз
01:03:39 - 01:05:15
встречается что она его вырезает она идет дальше то есть финальная строка у нас будет возможно меньше если у нас количество символов имеешь ввиду то что тут то что вот это вот это итоговый то есть эта строка только с вырезанными теме семьями ой слушай хорошо что я спросил а то и вообще другую сторону думал немножко это сплав здесь нужен ли что то еще но керри пока что мы атаману голове поэтому продолжаем обсуждать окей хорошо то есть получается нам нужно грубо говоря скипать эту строку он не строку этот
01:04:27 - 01:05:38
символ то есть так то тогда тогда тогда история такая кроме гипотезы скажем так мы и проверяем кроме вот этого объекта который будет нам помогать решить эту задачку мы соответственно будем формировать новую строку ну соответственно итоговую строку и мы будем вне вкладывать те символы которые соответственно еще не вышли за нужное нам условия но как если представляю пускай это будет какой-то массивчик в которой мы соответственно будем класть символы а потом это все дело с джой ним в итоге на выходе соответственно тогда у
01:05:05 - 01:06:20
нас будет такая история мы идем точно так же в цикле смотрим допустим опять же тот же самый пример 1 он с ее равно единичке соответственно мы она вообще что делаем мы смотрим как бы сначала на наш объект сколько раз в нем набралось повторение этого элемента если он соответственно не превышает двойки мы его забавлять добавляем в наш массив окей соответственно потом когда мы уже прошли первые три уникальных символа и встречаемся на повторки у нас получается здесь мы ну пускай будет с плюсуем сейчас
01:05:41 - 01:07:07
поправим если что и соответственно после 2 повтора включая его да да включая то и соответственно дата и соответственно у нас здесь уже будет ну очевидно что и бесси уже будет и речь про то что будет дальше а дальше чуть на будет эй и прикол в том то что когда мы сюда придём в третий раз здесь уже будет троечка там и соответственно скажем что у этого символа количество повторений боль чем нам нужно им и добавлять этот массив не будем мне нравится и соответственно ну и потом нам останется только вернуть склеенную
01:06:29 - 01:07:51
эту с ruckus клей на этот массив строку оке мне кажется что это можно попробовать реализовать что и попробуем нам запускать нельзя мне нужно сейчас это по рукам бить если я потянулась к контрол интернета то это такая привычка наверно уже за консоли так далее какие хорошо сказано сделано у нас есть очевидно что переменной нужно объявить давайте скажем так как он резал это будет итоговый массив в которой мы будем складывать подходящее нам символы и соответственно раз уж мы заговорили про объект это нам
01:07:09 - 01:08:24
нужно создать этот объект и как-то грамотно звать его они как нибудь типа x или y как мне сейчас хочется пускай это будет это же группе рок-группе ровка гром боюсь я не знаю шарф очень-очень круто я придумал вообще до назвал назвал глаголом ну пускай будет группа нанесу тени знаю между сейчас это окей соответственно изначально он будет пустой да конечно каким же еще он будет быть мы же будем наполнять его в процессе решения дальше наш любимый цикл ok наверное я бы мог интегрироваться при помощи в
01:07:47 - 01:09:14
как там конструкция это off дайте мне секундочку подумать нужно ли мне вообще здесь индексы до нефть здесь индексы не нужны мы оперируем только текущем элементом и здесь господи бог памяти не перепутай с питоном лет мы называем текущий элемент пусть это будет чар of там или им по моему очень st стр я так полагаю что здесь нам позволит java скрипт будет достаточно интеллектуальным чтобы понять что строка это коллекция и чтобы они нужно затонироваться надеюсь опять же сейчас просто сегодня работал на питоне поэтому
01:08:36 - 01:09:55
мы с любит он нам это мы такое можно делать а можно запускать не можем придется проявить папе придется поверить на слово или там не знает и потом скажешь на правах интерпретатора да и ринется р.р. или или или или тест тест окей хорошо мы цикле это здорово соответственно дальше мы что делаем ну давайте там напишем то что мы наполняем объекта про верочке добавим после то есть соответственно групп buy шарф наш массив тут нужно получается сделать такой ход что нужно и инициировать первое значение ну единичку подставить
01:09:16 - 01:10:38
если этого символа еще нет в нашем объекте а если он есть то нужно соответственно плюсануть его плюс единичка и это можно тупо написать типа там проверить если это аманды файл и так далее но вот я встречал такие хорошие прям однострочники которые скажут что типы групп buy cheap cod червь будет соответственно равен кажись группой чар это соответственно будет либо undefined либо да либо антифа нет либо это будет 0 вот такая хитрая схема мне она прям нравится + единичка что есть написано то и соответственно
01:09:56 - 01:11:34
если здесь undefined то есть этого элемента еще нет в нашем объекте соответственно мы получим 0 и потом получим единичку соответственно если там что то есть мы получим то что там есть и прибавим единичку вот сейчас пия примут по рукам бейте мне console.log честно пишу чтобы проверить правильно ли получился массив он не массив объект нокии ладно хорошо мы добавили наш символ в наш объект нужно проверить нужно проверить проверить можно до проверить можно после но соответственно мы сейчас проверяем
01:10:46 - 01:12:04
накидаем шаблончик что мы проверяем мы проверяем что вот этот вот счетчик количество превышает ли он крепится к und дай-ка подумать просто ли превышает если он превышает то мы не будем брать строку то есть соответственно если он меньше чем рипит каунт я просто хочу в одном условии если написать чтобы обойтись без lc мне кажется часть обманулся сейчас мы вернемся в условии проверим него еще раз если нам больше нет нет если нам нужно добавить в наши резалт то соответственно резал не open to push яппи я пишу на питание
01:11:24 - 01:13:09
push to push ну вот этот большой бандур на и нужно было назвать как-нибудь ее красивой переменная но мне сейчас не хочется окей кажется как будто бы мы на правильном пути давай вернемся в в условия то есть меня сейчас интересует тот кейс когда мне нужно добавить то и соответственно 2 если например здесь будет 2 2 меньше чем 2 соответственно push добавится я сейчас просто теряюсь вот так вот или вот так вот секунду не подсказывайте да если меньше или равно даже мы же включительно делаем то есть мы делаем 2
01:12:17 - 01:13:39
включительно окей хорошо получается мы добавили в наш массив нужный проходящий символ на этом я предлагаю с циклом закончить и собственно правильно написать или керн без опечаток и [музыка] что происходит lizard join так что там нужно передать просто пустую строку я просто сейчас это на питоне опять мысли напишу или постоянно себя одергивая окей давай перед тем как я скажу типа давай проверяй дай-ка я сейчас сейчас посмотрю что происходит наверное клей a string но не суть резалт групп malcher соответственно мы
01:13:00 - 01:14:23
инициировали счетчик и соответственно смотрим после того как мы его плюсану ли он плюсану той если он меньше или равен двум но в данном случае такие мы добавляем резал 3 there ним контрл enter ну на мой взгляд отлично и все должно работать и for of будет ходить по строке тут совершенно верно что еще честно громя даже замечаний особо нет можно придраться к тому что лишнее операция на массив делается ну типа можно было строку делать и просто к ней плюсовать это у меня пережито как питона но это доказывает а вот ряда просто если очень
01:13:42 - 01:15:17
сильно захотеть придраться по-моему отлично отличное решение мы будем запускать нет если мы ну давай давай запустим давай соответственно нам нужно вот эти вот пример чеки скопировать потом нам нужно будет найти консольку я пока не знаю есть да она соответственно давай ему так сделаем мы же крутые ребята здесь работает мульти select console.log но соответственно здесь нам вот это не нужно чё тут это я вижу shure кнопку я вижу вот здесь нужно вот консольку я вижу а как запустить это он уже уже ругается на меня нет это
01:14:29 - 01:16:10
там файлов каких мир не хватает нам попробуй просто да видишь это файлов не хватает может быть просто выделите вставить в эту концовку здесь прям от и мишу прям всю функцию зараза это и есть вызовом от хотя вызова можно потом отдельным ну давай попробуем сейчас мы на этом увеличенном масштабе на не сломалась так давать первый пример а клинс тюнинг изнутри фантомка будто бы в другой или что никто не написал клин string constraint стринг строка объявлена правильно так но я тогда предлагаю поверить на слово
01:15:27 - 01:16:53
да сделать вид что это все работает это действительно должно работать зелененькая окей окей супер что переходим тогда к следующей задачки там если твой так это что-то не то а вот двоечка ли у как тут много типа написано тут немножко посложнее и здесь promise и и наши любим async раньше на круто давай я прочитаю дикторский голосом и так что нужно сделать и необходимо вызывать функции чтобы в консоль отобразилось 123 кей хорошо у нас есть вспомогательная функция для генерации случайных чисел он не можем не обращать внимание ну
01:16:10 - 01:17:45
хорошо она что-то делает случайно в ней нет подвоха честно взято из интернета а так история в том что я должен эти готовые функции они как бы типа уже [музыка] созданы для меня и как бы наверное должны готова работать а почему нравится ему а потому что не использовано я как раз должен быть тем кто их использует а так не нужно просто написать порядок вызвать эти функции так чтобы у меня правильный порядок отобразился прайда но обратите внимание на подвох но я думаю здесь он даже не один наверное но
01:16:58 - 01:18:19
окей хорошо ну соответственно но соответственно давай вот так вот мы остановимся и будем думать что возвращает гитранн bar de turin дам питере мы english is good and flow это получается целое число правильно но это не суть окей хорошо да потому что за функции почитаем функции первая функция она возвращает новый promise в котором экзекутор функция auto cad тут у нас получается тайм-аут понятная задачка на порядок выполнения да та самая любимая окей мы знать что делаем set time out устанавливаем тайм-аут и
01:17:37 - 01:19:09
как задержку как раз используем тот самый генератор случайных случайных чисел да да да это же миллисекунды оки хорошо хорошо так получается первый первая функция но в общем то похоже на второе у нее будет похоже память поведение в 3 какой-то подставу небольшая то есть получается мы про места создаем там это моя ошибка ричард он должен быть тоже а я думал даты есть пакет get it это мой которых должна быть туда куда нужно быть так они абсолютно титан вы я бы радовался думаю как бы я подвох нашел тут это говорится что все окей окей
01:18:23 - 01:19:46
хорошо давай тоже я впервые видишь такие задачки честно говоря не то что первая смысле первые вижу что так завернуты давай тоже начну это вещать издалека и возможно это поможет мне сориентироваться как был предыдущий раз окей суть в чем эта задачка на как раз на порядок выполнения и соответственно здесь прикол в том что при помощи сет тайм-аута мы естественно не сразу выполняем этот эту инструкцию а мы ее кладем как раз в call stack ну не в конце так буквально мы кладем ее в очередь задач из которой
01:19:11 - 01:20:31
event log и и заберет когда полностью закончится выполнение кода в нашем файлики вот окей хорошо соответственно здесь какая подстава из подстава в том что есть promise и а есть с и тайм-аут и соответственно они раскидывают они раскидывают код который в них написан наверное по разным сейчас проверим по разным очередям ok соответственно мы помним что а слушая получается мне же нужно они от плодит это же обычная функция а мне нужно вызвать функцию так тебе нужны все 3 вызвать в определенном порядке чтобы да мне просто интересно
01:19:51 - 01:21:20
как бы я должен там оперировать г-н или так далее на мою смотри это уже вот как как хочешь окей хорошо давай продолжим рассуждать суть в чем в том что мы создаем promise прикол в чем когда мы создаем promise promise точнее не сам promise экзекутор function я считаю эту штуку называю это вот это такая брать который начнет выполняться сразу же то есть когда еще только мои кроме создаем еще мы даже его не вызывали еще мы даже не просили как бы его вообще что либо делать вот поэтому прикол в чем есть и
01:20:38 - 01:21:50
например я напишу first чтобы происходить создастся на вопрос до того получается сдался на у promise несут не слушайте меня я могу сейчас технически as обманываете самое главное то что вот эта функция начнет выполняться сразу же то есть сразу же set time out улетит на выполнение ok соответственно в данном случае в каком порядке они написал эти три функции соответственно они вот на этом этапе они будут работ одинаково то есть мы закидаем в наш нашу очередь to suck три задания отложенных соответственно
01:21:14 - 01:22:41
здесь здесь здесь здесь нюанс который рандомно так слушай а так я так понимаю что нужно не просто вызвать функции солнце светит в глаза а вызвать их таким образом не говоря про порядок чтобы мне отработала то что нужно ok почему-то функции ты нам нужно 123 м хорошо давай так вот делать будем а что если такой подход если я вызову но я просто сейчас напишу то что нам в любом случае понадобится ok если я просто вызываю функцию соответственно как бы я их не вызывал у меня будет вот эта вот история вмешиваться и давать нам
01:21:56 - 01:23:40
скажем так помехи прикольно мы генерируем случайную задержку нам нужно чтобы они не смотря на этот работали на эту задержку мы никак не влияем прикольно прикольно слушай интереснее заинтригован если что можно подсказка он класса здорово с дорожками напомнил да видимо я не настроил под закопался сейчас секунду я смотрю если я просто запишу first представим что я интерпретатор соответственно это начала выполняться с этой могут подставился [музыка] да и в общем то и все если мы все три выполним подряд
01:22:54 - 01:24:10
соответственно вот эта штука отработает 1 грубо говоря до пристани так что first aid first соответственно независимо от того нет есть есть такое есть такое мнение что мне нужна подсказка да я так полагаю что мне как бы отметки требуется имеется ввиду в плане именно что написать у какого-то из этих это же мы получаем результат того что мы результат вызова функции the promise соответственно мы с ним можем сделать в.н. и так далее ой мне кажется я начинаю понимать что эти очень речь-то о чудо неужели так сейчас секунду я
01:23:38 - 01:25:05
подумаю напишу сейчас погоди в.н. у нас функция и и у этой господи нет я загадочной закапываться давай давай подсказочка я это вырулю на ровную дорожку подсказочка когда мы на страничке запрашиваем очень много делаем очень много запросов к серверу мы пользуемся этой штукой у нас предположим мы получаем пользователей и их ролей группу я не знаю там мини учил что угодно у нас огромная пачка запросов нам нужно дождаться когда они все от работают при этом естественно какие-то запросы могут позже приходить какие-то
01:24:25 - 01:25:43
раньше приходить и вот есть специальный очень кравы метод который позволит нам осветить когда они все выполнились именно в том порядке в котором надо в том порядке так слушай смотри отвечает на вопросы как нам запустить пачку ну скажем так обобщенно асинхронную задачу и the promise i'll эта история которая запустит все про миссы в нем асинхронно да и сохранить порядок вызова и порядок тоже реально да ладно ты неужели тут нужно просто написать так promise он подскажу что такой метод есть классно
01:25:14 - 01:26:43
кроме скол соответственно здесь мы должны перечислить или и terrible values положить массивчик до соответственно окей мы должны соответственно массивчик ну да пока просто накидаем а потом соответственно это посмотрим это именно к рутина кей если я белый на видео то значит солнце светит не была замужем за из-за навесим как-нибудь тут такое огромное окошко которая невозможности навесить так смотри получается я их все эти promise и запустил но прикол то в чем насчет цель таймаутов получается сейчас я при
01:26:01 - 01:27:28
представим что интерпретатор и соответственно выполнять эту штуку если как мы знаем спасибо за подсказку он сохраняет порядок я запуска сначала first first и запустил соответственно вот эта вот штука начала выполняться соответственно в call stack ведь он не в курсе такого очередь задачу влетела вот эта вот история ой слушай есть ему нужно дождаться получается так и должно работать провисал насколько я помню я могу ошибаться он не связан с общей очереди а это все тоже все те же микро тоски по этому он может их так вот оно что вот ну
01:26:45 - 01:27:56
что то что получат вот это весь ответа более самом деле это значит очень достойный ответ который я когда то дала на своем собеседование катар вообще делал связан с провисла я даже не подумал об этом ты большой молодец что начал нашел туда думать вот этой мне подсказал ok а там через дина бы не получилось да вылезти как бы дождаться одну другую потому что она слишком рандомное семя вешается ok и здорово ты давай поверим что это запустится что же тогда перейдём к нашей самый сложный на сегодня задача для особо интересующихся
01:27:20 - 01:28:35
это 6 куска творца и это треугольник pascal самолета из моих любимых задач я не знаю почему я так люблю во всех вариациях можешь сказать картиночку чтобы наши зрители тоже посмотри раз попробуем они этот итак сейчас секунду мне придется так вот да собственно что такое треугольник pascal эта математическая игрушка задача у нас есть треугольник то у которого по как называется грани не грани к подругой катей ребра ребра до идут единички опа вот эти вот строчка у него идет сумма верхних двух чисел то есть они вот так
01:27:57 - 01:29:30
вот складываются то есть получается да единичка единичка ноте стартуем с единички вот это вот сумма вот этих соответственно тройка сумма 1 плюс 2 кей понятно так ну как понятно что ничего не понятно не я знаком с этой структурой по моему даже были какие-то задачки на этой истории но там у меня было право запускаться каждый раз когда не хочу такие люди наводчик на ощупь потемках темной комнате окей да собственно как бы дальше смотрю за задание уже задание реализовать треугольник pascal а надо все лаконичные просто здесь просто
01:28:44 - 01:30:17
пример что это будет у нас массив из массивов там у нас не дописана функция принимает пословицу соответствии сколько строчек из этого треугольника pascal нужно показать какие то понятно ну хорошо давай я сделаю вид как будто бы я понял что нужно делать у тебя прекрасно получается рассуждать я помню что вот на обучение в с дополнительных задачках похоже был история была и я там как-то вот прям ну вот так не изящно скажем так и и решил что но видимо забыл об этом как о страшном сне плюс еще я мог там не суть но это ну я честно скажу
01:29:36 - 01:31:04
изящных решений прям сразу никто не ждет вот ты когда решишь потом тебя могут задать вопросы типа ок и улучшить что можно там не знаю о паре factory и прочее но важно решить задачку но пока мир для меня всегда это было так потому что при factory ты можешь потом ну понятно рекламы skillbox она мне не платили не интересуюсь спасибо какие хорошо давай рассуждать мне кажется я наверное думаю что есть какая то наверняка формула но я имею как вот как это наверно решается по-человечески для людей которые дружили с математикой
01:30:23 - 01:31:43
какая то наверняка есть формула типа как у арифметической от агрессии есть формула для расчета там n-ного члена и так далее может быть здесь похожая история есть но я так понимаю как бы нам то на нем нужное нам нужно сейчас что-то свой споешь вы велосипед изобрести окей получается с чем мы здесь работаем по сути мы здесь работаем с массивами с массивами нам понадобится получается держать в голове предыдущую строку текущую строку и предыдущую строку ну хорошо хорошо это ok и получается допустим а я понял я помню тут же какое
01:31:03 - 01:32:20
свойство и тот же пирамида на симметричные то есть она абсолютно симметрично и получается что задач это сводится к чему к тому что например возьмем красивую к серединке например 15 10 к тому что мы единичку нас есть мы берем для вычисления второго элемента мы берем первый и второй элемент ну лан хорошо для вычисления 3 элемента мы берем получаются на просто сдвигаемся нато на нужное количество мы берем от предыдущего 2 и 3 вот и мне кажется в эту сторону можно двигаться соответственно какая идея идея в чем
01:31:44 - 01:33:20
начнем с общего у нас есть общий цикл который соответственно очевидно и тренируется потому н который нам задали как количество ярусов в этой пирамиде окей хорошо соответственно но допустим я не знаю я пока не думаю про единички как бы типа вручную прописать их или как-то там по формуле сама бы считаться не суть пока что сконцентрируемся именно на серединке то есть но всегда начало начало пирамида будете 1 и 11 на второй строке окей хорошо соответственно потом мы мы и тренируемся по ним и соответственно мы держим в
01:32:33 - 01:34:02
голове возможность например допустим мы сейчас находимся на третьем ярусе и соответственно мы держим в голове предыдущий ярус у нас есть доступ будет доступ к этому массиву соответственно мы можем исходя из текущих индексов там к нему как-то там подкручивается и соответственно подсчитываться окей ладно хорошо давай попробуем накидать что-нибудь что нам будет похоже на истину такие как я говорил нам есть с чего начать у нас есть но соответственно нужно будет подготовить какую-то структуру для результата
01:33:25 - 01:34:48
окей соответственно нужен цикл здесь нам нужен не обычном смысле на нужен не тот который был до этого пауков а нам нужен cycles с индексом счетчиком начнем допуская с нуля соответственно условия выхода до тех пор пока i меньше чем n ну тут всё бесхитростная окей хорошо классно это мы создали такой каркасе хорошо соответственно соответственно как нам единичку добавить я щас просто борюсь с желанием проход коллить первый элемент в этом массиве уже создать его чтобы он там был хотя как не то поможет
01:34:07 - 01:35:51
ну типа как знаешь типа и если i равно нулю то типа добавляем врезался сразу массив один не знаю может быть это сработает а может быть есть суток а более изящно ну ты говорил что изящного нет поэтому ну давай я начну с этого как бы дальше мы посмотрим давай прям так вот некрасиво не особо лаконично нам сейчас главное эти открою краевую историю заполнить чтобы для первого элемента для вершинки нашей пирамиды соответственно нужно прописать начальные условия какие хорошо давайте опишем так если i равно
01:35:13 - 01:36:29
нулю ничего себе соответственно resort rio залп этом куш прям hard ходим от души вообще вот так вот в принципе давай сердцах отходим такой сюда питер поток 6 придет черт возьми надейся к моменту уже компании окей хорошо не знаю это сейчас как бы нормально да да скажи мне да такое не порнографию здесь градусная вообще вот так и делала я вообще 1 2 хардкоре классно слушай мне кажется нет плохого не посоветует подол можно 3 factory главное чтобы это работало да согласен соответственно здесь это все
01:35:54 - 01:37:41
что нам нужно сделать на этом этапе но и соответственно давайте запишу запишу для того чтобы не забыть continue потому что тут внизу корабля будут другие писать они погоди да не все правильно нам же нужно выйти из цикла на этом месте пусть будет так какие hard ходим дальше если он можно даже не если л.с. потому что выберется либо 1 из 2 если и второй уровень так это получается единичка то моей соответственно да просто возьмём да скопируем втыкаем 11 окей хорошо с строительством первых двух этажей мы
01:36:48 - 01:38:19
закончили здесь начинается соответственно математиками вот ей хорошо хорошо хорошо окей хорошо что хорошего там хорошо то что получается здесь мне нужно генерировать новый массив и как будто бы это просит отдельная функция но опять же давай не будем лезть вперед за дизайн успеем за зари factory то есть тот по-любому нам нужно будет еще один цикл причем получается он будет зависеть от текущего и да я посмотрю что у нас происходит какие закономерности на нуле это один элемент на втором уровне это два элемента
01:37:36 - 01:39:14
осушит так это оно равно немножко ошибся сейчас секундочку но ты тоже 0 long достал на втором уровне два элемента да-да-да-да-да дриптип ты права все верно говорил ся муки и хорошо этого безусловно мы же тут строительством занимаемся как-никак там в этой пирамиде люди будут жить ok нам нужен цикл точнее нам нужен как бы как тот все это не кажется не туда лезу давай сделаем line это наше массивчик нам соответственно массивчик нужно будет наполнить а наполнить его в челнов цикле очевидно понадобится еще
01:38:27 - 01:39:53
один цикл давай назовем его лает j равно ну точно так же он будет от 0 а нет я я я еще с хитрую сделала нет сейчас нехитрый сделал рано я хотел закалить единичку прям вот здесь и потом но нужно сейчас подумать что делать как зеркале ванием потому что мы же как бы не обязательно должны ходить и высчитывать прямо вот по честному можем посчитать только половинку блоков а потом типа ту подвергались то есть половину массива и сделать его риверс наверно можно так и но он сейчас будет нам видно какие хорошо ты мне
01:39:13 - 01:40:27
сложно задачки приготовим ok j от одного соответственно да давай так и сделаем давайте единички начнем потому что не хочу здесь повторить тут историю с и фон для первого истории так далее окей тогда получается мы начнем не с нуля с единички потому что первый элемент у нас уже готов условия выхода пока джей меньше чем [музыка] хочется мне здесь сказать что меньше чем половина но там нужно округлять или что-то такое делать до сложно без перезапуска окей давай давай я сейчас как бы накидаю как я это вижу
01:39:50 - 01:41:04
вот а потом мы посмотрим скажем что как бы но наверное здесь обманулся паренек мы же сила не запускаем и не имеем запускать это играет не на пользу окей окей соответственно идея какая идея следующие допустим мы находимся вот первые две мы построили допустим мы находимся ну давай сразу вот на этой вот на четвертой строке идей следующий мы соответственно создаем новый массив который прямо так и горизонтальные выглядит первый элемент у нас сюда единичка мы как ходимся далее соответственно мы знаем длину который
01:40:28 - 01:41:30
длину который должен быть этот этаж это будет получается если с нуля начинаем ну там сейчас подберемся плюс 1 равно текущему индексу окей соответственно мы делим грубо говоря пополам то есть мы не идем до конца мы идем до половинки и соответственно говорим что первый элемент второй элемент начинаем считать утку как бы уже начинается вот это вот индексная история которой мне кажется является главной в этой задачки окей мы считаем что мы до серединки дошли на этом мы этот цикл завершаем и потом просто напросто приклеиваем к нему
01:40:58 - 01:42:17
его же идентичную копию развернутую в развернутом направлении и у нас получается вот такая цифра это было бы хорошо для четных для это же с четным количеством блоков а вот что делать с нечетными я пока не знаю там че-то нужно тип это посмотреть от делится ли он на 2 ровно или не делятся на два ровно такая такая история учтем это как бы в к сосанию комментария представим что так джейда какого стоп до какого элемента делить соответственно мы сейчас знаем что и это текущий элемент на первом это был нулевой соответственно
01:41:39 - 01:42:57
текущие это просто + 1 то есть ответственно грубо говоря и плюс 1 это текущий грубо говоря грубо говоря это делить на 2 но она здесь получиться может получиться если три это будет полтора это будет ерунда а где они почему ерунда мы сравниваем целое число с с флотом я думал java script справиться пока так оставим ok пускай будет так я потерял скобочку до круглая здесь ну и соответственно бесхитростно мы придумываем что плюс единичка хорошо самое интересное наконец то что мы будем плюсовать какие мы будем складывать значение для
01:42:18 - 01:43:50
того чтобы добавить новый вариант то есть давай так напишу что const типа там не знаю пойдем равно соответственно потом этот айтем добавим в line уж и соответственно потом дороге к метро сделай прикрепить развернутую копию этого же массива хорошо этом многое самое интересное здесь нам нужно сложить две вещи соответственно у нас есть предыдущий как и такой спали этаж как мы к нему можем получить доступ но как мы хотим и можем получить доступ резалт давая скажу что предыдущее резал и это текущий и соответственно и минус 1
01:43:06 - 01:45:01
будет предыдущий но условимся что будет это соответственно предыдущий этаж у отдавай нам понадобится два раза мы же должны два значения забрать соответственно я просто в отдельно переменная тоска produce назову при в айтем я не за как этаж английский флот наверное ну да не суть при вирус айтен да давай давай привез фло урок английского языка хорошо и теперь наконец-то но самое главное сколько можно было тянуть нам нужно сложить какие-то два индекса какие индексы мы сейчас будем рассуждать и плюс 1 и так далее какие
01:44:10 - 01:45:32
хорошо давай посмотрим на картинку если бы я умел я показал бы им где-нибудь в отдельном окошечке окей мы сейчас говорим про допустим третья строка предыдущий этаж есть соответственно мы складываем у вас получатся можно не зеркалить можно сама сработает ну да не суть мы берем сейчас секунду [музыка] но уже окей мы сейчас знаем предыдущий этаж соответственно по но это же это же секунду что мы из чего должны вычесть нам понадобится снова для того чтобы получить например здесь двоечку нам нужно индекс 0 давайте
01:44:51 - 01:46:48
посмотрим индекс 0 и индекс 1 это если эти считаю а ok что то мне подсказывает что нужно написать джей минус j это наш внутренний счетчик -1 вычитаем джей я бы принта вался ну давай давай сделаем допущении что будет так и соответственно потом мы делаем ой там мы этот айтем соответственно пушем и вот как-то мне сейчас кажется что моя супер гениальная идея разворачивать и так далее так далее уже не нужно то есть по идее если мы имеем например вот эту строку и потом идем следующий там и по такому же
01:45:54 - 01:47:22
принципу собственно как бы дойдем до конца и посчитаем все что нам нужно за исключением разве что единички 4 единичка нам нужно единичку в конец добавить выдавай как 200 грамм на горе чтобы говнокода данный труд историю развернем да то есть получается после цикла когда мы посчитали то что считается по математике но мы соответственно берем лайн и пушем к нему что единичку и получается что мы получили новые лайму допустим что мы получили новую новую линию что нам осталось но нам осталось просто напросто
01:46:46 - 01:48:03
к результату в каком цикле щас секунду это вот в общем свёкле дамы линии получили резалт push эту линию но и соответственно надо бы не забыть вернуть наш ризал дай посмотрю нужны что не будем делать мне ничего не нужно как то так как то так давай разноси честно говоря логику мне очень нравится у меня ты должна это допускается из условия поправить то есть здесь мы идем получается если последний мы добавляем вручную сейчас секунду мне все время тяжело с этими плюс 1 минус 1 проще два раза запустить и посмотреть чем
01:47:23 - 01:48:57
придумывать дизайн заранее так сейчас секунду нам понравится картинка и просто так вот соответственно здесь это будет 0 1 2 3 а мы находимся на третьем уровне если считать в индексах как это же он и есть прекрасно когда получается что получается что я короче торможу и это будет и и но от нуля до четырех да пусть будет и я не знаю и или или равно или меньше равно я сейчас что то не в состоянии продумать его вперед и то есть им доходим до если мы доходим до конца у нас здесь должно он должен быть равен
01:48:11 - 01:49:45
чем и мы начинаем сидеть по ходу меньше чем или равен а давай давай давай все-таки до подумаем и смотри допустим мы находимся на вот на этой строке вот про эту строку на говорим нам нужно дойти от 0 до 0 1 2 3 до 3 элемента соответственно третий элемент это как раз и есть наш и нам соответственно нужно просто поставить условии что до тех пор пока j это будет 3 меньше чем ты все-таки получается меньше и равно мне кажется я пальчиком потыкаю а у тебя есть да это я смысле картиночку открыть и пальчиком
01:48:57 - 01:50:27
так в этом плане я очень что визуальная мне нужно ли вы писать что-то либо вот-вот руками делать абсолютно не можем 4 нам нужно два-три у нас 0 1 2 3 3 индекс нам нужен там меньше чем и он должен быть не равен ни без равно вот и нет они кажутся наплывы да без равно хорошо очень очень очень мне понравилось твое решение а если бы с зеркалирование можешь не писать а просто да тогда получается я бы поправил здесь условия здесь единственная сложность зеркалирование ну то что у нас есть четные и нечетные
01:49:44 - 01:51:25
этажи и соответственно нам здесь главное было бы поделить грамотно то есть допустим ну чё там все понятно вот допустим берём тот этаж здесь там ровно получается количество элементов она же нам известно заранее вот в этом и это же просто делим на 2 даже не нужно округлить уже не нужно получается ровно половинка потом соответственно у нас есть прекрасный метод риверс который изменяет разворачивает и элементы в массиве и мы соответственно создаем новый элемент новый массив и заговариваюсь разворачиваем и просто
01:50:34 - 01:51:43
приклеиваем его там что там concat есть короче но технически это все несложно окей а вот здесь когда у нас появились получается не чет этаж с нечётным количеством элементов здесь нужно что там посмотреть либо что-то там ровно ли это делится на 2 или использовать целочисленное деление такое точно есть в java скрипте использовать его отдачу для того чтобы когда мы будем отрезать кусочек вот вот этого троечки отрезать только 14 то есть шестерку не трогать потому что мне нужно и дублировать я помню что вот с этим вот
01:51:09 - 01:52:26
именно ковырялся когда когда пыталась решить задачу когда низами марина давным-давно давным-давно но честно мне кажется каренс вот этим реверсом сложнее мне кажется там то наш так и было то что я такой типа а я крутую фишку придумал короче я здесь оптимизировал исчисления мне нужно считать все лишь половину этажа автор на половину я уже как бы типа так создаю об этом смешении учителя там такой типа да можно и без этого можно tantos все сама считается как бы вообще без проблем по общей формуле вот муж тоже мне
01:51:47 - 01:52:57
кажется ты потрясающе справился с лотка венкам честно я думал сейчас скажешь вид застрял господина два часа как когда это закончится боже мой да скоро ли обед я честно признаюсь я получил очень большое удовольствие от собеседования и мы плавно подходим к нашему к нашему финалу где я выскажу нам самый сложного нет все никаких вопросов теперь только комментарии и все проще что я хочу сказать во первых мне кажется на роль джуниора все-таки можно выше пробоваться потому что знаний хватает но программирование свое мышление как
01:52:22 - 01:53:40
иранскую язык оспой я вот мужу иногда помогаю все шарпом ничего структуру похоже условия есть нормально разберемся вот поэтому ну чего не это про мб ram junior plus будет потому что мне кажется очень хорошие знания в принципе о работе очень хорошее видение всего до может быть где-то чего-то не но он не хватает из того что я спрашивал каких-то таких мелочей которые ну не все виды знают может быть даже не все семеро знают это так уже прям не знаю что что те у тебя очень хороший сотский и вот если бы ты собирался в
01:53:01 - 01:54:23
какую-то собственную компанию типа той в которой работу мне кажется тебя будут сразу бы взяли потому что вал source очень смотрят осовский то у нас большая ротация разные проекты разные команды если у тебя они низкие топ бы тяжелее и тяжелее вливаться выливаться и вот это все очень хороший юмор ну прям не знаю мне очень понравилось из того что я могла бы посоветовать и даже не знаю что такого посоветовать может быть чуть побольше задачек порешать но не очень знать как ты рассуждаешь то есть не было тишины до
01:53:44 - 01:54:55
было там минуточка когда с этими цифрами но это потому что это не то что ты запутался задумался представление этих чисел с этим треугольником это абсолютно нормально то есть время рассуждал и это прям супер круто очень тяжело когда на собесе я молчит человек понятно что он думает что что-то решать то ты вообще понятия не имеешь что происходит его голове на чем он застрял застрял ли он вообще не знаю может быть он там уже проклинает тебе не знаю там куклы вуду делает мысленные всегда важна обратная связь вот и это
01:54:19 - 01:55:31
прям у тебя супер получается вот я бы наверно советовала еще не принижай себя как-то до большой опыт но но не junior ну серьёзно мне кажется уже уже можно туда повыше проб ну хотя бы попробоваться потому что мышление есть осталось только навык получить вот этого ну и может быть до стоит подтянуть немножко верстку потому что задают задачи по верстке иногда задают тяжелые задачи типа там всяких годов вот этого чего-нибудь может быть буквально в интернете по существует полно бесплатных макета фирмы прям найти какие-нибудь и
01:54:55 - 01:56:11
прям по верстать я не думаю что у тебя много времени займет но попробовать что-нибудь вот потому что я просто не люблю верстку поэтому я не очень люблю спрашивать про неё но вот вот наверно это единственное может быть у тебя есть какие то вопросы что мнения возмущение шантаж и угрозы да ладно нет я хочу рассказать тоже взаимную благодарность ты до этого говорил что дела публично собеседование но в нашем разговоре перед собеседованием что всего один раз вот и что ты это делаешь здорово потому что я
01:55:34 - 01:56:49
то на своей работе тоже провожу собеседования и как никто другой то уже понимает тебе о том как сложно и как важно ввести модерировать разговор а если еще вдруг собеседование происходит так что ты не видишь человека то есть просто вот но увы нет картинки нет видела то там конечно прим приходится на слуху такой человек и листе и ты замечательно справилась с этой роли прислали себя чувствовала замечательное комфортно в плане подсказок мне кажется даже ты была лай они ко мне чем я ожидал потому что я там с этих расправ
01:56:14 - 01:57:17
насмотрелся на you to be king перед этой истории это здорово когда все таки даже есть тебе в итоге откажут но все равно ты чувствуешь что ты пришел к людям не враждовать а вы как бы вместе ну решаете какую-то общую задачу например сформулируем а как проверка твоего уровня и так далее то есть не какой-то конфликт а у типовые на одной стороне и соответственно интервью эти помогает и как бы в любом случае ты душу то новости донесешь это классные да классно интервью считает это и здорово вот на этом большое спасибо и приятно слышать
01:56:45 - 01:57:47
что когда вот мои разбирать какую-то сложную задачу но не сложно она сложная для меня потому что я сейчас вот в таком контексте и теперь пока нет не понимаю реальная и за кто первый задачку решить просто че ты говоришь что она на легкой типа это для разогрева вот и здесь поддержка со стороны ведущего на очень важно как спасибо за да да очень приятно было дорогие телезрители вам тоже большое спасибо что подключились посмотрели нас я очень надеюсь что вы тоже что-то полезное вынесли из нашего публичного собеседника и дима спасибо
01:57:15 - 01:58:21
тебе огромное и удачи удачи удачи если что пиши будем помогать разбираться и поддерживать всячески здорово здорово спасибо за такую поддержку и спасибо тебе за ведение собеседования всё всем пока все любят счастлива спасибо что досмотрели до конца пока [музыка]
01:57:48 - 01:58:35