Прекрасное интервью с совершенно убитым звуком. Приходится переслушивать по несколько раз отдельные моменты, чтобы понять, что говорит Олег. Тем не менее, спасибо, за предоставленную информацию.
Спасибо Олегу, что не постеснялся выложить свой собес на всеобщее обозрение, лайк за смелость и успехов в дальнейшем развитии! Из замечений - Олега иногда плохо слышно, проверяйте перед видосами, как пишется звук
Никогда не понимал, что именно люди хотят услышать, задавая вопросы про di или solid или что-то ещё подобное. Что вы хотите понять о собеседуемом, тем более претендующем на позицию сеньора? В it практике ведь бывает столько всяких разных задач, в которых действительно нужны высококвалифицированные программисты. Всякие разные оптимизации бд, неочевидные моменты при постоении распределенных систем, куча всего. Но 90% собесов целиком состоят из вопросов по типу "а расскажите про все буквы SOLIDа"...
Я воспринимаю такие вопросы как способ "плавно въехать" в собеседование. То есть не сразу с первой же минуты даёшь человеку большой SQL скрипт и просишь его оптимизировать, а начинаешь с базовых, простых вопросов про то, что такое индексы, ACID, и т.д. Ну и SOLID относится всё же к базовым знаниям, которые нужны, чтобы не писать совсем уж плохой код. А что именно плохого в том, что его все спрашивают?
По оптимизации 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 содержит в себе слово "запрос" ;-)
Мне казалось, что принцип DRY относится к тому, чтобы не писать дублирующий код, а делать так, чтобы общий код можно было переиспользовать. То есть данные можно дублировать сколько хочешь как, например, при работе с неизменяемыми (immutable) коллекциями и на принцип DRY это никак не повлияет 😉
Отличный формат собеседований. Из упущений считаю отсутствие алгоритмической задачи в практической части (Не про это видео, а вообще в тех, что есть на канале.) У меня обычно из 4 собеседований на двух обязательно проскакивают такие задачи. По типу "как сделать очередь из двух экземпляров стэка". "Напиши структуру данных с методами bool add, bool remove, T get с O(1)".
Зато теперь и у Олега, и у всех зрителей есть понимание, что для синьора нужно выходить на более высокий уровень абстракций и брать на себя больше ответственности 😉
Зачем музыку так громко? Во-первых, отвлекает. Во-вторых, приходится сильно вслушиваться чтобы понять что говорится. В-третьих, на скорости 2х вообще ужасно звучит.
Как то очень странно, еси я не ошибаюсь у собеседуемого 10 лет опыта, но человек не знает что такое SOLID и других каких то базовых вещей, которые должен знать личинка Джуна, а о человеке у которого 10 лет опыта даже и говорить не надо
Уверен, что за 10 лет Олег узнал и научился многому другому. Ещё, думаю, стоит обратить внимание, что многие вещи только недавно стали популярными и многие люди из "старой гвардии" не всегда следят за новшествами. Такая же ситуация с водительскими правами. Очень многие, кто получил права 10 лет назад и всё это время успешно ездил, сейчас увы не смогут сдать теоретический экзамен. Потому что правила меняются каждый год и за 10 лет этих изменений накопилось довольно много. Однако, это ни в коем разе не может быть показателем того, что раз человек не смог ответить на современные вопросы, то он не умеет водить машину.
@@DotNetInterviewPreparation Сомнительно, если не ошибаюсь Роберт Мартин представил SOLID в начале 2000х, и это уж точно не что то новомодное, в принципе как и другие базовые вещи в которых он не разбирается. А что на счёт того что «старая школа» может не забираться в современных вопросах, это как по мне не так. Он не токарь и не фрезеровщик, чтобы не изучать что то современное, разработчик всегда должен совершенствоваться и узнавать что то новое.
@@iva6736, полностью согласен, что нужно всегда развиваться и изучать что-то новое. Однако, насчёт применения SOLID есть у меня некоторые сомнения. Знаю много людей, которые профессионалы своего дела, но не знают всех последних новинок. Плюс, на мой взгляд, как минимум в России сейчас у 99% компаний используется далеко не последняя версия фреймворка. Очень много компаний до сих пор сидят на полном фреймворке и ещё долго (а какие-то и никогда) его не обновят. Поэтому, даже если человек и пойдёт, скажем, на курсы, например, в тот же Отус и изучит последние технологии, то на работе он применить этого всё равно не сможет. Возникает вопрос в целесообразности такого обучения. Как результат, многие и не изучают того, что им не пригодится в работе.
Да, Олег пробовался на перспективу. Однако, в каких-то компаниях он вполне может быть синьором, если обладает знаниями и навыками, которые нужны именно этой компании, но про которые я не спрашивал.
С MVC чуть уши не загнулись, 2 сеньора сидят и думают что модель это просто данные, а контроллер это бизнес логика =/ Господа в модели есть DAL, и бизнес логика, контроллер занимается по сути просто роутингом и первичной валидацией. Или у вас вся бизнеслогика пишется в экшенах)? Дальше наверное нет смысла смотреть
@@DotNetInterviewPreparationя наверное зря перешёл от общего к частному, но это было сделано для наглядности. Давайте обратно обобщим и подумаем вот над чем. При проектировании системы мы всегда стремимся к обособленности , что бы изменения в одном из компонентов оказывали минимальное воздействие на остальные части, и MVC не исключение. Если у нас бизнес логика находится на уровне контроллера, то он становится неразрывно связан с моделью, а это уже противоречит нашим принципам)
Прекрасное интервью с совершенно убитым звуком. Приходится переслушивать по несколько раз отдельные моменты, чтобы понять, что говорит Олег. Тем не менее, спасибо, за предоставленную информацию.
Спасибо за обратную связь. Сейчас даже думаю может вообще без музыки выкладывать видео, что думаете?
Спасибо Олегу, что не постеснялся выложить свой собес на всеобщее обозрение, лайк за смелость и успехов в дальнейшем развитии!
Из замечений - Олега иногда плохо слышно, проверяйте перед видосами, как пишется звук
Да, Олег хорош.
34:40 В SOLID буковка "D" отвечает не за Dependency Injection, а за Dependency Inversion ... Внедрение - не одно и то же, что Инверсия ...
Да, спасибо большое за уточнение 👍
@@DotNetInterviewPreparation Это именно уточнение, если что :)
P.s.: продолжайте создавать подобный контент. У Вас - получается.
Классные собесы. Надеюсь не забросишь канал. Просто кладезь информации
Рад, что вам понравилось, постараюсь не забрасывать 😇
В SOLID буква D - это dependency inversion, а не injection. 34:46
И впрямь, а я всегда думал, что они различаются. Спасибо большое, что заметили 😉👍
Господа! Шлёпаем лайки и комментарии, не стесняемся, контент-то годный.
Никогда не понимал, что именно люди хотят услышать, задавая вопросы про di или solid или что-то ещё подобное. Что вы хотите понять о собеседуемом, тем более претендующем на позицию сеньора? В it практике ведь бывает столько всяких разных задач, в которых действительно нужны высококвалифицированные программисты. Всякие разные оптимизации бд, неочевидные моменты при постоении распределенных систем, куча всего. Но 90% собесов целиком состоят из вопросов по типу "а расскажите про все буквы SOLIDа"...
Я воспринимаю такие вопросы как способ "плавно въехать" в собеседование. То есть не сразу с первой же минуты даёшь человеку большой SQL скрипт и просишь его оптимизировать, а начинаешь с базовых, простых вопросов про то, что такое индексы, ACID, и т.д. Ну и SOLID относится всё же к базовым знаниям, которые нужны, чтобы не писать совсем уж плохой код.
А что именно плохого в том, что его все спрашивают?
Слишком громкая музыка, приходится вслушиваться.
Спасибо большое, учту в следующих видео.
Я бы сказала невозможно слушать, к сожалению.
@@elka1910 Да, первые блины комом :)
По оптимизации 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 содержит в себе слово "запрос" ;-)
Является ли использование ModelVM в MVC нарушением принципа DRY? Ведь по сути мы дублируем данные модели.
Мне казалось, что принцип DRY относится к тому, чтобы не писать дублирующий код, а делать так, чтобы общий код можно было переиспользовать. То есть данные можно дублировать сколько хочешь как, например, при работе с неизменяемыми (immutable) коллекциями и на принцип DRY это никак не повлияет 😉
музыка на собесседовании это да )
Согласен, со звуком надо ещё потренироваться, но и на собеседовании было бы прикольно, если бы была музыка))
Отличный формат собеседований. Из упущений считаю отсутствие алгоритмической задачи в практической части (Не про это видео, а вообще в тех, что есть на канале.) У меня обычно из 4 собеседований на двух обязательно проскакивают такие задачи. По типу "как сделать очередь из двух экземпляров стэка". "Напиши структуру данных с методами bool add, bool remove, T get с O(1)".
Спасибо большое за комментарий, а это на какую позицию, если не секрет, такие задачи задают? На мидлла?
@@DotNetInterviewPreparation На джуна и на мидла было.
Понял, поэкспериментируем с такими вопросами в будущих видео, спасибо.
хз, за 100 собесов такое только на джуна лет 8-10 назад було
Да, на синьера рановато, даже на мидл+ рановато
Зато теперь и у Олега, и у всех зрителей есть понимание, что для синьора нужно выходить на более высокий уровень абстракций и брать на себя больше ответственности 😉
Бро, а если я на телике смотрю. Почему у меня в телеке ещё один телек 😅
Это для надёжности, чтобы если один сломается, ты мог видео на другом досмотреть 😃
Зачем музыку так громко? Во-первых, отвлекает. Во-вторых, приходится сильно вслушиваться чтобы понять что говорится. В-третьих, на скорости 2х вообще ужасно звучит.
Рекомендую смотреть более свежие видео, там со звуком должно быть получше 😉
На синьера еще далеко. Я бы оценил начальный мидл.
Как то очень странно, еси я не ошибаюсь у собеседуемого 10 лет опыта, но человек не знает что такое SOLID и других каких то базовых вещей, которые должен знать личинка Джуна, а о человеке у которого 10 лет опыта даже и говорить не надо
Уверен, что за 10 лет Олег узнал и научился многому другому. Ещё, думаю, стоит обратить внимание, что многие вещи только недавно стали популярными и многие люди из "старой гвардии" не всегда следят за новшествами.
Такая же ситуация с водительскими правами. Очень многие, кто получил права 10 лет назад и всё это время успешно ездил, сейчас увы не смогут сдать теоретический экзамен. Потому что правила меняются каждый год и за 10 лет этих изменений накопилось довольно много. Однако, это ни в коем разе не может быть показателем того, что раз человек не смог ответить на современные вопросы, то он не умеет водить машину.
@@DotNetInterviewPreparation Сомнительно, если не ошибаюсь Роберт Мартин представил SOLID в начале 2000х, и это уж точно не что то новомодное, в принципе как и другие базовые вещи в которых он не разбирается. А что на счёт того что «старая школа» может не забираться в современных вопросах, это как по мне не так. Он не токарь и не фрезеровщик, чтобы не изучать что то современное, разработчик всегда должен совершенствоваться и узнавать что то новое.
@@iva6736, полностью согласен, что нужно всегда развиваться и изучать что-то новое. Однако, насчёт применения SOLID есть у меня некоторые сомнения. Знаю много людей, которые профессионалы своего дела, но не знают всех последних новинок. Плюс, на мой взгляд, как минимум в России сейчас у 99% компаний используется далеко не последняя версия фреймворка. Очень много компаний до сих пор сидят на полном фреймворке и ещё долго (а какие-то и никогда) его не обновят. Поэтому, даже если человек и пойдёт, скажем, на курсы, например, в тот же Отус и изучит последние технологии, то на работе он применить этого всё равно не сможет. Возникает вопрос в целесообразности такого обучения. Как результат, многие и не изучают того, что им не пригодится в работе.
@@DotNetInterviewPreparation очень хороший аналог с водительскими правами, в точку)))! спасибо
Спасибо, я старался)
А теперь иди будешь баги исправлять 😅😂
ну не синьор, мидл максимум
Да, Олег пробовался на перспективу. Однако, в каких-то компаниях он вполне может быть синьором, если обладает знаниями и навыками, которые нужны именно этой компании, но про которые я не спрашивал.
С MVC чуть уши не загнулись, 2 сеньора сидят и думают что модель это просто данные, а контроллер это бизнес логика =/
Господа в модели есть DAL, и бизнес логика, контроллер занимается по сути просто роутингом и первичной валидацией. Или у вас вся бизнеслогика пишется в экшенах)?
Дальше наверное нет смысла смотреть
То есть вы считаете, что в парадигме MVC буква C отвечает за ASP.NET контроллеры?
@@DotNetInterviewPreparationя наверное зря перешёл от общего к частному, но это было сделано для наглядности.
Давайте обратно обобщим и подумаем вот над чем. При проектировании системы мы всегда стремимся к обособленности , что бы изменения в одном из компонентов оказывали минимальное воздействие на остальные части, и MVC не исключение. Если у нас бизнес логика находится на уровне контроллера, то он становится неразрывно связан с моделью, а это уже противоречит нашим принципам)