Tech Interview Fest | Моковое cобеседование для C# Junior | Solvery + @DotNetRu

Подготовка к собеседованию на C# Developer

Транскрипция видео:

  • много там Алерон еще тоже прикольный человеку которого вот свой паблик и там они вдвоем будут собесе celeron вместе с тоже там ментором поймали прикольным А как вы вообще в это в это все тут надписался погнали так в общем всем привет Добро пожаловать на Добро пожаловать на стрим по стешарку в рамках тех интервью festa так я думаю откуда у меня идет звук Приветики Так давайте еще раз заново Добро пожаловать на Стрим смоком собеседованием на сишарп джунер позицию в рамках тех интервью Fiesta у нас уже

    00:00:08 - 00:01:30

  • запустилась сегодня вторая неделя тех Android festa мы проводим 10 мокрых собеса по 10 технологиям Вот и сегодня мы проводим этот Стрим в партнерстве с прекрасным Вот и меня зовут Антон я основатель и это крупнейший что нас сегодня будет сегодня будет очень классно полезный контент Мансуров наш классный метр проведет собеседование а Храбрый Антон Шевченко один из участников сообществу соответственно будет отвечать на вопросы и для всех зрителей будет много интересного и полезного что еще хочу добавить прежде чем стартанём у нас

    00:00:50 - 00:02:15

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

    00:01:33 - 00:02:48

  • эмоджи поддержки антонамиру Вот и я передаю всем привет Спасибо что передали слово и пригласили сюда немножко поговорим про dotnet в частности хотел вас спросить у Антона что вообще он может себе рассказать но сначала расскажу немножко о себе вот я являюсь тут нет разработчиком чуть больше пяти лет Я примерно последние три года занимаюсь именно финтехом а именно делаю вэбапе на спидот найти и немножко Обучаю на словаре если интересно вот в целом нравится работаю в мандарине До этого работал в банке вот нравится

    00:02:09 - 00:03:36

  • просто потому что он очень хорошо развивается и хотел бы продолжать развивать в принципе тут нет хотел бы видеть новых участников нашего комьюнити Донат разработчиков и Именно поэтому согласился поучаствовать в этом мероприятии хотел бы все-таки у Антонова спросить немножко о нем Антон можешь рассказать немножко о себе Чем занимался Какой у тебя опыт в принципе работы Dota и так далее Привет а Конкретно тоттенхэта порядка 4 лет имею два образования первая специалист по информационной безопасности и три

    00:02:53 - 00:04:17

  • года был активный участником сети а потом решил все-таки получить магистраль это высшее полное образование закончил магистратуру по астрофизике и собственно там очень активно уже начал программировать очень тесно работал со спутниками машины обучение и вот как раз таки обучающий выборки для машинного обучения Я генерировал на программах написанных на тот знаете а также работал в такой компании whitehack это компания специализирующаяся на защите малого среднего бизнеса именно фильтруют внутреннюю сетку компании и Внешний мир

    00:03:41 - 00:05:16

  • по сути такой своеобразный Firewall и вот на сей шарпе было написано Агент управления для Windows это некая вышка и служба Windows после Я работал в банке а именно занимался участвовал в создании некая такое сервиса по генеа автоматический генерации документов для пользователей то есть есть некий шаблон и все что Банк знает о клиенте что туда автоматически подставлялось а в частности конкретно я занимался разработкой плагина для MS офиса на такой древней технологии вско а после я в этом же банке работал

    00:04:34 - 00:06:03

  • системным аналитиком разрабатывал поддерживал автоматизацию документооборота с органами и собственно этим на этом все примерно а сейчас ты в итоге С какой целью вот хочешь свои навыки поверить С какой целью решил пройти это интервью Я хочу из аналитики опять вернуться в разработку Возможно с элементами аналитики но все-таки чтобы разработка была А поскольку не собеседовался я уже давно а некий мандраж перед ними присутствует вот попробовать потоки я еще или нет Ну чтобы этот мандраж пропал Хотя бы к

    00:05:19 - 00:06:52

  • минимальному уровню нужно почаще такие собеседования проходить А лучше реальные собеседование но хотя бы хотя бы так чтобы испытать мандраж и возможно в будущем его будет меньше Хорошо давай потихоньку будем начинать я сейчас по шарю экран у меня тут небольшое небольшая форма гугловая Там всего четыре вопросика с кодом мы начала посмотрим на них а потом просто пообщаемся хорошо Сейчас я по шарю экран видно видно Так давай начнем с первого вот что будет выведен результат выполнения программы если нужно увеличить могу увеличить Нет

    00:06:06 - 00:07:32

  • мне видно видно ли зрителям на YouTube Ну вот так должно быть видно да Давай еще раз покажу задание да да Я просто пытаюсь разобраться в методе сцепным вот классе запомнить сейчас метод по идее будет выведена Боб и один потому что у нас Кэт это класс передается по ссылке меняем объект внутри меняется он снаружи Давай немножко поговорим по поводу ссылочных и значимых типов что это такое можешь рассказать немножко У нас есть условно две области стек и куча стек у нас ограничено куча ограничена условно оперативной памятью

    00:06:54 - 00:08:26

  • если это грубо сказать так очень быстрый память куча чуть помедли потому что там через указатель все значимые типа хранятся в стеке например те же с ними все классы что хранится в стоке отличительная особенность тем что классы передаются класса или объекты передаются ссылочный типа передается по ссылке то есть объект который внутри функции и за это дело и указывает физически на одну и ту же область памяти изменение в одном месте приводят изменения в другом а передача по значению то есть передача

    00:07:52 - 00:09:29

  • значимых типов мы по сути дела Посвятила происходит копирование значения в Новую область памяти и поэтому изменения внутри функции не затрагивает нашу значимый тип за пределами этой функции хотел уточнить Вот ты сказал что значимые их типы хранятся в стейке А ссылочные в кучу Всегда ли значимые типы хранятся в стыке вот такой вот примеру если у нас есть класс Это ссылочный тип но внутри у нас как вы здесь на примере паблик инк-эйдж вот он поскольку принадлежит ссылочному типу он тоже будет храниться в куча

    00:08:53 - 00:10:14

  • Окей давай все-таки еще раз посмотрим метод и подумаем вот у нас есть метод Set name в него передается параметр Кэт такая точка name равно Борис потом к это равно Ну и дальше к это равно New Cat А ты считаешь то что в консоль будет выведена Боб 1 правильно Хорошо давай такой вопрос локальные переменные Где хранятся стеки или в кучу так хорошо Это что такое Где хранится к точнее когда мы Передаем к этому внутрь метода Set name Что происходит передается по другому Что передается в метод Set name передается ссылка на объект хорошо Идем

    00:09:40 - 00:11:15

  • дальше мы передали ссылку на объект дальше мы присваиваем переменный точнее свойства name значение Борис следующее идет равно Ну то есть мы нашу ссылку обнуляем правильно Да и дальше мы делаем Новый объект здесь передается ссылка на объект а внутри кода да в этом и суть То есть получается так что вот здесь одна ссылка передалась но мы ее изменили Мы ее обнулили видишь равно ньюка соответственно здесь уже другой Другая ссылка другой объект и вот этот объект Изменился только на вот этом этапе и получается так что ным Борис Edge

    00:10:37 - 00:12:07

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

    00:11:34 - 00:13:13

  • и уже равно двойки А значит у нас будет в H равно двойке и при этом меньше тройки Ну тогда он выведет тогда поэтому у нас врезался будет пойти хранится только один элемент H2O врезался А вот у нас потом клея пойти Он обнулит это все то есть резал аккаунт один а вот и золотой Марина зовут фистов name Так давай дальше пойдем а давай начала я тебя спрошу Вот ты говорил по поводу отложенного выполнения Что обеспечивает отложенный выполнение какой тип обеспечивает и какие еще типы Ты знаешь которые обеспечат тоже

    00:12:39 - 00:14:15

  • хорошо Чем отличается это Ну если так можно выразиться то Он позволяет заставляет производить фильтрацию именно источник данных То есть если мы примеру Обращаемся к базе данных то не мы вытягиваем все данные и на стороне клиента фильтруем а заставляем субдд фильтровать Хорошо давай поглубже спрошу по поводу эквиварей бы вот Каким образом обеспечивается отложенное выполнение при помощи источника данных из источника данных Почему айнамара был есть есть акваребу Айнар был отложены выполнение Где мы работаем конкретными коллекциями

    00:13:44 - 00:15:16

  • Мы работаем с какими-то источниками как это как это реализовано при помощи чего получить интерфейса там есть функции интерфейс там есть функция по моему Get next и там или что-то в этом роде там есть мол Next Если ты это имел ввиду Ой нумератора у айнамара был есть и номератор есть корант и мол Next Да но речь сейчас не об этом речь Каким образом в источник данных как он знает что мне нужно что ему нужно делать откуда [музыка] при помощи какой стружки языка он это делает ладно если я не ошибаюсь

    00:14:39 - 00:16:27

  • Ну хорошо А каким образом при помощи чего то есть у нас же разные базы данных разные скилл запросы могут быть такой провайдера под конкретную базу данных драйверов Хорошо давай вернемся к тому что я спрашивал все шарпе есть один некий инструмент некая возможность которая позволяет нам в зависимости от типа расширять поведение типа что это такое реки обобщение расширять поведение типа Давать ему новый функционал этому типу наследование нет наследования это расширение методы расширения да получается так что

    00:15:42 - 00:17:07

  • вот эти методы вы это методы расширения Вот и в зависимости от типа исходного он понимает Какие вы на надо использовать То есть если у нас идет коллекции изначально лист он война была превращает если у нас это какой-то источник данных то он понимает то есть то мы используя провайдер понимаем что вы должен быть другим не так не таким же какой война и при помощи Именно этого подхода и работает наш Way если не углубляться ниже там конечно же уже строится дерево и спрашивает 3 и при помощи этого Expression 3 у нас и

    00:16:24 - 00:17:43

  • фильтрации происходят и так далее но и потом после этого и генерируется искрит запрос хорошо Так давай пойдем дальше один Бог так как будет выполняться код тут немножко про асинхронность так она немножко увеличила так не я вижу [музыка] у нас создается Task потом мы приостановили выполнение потока на две секунды а потом ожидаем ответ от кал Слушай я когда составлял этот вопрос я ожидал что человек прочитает вариант ответа Так что Прочитай вариант ответа метод сирона за 2 секунды сна этот выполнить синхронно сразу метод

    00:17:05 - 00:18:33

  • выполнится асинхронно после двух секунд сна метод K выполнится асинхронно сразу выполнится асинхронно сразу асинхронно сразу давай подумаем еще раз У нас есть переменная Call который хранит себе метод она типа Task да Что происходит на моменте когда мы вызываем асинхронный метод ну здесь что-то тут суть Такова тут на синте связано но он тоже присваивается на 100 миллисекунд Так что сначала произойдет сначала на 100 миллисекунда становится или сначала выполнить этот Red sleep то есть выполнить отряд слип он две

    00:18:12 - 00:19:46

  • секунды будет поток будет стоять ждать спать Вот только потом произойдет вызов колода может нет Ну так чисто в теории но смотри у нас вызывается метод Call внутри метода кол есть и Вы Но при вызове метода нет получится что получится что асинхронные методы не всегда выполняется асинхронно Почему асинхронный То есть у него в реализации есть такая штука Как он может выполняться синхронно в тех случаях когда не требуется когда завершится вот так то есть например если вот на этом этапе операция уже совершилась он не будет ее выполнять не

    00:19:01 - 00:20:42

  • дожидаться ничего у нас есть два подхода моя синхронно выполняем то есть дожидаемся выполнения при помощи вейта так далее или же в данной ситуации что произойдет вызовется кол уже выполнится то сделай а дальше пройдет 30 и произойдет так что асинхронность никто не будет потому что задача уже Была выполнена когда мы вызываем Кол у нас под капотом происходит машина состоянии работает машиностроение она определяет нужно его асинхронно выполнять не нужно и так далее поэтому тут наверное не совсем даже правильный

    00:20:00 - 00:21:07

  • ответ что он выполнится синхронно но он будет вот таким метод Call выполнить синхронно сразу по причине того что у нас поток спит 2 секунды до этого мы уже тут подразумевала что какая-то очень быстрая операция Поэтому чтобы было наглядно я показал вот так вот получается он не будет не выделять поток не будет засовывать задачу и так далее Потому что задача выполнится раньше чем завершится метод вот я надеюсь понятно было в общем да И давай кстати немножко про синковые поговорим использовал что может сказать Для чего

    00:20:33 - 00:21:59

  • использовал использовал для доступа файл базе данных либо же просто для каких-то ресурсов юбких операций чтобы основной поток не застопорился Я часто чаще всего использую для того чтобы основной поток не стопресс что программа В тупую не зависала то есть можно было управлять если это Windows форма можно было кнопки нажимать кликабельные были если это консоль то просто как-то реагировал на какие-то действия вот по поводу кликабельные были Вот это очень интересно это немножко наверное не не вопрос для джунио

    00:21:16 - 00:22:32

  • разработчика но попробуем wpf приложение например да или там формах существует такое понятие как по моему графический поток Вот и соответственно есть такая штука конфигурайт что это такое Я не знаю я сразу сказал конфигурывает и графический паттер то есть они связаны это логично есть такая штука контекст синхронизации слышал что-нибудь слышал что-нибудь можешь сказать нет экранизация определяет В каком потоке тот или на обед будет в каком типе потоков он будет выполняться есть и вот как раз таки конфигурайт нужен для

    00:21:59 - 00:23:30

  • того чтобы указать является ли наш асинхронный метод зависимым от того В каком контексте он будет выполняться То есть если он был вызван в одном контексте может ли он в этом же типе контекста быть вызван повторно но выполнить точнее мы вызываем его в одном потоке если мы указываем Точнее не указываем конфигура White он также будет выполняться в этом же потоке в этом же типе потоков Если же мы указываем конфигурайт false то он может быть выполнен в любом типа потоков графическом графическом то есть ну чаще

    00:22:55 - 00:24:00

  • всего это не имеет смысла по крайней мере Потому что сейчас у нас не имеет несколько типов потоков и как следствие мы уже по сути не использовать данной ситуации Вот хорошо Так это у нас Понятно давай вот последнему и потом просто пообщаемся по другим темам Что будет выведено в результате выполнения программы ух Вот то про что-то говорил я есть номератор и номинатора есть Move next и current Давай начнем с того знаешь что такое Wild позволяет грубо говоря частично выйти из функций потом функции еще раз условно продолжить с

    00:23:28 - 00:25:16

  • этого места с этого с этой итерации если бы это если это цикличный вызов чем Уют похож на осинкой по реализации его он тоже машин состоянии под капотом они оба на конечном автомате работают окей Давай теперь посмотрим У нас есть метод Фил который в качестве параметра принимает Ой мы тут проверяем что они кратно двум Да по умолчанию у нас а передается 0 как мы понимаем вот 0 я кратно 2 а один кратно 2 поэтому поэтому ноль выполнится Да на этом функция выйдет из дальше не пойдет во первых у нас 0 был потом вот здесь

    00:24:30 - 00:26:35

  • вот у нас что увеличили только и вернули и ударить нужно Здесь какой результат будет а ну давай вот эта функция у нас вернула wildbreak то есть мы передали сюда единичку он вернул единичку правильно да передали нолик он вернул единичку Да ну по итогу в коллекции что в нумераторе что будет только один и хорошо Давай дальше посмотрим Теперь у нас есть и нумератор и мы вызываем три раза кто будет выведено в консоль какое число или не число вариантов варианты да так можно просто Поставить все варианты

    00:25:37 - 00:27:15

  • ответов под условия посмотреть выполнять ли они только единица Но вот когда мы вызываем двойка будет А почему двойка будет а потому что двойка удовлетворяет первому с вами второму Так подожди Да поэтому поэтому 0 будет Поэтому он бректно Да тут скорее вопрос том то что у нас осталось единичка правильно по всей коллекции хорошо но мы три раза вызываем что происходит а каждый раз и увеличивается на единицу если удалять второму условию первое прошло не совсем у нас уже сформирован эмиратор мы сформировали и номератор в него

    00:26:34 - 00:28:13

  • поместилось только единичка то есть в нем только одно значение уже хранится Ну тут варианта нет поэтому хорошо Нет на самом деле он всегда будет возвращать единичку несмотря на то Сколько раз ты вызовешь муфт Next просто Move NEX это метод который возвращает True Falls мог ли он получить следующий следующий значение То есть он вернет вот здесь True значение и нумератор переключится на на единичку здесь волосы по моему вернетесь точно фолса здесь не помню и поэтому так как у нас и номератор знает только про единичку Хоть сколько

    00:27:42 - 00:28:56

  • раз ты мог вызываю он все равно будет единичкой Поэтому значение будет единичка Давай посмотрим правильно ли мы все решили мало ли Да мне все правильно я не обманывал нигде так хорошо Сейчас я уберу шаринг экрана и мы просто пообщаемся по вопросам немножко подготовил Да я начну с таких более общих потом переду немножко Да немножко наверное помучаю паттернами что-то вообще знаешь какие паттерны Какие можешь рассказать Какие типа паттернов знаешь Расскажи пожалуйста паттерны знаю абстрактное поведенческие типы

    00:28:27 - 00:30:00

  • существуют Короче я знаю абстрактно фабрику адаптер синглтон и фасад это то что я использовал на практике Давай давай структурно попробуем вот говоришь поведенческие типа из поведенческих А какие знаешь вот то есть поведенческие такой-то потом узнаем например порождающий такой-то ну то есть Какие типы и их подвиды если сложно Давай просто давай просто хорошо так адаптер фабрика синглтон что еще назвал и фасад фасад Вот давай поговорим про давай про фабрику наверное одна из самых популярных из всех не считая синглтона

    00:29:18 - 00:30:46

  • что можно сказать про фабрику абстрактную фабрика это собственно некий который позволяет нам не привязываться к реализации того или иного объекта то есть Нам нужно просто знать его поведение мы абсолютно фабрика оперирует разными фабриками которые уже сами собой оперирует теми или иными типами данных Ну тогда это поведенческий Паттон получается Нет вряд ли это фабрика нет но вот если я правильно понял может быть это ошибся это Но то что ты называешь это больше на стратегию похоже они очень похожи просто

    00:30:06 - 00:31:41

  • абстрактная фабрика больше говорит о том что какие объекты она создает то есть от того что она порождающая в зависимости от нет поведения получается она создает различные объекты поэтому она порождающая вот в принципе да правильно так Ну давай про адаптер немножко адаптер Ну условно У нас есть данные в одном формате система понимать данные в одном формате она может передать в другом формате яркий пример xml тут json или что-то в этом роде или PC то есть тоже Интересный вариант Хорошо давай если мы начали про примеры

    00:30:59 - 00:32:24

  • давай примеры абстрактной фабрики обсудим какие-то знаешь может привести пример хотя бы один системами он под разные системы таким фабрикой не очень в чем реализация паттерна абстрактная фабрика заключается вот Я чуть нечего пока ну тогда мы работаем по длину сам у нас подставляет одни классы функции которые реализуют интерфейс доступа к файлу если мы работаем под Windows смотри порождающие что-то создают того они порождающие поэтому давай вот на банальные примеры Оля по-моему самый банальный пример который я помню это

    00:31:42 - 00:33:24

  • со строительством дома что они какой панели пример А ну вот с пабликами например паблика по тому как создавать стульчики столики и так далее не помнишь такой пример можешь рассказать про него что-нибудь он на рефакторе Гуру по моему висит например возможно если правильно помню пример там такой у нас есть сумма три объекта стул диван стол и они в разных стилях Бывают там Классик Модерн абстрактная фабрика создает фабрику под разные стили Да сама уже это фабрика конкретно выдает нам конкретные диваны конкретные стулья

    00:32:58 - 00:34:31

  • конкретные там кресло перестал не помню Да не суть кресло там ты прав мы подставляем определенные классы объекты например там не знаю какой-то рококо стиль Вот и зависимость от того какой класс Мы выбрали например в результате мы получим определенный объект если очень-очень грубый и абстрактно говорить принципе ты понимаешь это мне не нужны определения мне главное чтобы человек понимал хорошо слышал что-нибудь про паттерн Ну пусть будет Билдер Строитель Строитель Да только в теории он если не изменяет

    00:33:48 - 00:35:16

  • память дает порядок инициализации всех компонентов того или иного какого-то объекта Знаешь ли ты вот все шарпе есть Явный пример реализации билдера он прям есть определенный класс который прямо называется первая часть и билдерсон использовал Так что я не помню какой Ну я говорю про Стрим билда конечно но ладно Да он также про него забыл хорошо раз мы про стринги начали говорить давай про стринги и пообщаемся дальше мы до этого общались по поводу ссылочных значимых типов да Давай поговорим про стринг

    00:34:32 - 00:35:58

  • это ссылочный или значимости так хорошо когда мы сравниваем Стрим получается мы сравниваем ссылки правильно [музыка] хорошо другой вопрос стринг Что такое string что из себя в памяти представляет string массив чаров не совсем ну ладно string он немножко по-другому хранится в отличие от массива у него самом начале идет размером Ну короче не суть то есть мы его можем получить как массив чаров но в память он немножко по-другому хранится Ну да оптимизации работы со строками хорошо не изменяем Если да он ему

    00:35:32 - 00:36:55

  • табельный правильно чтобы узнать есть такая штука есть какой-то полу стрингов если он встречает Точно такую же строку то ему легче сослаться на уже существующую А как это называется на им как-то не помню слова на что она и я сам запутался меня просто три Термина в голове и все мои да Там они все секундочку по-моему Я думаю это интерполяция нет интерполяция это немножечко другой это когда мы информатики недавно небольшое количество видео снимал по поводу этих терминов и дампотентности интерполяция конкатенация

    00:36:26 - 00:38:06

  • и кто-то котором мы говорим сейчас хорошо хорошо интерполяция это про то что в строке мы можем использовать перемен обычное выражение Да можно на момент вызова фронтаймер получить Да блин как обидно что термин Забавно отнесут Хорошо давай вернемся немножко к нашим вопросам Да немножко поговорим про горбыш коллектор такой вообще что знаешь Они подчищает за объектами за сочными типами ты поколение плюс совы для больших объектов по моему последним отметить там вообще еще какой-то область добавили для

    00:37:32 - 00:39:03

  • маленьких объектов по два или четыре мегабайта для лучшей дефрагментации памяти смысл В чем если он периодически запускается вот эти всегда есть ссылки которые доступны всю жизнь программа если он от этой ссылке может Дотянуться до какого-то либо объекта значит объект живой и он нужен Если до какого-то объекта он от этих если объект живой то он попадает из моего поколения в первое если на момент сборки первого поколения на второе поколение Хорошо если он попал второе поколение то что с ним происходит

    00:38:29 - 00:39:51

  • он там будет жить до тех пор пока не будет нужен уточнить до тех пор пока надо с ним не перестанет быть и меняет память очистка второго поколения вызывается тогда когда либо программа закрывается либо у нас уже капец как не хватает памяти Ну ладно а третье поколение эти поколения 0 1 2 Ну второе поколение пусть будет я по порядку там сжатие происходит скорее второму поколению точнее Ну ладно я просто говорю типа вот Первое это нулевое сама быстро что если он был создан недавно и возможно нужно на короткое время по хорошему можно

    00:39:21 - 00:41:05

  • сразу почистить по этой логике второе поколение это значит что объект в целом нам может пригодиться и дальше и а третье поколение это уже долго живущий объект такие вот монстры давай еще немножко по поводу этого как когда инициируется сборка мусора сборщик мусора сам когда мы выходим из какой-то функции он подчищает там по чуть-чуть потом когда мы выходим из функции он локальной переменные в стыке это не сборщик мусора делает насколько я помню Ну то есть это просто про кучу но он сам запускается где-то

    00:40:18 - 00:42:01

  • сам по себе я замечал что разве 10 минут запускается или когда у нас начинает кончаться память Да там на самом деле самый элементарный Ответ когда он мне когда мы хотим выделить память для нового объекта Вот именно тогда мы как бы инициируем проверку Нужно ли нам выполнить сборку мусора или нет при инициации то есть при выделении памяти для новых объектов как раз таки мы вызываем сборку мусора вот Окей хорошо про Гатчина больше не буду мучить про феназе всякие не буду спрашивать Пока Хорошо давай поговорим по поводу

    00:41:14 - 00:42:37

  • различных коллекций такие коллекции Ты знаешь в том числе конкурентные Давай даже по другому эти листы вот эти все да Давай начнем с лист дикшина и их конкурентной версии знаешь что такое конкурентность принципе Давай поговорим давай поговорим Ладно давай поговорим про Dictionary чем обычные diction или отличается от concore Dictionary что вообще из себя представляет Но диджинали это просто коллекция которую можно получить значение по его ключу это по-моему потока безопасный лист это поток безопасности

    00:41:55 - 00:43:13

  • хорошо по-другому что мы можем использовать в качестве ключа audiction Какие типы данных есть какие-то ограничения и как их преодолеть только значимые типы могут использоваться настройки не можем использовать это интерфейсы какой интерфейс Ты про сравнение говоришь да гетхож код надо переопределить как минимум именно об этом вопрос был типа какие методы нужно определить чтобы обойти ограничение чтобы мы могли использовать хорошо по поводу ключей для чего нам вообще у нас А почему почему мы храним виде каша в

    00:42:59 - 00:44:22

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

    00:44:10 - 00:45:32

  • просто обычные коллекции Lock Если какая-то разница вообще между условно если в обычном будем в одном потоке писать в другом читать одновременно то больно синхронизация поэтому мы используем организации потока Да когда хорошо Можем ли как-то мы с обычным дикшнере реализовать так чтобы нам не нужно было использовать что для этого нужно Лок монитор семафор хорошо мониторы семафор мютекс Это хорошо давай про них и поговорим немножко что знаешь вот это вряд ли они позволяют разрешить доступ блоку кода срок

    00:44:52 - 00:46:23

  • ограниченному количество потоков начал очень хорошо вообще разворачивается монитор под капотом Давай по-другому есть семафор ты сказал там такая Элементарная разница на самом деле он делает Почти то же самое просто ну попробуй если знаешь скажешь я не скажу я не помню они выполняют одну и ту же цель просто один организовывать более гибко можно управлять очередностью очереди [музыка] освободил были гибко можно управлять как раз таки доступом К объектам хорошо это на самом деле я когда еще был начинающим часто спрашивали про

    00:45:48 - 00:47:33

  • семаформитексы и конкуренты конкурентный коллекции не знаю насколько наддунов сейчас спрашивают ну все же хорошо по поводу си-шарпа Я не вижу смысла мучить про делегатам лямдам и так далее наверное Вот давай нас немного времени осталось немножко совсем поговорим про escale и про esponet оставшееся время вот а esql на самом деле самый элементарный для Star Juke вопросы поэтому не переживай первый вопрос поисковили Это какие вообще типа бета Ты знаешь ты можешь рассказать давиационный нереляционные да ну и про них

    00:47:05 - 00:48:22

  • поподробнее чем они отличаются базы данных это у нас есть ключ уникальный и по ним можно соединять разные таблички ты мне начал испугал думал Ну не реляционно тоже есть ключи уникальные Ну я про таблицы Да хорошо А по поводу не реляционных для чего они вообще нужны более гибко организовывать Нет не в табличном виде Да там Джейсон это монго да Нубы сон Ну монго тебе да хорошо Ну и второй самый распространенный популярный вопрос Это что такое индексы Какие типы бывают и Использовал ли ты на практике

    00:47:45 - 00:49:30

  • Не использовал индексы бывают разные они помогают ускорить поиск по таблице бывают простые составные пожалуй все что я помню про них А есть какие минусы индекса Ты знаешь есть один основной прям жесткий минус Почему индекс используется аккуратно очень создаются мы выяснили преимущество индекса индекс преимущества индекса в том то что при помощи индекса мы можем ускорить так сказать наш поезд по определенным данным по индексу Вот но так из-за использования индекс происходит и негативная сторона это негативные

    00:48:43 - 00:50:11

  • последствия мы получаем в виде чего Ладно некоторые данные могут наоборот удлинить время поиска Ну это Ну некоторые индексы могут да Но суть не в этом суть том то что для того чтобы мы когда мы добавляем индекс тополя у нас сокращается время записи потому что для того чтобы добавить запись нам нужно перестроить таблицу перестроить индексы и поэтому как бы у нас скорость чтения это увеличивается Но вот запись происходит подольше нам чем-то приходится жертвовать Окей хорошо Ну давай попробуем бонус

    00:49:32 - 00:50:57

  • вопрос Что такое Джейн ничего не нужны это да бонус вопрос соединение таблиц Какие Джонни знаешь пример Давай самый элементарный как он работает Что это такое Что при помощи его можно сделать вот так и он может присадить одну таблицу в другой таблице А что в результате мы получаем Какая результирующая выборка будет у нас слово инар да у нас они соединятся по определенному ключу по-прежнему условию Да и в результате в ней в этой табличке будут те которые пересеклись по дороге хорошо бонус вопрос засчитывается

    00:50:18 - 00:52:01

  • Да давай теперь перейдем к эспанет потому что времени уж совсем мало там у меня немножко вопроса будет они прям базовые основные которые могут спросить Давай начнем с идеаль что это такое знаешь вообще о in version of Control и dependency injection такие слова Слова слышал контроля Когда у нас контейнеры даже поговорим этот контейнеры это когда мы под регистрируем что нам конкретно какой-то интерфейс нужен конкретно реализация Ну давай попробуем так так хорошо давай тогда хорошо мы поняли что такое примерно что такое диайта

    00:51:39 - 00:53:00

  • дополнительный Джексон инъекция зависимости нет зависимости внедрение зависимости от другого класса не совсем именно внедрение зависимости они тесно связаны Когда у нас реализовать свободу связанность Да через всякие интерфейсы абстракции чтобы мы если что-то поломаем в одном классе поломали в другом Хорошо да давай будет так хорошо Тогда что такое сервис локатор нет окей Не суть начнут Окей в istoneti есть Di и наверное ты видел библиотеку db nonce injection Что из себя представляет Di PSP тут кори

    00:52:35 - 00:54:17

  • вот пользовался ли ты вообще в качестве контрацепции контроля что-нибудь Помнишь мы создавали указывали таких фигурных интерфейса через запятую какой классный реализовать если кто-то запросит такой интерфейс А вот запрос интерфейса Что такое так как происходит запрос интерфейса через конструктор как это называется Какой инструмент позволяет нам так внедрять зависимости тонко-тонко сти хорошо что они про такие вот непонятные слова как раньше Да это когда на каждое обращение к сервису я про то говорю да

    00:53:38 - 00:55:28

  • скоб это когда для каждого запроса создать новый объект он живет в течение всего запроса А синглтон это по первому обращению к нему становится объект и живет один и тот же всю жизнь все время жизни приложения да Окей в принципе можно конечно уточнить по поводу скоб но сама суть верно по поводу того что там речь про контекст скорее идет они про запрос Ну то есть понятие контек запроса хорошо Да давай тогда про мидовали поговорим Что такое Middle warria медовое приходилось ли создавать свои Нет не

    00:54:51 - 00:56:18

  • приходилось но в теории Я помню что это штука которая должна отфильтровать данный по каким-то правилам и если правила удовлетворять дальше условно авторизация аутентификация все вот это вот она [музыка] не совсем Смотри вот ты правильно говоришь Да ты абстрактно видишь то что там происходит метод конфигур Да ты говоришь хорошо А какой момент времени вот эти вот методы выполняются логика сама выполняется при поступлении запроса другого в том порядке в котором они зарегистрированы У нас есть некий конвейер выполнение

    00:55:39 - 00:57:03

  • запроса когда мы делаем создаем Metal warria и добавляем в конвейер при помощи метода конфигурские происходят вызов при каждом вызове метода были каждом вызове запроса выполнение запроса у нас выполняется наш конвейер Хорошо не буду углубляться подробно потому что времени мало хорошо Давай немножко про insty famore поговорим работал вообще с рмками Какое у рынка работал в виде поднять коллекцию с помощью туда постучаться Хорошо давай в двух словах по поводу что ты знаешь вообще про инстин фреймворка как он работает

    00:56:25 - 00:57:58

  • что можешь сказать А дальше уже конкретно поспрашиваю что для тебя Для себя представляет евкор Егор Это которая позволяет абстрагироваться от самой базы данных и собственно унифицировать запрос кто или иной базе данных условно Если вы захотим приехать с одной базы на другую на входе особенно слышал про два подхода это когда сначала пишется схема структура базы данных и наоборот когда мы попали данных создаем это классы и их иерархию хорошо слышал что-нибудь про треки нет нет хотя сама знакомая а видел метод основы

    00:57:16 - 00:58:54

  • трекинг когда-нибудь нет хорошо а вот смотри ты например у тебя есть объект тебе нужно его изменить ты находишь его в базе данных при помощи Fir default потом изменяешь данные вызываешь метод Save change данные изменится или нет Ты просто получил объект из базы при помощи Да изменил вызвался Я же получаю сам объект я не получаю связанную с ним строку в базе данных поэтому по моему ничего не изменится мне нужно как-то апдейт сделать на самом деле при помощи инструмента треки Ну точнее трекинга в intiframework

    00:58:19 - 00:59:51

  • мы можем так делать то есть когда мы получаем запись из базы данных мы начинаем трекать эту запись то есть вот ты сказал что мы не получаем строку но мы линкуемся то есть мы в конечно сохраняем этот запрос У нас есть мы понимание что мы получили именно конкретную запись BD я не буду углубляться Как это работает Просто есть трекинг и подразумевает то что мы можем наблюдать за нашими объектами за их изменениями и случае вызов челленджа мы изменим их fbd то есть мы трекаем изменения при помощи этого и работает на самом деле он собрал

    00:59:12 - 01:00:26

  • разные изменения ты вызываешься в том числе в этом случае не обязательно вызывать апдейт если мы получаем так вот запись исключение случаях когда мы помечаем наш Ну либо коллекцию точнее как например вы основал трекинг пишем метод вызываем и в таком случае у нас уже данные данный результат не будет трекаться Поэтому когда Мы попытаемся его изменить как-то изменение в базу данных не пройдут мы пометили его как не треки пожалуйста меня хорошо и наверное последний вопрос по поводу евкора Это по поводу загрузки

    00:59:48 - 01:01:09

  • связанных данных слышал ли ты про это какие виды загрузок бывают ленивая ленивая жадная горячая Расскажи немножко есть про них лениво это мы где-то раньше определили Какой объект Нам нужен но запрашиваем непосредственно тогда когда он нам необходим это ленивая горячая это когда где писали что нужно там его и запросили а дальше где-то памяти находится Пока к нему не обратимся я не знаю Давай давай кодом мыслить У нас есть инклуды инклуда когда мы пишем это какой тип загрузки это горячая хорошо Ну это же я сам буду конечно

    01:00:32 - 01:02:14

  • Ну окей Какой бы ты тип предложил бы использовать И какой бы ты какой ты сам сейчас используешь ничего тип загрузки ситуации я чаще всего использую ленивый Опять же эта ситуация зависит если мы какие-то статистические данные Там многие запрашиваем токсон нам ленивый достаточно но если есть вероятность что с момента запроса и какой-то обработки данных данные изменится лучше использовать горячую получили обработали сохранили вот типа эти Да если у него какие-нибудь плюсы минусы Какие минусы могут быть минусы на момент

    01:01:49 - 01:03:18

  • объявления какой-то тип данных соединения с базы данные может быть а когда нам непосредственно нужны данные его может уже не быть база данных упала и тогда будет больно Хотя до этого мы проверили что все окей могут быть могут Окей Хорошо больше по поводу ленивых не буду самый наверно такой оптимальный вопрос по поводу резко что это такое вообще это если можно так назвать методология разбиение IP или формирование IP когда мы запросе Передаем все что необходимо для его выполнения мне посвящен IP Я думаю что за эти хорошо

    01:02:42 - 01:04:15

  • Давай немножко Я понимаю что сложно давать определение аресту Давай немножко про некие правила поговорим что под собой подразумевает арест мы можем назвать не понял дед пост Нет я знаю это htp методы типа да ну что-нибудь еще пролез знаешь может быть про безопасность и дампотентность типов не это я не скажу например Get это импотентный или не один патентный я не скажу что я не знаю что патентный я не помню ну окей а хорошо идём нас не получится я именно не помню Окей хорошо Да по-другому там может быть какие-нибудь правила

    01:03:36 - 01:05:34

  • наименования вместе знаешь Как должны именоваться наши роутер если что-то получаем даже начинаться с Get начинается название роутер пойти Да там есть наименование это существительное это название контроля например там не знаю продукт А дальше идет именно только Какие ресурсы Мы хотим получить например либо же просто именно тип Например если мы хотим получить какие-то данные то это Get запрос без названия кого-то Если нужно детализировать что именно получить то название добавляем и так далее такие Элементарные правила

    01:04:43 - 01:06:08

  • есть по сути это действительно методология которая говорит нам как наиболее оптимально использовать http методы и писать свое ареста свое апе то есть некие стандарты можно сказать Вот там есть еще много немного но есть еще некая информация которую можно почитать Вот но в целом там говорится как раз таки про то когда нужно использовать пост [музыка] Да общем но его Не используют обычно Окей хорошо Ну в принципе наверное на этом все мне сложилось некое впечатление вообще о тебе как кандидате но в первую очередь

    01:05:38 - 01:07:17

  • Хотел бы все-таки уточнить у тебя Как ты себя чувствуешь что можешь сказать по поводу вопросов Сложно ли они были может быть наоборот легко было в целом Расскажи как ты провел этот час чем легче были вопросы тем больше у меня такое ощущение Ну я старался подбирать какие-то чувства сложные моменты наводящие вопросы тоже чувствовались но я стараюсь вижу как я тупил очень сильно на самых элементарных вещах Но на самом деле некоторых моментах я коряво вопрос создал Поэтому так получилось в некоторых Ну бывает не всегда получается

    01:06:27 - 01:07:44

  • друг друга понять сто процентов с первого раза Поэтому да Поэтому Ну тут скорее вопрос в том как ты себя чувствуешь нет ли стресса того который был до интервью вот может быть что-то новое узнал может быть как-то что-то хочет получить после этого интервью Ну я пересмотрел запись сначала потом потому что я не помню с чего Мы начинали Уже Мы начинали задачу с Кода да Что там такое Я сначала пересмотрю а потом от этого буду делать выводы где у меня пробелы где просто забыл что нужно учить что нужно повторить Кстати по поводу

    01:07:08 - 01:08:28

  • строк то что я говорил то что ты говорил по поводу переиспользовании Это интернирование я помню что на несколько терминов патентность интернирование Вот хорошо Да в целом Давай я выскажусь немножко большей части вопросов проблем вообще никаких не наблюдаю То есть если речь идет про джунио разработчика это легко этому Практически везде кроме там именитых компаний которые конкурс хороший вот на метла стартового тоже в принципе можно пробовать вот в принципе наверно большей части Если будешь показывать себя так же как и

    01:07:48 - 01:09:19

  • сегодня большая часть собеседований могут только завалить по базам возможно возможно по Лайф кодингу То есть сегодня не проводили по причине того что это долго вот могут заварить поводу запросов то есть написать есть у тебя с этим проблем или нет Ну вот тем более поэтому надо все-таки сегодня отвечал это то что я учился Это самый популярный вопрос они везде и в целом в целом наверное лайв кодинг сам я не знаю что пешеход потому что но в любом случае чаще всего такие вот вещи моменты спрашиваются можешь просинка я

    01:08:33 - 01:10:03

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

    01:09:23 - 01:10:37

  • рынки надо было бы подтянуть немножко понимание как он работает в целом В принципе неплохо очень даже хорошо и на стартово метла наверное с большей вероятностью прошел Ну на стартовал может быть немножко даже среднего вот дальше уже если бы я собеседовал чуть опытного человека Я бы спрашивал про системный дизайн Сегодня мы ничего такого не услышали Потому что Потому что это не нужно разработчиком это больше к правилам того как писать опишки они Как проектировать вот поэтому вот такие вот у меня

    01:10:00 - 01:11:17

  • впечатления скорее положительные вот сейчас я вижу вопросы сразу пишут так не очень понятный вопрос Что такое в идем патентность жена на наверное могу предположить что речь идет о том что спрашивают ли про еды патентностью джинов Это я сам уже придумал Ну вообще И дампотентность это не такой сложный термин поэтому Почему бы и нет ну нужно с остальными Если да если сказать очень коротко Что такое импотентность И дампотентность это возможность объекты или метода возвращать один и тот же результат при

    01:10:40 - 01:12:04

  • определенной при передаче одних и тех же параметров То есть например есть математики термины импотентности математической импотентности Это значит что например ты независимо от того сколько раз ты прибавишь к числу 0 это всегда будет одно и то же число вот в математике это программирование чаще пройден патенты говорят как например мы отправляем запрос get-запрос Да вот я говорил что обычно get-запрос и дымпатентный по реестр Поэтому если Get запросы дам патент То есть он по резко то когда мы отправляем например

    01:11:29 - 01:12:42

  • айдишник один Дай мне пользователя сойтишником Один он всегда будет один и тот же один и тот же одного и того же пользователя независимо от того 10 раз мы вызвали метод или 100 всегда будет один и тот же этот вопрос будет являться идем патентом например пост запрос Это не импотентный запрос мы выполнили действия изменили состояние системы и как следствие сколько раз выполнять столько раз мы будем изменять системное состояние то есть разные ответы можем получить и изменим состояние системы Я надеюсь подробно описал Что такое

    01:12:05 - 01:13:09

  • импотент вот Важно ли уметь решать алгоритмичные алгоритмические задачи для трудоустройства на самом деле [музыка] для многих компаний Это является не основной не Основной причиной отказа чаще всего алгоритмические задачки если это не Яндекс и например какие-то такие крупные компании которые любят алгоритмические задачки велосипедные Ну да но они вам могут дать самую элементарную задачу откуда я вот недавно проходил собеседование в одном в один банк Вот И там мне действительно дали задачку слиткода и это слиткода Задачка одна из

    01:12:37 - 01:14:05

  • там первых из лидкода просто страницу лядкода открываешь сортируешь по сложности самые легкие открываешь и там вот эта задача была соответственно я могу предположить что чаще всего будет сейчас именно такие задачки самые простые чтобы не бояться решать такие задачи нужно хотя бы самый легкий уровень кода немножко порешать вот поэтому спрашивают бывает Но как правило это легкие задачки а не те которые на Яндекс Али 5 вот здесь ответил такие вещи как боксинг анбоксинг Лев а статические класса статические конструкторы

    01:13:24 - 01:14:27

  • абстракции интерфейсы Как часто спрашивают бывает спрашивают потому что у джуни разработчика как правило нет большого опыта в отличие от того от сегодняшнего кейса Но вообще у джинов как правило сложно спросить типа чем-то занимался и понять что такое поэтому пытаются спросить про каждый Аспект языка proboxing Boxing могут спросить тоже могут спросить Ну вот статиком а статикам тоже часто спрашивают в том числе и входит экстеншн методы методы расширения спрашивают спрашивали даже у меня по поводу

    01:13:56 - 01:15:08

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

    01:14:31 - 01:15:39

  • машиностроения на самом деле он там просто делит вес 8 метод на кусочки Например у вас в методе 3 он делит на Три кусочка и вызывает их последовательно то есть такие вещи будете последующем изучать сейчас Это не так важно а вот элементарные вещи Boxing Boxing и так далее лучше изучить Я думаю немного времени потратить на пока вопросов больше не вижу вот поэтому даже не знаю это Приветики это тут на этом на этом моменте появляюсь Я так хорошо В общем тогда давайте немного подводить завершающей части вот если процессе

    01:15:06 - 01:16:35

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

    01:15:51 - 01:17:11

  • Давайте немного еще завершающую часть закину вопрос Анатолия Какие книги посоветуете для Джуна Хороший вопрос я сам начинал с Шилка у него есть книга по шарпу но наверное если мы говорим Проси Sharp конкретно да то я бы рекомендовал либо Shield либо албахари это прям само начинающим абахари он большой и там изучается больше технологий нежели язык Ну язык в том числе шилд он больше под людей которые хотят именно изучить они различные технологии в виде винформ и так далее вот помимо этой книги шилта наверное

    01:16:33 - 01:17:56

  • Вот по крайней мере мне интересно было читать Адамов Фримана это испытует нет Core других книг Я читал еще одну книгу я не помню название пояркорова к сожалению не понравилось там была суть такова что вот там рассказывалось от лица того что я являюсь разработчиком и вот мне сказали задать создать сайт по курорту какому-то горнолыжному эта книга очень не понравилось не помню название вот о том Фриман довольно таки хорош Жаль что технологии развивается быстрее чем пишутся книги Поэтому у него там

    01:17:14 - 01:18:21

  • по-моему Последний из последнего это второй вот а так можно если интересно немножко алгоритмы то громкая алгоритмы книга Вот Но это для начинающих если уже чувствуешь себя более опытным то микросервисы книга была автора к сожалению не помню Ну ладно не суть я потом могу предоставить если это можно в комментах написать микро сервисы не по микро сервисам потом Скит после шарпу он говорит Для более профессиональных разработчиков там объясняет особенности от 1 до 5 Шарпа и тонкости то что я спрашивал поводу

    01:17:48 - 01:19:16

  • ссылки по поводу ссылочного типа когда задача была то что мы пишем к этому помнишь Да вот этот пример Похоже я взял как раз таки из книги Джона скита и он там рассказывал почему вот так происходит Вот И помимо этого Рихтер это уже для по поводу вот Антон кстати неплохо разбирается в типа по крайней мере если говорить про уровень жена и выше чуть-чуть выше вот директор довольно таки сложен но к сожалению его придется прочитать если мы хотим как-то развиваться рано или поздно на этом У меня все Да супер спасибо я думаю можно будет еще

    01:18:36 - 01:20:04

  • Да я книжки по микросервисам или в принципе какую-то подборку рекомендаций шлепнуть потом в комменты к видео Вот так что просто можно будет отдельно вспомнить нам скинуть и мы все организуем так хорошо мне в телеграме подсказали Крис Ричардсон микросервисы о кайф Крис Ричардсон микросервис но тем не менее думаю история все равно шлепным комментарием лишним не будет Вот хорошо ребят супер спасибо вам большое тогда давайте я такую небольшую завершу часть завершу Спасибо еще раз за то что это провели

    01:19:22 - 01:20:38

  • вот очень клевый Стрим Я думаю многим кто сейчас все собесы разные Да и везде в разных компаниях будет задавать разные вопросы где-то более хардкорно где-то менее так далее мне кажется если делать срез общий то на самом деле много тем Так что смотрите организационно еще закину напомню Что проходит конкурс что можно попасть на такую же бесплатную программу для этого или не обязательно для этого нужно писать комментарии под этим видео Почему вы хотите заниматься ментором в понедельник мы запишем небольшой Стрим в котором объявим

    01:20:00 - 01:21:28

  • победителя вот еще раз хочу поблагодарить dotnet.ru классная Великолепное сообщество с которым мы в партнерстве сделали Стрим Вот и я там видел уже Анатолий писал про этот соответственно сеньора давайте сделаем мы за Вот и в принципе все вот на этом Подписывайтесь Наш канал ставьте колокольчик потому что время от времени вылетает самые разные контент в том числе по разным технологиям если что это только первый день тех Андрюхи теста на эту неделю у нас завтра еще год послезавтра гуляр а в четверг там и в

    01:20:44 - 01:22:01

  • пятницу и мы вот так что если вдруг вам или вашим знакомым это актуально то влетайте будет классно интересно вот на этом в принципе все что я хотел сказать и Дамир Антон Ещё раз спасибо зрителям тоже спасибо Спасибо большое за приглашение Всем удачи давайте всем пока спасибо пока

    01:21:23 - 01:22:12