Собеседование JUNIOR FRONTEND REACT разработчика

Поділитися
Вставка
  • Опубліковано 22 жов 2024

КОМЕНТАРІ • 870

  • @Davidovich_aka_smoozydrinker
    @Davidovich_aka_smoozydrinker 3 роки тому +313

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

    • @Cos6a4oK
      @Cos6a4oK 3 роки тому +11

      Заходите на литкод и решаете задачи любого уровня и смотрите как можно было решить совсем иначе.

  • @mikeneikovych3700
    @mikeneikovych3700 3 роки тому +150

    Отличное, а главное, познавательное собеседование. Я смотрю все собеседования от "Отсобеседование", "Web interview", и ещё много где понемногу, но нигде ни разу не видел, чтобы интервьюер так подробно разжовывал алгоритм действий решения задачи для зрителя и самого собеседуемого. Это было очень полезно, спасибо большое!

    • @UlbiTV
      @UlbiTV  3 роки тому +13

      Рад слышать, спасибо!

    • @HatWriter
      @HatWriter 3 роки тому +5

      @@UlbiTV были бы почаще такие интервьюеры, чтобы джунам, которые пробуют впервые ходить на собеседования - было понятно, что стоит подучить/подтянуть. Спасибо за видео

    • @Independent19c
      @Independent19c 3 роки тому +3

      А я считаю зачем париться просто плейлист создать собеседования и уровни в превью видео с должностью и всё, как бы вопросы не повторялись люди то разные, и смотреть интересно(а интересные уже определять самим время от времени ну или просто кидать в плейлист) думаю каждый вынесет для себя что то полезное, возможно узнаёт себя, не знаю как у всех ,для меня слово собеседование наверное на втором месте после слова очередь и ремонт.

    • @kvadro_id
      @kvadro_id 2 роки тому

      @@UlbiTV Татьяну в итоге взяли?

    • @ProSergeant
      @ProSergeant 2 роки тому +1

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

  • @chicken_naggets3561
    @chicken_naggets3561 3 роки тому +511

    Задачу со скобками можно было решить проще, вместо стека объявить счётчик и если встречаем открывающуюся скобку увеличиваем, если закрывающуюся уменьшаем. В конце счётчик должен быть равным нулю, иначе скобок разное количество

    • @chicken_naggets3561
      @chicken_naggets3561 3 роки тому +7

      Ещё можно делить входящию на две части и одновременно их обрабатывать

    • @Max-mv6gr
      @Max-mv6gr 3 роки тому +78

      @@chicken_naggets3561 А если будет такой пример: ')(', то счётчик же тоже равен 0

    • @xenon671games7
      @xenon671games7 3 роки тому +27

      @@Max-mv6gr каждую итерацию проверяем, что переменная >= 0

    • @v.k.samurai
      @v.k.samurai 3 роки тому +28

      @@Max-mv6gr, в общем то да :) но это не противоречит условию задачи. Сказано, что скобки могут быть в произвольном порядке, вопрос тут конкретно стоит в том, что если есть равное количество открывающих скобок и закрывающих, значит вернуть true. В твоем примере у нас одна закрывающая скобка и одна открывающая, собственно, условие соблюдено)) Короче говоря, нужно уточнять условия задачи чтобы 100% понимать какие есть нюансы.

    • @ivannebyshynets8829
      @ivannebyshynets8829 3 роки тому +2

      А если ещё и скобки разные, ок да.

  • @-inside4478
    @-inside4478 3 роки тому +57

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

    • @UlbiTV
      @UlbiTV  3 роки тому +3

      Спасибо) Успехов!

  • @Valeryi07
    @Valeryi07 3 роки тому +77

    Отличное собеседование,на одном дыхании посмотрел,и конкретно для меня ,оно очень познавательное..спасибо ребят..👍🙂

    • @UlbiTV
      @UlbiTV  3 роки тому +1

      Благодарю!

  • @lordunitaz
    @lordunitaz 3 роки тому +24

    Спасибо за видео! Нужно больше роликов, готовящих к собесам. Ты одновременно учишь теорию и практикуешься, когда ищешь решение задачки. Очень эффективно и в целом интересно.

    • @UlbiTV
      @UlbiTV  3 роки тому +3

      Спасибо за отзыв!)

  • @МиланаАкопян-ц7м
    @МиланаАкопян-ц7м 3 роки тому +15

    Очень ёмкое и полезное видео!!! Спасибо за такой качественный контент!👍🏻

    • @UlbiTV
      @UlbiTV  3 роки тому +1

      Благодарю!

  • @victormog
    @victormog 3 роки тому +21

    Видео по практическим задачам всегда интересны!

  • @itpro952
    @itpro952 3 роки тому +52

    Ждал собес, щас активно готовлюсь, вспоминаю теорию, спасибо Тимур.

    • @UlbiTV
      @UlbiTV  3 роки тому +7

      Успехов!

    • @serikabsadykov9260
      @serikabsadykov9260 3 роки тому +1

      @@UlbiTV Привет, я смотрел твой ролик про firebase и как так сделать авторизацию и при созданий папки, я использовал базовую комплектацию, и у меня нету индекс.нтмл ( 7:16 в том видео ), мне стоит начинать все с начало, или есть другой путь?

    • @МаксимПучко-ь9э
      @МаксимПучко-ь9э 3 роки тому +1

      Как успехи с собесом?

    • @sharover455
      @sharover455 2 роки тому +1

      @@МаксимПучко-ь9э он забухал и насваем сейчас торгует

    • @МаксимПучко-ь9э
      @МаксимПучко-ь9э 2 роки тому

      @@sharover455 жесть, коменту уже 10 месяцев

  • @ДмитрийЯковлев-д6э
    @ДмитрийЯковлев-д6э 2 роки тому +1

    на самом деле очень интересно) и пусть будут заезженные вопросы! продолжай контент очень интересный.

  • @nuriddintashpulatov4233
    @nuriddintashpulatov4233 3 роки тому +14

    Я тоже Джун, начал учить фронт с верстки 4 месяца назад, видео я начал с теоретических вопросов, и расстраивался когда она отвечала раньше меня или более четко чем я (ну типа "блин, вот она тоже Джун, но более смышлёная, а я видимо никогда не научусь программированию такими темпами"). Но когда я досмотрел видео, а потом узнал что оказывается у нее уже есть два года коммерческого опыта, то прям камень с плеч упал, ахахах. Спасибо автору за видео!

    • @viktord3507
      @viktord3507 2 роки тому

      Тут уже миддл?

    • @SNSDfOu
      @SNSDfOu Рік тому +1

      так то у нее опыта для джуна прилично, да и женщина 86 года.

  • @ipa_stor
    @ipa_stor 3 роки тому +18

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

  • @SmirnovVladimir
    @SmirnovVladimir 2 роки тому +18

    Работаю год фронтом. Забавная вещь - я на теоретические вопросы не на все смог сразу ответить. А на практические - на все кроме одного. Это к вопросу о разнице между собесом на первую работу, когда соискатель знает кучу теории, но как правило имеет очень мало практики, и спустя год работы - когда куча неиспользуемой теории забывается, а мозг заточен под решение практических задач. Друзья, кто ищет первую работу - больше практикуйтесь! Постоянно пишите код )

    • @OpankiDeLegend
      @OpankiDeLegend Рік тому +5

      Чтобы на собесе ничего не ответить по теории?) Замкнутый круг

    • @djdisik
      @djdisik Рік тому +2

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

    • @Семён-ь9ь3в
      @Семён-ь9ь3в 5 місяців тому

      @@djdisik подскажите, образование необходимо или нет?

    • @djdisik
      @djdisik 5 місяців тому

      @@Семён-ь9ь3в у каждой компании по разному, где-то возьмут без образования, но зачастую требуют высшее техническое

  • @DmitryDolganov
    @DmitryDolganov 3 роки тому +11

    Заранее благодарю!
    Сейчас начну смотреть!))

    • @UlbiTV
      @UlbiTV  3 роки тому +2

      Приятного просмотра!

    • @step_6512
      @step_6512 3 роки тому

      Всё конкретно, понятно и без лишней воды. Спасибо!

  • @КириллТерешкин-ю8м
    @КириллТерешкин-ю8м 3 роки тому +19

    Классное собеседование, узнал для себя несколько новых интересных вещей.
    Сам уже больше года разрабатываю на реакт, а про такую вещь, как React.memo не знал. Как говорится век живи, век учись!)
    Девушка молодец, успехов ей!)

    • @UlbiTV
      @UlbiTV  3 роки тому +3

      Спасибо! Успехов!

  • @met1388
    @met1388 3 роки тому +25

    Да, интересные задачи было бы круто увидеть как вы их решаете оптимально

  • @garikmelqonyan6011
    @garikmelqonyan6011 2 роки тому +12

    Many thanks to you, man.
    Your lessons are just great.
    They are very helpful for those who are really interested in learning something new or improving and enhancing one's skills.
    Learned a lot from your tutorials and interview videos.
    May you be prosperous in this good job of yours.
    Thanks a lot.

    • @powerrampage
      @powerrampage 2 роки тому

      You watched the video with subtitles ?

    • @garikmelqonyan6011
      @garikmelqonyan6011 2 роки тому +1

      I understand russian, my friend.

    • @powerrampage
      @powerrampage 2 роки тому

      @@garikmelqonyan6011 if you know, why you wrote in English

    • @garikmelqonyan6011
      @garikmelqonyan6011 2 роки тому +1

      Seems that you are interested in that comment more than in video itself, my friend.
      I just dont write grammatically correct in russian.
      Hope this will be the last question.

    • @powerrampage
      @powerrampage 2 роки тому +1

      @@garikmelqonyan6011 sorry bro =)

  • @programming5944
    @programming5944 3 роки тому +35

    Вопросов по реакту хотелось бы больше и поглубже рассмотреть какие то моменты

  • @suvar8667
    @suvar8667 3 роки тому +5

    спасибо за труд! такие интервью отлично подкрепляют изученные темы + позволяют расширить существующие знания.

  • @chcylabrab
    @chcylabrab 3 роки тому +9

    Спасибо за контент, а так же за то, что смонтировали ролик. Это Ваше конкурентное преимущество среди блогеров которые выкладывают интервью.

  • @moscowtv5767
    @moscowtv5767 3 роки тому +7

    Автор дает наводки, считаю это очень правильным походом. Татьяна молодец, автор молодец. :)

    • @UlbiTV
      @UlbiTV  3 роки тому +1

      Спасибо!)

  • @ОлегПетров-п4у
    @ОлегПетров-п4у 3 роки тому +7

    Очень полезное видео! Тимур, спасибо за качественный контент! Плюсую за решение задачек.

    • @UlbiTV
      @UlbiTV  3 роки тому +1

      Спасибо, Олег! Скоро будет видео!

  • @uNkind33
    @uNkind33 3 роки тому +5

    Ждем видос с оптимальными решениями задач!

  • @dariabannaya2681
    @dariabannaya2681 Рік тому

    Спасибо большое! Очень интерсный формат. Нравится больше всего у тебя смотреть

  • @vovayankers8956
    @vovayankers8956 2 роки тому +2

    Хорошая подача! Поддерживаю видосы по оптимальному решению сложных задачек с собеседований.

  • @victorchilari
    @victorchilari 3 роки тому +3

    Нормальный эксперимент получился, удачи в долнейшем

    • @UlbiTV
      @UlbiTV  3 роки тому +1

      Спасибо)

  • @РусланРастегаев-з1э

    Спасибо за такой формат видео. Решал задачи параллельно с просмотром. По задаче про уникальные, не дублирующие значение, есть вариант короче, с одним циклом.
    const num = [1,1,2,4,6,6,5];
    function unique(arr) {
    const unicArr = [];
    for (const item of arr) {
    const pos = unicArr.indexOf(item, 0);
    if (pos === -1) {
    unicArr.push(item);

    } else {
    unicArr.splice(pos, 1);
    }
    }

    return unicArr;
    }
    unique(num ) // [2, 4, 5]

    • @olehsolomka8268
      @olehsolomka8268 Місяць тому

      indexOf тож цикл, O(n^2) будет

  • @__online7250
    @__online7250 3 роки тому +2

    Четко и информативно! Спасибо за такой формат!

  • @helenit4365
    @helenit4365 3 роки тому +34

    Собеседование понравилось! Татьяна молодец!

  • @YuriiLutsyk0304
    @YuriiLutsyk0304 3 роки тому +2

    Отличный видос получился! Ждем новые видео)

    • @UlbiTV
      @UlbiTV  3 роки тому +1

      Спасибо!

  • @alexnikolaienko3478
    @alexnikolaienko3478 3 роки тому +1

    Классное видео. Просмотрел с удовольствием.

  • @derw1sz
    @derw1sz 3 роки тому +27

    Со скобочками можно было без стека обойтись, делать +1 или -1 к сумме и проверять на каждой итерации что не меньше нуля, после всех итераций проверить что сумма равна нулю и всё.

    • @swaxshow8404
      @swaxshow8404 Рік тому

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

  • @Wynell
    @Wynell 3 роки тому +3

    если честно не знал что такая интересная ситуация с try catch finally
    спасибо за видео

  • @dimabashynskyi4984
    @dimabashynskyi4984 3 роки тому +4

    спасибо большое, очень интересные видосы с заданиями.

    • @UlbiTV
      @UlbiTV  3 роки тому +1

      Благодарю!)

  • @kostasancez2358
    @kostasancez2358 3 роки тому +6

    Видео с задачами ждём!)))

  • @dimka_shchepa
    @dimka_shchepa 3 роки тому +16

    Оо-о, видосы решения задачек на js вообще бы зашли идеально)) было бы не плохо, если б автор сделал это

  • @forellko8600
    @forellko8600 2 роки тому +1

    Очень крутой контент! Спасибо!

  • @ОльгаЮзбашева
    @ОльгаЮзбашева 2 роки тому

    Все что касается собеседования очень нравится )) вдохновляет и настраивает, спасибо!

  • @scottwalker6071
    @scottwalker6071 3 роки тому +8

    Это было интересно, мне понравился сценарий опроса, попробую применить его на своих собесах🙃 Спасибо, Тимур🤠 Было бы интересно посмотреть собес на сеньора или мидла++ по фронту

    • @UlbiTV
      @UlbiTV  3 роки тому +4

      Спасибо!) До собеседования middle ++ и сеньоров я еще не дорос)

    • @pie_company
      @pie_company Рік тому

      можно к вам?

  • @Vlad-yj2ny
    @Vlad-yj2ny 3 роки тому +13

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

  • @user-race-Vulcan
    @user-race-Vulcan 3 роки тому +2

    6:50 Бро, спасибо огромное что поставил пробел после знака присваивания(связывания)..., у меня аж глаз чуть не задергался...

  • @falsetrue7910
    @falsetrue7910 3 роки тому +26

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

    • @KhoroshilovEI
      @KhoroshilovEI 3 роки тому +10

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

    • @drinkoron8063
      @drinkoron8063 3 роки тому +2

      @@KhoroshilovEI Ну, будет у вас задача написать калькулятор, вот и решайте проблему со скобками.

    • @KhoroshilovEI
      @KhoroshilovEI 3 роки тому +6

      @@drinkoron8063 пишу я, например, социальный сервис и тут мне вдруг срочно потребовался калькулятор? Еще и строковый?

    • @nickolayivanov2848
      @nickolayivanov2848 3 роки тому +6

      Кстати, мне интересно, а можно было просто посчитать количество открывающих скобок и сравнить его с количеством закрывающих?)

    • @drinkoron8063
      @drinkoron8063 3 роки тому +5

      @@nickolayivanov2848 Если банально посчитать количества и сравнить в конце, то нет. Пример: )( явно противоречит этому варианту. Нужно немного модифицировать подсчёт, берём счётчик со значением 0 пройдёмся по массиву, если встретим откр. скобку увеличиваем счётчик на 1, если закр. скобка то уменьшаем. Если счётчик ушёл в минус можно остановить цикл и вернуть false а после цикла проверяем уже равняется ли счётчик нулю.

  • @goedekoop501
    @goedekoop501 3 роки тому +3

    Побольше видео с задачками, топ🔥🔥🔥

  • @robertarakelyan4629
    @robertarakelyan4629 2 роки тому +11

    Задачку с массивом можно решить так:
    function withoutRepeat(arr) {
    const res = [];
    arr.forEach(item => {
    const indx = arr.indexOf(item);
    const lastIndx = arr.lastIndexOf(item);
    if (indx === lastIndx) res.push(item);
    });
    return res;
    }

    • @Kleo_Wyatt
      @Kleo_Wyatt Рік тому

      У меня еще вот так получилось. Работает только с отсортированным массивом.
      const withoutRepeat =(array) => {
      const uniqueValue = []
      let count = 0 ;
      for(let i = 0; i < array.length; i++ ) {
      if(array[i] !== array[i+1] & count === 0) {
      uniqueValue.push(array[i])
      } else if(array[i] !== array[i+1] & count > 0) {
      count = 0;
      } else {
      count ++;
      }
      }
      return uniqueValue
      }

  • @orionpro79
    @orionpro79 2 роки тому +3

    Работаю уже более 2х лет с реактом, интересно было просмотреть ролик (пусть и немного на перемотке, потому что ответ и так был известен), думаю новичкам вообще зайдёт на ура. А всякие мемо, тем кто учит реакт, надо на заметку брать и пользоваться на практике.

    • @Antonym-b5o
      @Antonym-b5o 2 роки тому

      полный бред, никто вам не позволит этого сделать

    • @orionpro79
      @orionpro79 2 роки тому +1

      @@Antonym-b5o бот?

  • @fkinggaming934
    @fkinggaming934 2 роки тому

    Круто, познавательно и интересно. Я вместе с вами решал все задачки ) и много чего нового узнал для себя. По больше бы подобных видосов !

  • @efreitorhabibulin238
    @efreitorhabibulin238 3 роки тому +8

    13 лет опыта, 4 года проработал в Google и Google Nest, я бы походу провалил твое интервью xDDD, к примеру блок с finally меня поймал
    я наверное пишу код как-то специфически, что подобное никогда не использовал )))))

    • @delir0
      @delir0 3 роки тому +1

      За return в finally нужно сразу увольнять

    • @efreitorhabibulin238
      @efreitorhabibulin238 3 роки тому

      @@delir0 хахахаххаха

  • @denhost5033
    @denhost5033 2 роки тому

    Интересна тема видео с решениями задач, записывай еще ))) Спасибо за видео очень крутой и познавательный контент.

  • @AGM140580
    @AGM140580 2 роки тому +1

    Очень жду Ваших видео с решением задач!

  • @kanatasanaliev8763
    @kanatasanaliev8763 3 роки тому +2

    Спасибо за видео было интересно познавательно готовлюсь к собеседованию мне зашло (лайк поставил)

    • @UlbiTV
      @UlbiTV  3 роки тому +2

      Успехов в подготовке!

    • @kanatasanaliev8763
      @kanatasanaliev8763 3 роки тому +1

      @@UlbiTV а к стати может видео запилишь на счет работы Джуна что он делает до того как начнёт самостоятельно работать краткое видео думаю многим бы было интересно таких видео я не встречал

    • @kanatasanaliev8763
      @kanatasanaliev8763 3 роки тому +1

      @@UlbiTV заранее спасибо

  • @redhook777
    @redhook777 3 роки тому +1

    Лайк! Ждём видос про задачи!!!

    • @UlbiTV
      @UlbiTV  3 роки тому +1

      Спасибо!

  • @УльвияКарахмазли
    @УльвияКарахмазли 3 роки тому +1

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

  • @tricky_pie
    @tricky_pie Рік тому

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

  • @HatWriter
    @HatWriter 3 роки тому +1

    Спасибо за видео. Многое для себя подчеркнул. И что стоит подтянуть.

  • @irinamyskoooo
    @irinamyskoooo 3 роки тому +2

    очень крутые видео и канал !!!

  • @НикитаКлусович
    @НикитаКлусович 3 роки тому +3

    Топ канал, раньше минина канал был фаворитным, теперь этот)

    • @UlbiTV
      @UlbiTV  3 роки тому +1

      Спасибо!

  • @M27B_our_victory
    @M27B_our_victory 3 роки тому +8

    Запиши видео по решению задач!)

  • @Quentinrei
    @Quentinrei 2 роки тому

    💯 к уже близко 🚀🚀🚀

  • @frozeninside5004
    @frozeninside5004 3 роки тому +2

    Поддерживаю видео о решении задач оптимальным способом

    • @UlbiTV
      @UlbiTV  3 роки тому +2

      Будет!

  • @ТимСлим
    @ТимСлим 3 роки тому +14

    Думал будет испанский стыд за собеседуемого (мои тараканы 😁), но зря, интересное и как всегда - полезное видео! Спасибо Тимур!

    • @UlbiTV
      @UlbiTV  3 роки тому +1

      Спасибо, Теска!)

  • @looking_at_the_sky
    @looking_at_the_sky Рік тому

    Спасибо за интересный и познавательный ролик. Много хорошей пищи для размышлений и обучения :>

  • @khankhatai9480
    @khankhatai9480 2 роки тому

    Очень и очень познавательно. Спасибо за видеоурок

  • @evgeniyn1542
    @evgeniyn1542 3 роки тому +1

    Супер, интересное собеседование. Плюсую за решение задачек.

    • @UlbiTV
      @UlbiTV  3 роки тому +2

      Спасибо!

  • @itsmekamikoto4940
    @itsmekamikoto4940 2 роки тому +1

    Задача с массивом (удалить все чила , которые дублируется) я бы решил двумя способами :
    1. Создать Set от входящего массива , и для каждого элемента сета проверить если indexOf() и lastIndexOf() этого элемента во входном массиве равны - значит такой элемент единственный и добавить его в массив , который вернет функция в результате
    2. Отсортировать массив и использовав for () проитерироваться с начальным индексом итерации 0 и для каждого значения сравнить если индекс итерации не равен lastIndexOf() элемента в массиве тогда присвоить индекс итерации lastIndexOf() элемента , а если равен то добавить значине в конечный результат функции

    • @UlbiTV
      @UlbiTV  2 роки тому +1

      Варианты хорошие, но неэффективные, квадратичная сложность

  • @Sense1ko
    @Sense1ko 3 роки тому +5

    Так давай собеседования middle front / node js developer, бегло посмотрел, на канале только джуновские собесы, хотелось бы знать что ждёт нас дальше!)

  • @darkside2436
    @darkside2436 3 роки тому +14

    Топ контент!!! Ещё есть вопрос: когда тесты?

    • @UlbiTV
      @UlbiTV  3 роки тому +2

      Трудно сказать, как время появится)

    • @darkside2436
      @darkside2436 3 роки тому +1

      @@UlbiTV 😂

  • @dmitrykorovin4356
    @dmitrykorovin4356 3 роки тому +4

    самый крутой собес, что я смотрел ) без воды и пауз, очень круто и познавательно, спасибо! Другие порой смотришь - а там два часа непонятно чего

  • @oleksandrvoichyshyn7486
    @oleksandrvoichyshyn7486 3 роки тому +2

    Жду больше решений разных задач тут

  • @DennisTurbay
    @DennisTurbay Рік тому +1

    Классное собеседование! Оба участника себя чувствовали комфортно, главный как по мне фактор в собесах.

  • @Сергей-ы5с1о
    @Сергей-ы5с1о Рік тому

    Все было супер! Спасибо!

  • @NoakSV
    @NoakSV 2 роки тому

    Спасибо, было интересно!

  • @ВіталійПлевако-д2ж
    @ВіталійПлевако-д2ж 3 роки тому +1

    Спасибо, полезное видео!

  • @bbnowhat
    @bbnowhat Рік тому

    С удалением повторяющийся элементов в массиве можно:
    Перебирать массив со 2го по предпоследний элемент и если каждый очередной элемент не равен предыдущему или следующему то записываем в новый массив значение, это если упорядоченный исходный массив

  • @CapricornGaikov
    @CapricornGaikov 3 роки тому +1

    Стек для скобок?))
    Просто счетчик: +1 для открывающейся скобки, -1 для закрывающейся. После цикла если счетчик равен 0 то кол-во скобок совпадает. Если не 0 то получится кол-во лишних скобок и какого типа - как определить тип скобки из счетчика вы уже сами догадаетесь :)
    Все гениальное - просто! Да не за что!)

  • @MrJackseI
    @MrJackseI 3 роки тому +10

    Благодарю за твои видео!

    • @UlbiTV
      @UlbiTV  3 роки тому +1

      Спасибо!

  • @cseedrvr6627
    @cseedrvr6627 3 роки тому +5

    Со скобками мне кажется можно было сделать просто на открывающуюся скобку +1 для закрывающейся -1, и на выходе должно получаться 0

    • @falsetrue7910
      @falsetrue7910 3 роки тому +6

      А если будет вот такое выражение ")()()("?

    • @cseedrvr6627
      @cseedrvr6627 3 роки тому +3

      @@falsetrue7910 ну да, для такого случая не сработает, но если условие просто чтобы для каждой закрытой скобки была открытая то пойдет

    • @nagalokgames8861
      @nagalokgames8861 3 роки тому +4

      @@falsetrue7910 если счетчик будет меньше 0, на любой из итераций, сразу будет неправильная последовательность. так что решение со счетчиком корректное.

    • @Godrik99shadows
      @Godrik99shadows 3 роки тому +3

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

    • @arhim7650
      @arhim7650 3 роки тому +1

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

  • @thtflx
    @thtflx Рік тому

    Маленькая помощь, что бы было легче практиковаться самому.
    JavaScript.
    1. В чем отличие null от undefined ?
    Ответ: null - это пустое значение которое присваивается самим разработчиком.
    undefined - например если контейнер создан или его вовсе не определили, то значение будет undefined.
    2. У нас есть какой-то объект и у него есть поле. Этот объект приходит с backend. Этот поле может быть объектом или массивом. Как бы ты проверил, что это поле является массивом ?
    Ответ: через метод isArray() .
    3. Что такое DOM-дерево и для чего он нам нужен ?
    Ответ: (Document Object Model) Это когда браузер в памяти компютера создаёт Объектную Модель Документа, на основании HTML кода полученного им от сервера.
    4. Какие способы хранения данных ты знаешь ?
    Ответ: sessionStorage, localStorage.
    5. Что выведет obj2 ?
    let obj1 = {
    name: 'ulbi tv'
    }
    let obj2 = obj1;
    obj1 = {name: 'UPDATED'}
    console.log(obj2);
    Ответ: name: 'ulbi tv', так как не происходит глубокое клонирование.
    6. У тебя есть некий кусочек кода и ты понимаешь что там потенциально может быть ошибка. Как бы ты его обработал?
    Ответ: через try/catch
    7. Какой результат будет если мы запустим эту функцию ?
    function someFn() {
    try {
    if (Math.random() a - b);
    }
    console.log(uniteUniq(arr));
    10. Написать Функцию Конструктор.
    Ответ:
    function User(name, age) {
    this.name = name;
    this.age = age;
    }
    const user = new User('Ulbi tv', 21);
    console.log(user);
    React.
    11. Что такое props ? Отличие между state ?
    Ответ: props - это объект, содержащий свойства, которые передаются от родительского компонента к дочернему компоненту. Их изменять нельзя, они только читаемые.
    state - это состаяние, ими можно управлять методами жизненнего цикла и изменять.

    12. React Хуки (расскажите) .
    Ответ: Хуки - это нововведение, которое было добавлено в React 16.8 . Это функции, которые позволяют использовать состояние и управлять им без написания Классовых компонентов. Они упрощают разработку.
    13. Для чего нужен useContext ?
    Ответ: useContext - это хук в React, который предоставляет простой способ использования контекста в функциональных компонентах.
    14. Задача по оптимизации рендера.

  • @alexleshenko
    @alexleshenko 2 роки тому +1

    Иду обратно в джуны короч)) все легко 😜😜😜 карьера вниз 🤣
    Да всяко спасибо за труд) я не такое не решусь точно)

  • @РусланХасаншин-о9ъ
    @РусланХасаншин-о9ъ 3 роки тому +1

    Обожаю автора канала!

  • @snatvb
    @snatvb 3 роки тому +4

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

    • @UlbiTV
      @UlbiTV  3 роки тому +2

      С разными видами скобок все же лучше использовать стек

    • @alext1677
      @alext1677 3 роки тому +3

      @@UlbiTV это если скобки идут друг за другом, расставив их по разным местам - уже не работает.

  • @alexi182k
    @alexi182k 3 роки тому +4

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

    • @UlbiTV
      @UlbiTV  3 роки тому +1

      Согласен

    • @Kirdaro
      @Kirdaro 3 роки тому +1

      Так а смысл от них вообще? Разве берут инженера, а не разработчика? Особенно если они не типовые. Называется изобрети еще раз велосипед ради процесса.

    • @КрасавчикИкиса
      @КрасавчикИкиса 3 роки тому +1

      @@Kirdaro я так понимаю, оценивают ход мышления + умение разъяснить этапы решения + реакция на стрессовую ситуацию

  • @yuravychiwskii553
    @yuravychiwskii553 5 місяців тому +1

    Решение задачи со скобками в 1 строку:
    function checkBrackets(str) {
    return (
    str.replace(/[^\[({]+/g, '').length === str.replace(/[^\])}]+/g, '').length
    );
    }

  • @yuryitikhonoff9631
    @yuryitikhonoff9631 3 роки тому +3

    Даёшь видосы про решение задачек, особенно рекурсивное построение древовидных структур

  • @Елена-б6в3ж
    @Елена-б6в3ж 9 місяців тому

    Можно доп проверку сделать в задаче со скобками. Посмотреть длину строки. Если нечетное число, сразу вернуть false, чтобы цикл даже не запускать, не тратить время, вдруг строка оч длинная

  • @MACTEP_SHIFU
    @MACTEP_SHIFU Рік тому +1

    У меня нет IT образования, самоучка с 2005 года. Никогда не лез в конторы на работу, считая это без образования бесмысленным. Это первое видео с собеседованием что я увидел. Первые 10 вопросов я вообще был удивлен их наличию, в силу их простоты для меня. Про DOM дерево и null/undefined, вообще офигел. Походу если я для проверки себя попробую, то спокойно пройду собеседованиеи ...учитывая степень сложности этих вопросов для меня.
    А задачу со скобками...решение писец какое сложное. Разве что только для наглядности работы стека подходит. Обычный цикл, подсчет и тех и тех...и сравнивать количество. Ну или ещё короче, без цикла:
    const check = str => str.split('(').length === str.split(')').length;

    • @-And6053
      @-And6053 Рік тому

      составь ка вопросы для уровня middle, а мы посмотрим)

  • @Влад-ш2в1ю
    @Влад-ш2в1ю 3 роки тому +3

    Задача со скобками интересная,), Била у нас в унике по JS, там еще с регулярками можно заменять правильние скобки на пустую подстроку ...,,,

  • @dindevil8659
    @dindevil8659 2 роки тому +1

    Задачу с массивом и вправду можно было решить с помощью метода "Set", используя "has", "add" и "delete" в нужных случаях)

  • @MrDilord
    @MrDilord 3 роки тому +2

    По задачке с массивами. Имхо с объектом не очень читабельно if/else потом foreach с вложенным условием еще. Мне кажется самый простой вариант (хотя в плане скорости он серьёзно уступает):
    function filter (array) {
    const result = []
    for ( let i = 0; i < array.length; i++) {
    const items = array.filter((el) => {
    return el === array[i]
    })
    if (items.length < 2) result.push(array[i])
    }
    return result;
    }

    • @UlbiTV
      @UlbiTV  3 роки тому +1

      Ключевой момент как раз в скорости

  • @demonicchannel5372
    @demonicchannel5372 Рік тому +1

    Задачу со скобками можно решить без циклов и счетчиков.
    function checkBrackets(str) {
    if (str.split(" ").filter(i => i === (" ").length === str.split('').filter(i => i === ')').length) {
    return true
    }
    return false
    }

  • @irinaoblomova4384
    @irinaoblomova4384 3 роки тому +1

    интересно видео с задачами на JS !!!

  • @holinet6894
    @holinet6894 3 роки тому +4

    А в задаче со скобками можно было так решить, вроде даже понятнее?
    function checkBrackets(str) {
    str = str.split('')
    let counter = 0
    for (let i = 0; i < str.length; i++) {
    const elem = str[i];
    if (elem == '(') {
    ++counter
    }else if (elem == ')') {
    --counter
    }
    if (elem == '{') {
    ++counter
    }else if (elem == '}') {
    --counter
    }
    if (elem == '[') {
    ++counter
    }else if (elem == ']') {
    --counter
    }
    }
    if (counter == 0) {
    return true
    }else {
    return false
    }
    }

    • @UlbiTV
      @UlbiTV  3 роки тому +1

      Это неработающее решение, один счетчик для разных скобок

    • @Sunr1sen2
      @Sunr1sen2 3 роки тому +1

      Раз уж юзаем методы массива, так юзаем) Можно конечно упороться и в строку вытянуть, но так более читаемо
      ну и доп скобки можно в фильтр прям запихивать
      function checkBrackets(str) {
      const arr = str.split('');
      const leftBracketsCount = arr.filter(item => item === "(").length;
      const rightBracketsCount = arr.filter(item => item === ")").length;
      return leftBracketsCount === rightBracketsCount;
      }

  • @andreyevanton
    @andreyevanton 2 роки тому

    больше задачек! спасибо за контент

  • @admax811
    @admax811 3 роки тому +2

    На разогревочных вопросах, я посыпался.. Когда начали говорит о стеках, я вообще офигел от слова стэк в javascript'e, подумал что звиздец, я между мидл-сеньером а не знаю о существования стэков в js.. Когда перешли с теории в практику, тут то все стало понятно.. в разговоре участвуют javascript программеры, которые на других языках не писали и не понимают различий между стеком и массивом, не понимают что оптимальное решение для такого типа задач не массивы а курсоры.. тут и стало понятно, почему это junior ))

    • @UlbiTV
      @UlbiTV  3 роки тому +2

      Огооо, у нас тут синьоры, а что такое стек? расскажите пж:))

    • @admax811
      @admax811 3 роки тому +1

      @@UlbiTV в рамках js, стэка нет, по-этому в поле js этого не описать, но да? функционально конечно массив можно принимать как тот же стэк, но в си - stack это не массив а отдельная структура данных оптимизированная под LILO, поэтому в рамках си программера массив и стэк - это разные понятия. И когда ты спросил о stack - я завис, что за структура есть в js которая не массив а stack..

    • @admax811
      @admax811 3 роки тому +1

      Мне больше задача на 21:20 понравилась :) я сейчас попробовал несколько методов решений этой задачи и думал даже что может быть задача будет решаться быстрей, если не создавать новый объект а чистить массив от дубликатов при нахождении. Оказалось что это много раз медленней.. в итоге да, то решение что в видео оно почти самое быстрое (почти, потому что там используется каунтер, если без каунтера делать - то получается быстрей.
      function withCounter (array) { // Время исполнения 6 секунд
      const values = [], obj = {}
      for (let i = 0; i < array.length; i++) obj[array[i]] = obj[array[i]] ? obj[array[i]] + 1 : 1;
      Object.keys(obj).forEach((key) => obj[key] === 1 && values.push(key))
      return values;
      }
      function withBoolean (array) { // Время исполнения 4 секунды
      const values = [], obj = {}
      for (let i = 0; i < array.length; i++) obj[array[i]] = obj[array[i]] === undefined;
      Object.keys(obj).forEach((key) => obj[key] && values.push(key))
      return values;
      }
      такой порядок примерно

    • @UlbiTV
      @UlbiTV  3 роки тому +1

      @@admax811 ну тогда почему идет принижение js-ников? Стек строится поверх массива или поверх связного списка, подразумевается функциональность, а не явный тип:) и да, собеседование было не на СИ

    • @admax811
      @admax811 3 роки тому +1

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

  • @НиколайГончаров-ъ2ь

    Задачу со скобочками можно решить через filter и сравнение длинны массивы 2 полученных массивов. А уникальные массивы задача с кодварса, легко решается, спасибо кодварсу :D => return arr.filter((x,i,array) => array.indexOf(x) === array.lastIndexOf(x))

    • @UlbiTV
      @UlbiTV  Рік тому

      Плохое решение, хоть и выглядит красиво
      Циклы вложенные в цикл

  • @konstantindeveloper6486
    @konstantindeveloper6486 3 роки тому +1

    Привет, на 17 минуте есть еще одна ошибка в функции checkBrakets, т.к. return выйдет из цикла, но не из самой ф-ции.
    Вариант реализации может быть например такой, чтобы все работало
    ```const checkBrackets = (str) => {
    const stack = [];
    let lastEl;
    str.split("").forEach((el) => {
    if (el === "(") stack.push(el);
    lastEl = stack.pop();
    if (!lastEl) return false;
    });
    if (stack.length || !lastEl) return false;
    return true;
    };```

  • @oleksiihmyrko7969
    @oleksiihmyrko7969 3 роки тому +1

    Крутое видео ! Давай ещё задачек из собесов 🙂

    • @UlbiTV
      @UlbiTV  3 роки тому +1

      Спасибо!

  • @kirillgabov705
    @kirillgabov705 3 роки тому +6

    32:00
    Я не уверен как работает in, но сложновато поверить что она работает за О(1)
    В худшем случае (когда все значения разные) он будет каждый раз поиск делать по количеству уникальных значений на данный момент, что тоже n в общем случае, так что сложность чуть меньше n^2

    • @untured6167
      @untured6167 3 роки тому +1

      Если я правильно помню, то O(n) - это случай когда длительность обработки увеличивается линейно относительно длины обрабатываемого массива
      В этом случае можно решить почти O(n). Почти, потому-что сначала придётся отсортировать массив, а O сортировки может быть разным.
      У меня получилось так:
      function removeDuplicate(array)
      {
      function compNumber(a,b)
      {
      if (a>b) return 1;
      if (a==b) return 0;
      if (b>a) return -1;
      }
      let result = new Array
      let current = null
      let add = false
      array.sort(compNumber)
      for(let i = 0; i

    • @DmitriiRepnikov
      @DmitriiRepnikov 2 роки тому

      Оператор in в javascript поверяет наличие ключа в хеш-мапе. Это не поиск, там всегда либо есть такой ключ, либо его нет. Доступ по ключу в хешмапе происходит за O(1), как и во всех других языках программирования
      Другое дело что в некоторых языках программирования оператор in можно вызвать и в списках, что действительно уже не будет O(1), но это не тот случай, в js оператор in на списках не вызывают, так как это не имеет смысла, т.к. он не ищет элементы таким образом

  • @nafanya3733
    @nafanya3733 3 роки тому +3

    Мой вариант задач со скобками и функцией без повторений)
    Тимур, пожалуйста, можешь дать ревью?)
    const checkBrackets = (str) => {
    let lastResult
    do {
    lastResult = str
    str = str.replace(/\(\)/g, '')
    str = str.replace(/\[\]/g, '')
    } while (str !== lastResult)
    return !str
    }
    const withoutRepeat = (arr) => {
    let result = {}
    arr.forEach(i => {
    result[i]
    ? result[i]++
    : (result[i] = 1)
    })
    return Object.keys(result).filter(i => result[i] === 1)
    }

  • @Rizz_The_One
    @Rizz_The_One Рік тому

    по поводу задачек на JS очень интересно, если конечно предложение еще в силе :D

  • @ОленаКуніцина
    @ОленаКуніцина 3 роки тому +3

    Спасибо за собеседование

    • @UlbiTV
      @UlbiTV  3 роки тому +1

      и вам спасибо за отзыв)