РЕАЛЬНОЕ СОБЕСЕДОВАНИЕ С КУЧЕЙ ЗАДАЧ НА MIDDLE/SENIOR FRONTEND РАЗРАБОТЧИКА! ЗП ДО 300К

Поделиться
HTML-код
  • Опубликовано: 10 сен 2024

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

  • @frontend-m0ney
    @frontend-m0ney  Месяц назад +3

    Помощь в трудоустройстве и повышении ЗП - goo.su/xeDj
    ТГ канал - t.me/m1sha_frontend
    ТГ для связи со мной - t.me/m1sha_bbn

    • @itstart2144
      @itstart2144 Месяц назад

      С вами все ок ? Зачем вы даете задания университета переверни слова, нарисуй масив чисел в виде зведочек но чтобы слова имели вид трансформера, каки образом эти задания будут влиять на виполения реальных задач.?????? Олимпиадное програмирование и код на прокте, это совсем разные вещи. Я бекендер и избегаю масивов. За масивы мне дають по голове. И не давайте ему заданий с олипиадного програмирования. Чел я ниодной задачи твоей не решу. Хоча сам напишу с нуля криптобиржу, подключу любой способ оплаты, сделаю админку где будет мультиязычно редактироваться каждое слово, но ты меня не возмешь на работу потому что я тебе слово не перевернул хахахаахахахах

  • @glebbaruch6644
    @glebbaruch6644 Месяц назад +21

    С pipe неверно решили, кажется собеседующий сам не знает как решается эта задача

    • @MeLuCk3R
      @MeLuCk3R 21 день назад

      ага, вроде как минимум акумулятор должен 1 изначально быть, и сложения не должно быть

    • @alexey_samokhin
      @alexey_samokhin 9 дней назад

      @@MeLuCk3Rага)
      const times = (x) => (y) => x + y;
      const pipe = (fns) => {
      return (input) => {
      return fns.reduce((acc, fn) => {
      return fn(acc)
      }, input);
      };
      };
      const calculation = pipe([
      times(1),
      times(3)
      ]);
      console.log(calculation(3));

  • @soulwind7577
    @soulwind7577 Месяц назад +35

    Честно я мб давно собесы проходил, но у меня все собесы которые начинались от 200к+ проходили в формате.
    - кто ты
    - рассказываю кто я
    - показываю какие проекты делал
    - показываю, что делаю сейчас
    Как правило на все работы есть исходники и я могу запустить большую часть проектов локально
    - рассказываю, что хочу в ближайший год реализовать
    Потом как правило, меня часто спрашиваю какие были сложности в той или иной реализации.
    Все это рассказываю минут 15-20, пару вопросов по JS для галочки чисто.
    Далее рассказываю, что у них нужно делать и начинаются торги по ЗПшке.
    Было пару душных собесов где просили решать большое кол-во задач, проходил такие, но честно не понимаю прикола, человек может хорошо и быстро решать такие задачи, да вот только какой смысл если в разработке проекта, часто другие навыки нужны.

    • @xzbeatz
      @xzbeatz Месяц назад +1

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

    • @sergeyfilatov3027
      @sergeyfilatov3027 Месяц назад

      Я сначала часто спрашивал много теории, но потом пришел к выводу что как раз проще дать пару тестовых заданий и сразу понятно человек умеет программировать или нет. Например люблю давать задание что сделать таймер тикающий раз в секунду который по кнопке можно запускать и останавливать по клику на кнопку, и процентов 50 отсеивается потому что даже такую мелочь за 20 минут написать не могут.

    • @mamedgasanov1260
      @mamedgasanov1260 Месяц назад +1

      Если у вас есть портфолио которое вы можете показать то интерфьювер проверят в целом знание js отсеив тех кто врёт в резюме. Смысл задавать есть вопросы если вы не работали в высоких должностях до этого например. Бегите оттуда где вас спрашивают о том как работает var. Недавно проходил собеседование в Grid dynamic. Задавали вопросы из учебника. Причем вещи которые явно не используются в реальных проектах. Я поотвечал но это явно не то что я ожидал подаваясь на вакансию next js. В итоге написал HR что стоило упомянуть что вопросы будут не по next js а по чистому js. И будут вопросы с * из учебников 2010 года. По итогу HR даже не ответила. Через 3 дня узнал что увольняется оттуда проработав там 2 недели на уровне PHP senior developer. Явно что то не так с компанией

    • @alexey_samokhin
      @alexey_samokhin 9 дней назад

      @@sergeyfilatov3027 на реакте такой таймер даешь написать?)

    • @timothyc1474
      @timothyc1474 9 дней назад

      Сейчас все поменялось( Если какая то тим лидовская позиция, то да. Как ты говоришь будет. Но сейчас много вкатунов появилось и собесы на мидловские-сеньорские позиции приходится прогонять лайв кодингом и вопросами по теории, чтобы отсеясть вкатунов

  • @dkrrus5844
    @dkrrus5844 Месяц назад +22

    Собеседующий душнила. Он по ходу отбывает повинность, а не ищет человека в команду.

    • @ДаниилСоловьев-э6ш
      @ДаниилСоловьев-э6ш Месяц назад +1

      А в чем духота? Вроде нормальные вопросы, типичные я бы сказал

    • @dkrrus5844
      @dkrrus5844 Месяц назад +1

      @@ДаниилСоловьев-э6ш манера ведения собеседования. Торопится куда-то.

    • @kawaikaino5277
      @kawaikaino5277 Месяц назад

      ​@@dkrrus5844 + Собеседующему задают вопросы, Миша ждет обратную связь, а он тупо молчит или мычит

    • @xenm85
      @xenm85 8 дней назад

      @@ДаниилСоловьев-э6ш это идиотские вопросы для такого уровня, которые совершенно не дают представления о возможности решать реальные продуктовые задачи

    • @user-cs6dl2gy5m
      @user-cs6dl2gy5m 4 дня назад

      обычный хороший собеседующий

  • @lord2kim
    @lord2kim Месяц назад +7

    в первой задачи второй части собеса где нужно было реализовать функцию pipe собеседующий сам не особо понимал что требуется или в принципе не готовился...судя по примеру кода pipe должна возвращать функцию, а в итоге возвращает значение и "вроде норм")))
    и махонький момент по задаче с EventEmitter...через pop не совсем корректно убирать подписчиков
    в коде вначале вызывается release на sub1 потом на sub3...получается сначала удалится callback, который был передан в sub3, потом тот что в sub1...по хорошему надо фильтровать массив с использованием самого cb

    • @mamedgasanov1260
      @mamedgasanov1260 Месяц назад

      Искал человека который написал бы про это. Интервьюер 2 собеса положил болт на происходящее. Что должна делать функции release удалять все по факту удаляет 1 функцию. И то что пару строчек выше до сих пор возвращается this вообще никого не волнует ...

  • @xxxxPomaHxxxx
    @xxxxPomaHxxxx Месяц назад +2

    00:00:00 Собеседование на мидл фронтенд разработчика
    00:03:16 Задачи на JavaScript
    00:08:01 Задачи на JavaScript (продолжение)
    00:11:43 Задачи на JavaScript (продолжение)
    00:19:49 Задачи на JavaScript (продолжение)
    00:25:56 Задачи на JavaScript (продолжение)
    00:32:47 Рендеринг страниц в браузере
    00:38:52 Виртул дом в React
    00:43:25 Функции пайп и промис рейс
    00:53:07 Релиз и сабскрайб
    01:02:41 Архитектура и антипаттерны
    01:05:28 Редакторские и контекстные редакторы
    01:10:02 Композиция и антипаттерны
    01:14:41 Процесс разработки
    01:22:25 Проект и команда
    01:24:56 Технологии и задачи

  • @GonzaVladimir
    @GonzaVladimir 5 дней назад

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

  • @horatio4586
    @horatio4586 Месяц назад +5

    47:20 тут не правильно немного, нужно чтоб функция возвращала функцию и в reduce брать как первое значение для acc аргумент calculateOne, но собедедующий и так принял походу)

    • @ЗайцевЕвгений-у3ы
      @ЗайцевЕвгений-у3ы Месяц назад

      Да, искал этот коммент. Думал, че там не возвращаеся новая функция с аргументами

  • @user-ic9hf3ps4z
    @user-ic9hf3ps4z День назад

    Я восхищаюсь тобой, очень умнен)))

  • @delbether
    @delbether Месяц назад +5

    Как человек с его менторства скажу, что материалы он дает годные и помогает с возникающими вопросами)
    Сам я ещё офер не получил, но всё в процессе😇
    Спасибо за твой контент и помощь!

  • @mr-pony
    @mr-pony Месяц назад

    задачу по тс вообще ни в жизнь бы не решил без гугла)
    В реальности обычно прост описываем шэйп объектов, а тут магия какая-то прям

  • @ProgVipe
    @ProgVipe 28 дней назад +1

    годно, можешь ответить? я хочу сначало работать с DOM, а потом научится задачи решать, не получается у меня их сейчас решать.
    Или между временем их пытаться решать, что посоветуешь?

  • @andrewmakarov6830
    @andrewmakarov6830 Месяц назад +5

    По задаче с reversWord.
    Думаю решение очень плохое:
    - Не очень понимаю смысл все решать через reduce. Уметь его применять надо, но решать все задачи с его помощью - точно нет. Он точно для понимания не так очевиден, как обычный проход массива. Зачем на пустом месте усложнять код? Сугубо мое мнение, reduce для чего-то типо вычисления summary, но никак для обхода массива
    - Общая сложность алгоритма квадрат - это да, но в деталях столько лишних операций, что можно спокойно квадрат складывать еще с константами сложности
    - В колбеке reduce'а, ты вызываешь split(это цикл обхода массива), потом вызываешь revers(это второй цикл обхода массива), потом join(это третий обход массива). Да они не вложенные, поэтому на абстрактную оценку сложности не влияют(константы отбрасываются), но на реальную производительность влияют
    - Ну и в конце еще один join - это еще один обход массива
    У тебя по идее, следующая сложность получилась - O((3N)² + N), это если константы не отбрасывать. Если отбросить, то конечно O(N²)
    Я предложил бы более "тупое" решение за чистый O(N²). Единственный минус, на каждое сложение строки создается новый экзепляр строки в памяти, но по действиям чистый O(N²).
    P.S. Первый Split не считаю, отбросил и у тебя и у меня. Без него никуда, хотя если запариться, можно попробовать обойти одним циклом сразу исходную строку и в цикле хранить состояние слов, но будет очень сложный визуально код и будет линейная сложность.
    const reversWords = (str = '') => {
    let result = '';
    const words = str.split(' ');
    for(let i = 0; i < words.length; i++) {
    const word = words[i];
    for(let j = word.length - 1; j >= 0; j--) {
    result += word[j];
    }
    if(i < words.length - 1) {
    result += ' ';
    }
    }
    return result;
    };

    • @vladagaravaya7669
      @vladagaravaya7669 22 дня назад

      O(n)
      const reverseWords = (str) => {
      let result = '';
      let reversedWord = '';
      for (let i = str.length - 1; i >= 0; i--) {
      if (str[i] !== ' ') {
      reversedWord += str[i]
      } else {
      result = reversedWord + ' ' + result;
      reversedWord = '';
      }
      }

      return (reversedWord + ' ' + result).trim();
      }

    • @Pavel555
      @Pavel555 9 дней назад

      Это же декларативный код. И потом оптимизациями надо заниматься в последнюю очередь (это даже умные дяди в книжках пишут). В первую очередь код должен быть читаемым. reduce намного читабельнее, чем for в количестве аж трех штук, как ты предложил.

    • @antonkruglov8334
      @antonkruglov8334 3 дня назад

      str.split(' ').map(el => el.split('').reverse().join('')).join(' ')

  • @kirylbehansky1315
    @kirylbehansky1315 Месяц назад +9

    задачи на 500к тогда такие: проверьте что в аргументы передана строка )

    • @timur2887
      @timur2887 23 дня назад

      на самых дорогих зп как раз никакие задачи не решаются, как правило)

    • @kirylbehansky1315
      @kirylbehansky1315 23 дня назад

      Ну здесь тоже вообще то норм вакансия и зп по России )

    • @mxlawr
      @mxlawr 4 дня назад

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

    • @timur2887
      @timur2887 4 дня назад

      @@mxlawr ну это не часто удаётся, большинству надо действительно быть хорошим спецом с большим опытом и, более того, талантами

    • @mxlawr
      @mxlawr 4 дня назад

      @@timur2887 поверь это есть, а у спеца всегда будет потолок в найме каким бы талантливым он не был, если он только не уникум, а таких единицы.

  • @user-px6hu2dr7n
    @user-px6hu2dr7n Месяц назад

    А почему после одного собеса сразу другой тех.собес идёт? Это две разных команды или что?

  • @РусланС-н3е
    @РусланС-н3е Месяц назад

    Да такой-же вопрос 3-4 года назад зп были 200 тыс у мидлов и сейчас 200-300 .. по идее 400-500 должно быть

  • @mgrm7031
    @mgrm7031 5 дней назад

    Мишаня, какой прогой пользуешься для записи видео на винде ?

  • @raufhashimov241
    @raufhashimov241 Месяц назад

    А где найти эту задачку 00:32:47? Я компонент Item не вижу. Что там такого что если игнорировать index, то он не будет меняться?

    • @Userffffff
      @Userffffff 14 дней назад

      export function Item({ item }) {
      const [counter, setCounter] = useState(0)
      return (
      counter {counter}:
      setCounter(prev => prev + 1)}>Click, I`m id {item.id}

      )
      }
      по идеи так

  • @evgenym.2137
    @evgenym.2137 Месяц назад +2

    Собеседующий максимально душный. Задача на задаче, задачей погоняет…)

  • @Abdul-hy4cy
    @Abdul-hy4cy 18 дней назад

    52:44 - к чему здесь переменная result ? она не нужна

  • @grigodoes
    @grigodoes Месяц назад

    почему вообще на FRONTEND собеседовании задают вопросы по NodeJS?

  • @gowking
    @gowking Месяц назад +1

    Душные собеседующие. Молчат и молчат

  • @mrnort1990
    @mrnort1990 Месяц назад +2

    senior в ВТБ до 300? (((

    • @frontend-m0ney
      @frontend-m0ney  Месяц назад

      можно больше, просто я говорю 250-300 чтобы точно на собес позвали

  • @Hanbolot-br3uv
    @Hanbolot-br3uv Месяц назад

    Автор ответьте пожалуйста.
    Это работа на удаленку была ??

  • @nikitayaskevich813
    @nikitayaskevich813 Месяц назад

    Cпасибо, Миша. Пока что самое классное видео на канале: количество интересных задачек поражает, особенно задачки на Promise.race и pipe.

  • @Dmitri915
    @Dmitri915 Месяц назад +1

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

    • @HATCOH4
      @HATCOH4 Месяц назад +1

      Какая же жиза))

  • @yukkimattaru
    @yukkimattaru Месяц назад

    когда-нибудь начнут давать реальные задачи :)

  • @Madion86
    @Madion86 Месяц назад

    Привет! Обожаю проходить собесы, но не знаю как себя подать, если реально работу не ищу.
    Подскажи, у тебя от своего имени резюме, или фейковый аккаунт с выдуманым именем? Или как ты поступаешь, чтобы проходить много собеседований?

    • @frontend-m0ney
      @frontend-m0ney  Месяц назад

      под фейк именем пока что прохожу

  • @this_IsUsername
    @this_IsUsername Месяц назад +10

    Меня одного смущает ЗП? Мидл+-синьор за 250-300к?! Мы в 2019г чтоль? 😂 сейчас полно тех же банков, платящих 400к, загранички на 5к баксов - в чем прикол туда собеситься? Сколько лет они уже ищут разработчика? Судя по низкой зп - им и на индексацию плевать, стала ваша ЗП через год на 15% ниже из-за инфляции - работодателю все равно будет 😅

    • @user-px6hu2dr7n
      @user-px6hu2dr7n Месяц назад +2

      Откуда такие цифры? Нормальная зп, ВТБ столько и даёт обычно плюс/минус

    • @avel8965
      @avel8965 Месяц назад +1

      Смотря где. Для Москвы мало. Можно за 350-400 искать и не ловить круглые глаза собеседующих

    • @MioGesa-md2ul
      @MioGesa-md2ul Месяц назад +1

      400к в банке где алгоритмы нужно сдавать на собесе? Там только олимпиадники проходят собес

    • @user-px6hu2dr7n
      @user-px6hu2dr7n Месяц назад

      В ВТБ, кстати, очень разные могут быть по степени сложности собесы, зависит от стрима/команды. Но в целом тенденция такая, что с каждым годом всё веселее и веселее)

    • @rxxnin
      @rxxnin Месяц назад

      нормальная зп, просто кто то зажрался

  • @timur2887
    @timur2887 23 дня назад

    даешь собес с зп 500+ =)

  • @v1va53
    @v1va53 Месяц назад

    Первая же задача вызывает сомнения в навыках самого собеседующего. Ты привёл решение с Set'ом, даже в доке написано, что данное решение будет более производительным, чем обычные переборы элементов. Но видимо человек не знаком с тем, как это работает и просит менее оптимальное решение, чта?!

    • @deantek
      @deantek 20 дней назад +1

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

    • @v1va53
      @v1va53 20 дней назад

      @@deantek я согласен с таким подходом, когда было представлено максимально "костыльное" решение и собеседующим таким образом как бы намекает "хэй неплохо, но давай поищем что-нибудь получше"

  • @buduj2386
    @buduj2386 Месяц назад +9

    Честно говоря одно и самых бредовых и скифских собесов со стороны собеседующих.
    По моему 1-2 задачки на практике и уже можно понять что человек умеет решать или нет. Как будто собеседующие пришли самоутвердится.

    • @rin2004able
      @rin2004able Месяц назад +1

      в пределах разумного

  • @victancia
    @victancia Месяц назад

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

  • @velikorossnationalist4259
    @velikorossnationalist4259 Месяц назад

    Миша, реально ли устроится в компанию без оформления, т.е. неофициально?

    • @frontend-m0ney
      @frontend-m0ney  Месяц назад

      по ИП/ГПХ/СЗ можно

    • @velikorossnationalist4259
      @velikorossnationalist4259 Месяц назад

      @@frontend-m0ney это все официальное трудоустройство. Приставы будут деньги списывать с карты. А что насчет неофициального - без оформления?

    • @mamedgasanov1260
      @mamedgasanov1260 Месяц назад

      @@velikorossnationalist4259 биткоинами получай бабки вон в Дубае много компаний

    • @TheTexPro
      @TheTexPro Месяц назад

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

  • @user-df3qt3vn6c
    @user-df3qt3vn6c Месяц назад

    Я заводчанин, подскажите с чего вообще начинать весь этот путь? Что-то для начинающих как База

    • @frontend-m0ney
      @frontend-m0ney  Месяц назад

      HTML
      CSS/SCSS
      JS
      React
      Typescript
      Redux-toolkit
      В таком порядке можно учить

    • @виртуоз_ру
      @виртуоз_ру Месяц назад

      HTML
      CSS
      JS
      Vue
      Typescript

    • @TheTexPro
      @TheTexPro Месяц назад

      иди в бэкенд лучше ) там конкуренции меньше

    • @user-wc2cq7rk2z
      @user-wc2cq7rk2z 4 дня назад

      с любых бесплатных курсов

  • @user-em1jp6iq5r
    @user-em1jp6iq5r Месяц назад

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

  • @KZVlad1
    @KZVlad1 10 дней назад

    9:52 жесть палево, что не сам проходишь, а в консоль копипастнул. реально, при чем здесь undefined? это в консоли браузера постоянно выводится так, в реальном коде то этого не было и это даже не логично. просто сразу понятно что ты из консоли это взял, даже не обдумывая.

  • @aspdof-wy7nj
    @aspdof-wy7nj Месяц назад +1

    непохоже что дошел дальше

    • @astkh4381
      @astkh4381 Месяц назад +6

      Видео длится 1:30 часа. Выложено оно 30 минут назад, так каким образом ты успел посмотреть?

    • @masha18able1
      @masha18able1 Месяц назад

      @@astkh4381ахахахахахахахха

    • @aspdof-wy7nj
      @aspdof-wy7nj Месяц назад

      @@astkh4381 это только предположение, если оффер в конце видео правда то ок

    • @vibius6385
      @vibius6385 Месяц назад

      @@astkh4381 подобное можно смотреть на х2 и скипать моменты, в которых автор пытается набросать решение, вот тебе и полтора часа за полчаса.

  • @user-gy4kd4dm3e
    @user-gy4kd4dm3e Месяц назад

    Привет профи. Ну кто подскажет где можно поднатаскаться чтобы устроится хоть каким-нибудь начинающим человеком, который создаёт что-то полезное? Я работник завода на чпу станках, наладчик фрезерных станков. Зарплата максимум 110К. Работаю уже лет 7. Неужели программистам так могут платит у нас в России? Желательно направление платежеспособное. С кодом своим на работе справляюсь. А это уже не та сфера о которой я интересуюсь. Дайте хоть какую-нибудь информацию.

    • @dididie158
      @dididie158 22 дня назад

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

    • @user-gy4kd4dm3e
      @user-gy4kd4dm3e 21 день назад

      @@dididie158 Не знакомый человек, спасибо, что хоть что-то ответил. Но конкретно направление хоть подскажи перспективное. Где есть конкуренция и платежеспособность?

    • @dididie158
      @dididie158 21 день назад

      @@user-gy4kd4dm3e направление Frontend web. А именно один из стеков на angular/vue/react. Из-за того что технологии постоянно новые меняются и появляются новые фреймворки, надо уметь адаптироваться и из-за этого конкуренция. Но везде одна основа и это JavaScript. Поэтому конкурент направление это фронтенд. Вилка на позицию Senior идёт от 280 до 400 в России

    • @deantek
      @deantek 20 дней назад

      @@user-gy4kd4dm3e почти в любом направлении it можно получать от 200-300к, если хотя бы 2-3 года опыта есть, ну кроме разве что игровых компаний, у нас в рф это не развито

    • @dididie158
      @dididie158 18 дней назад

      @@user-gy4kd4dm3efrontend web

  • @АлександрБурмантов-ф4ж

    Меня на 90к задачу спросили с консоль логами строк на 70.
    Пример
    p1 = new Promise(res, rej) => {
    console.log('1')
    resolve(2)
    console.log('3)
    reject(4)
    p2 = Promise.reject(5)
    console.log(6)
    p2.then(console.log(7)
    p1.then(console.log(8).catch()............
    и все это с кучей сет таймаутов вокруг и внутри промисов и тд)

    • @qwezxc9758
      @qwezxc9758 Месяц назад

      беги оттуда

    • @TheTexPro
      @TheTexPro Месяц назад

      потому что желающих вагон

    • @dididie158
      @dididie158 22 дня назад

      это такой ор. Я проходил опросник на 20 вопросов, где были 15 подобных задач и решить надо все за 20 минут)))

  • @cao_dzecbi
    @cao_dzecbi 17 дней назад

    Фейк-собеседование