![DotNet Interview Preparation](/img/default-banner.jpg)
- Видео 13
- Просмотров 41 866
DotNet Interview Preparation
Канада
Добавлен 15 окт 2023
Пробное Senior C# собеседование (мок-интервью) №3. Практическое задание
Челлендж по трудоустройству на валютную удалёнку: boosty.to/job-in-60-days
#dotnet #csharp #interview #mockinterview
#dotnet #csharp #interview #mockinterview
Просмотров: 382
Видео
От слесаря до технического директора в геймдеве
Просмотров 2203 месяца назад
Интервью с Константином Рочевым (Технический директор игровой студии). 0:00 Вступление 0:27 Путь в айти 3:06 Полезен ли университет? 4:04 Программирование в стихах 9:45 Альфа-ритмы для изучения нового 10:43 Первое трудоустройство и дальше 14:06 Проекты в игровой студии 14:54 Научная и публичная деятельность 16:01 Совет желающим попасть в IT 16:53 Будущее IT
Как устроиться на работу после обучения и что такое настоящее программирование?
Просмотров 6854 месяца назад
Интервью с Алексеем Поберием 0:00 О чем ролик? 0:32 Начало пути в программирование 2:45 Центр занятости 5:53 Первая работа 12:30 Переезд в Санкт-Петербург 20:48 Собеседование на первую работу с enterprise flow 31:15 Москва и удалёнка 34:58 Framework PureQML 45:34 Советы начинающим разработчикам
"За кулисами" групповых собеседований
Просмотров 9975 месяцев назад
0:00 Введение 0:07 Что такое Персональное собеседование 0:29 Что такое Групповое Собеседование 1:23 Пример группового собеседования 1:30 SOLID 4:47 Исключения 5:17 LINQ 5:47 Типы классов 9:19 Практика: Класс Student 9:44 Garbage Collection 10:47 Практика: Библиотека книг 12:42 Практика: Класс Student 19:09 Статические и экземплярные методы 21:02 Практика: Библиотека книг 25:27 Обратная связь в ...
Пробное Middle C# собеседование (мок-интервью). Часть 2
Просмотров 2,3 тыс.5 месяцев назад
0:00 Использование LINQ 2:10 IQueryable vs IEnumerable 4:02 IEnumerable в LINQ 4:39 Тестирование и отладка 9:58 Обратная связь: Тестирование и отладка 14:45 Завершение #dotnet #csharp #interview #mockinterview
Пробное Middle C# собеседование (мок-интервью). Часть 1
Просмотров 2,5 тыс.5 месяцев назад
0:00 Приветствие 0:08 Обработка исключений 2:42 Безопасность приложений 4:05 Обратная связь: Обработка исключений 6:11 Обратная связь: Безопасность приложений 8:05 Асинхронные операции 10:55 Обратная связь: Асинхронные операции #dotnet #csharp #interview #mockinterview
Пробное Senior C# собеседование (мок-интервью) №3
Просмотров 3,2 тыс.5 месяцев назад
0:00 Вступление 0:35 Самая сложная проблема 3:04 Самая большая ошибка 5:50 Паттерн "Разделяй и Властвуй" 9:40 Безопасность приложений 13:08 Inversion of control & Dependency Injection 17:39 SOLID principles 18:24 Новые функции C# 19:34 Оптимизация LINQ запросов 21:43 Впечатления 22:46 Обратная связь 43:36 Конец #dotnet #csharp #interview #mockinterview
Насколько сложно войти в АйТи в зрелом возрасте? Стоит ли оно того?
Просмотров 9347 месяцев назад
Интервью с Ахматом - человеком, который решился уйти с должности руководителя на должность джуниор разработчика на C#. 0:00 В этом интервью... 1:12 Об Ахмате 1:39 Предыстория 4:43 Зачем менял профессию 6:07 Собеседования в роли руководителя 7:50 Задание на логику 9:03 HR специалисты 9:35 Подготовка к собеседованиям 12:12 Сложности в первое время 13:56 Ожидания vs Реальность 15:24 Поддержка близ...
Пробное Senior C# собеседование (мок-интервью) №2
Просмотров 6 тыс.7 месяцев назад
0:00 Почему ты ищешь новое место работы? 0:26 Проблемы многопоточности и как избежать 1:17 Как избежать дедлока? 2:00 Какие ещё могут быть проблемы с многопоточностью? 2:20 Оптимизация приложений 06:04 Паттерн DDD 6:50 Паттерн Event Sourcing 7:47 Паттерн CQRS 8:55 Что такое микросервисы 12:16 Практическое задание: Система управления инвентарем 43:55 Впечатления 51:58 Обратная связь: Многопоточн...
Пробное Middle C# собеседование (мок-интервью)
Просмотров 10 тыс.7 месяцев назад
0:00 Приветствие 0:07 Расскажи про свой опыт 1:39 Что такое атрибуты? 2:57 Какие паттерны проектирования ты знаешь? 7:59 Как работает async/await? 10:52 Что такое Reflection? 11:43 Разница между процессами и потоками 12:53 Практическое задание: паттерн Наблюдатель 25:50 Обратная связь: Атрибуты 26:45 Обратная связь: Паттерны 21:14 Обратная связь: Async/await 29:00 Обратная связь: Reflection 30:...
Из миддла малоизвестного банка РФ стал руководителем команды разработки в Германии
Просмотров 3537 месяцев назад
0:00 О чем видео 0:18 О знакомстве на курсах и преподавании 1:29 Переезд в Нидерланды 10:22 Сбор документов и стоимость обучения 14:06 Переезд в Германию 20:08 В управленцы из программистов 23:51 Кодят ли руководители? 26:09 Преподавание 27:52 Как произошел переход в лиды 35:26 Конференции и синдром самозванца 42:45 Советы зрителям от Миши 48:20 Выводы и советы от меня Руководитель команды разр...
Пробное Junior C# собеседование (мок-интервью)
Просмотров 8 тыс.8 месяцев назад
0:00 Приветствие 0:19 Расскажи про свой опыт программирования 4:07 Разница между struct и class 4:42 Концепция наследования в ООП 5:25 Const, readonly, static 5:50 Как работает сборка мусора? 6:24 и Equals() 6:45 Практическое задание: класс Book 37:42 Саморефлексия 38:40 Обратная связь: вопрос про опыт 46:22 Обратная связь: struct и class 50:16 Обратная связь: Особенности типа String 51:33 Обра...
Пробное Senior C# собеседование (мок-интервью)
Просмотров 6 тыс.8 месяцев назад
0:00 .NET Core vs .NET Framework, C#12 0:36 Аутентификация и авторизация 2:11 Паттерн "Медиатор" 2:19 Контейнеризация и .NET приложения 4:31 Распределенные транзакции 6:19 Практическое задание 14:47 Саморефлексия 16:00 Обратная связь #dotnet #csharp #interview #mockinterview
Дослушав ответ про async/await сделал вывод о том, что собеседуемый скорее всего как минимум сеньер-разработчик: очень ровно и уверенно отвечает. Местами скромничает, правда - видимо не до всего еще дотянулись руки. Сталкивался с "лидами" и "главами" отделов, которые имели меньшее понимание предмета. Претензии: 1) почему не слепил ивент из делегата? 2) с Observer начал лепить какую-то дичь, но потом исправился. Правда, на мой взгляд это не реализация паттерна Обозреватель, а использование готового решения паттерна в .net. Реализацией было бы создание класса-паблишера с методов add/removeSubscriber, абстракции ISubscriber с методом Signal. Метод Signal мог бы вызываться по фатку изменения состояния паблишера - например, каждого свойства объекта
Собеседование уровня middle все же
Извините , это точно Senior собеседование ?
Если посмотрите предыдущие видео, то увидите, что Олег по факту хотел собеседоваться на миддла, но заодно решил и синьор уровень попробовать. А что именно вас здесь смущает?
Где таймкоды????? 😡😡
Там всего один практический вопрос и всё видео про него
--- "Привет Михаил, расскажи про свой опыт в програмировании" --- "Привет Алексей. Я начал писать какие то простенькие консольные програмки еще в институте. Потом наткнулся на канал по С#. Начал более глубоко погружатся в язык. Понял что мне это нравится. Нашел ментора, чтобы еще больше усовершенствовать свои знания. В результате научился определать приватные конструкторы в классах, присваивать в теле конструктора параметрам свойства которые определены в классе, научился переопределять виртуальные методы без ключевого слова ovveride и с модификатором доступа private. Думаю что у меня достаточно опыта и знаний чтобы претендовать на джуниор вакансию. Вот пришел чтобы окончательно в этом убедится и уже начинать искать работу".
Все встроенные структуры в C# неизменяемые. И так же в Рихтере напрямую написано, что желательно их всегда делать неизменяемыми и на примерах показано почему.(не из-за скорости как он несет точно)
Не уверен, что до конца понимаю про что вы. Если про встроенные структуры, то мы их итак не можем изменить. И в части ситуаций структуры вполне себе работают быстрее, чем классы из-за накладных расходов на указатель и боксинг/анбоксинг.
@@DotNetInterviewPreparation эм, вы прочитали мое сообщение в отрыве от контекста того, что говорилось в видео. Он говорил, что все структуры неизменяемые, я просто указал из-за чего он так подумал и перепутал. Так же он сказал, что они неизмяемые из-за скорости, я указал, что это не так и что в рихтере есть примеры почему их надо делать неизменяемыми. Я нигде тут не сравнивал скорость структур и классов
@@whisper399 теперь понял, спасибо большое за уточнение 👍
По DDD, Event Sourcing и CQRS очень спорно. Описанная как ивент сорсинг архитектура скорее была похожа на ивент дривен, что несколько разное. В ивент сорсинге события не простооповещение системы, но и источник построения данных (цепочка событий + снапшоты являются источником построения текущего состояния). А все, в конце при разборе оказывается указали на это) Архитектура из практического примера - ну тоже токое, уж если идти к нормальному уровню абстракции, то можно рассматривать что то типа Clean Architecture, там уровней абстракции куда больше и все универсальнее. При обсуждении асинхронности хорошо было бы упомянуть CAP теорему, если мы асинхронно по шине или сагой пытаемся ввести изменения в данные несколько сервисов. Про дедлоки ниже уже отписались) Вообще показалось как будто слишком лайтово для синьора
Спасибо большое за такой подробный комментарий. Что касается сложности и глубины собеседования, это ещё будет дорабатываться 😉
Бро, а если я на телике смотрю. Почему у меня в телеке ещё один телек 😅
Это для надёжности, чтобы если один сломается, ты мог видео на другом досмотреть 😃
когда научился пользоваться молотком тебе начинает казаться что вокруг одни только гвозди
Думаю, что со всеми бывает ;-)
С MVC чуть уши не загнулись, 2 сеньора сидят и думают что модель это просто данные, а контроллер это бизнес логика =/ Господа в модели есть DAL, и бизнес логика, контроллер занимается по сути просто роутингом и первичной валидацией. Или у вас вся бизнеслогика пишется в экшенах)? Дальше наверное нет смысла смотреть
То есть вы считаете, что в парадигме MVC буква C отвечает за ASP.NET контроллеры?
@@DotNetInterviewPreparationя наверное зря перешёл от общего к частному, но это было сделано для наглядности. Давайте обратно обобщим и подумаем вот над чем. При проектировании системы мы всегда стремимся к обособленности , что бы изменения в одном из компонентов оказывали минимальное воздействие на остальные части, и MVC не исключение. Если у нас бизнес логика находится на уровне контроллера, то он становится неразрывно связан с моделью, а это уже противоречит нашим принципам)
музыка на собесседовании это да )
Согласен, со звуком надо ещё потренироваться, но и на собеседовании было бы прикольно, если бы была музыка))
Привет, по поводу задания, мне кажется все зависит от задачи бизнесов, если позволяют ресурсы, то почему бы не выполнять в синхроне, подняли нужное количество тачек и поставить выше балансировщик?) в примере с товарами как будто между синхроном и асинхронном лучше синхрон)) ИМХО Но все зависти от анализа бизнесов и ресурсов Отличный выпуск!👍
Именно так, в этом и была моя идея - использовать подходящие для задачи инструменты, а не те, к которым привык. К сожалению, это частая проблема, которую я и за собой тоже иногда замечаю.
Очень слабо для мидла, даже джунов больше гоняют
Сильно зависит от компании и обстоятельств. Знаю историю, где джуна за 4 месяца сделали тимлидом, когда вся команда разом уволилась, кроме него. Плюс, даже на один и тот же уровень, требования, скажем в Яндекс, скорее всего будут выше, чем в "Рога и Компы" в небольшом городке в регионе.
Я, который перечитал десятки статей и пару книг, что бы вкурить что такое ассинхронность и как устроены метод-заглушка и стэйт машина и не могу устроиться, а чел делает приватным конструктор и почти взяли на работу😢
К сожалению, чтение статей и книг не гарантирует трудоустройства, это правда. Ну и да, с приватным конструктором тут промашка небольшая вышла, но у кого их не бывает? ;-)
Люблю собесы по дотнету смотреть на Ютубе. Но тут как по мне задачи были очень простые. Я даже не знаю какие тогда требования к трейни. Создать класс?😅
Простые и сложные - субъективные суждения. Но, в целом, соглашусь, что это не многочасовое собеседование, где из тебя всю душу вынимают))
Спасибо за видео, но на middle очень слабые ответы. То, что прошелся по названиям и стилю прям респект. Я реально устал на проектах, когда по названию и сигнатуре метода невозможно понять совершенно, что этот метод делает.
Согласен про стили и названия, если их нет, то что это может показывать недостаток опыта, потому что рано или поздно их во всех компаниях внедряют.
Привет! Как можно к вам попасть на мок middle интервью?)
подскажите что за сайт или программу автор использует в практической части
dotnetfiddle.net/
Не очень понял пример с Shopify и вообще всю эту полемику вокруг создания товара. Если товары создаются поштучно кликами пользователя, то у вас там будет gRPC. Если вы импортируете товары тысячами из экселевских файлов или внешних систем, то там вполне очевидно вырисовывается асинхронная очередь. Иными словами, я вообще не понял эту сферическую ситуацию в вакууме, где создание товара почему-то дорогое и может занимать минуты.
Бизнес-правила могут быть очень разными. Отличный пример такого долгого создания товара - Авито. Может несколько часов пройти с момента как вы опубликовали объявление на свой товар до момента, как он будет реально опубликован для всего интернета. А если не повезёт и нужна будет проверка модератором и будут какие-нибудь праздники, то время ожидания может и в днях исчисляться. Хочется верить, что сейчас уже быстрее всё проходит, но раньше было так.
@@DotNetInterviewPreparation спасибо за ответ! Тем не менее, разговор был не про долгое создание, а дорогое. Такое дорогое, что мы зачем-то хотим его в очередь засунуть и не можем быстро вернуть результат для отображения на клиенте. Что касается примера с авито, то сам товар же моментально создаётся и отображается в интерфейсе в списке ожидающих модерации-публикации. Очевидно, нет там очереди на C из CRUD -- просто сразу создаётся товар и дальше по статусам двигается. В общем, в моменте Вас куда-то не туда как будто повело, и никто особо не понял, что произошло.
@@DotNetInterviewPreparation на всякий случай, я пробежался снова по моментам, которые меня смутили, а то три недели прошло и я уже всё забыл. Часть разговора на 39-42 минутах, потом самая важная часть с 1:01:40. На мой взгляд, справедливо будет сказать, что речь шла в обоих моментах не про массовый импорт, а про клики пользователей, публикующих товары. По крайней мере, обратного озвучено не было. Также справедливо будет отметить, что в инфраструктуре, где в сутки миллион товаров новых регистрируется, можно будет ожидать десятки и сотни миллионов покупок в сутки. Эти покупки всегда обрабатываются в реалтайме (не может же сервис просто списать деньги и не показать пользователю, что товар из корзины исчез, а в списке заказов появилась новая запись), и бизнес-процесс покупки уж точно дороже бизнес-процесса создания товара.
Давайте уточню то, что я хотел подсветить в тот момент - если ты умеешь использовать какой-то инструмент, это не говорит о том, что его нужно использовать везде. Соответственно, я хотел подтолкнуть собеседника в эту сторону, придумывая различные варианты, где его инструмент будет не очень применим. Да, возможно, был приведен не на 100% очевидный пример, однако, суть была как раз в том, что в зависимости от бизнес потребностей инструменты могут и должны меняться.
Очень интересное видео, особенно практическое задание. Кандидат довольно приятный парень, из советов - иногда бывают слова-паразиты, которыми заполняется время на обдумывание ответа. Ну и про RPC в практическом задании да, очень странно. Зато про опыт с профилировкой круто рассказал. Благодарю обоих участников!
Очень здорово, когда можно с помощью таких людей, как Константин, заглянуть в собеседования со стороны собеседующего. Благодарю за обратную связь.
За MassTransit отдельное спасибо. Если появляется он, то gRPC нафиг не нужен. Все взаимодействие через AQMP
Про распределенные транзакции достаточно было назвать паттерн Saga.
Так как это синьор уровень, то вполне можно ещё и в глубину про реализацию порассуждать на самом деле ;-)
Прекрасное интервью с совершенно убитым звуком. Приходится переслушивать по несколько раз отдельные моменты, чтобы понять, что говорит Олег. Тем не менее, спасибо, за предоставленную информацию.
Спасибо за обратную связь. Сейчас даже думаю может вообще без музыки выкладывать видео, что думаете?
Очень интересный гость, спасибо за видео!
Спасибо за комментарий.
Очень интересный формат, спасибо! подписался
Спасибо, буду продолжать вас радовать интересными видео.
Спасибо Олегу, что не постеснялся выложить свой собес на всеобщее обозрение, лайк за смелость и успехов в дальнейшем развитии! Из замечений - Олега иногда плохо слышно, проверяйте перед видосами, как пишется звук
Да, Олег хорош.
А "прочитано" почему пропустили, не поработали с "MarkAsRead"
Вам именно причина нужна? Или хотели бы увидеть как это могло бы быть реализовано? Если второе, то можете прислать как бы вы это реализовали и я дам вам обратную связь 😉
@@DotNetInterviewPreparation Я просто не знаю как это реалезовать, есть идеи, но программа раздуется в моём случае, мне интересно как было бы правильно )
Боюсь, что без написания дополнительного кода (раздутия программы) здесь никак, да.
@@DotNetInterviewPreparation Понял, спасибо
@@DotNetInterviewPreparation он же вроде просто процедуру там сделал? А надо функцию ,чтобы передать название книги, автора, год и по сформированной строке уже понять какая книга была прочитана, чтобы пометить. Другой вариант ,как понимаю, использовать this, не уверен, просто прочитал про него только сегодня в книге, пока учу язык. Но по идее изнутри класса можно обратиться и тогда именно функция не нужна.
Спасибо) хорошее интервью с настоящим специалистом)
Согласен про специалиста на все 100 🙂👍
За советы для новичкам, спасибо! Было интересно послушать.
Рад, что вам понравилось.
34:40 В SOLID буковка "D" отвечает не за Dependency Injection, а за Dependency Inversion ... Внедрение - не одно и то же, что Инверсия ...
Да, спасибо большое за уточнение 👍
@@DotNetInterviewPreparation Это именно уточнение, если что :) P.s.: продолжайте создавать подобный контент. У Вас - получается.
4 года работаю разрабом. Успел поработать на с# 9 месяцев потом на котлине и джава бэк. 8 месяцев . И все остальное время на с# + ангуляр. До сих пор закрадыаются мысли что я не рыба не мясо, потому что пишу и бэк и фронт. Но посмотрев это интервю. Я прям повысил свою самооценку. :))) я давно оказывается не джун :)) если чесно хорошее видео. Скажу чесно 90 % своих знаний я получил просто анализируя чужой код еа, смотря кто как пишет на проекте так как прект большой многие задачи уже решались кем либо , и 10% гуглеж и видосики на ютубе. Так я изучил ангуряр.
Да, уже (почти) всё решено до нас. Что ещё интереснее, можно попросить нейронку, обученную на существующем коде, написать новый код и она напишет. Мгновенно и почти без косяков. Так что вполне себе хороший инструмент, чтобы пользоваться ;-)
спасибо, понравилось!
Можно убрать музыку? Мешает слушать
Да, где-то было слишком громко, в других видео должно быть лучше.
Зачем??? Зачем спрашивать про сборщик мусора?? Тем более на позицию джуна
Чтобы человек писал код, который не генерирует OutOfMemoryException при складывании 2+2.
@@DotNetInterviewPreparation часто сталкивались с OutOfMemoryException? Это ж надо постараться
Фидбек про разницу между асинхронностью и многопоточностью - супер! Только не понятно зачем знать про "Стейт машину", что эти знания нам дают? Такое ощущение, что вопрос про "Стейт машину" из разряда - расскажите про сборку мусора
Это вопрос, который разделяет людей на "я не знаю как это работает, как-то работает, да и ладно" и на "Ух ты! А как это работает?". Плюс, мне недавно один из учеников настойчиво предлагал сделать метод асинхронным, ибо был убеждён, что так правильнее. А то, что добавляя слово async ты автоматически проигрываешь в производительности из-за доп. расходов на как-раз ту самую стейт машину, об этом он не думал.
В целом о существовании стейт машины знать нужно я думаю, но вот некоторые упарываются и начинают по этому задавать кучу вопросов что там да как. Так же и со сборщиком мусора, хорошо знать что он есть и поверхностно понимать как он работает, но в детали я бы не стал особо вдаваться
Детали начинают спрашивать с повышением уровня квалификации, то есть от Джуна ожидают, что он просто знает, что такое есть, в то время как от синьора уже могут рассказать о тонкостях реализации. Не уверен, что это прямо нужно на самом деле, но, раз спрашивают, значит надо быть готовым ответить 😉
Пришел к такому выводу для себя, любой хороший сеньор может впринципе завалить любого хорошего сеньора
Если цель именно завалить, то это может сделать и джун)))
@@DotNetInterviewPreparation Нет, не может. Это не Сеньор. Он не живет кодом. Он просто хочет получать больше
ахах, вспомнилсебя, проходил собесы на сеньор разраба, в нескольких получил фидбек миддл, в нескольких сеньор, в одной приглашали на должность архиотектора, и в две другие фирмы на лид разраба с менторством команды так как есть опыт.
Ого, вот это разброс! Не хватает только джуна 😉
Супер!
В SOLID буква D - это dependency inversion, а не injection. 34:46
И впрямь, а я всегда думал, что они различаются. Спасибо большое, что заметили 😉👍
Эхх, жалко, что поздно, в видео есть ошибка, logstah не является базой данных, он служит для модификации и перенаправления сообщений, т.е является неким посредником между отправителем сообщения и его получателем. А стеке ELK базой является буква "E" - elastick search
Да, вы абсолютно правы, меня постоянно тянет сказать, что Logstash это именно хранилище, потому что stash переводится как тайник. Но по факту, да, это лишь преобразователь данных.
@@DotNetInterviewPreparationДа, есть такое) Видео вышло интересным, спасибо
По оптимизации LINQ запросов: Вопрос же поставлен именно относительно LINQ запросов, что подразумевает запросы к БД. Отвечающий корректно начал рассказывать про LINQ to Entities. Если имелось в виду про использование LINQ для работы с данными в коде, то корректнее сказать, например, "Оптимизация LINQ-выражений". Расскажите, у кого какое понимание фразы "LINQ-запросы"?
Если верить майкрософтовской документации (learn.microsoft.com/ru-ru/dotnet/csharp/linq/get-started/introduction-to-linq-queries), то запросы в LINQ могут быть и к объектам (Linq2Objects), и к XML (Linq2Xml), и к много чему ещё, фактически любым коллекциям, реализующим IEnumerable. Так что говорить, что под запросами понимается именно Linq2Entities я бы не стал. Тем более, что есть более "родная" реализация для работы с бд - Linq2Db. Да и чего уж там, сама расшифровка LINQ содержит в себе слово "запрос" ;-)
Бл@дская музыка в бэкграунде, а так спс за видос
А где всё это происходит?
В зуме
@@DotNetInterviewPreparation Да это понятно. Я имею введу сам контекст. Что это курсы? Сообщество? Собрались знакомые? Частный менторинг?
@@user-ck3dq5pb4n, на текущий момент это я бесплатно организую такие мероприятия для выпускников своих курсов и зрителей с ютуба.
До чего техника дошла - кандидаты сами себя собеседуют! Можно Battle Royal устроить, победителю - оффер😆
Если бы в реальности так и происходило, то может быть и устроили бы. Но, к сожалению, на собеседованиях далеко не всегда "побеждает" тот, кто лучше умеет программировать или больше знает 🤷
Garbage Collection - это коллекция... ))) Щас на интервью попасть сложнее, чем его пройти. Предлагаю изменить формат роликов с "собеседование" на "как попасть на собес" 😂
А это идея )) Предлагаю всем желающим прислать свои резюме для разбора и обратной связи вот сюда: docs.google.com/forms/d/e/1FAIpQLSfV1oqnhQr81TZlWpeG7TqMIK7d-04z4tddQb1La-Pn-yCmrg/viewform?usp=sf_link
@@DotNetInterviewPreparation да, я про подобное и говорю. Ну и для того, чтобы приблизить всё к реальности, на каждое присланное резюме отвечать нечто вроде: Спасибо за интерес к нашей вакансии! Но в данный момент мы не готовы пригласить Вас на дальнейшее интервью. Мы вернёмся к вашей кандидатуре, когда у нас возникнет такая потребность. 😂
@@fed1splay, ха-ха-ха, степень реализма 100%. Хотя, можно сделать ещё лучше - вообще ничего не отвечать, тоже как в жизни будет 🙂
@@DotNetInterviewPreparation я этот вариант опустил, как очевидный 😂 я думаю многие, кто шлёт отклики на ХХ про него в курсе)))
Было бы смешно, если бы не было так грустно :(
Как ты отбираешь людей для своих видео? Хочется поучаствовать))
Всё просто и бесплатно - вступайте в ТГ группу и подписывайтесь на рассылку. Ссылки в информации о канале ;-)
Клёвая идея! Это реально очень помогает людям стать лучше. Респект
@@KonstantinTurchak, спасибо за поддержку.
Кстати, есть вот такой вопрос, а как Linq понимает IQuerible или IEnumerable нужно возвращать?
лично мое мнение, что когда ты у IEnumerable (например List ) вызываешь метод то он и возвращает IEnumerable, а когда у DbSet который реализует IQueryable, то он вернёт IQueryable.
Думаю, здесь нужно начать с того, что такое LINQ? По факту это набор методов-расширений (extension methods). И ответом на ваш вопрос будет "Какой возвращаемый тип в методе написан для типа, на котором вызывается, тот интерфейс и будет возвращён".
@@DotNetInterviewPreparation Не LINQ понимает, а разработчик решает что он хочет увидеть в результате. И надо понимать, что LINQ to Entities это одна история, а LINQ to object другая.
www.youtube.com/@otsobes/videos . Хочу для вашего развития как канала предложить старый и заброшенный , но очень крутой канал про собесы. Рекомендую первые видосы , именно где фронтенд интервью . У этих ребят главное преимущество над вами и большим кол-вом мок-интервьюеров в том , что там был не формат "попытка ответить кандидата => объяснение ведущего" , а прямо-таки раскручивание кандидата в глубь по каждому вопросу . Ясное дело , что там и длина видосов больше ( хотя никто не заставляет делать много вопросов) , но при этом интервью более содержательное , больше раскрывается кандидат , когда его даже поддушивают слегка . Плюс не знаю , как другим зрителям , но формат с этим компьютером и попеременным показом ведущего и интервьюируемого мне не очень заходит . Мне кажется , лучше , когда видно обоих и нет этого отвлекающего дизайна с этим рабочим столом. А так вообще круто делайте , лучшее , что по шарпам находил в интернете!
IQueriable же не содержит реализации, о каких оптимизациях речь
Я так понимаю, что за счет Expression он строит дерево выражений и пока не вызвал методы для "материализации"(toList и тп) ты можешь писать любые запросы, фильтрации и тд, которые в итоге могут пересекаться и вот эти пересечения он может оптимизировать. (но это домыслы)
@@mrlait5732 а если этот IQueriable не про базу данных? Мы же делаем выборку используя какой-то абстрактный провайдер данных. Так что мы вполне можем делать выборку внезапно из файла, из папок на диске или из таблицы экселя. И не факт что оптимизации там есть. Вопрос не раскрыт. Но для галочки что кандидат знает, пойдёт.
Полностью согласен, сам интерфейс не содержит никаких реализаций. Речь шла про методы, которые возвращают IQueryable. Что вместо того, чтобы применять методы поочередно к одному элементу, как это происходит с IEnumerable, здесь, как уже написали в комментарии выше, мы строим дерево выражений и уже в нём можем оптимизировать работу, например, преобразовав все множество методов в один запрос к базе данных.
@@DotNetInterviewPreparation IQueryable наследуется от IEnumerable и вы все правильно сказали, что главная особенность это то что IQueryable постоянно оптимизирует именно SQL запрос.
Ждём части три. Где будет мок-оффер на 300к/наносек.😎
Вот вы смеетесь, а у нас уже планируется такой мега-мощный мок собес с практически настоящим оффером. Ну а чтобы получить третью часть, вы знаете что делать - оплачивайте билетики ;-)