Спасибо, хотя немного поверхностно, без кода и примеров. И уж по первым вопросам я бы добавил к ответам: - Абстрактные классы могут содержать полноценные методы, поля, свойства, конструктор, которые не надо переписывать и они будут нормально наследываться. - Ссылочные и значимые типы по разному ведут себя при передаче в методы через параметры. - Для List можно проверять свойство Capacity (размер массива), при добавлении 1-го элемента оно 4, потом удваиваиться при каждом превышении размера. - GetEnumerator() нужен чтобы при каждом его вызове создавался новый объект(структура) IEnumerable (что важно для вложенных циклов по одной коллекции)
максимально нелюбимые вопросы на интервью про garbage collector, никогда не использовал эти знания на работе, не понимаю что мне дает знание о существовании large object heap и 3-ех поколений, сейчас редко где используют lock при наличии concurrentColections, mutex и monitor это муть редкая которая тоже негде не используется в реальном мире, семафор известен за счот semaphorSlim, есть еще дополнительные примитивы асинхронизации со странными именами про которых любят спрашивать, еще самые нелюбимые вопросы это про уровни изоляции транзакций в бд, которые также негдк не используются, вообще это все потверждает что то спрашивают на интервью редко коррелируют с тем что делают на работе
Несколько лет назад вышел кирпич от Конрада Кокосы про всю вот эту машинерию с GC и памятью. Он писал книгу уже ориентируясь на открытые исходники дотнета и там было много интересных штук: например оказывается у GC есть 5 фаз работы, а не 3 как писал ранее тот же Рихтер, что например самая важная фаза сборки это планирование, про которую раньше вообще не знали, что там под капотом есть механизм Card Table, про который то же никто до этого не слышал. Т.е. почти 15 лет(с момента выхода первой версии фреймворка до открытия исходников) почти все разработчики пилили свои приложухи с ошибочными знаниями о работе GC и никто не умер даже там где были супер оптимизации для хайлоада. Это все что нужно знать о важности данного знания)
@@dotnetdad Вообще по факту да) За 11 лет работы мне лично знание GC не пригодилось ни разу. И я знаю ровно одного человека, которому оно понадобилось в работе и то там был проект на WPF и решали они какую-то очень специфическую проблему с утечкой памяти. А ну да есть еще Сидристый, который на рассказе про GC собрал целую платную конфу)
в с# интерфейс не может иметь поля?)Просто в джаве могут иметь, просто по дефолту они public static final и должны быть инициализированы)Просто с с# мало знаком и вот интересуюсь)думал эти два языка очень схожи)
сейчас большинство дотнет разрабов это люди которые попали на стажировку после универа, мало кто сам хочет стать дотнет разработчиком,тема с геймдевом совсем другая, юнити это не совсем дотнет
@@olegtar83 я сам очень хотел с дотнет работать, но все жестко подсели на пайтон и джаваскрипт. Все ИИ проекты на пайтон, а шарп довольно слабо поддерживается в этом плане. После корявости пайтона мне на шарпе очень легко "дышалось". Статическая типизация и компиллируемость вкупе с более высокой производительностью дали существенный рост к скорости разработки проектов над которыми работал. шарп это не только геймдев но и много энтерпрайз проектов
11:55 всмысле "про твой вопрос" - ты ж сам сказал что вопросы написал ты, зачем вообще надо было это интро делать - всем плевать кто написал вопрос и чей это вопрос - просто сам бы себе задал вопросы с листочка=)
t.me/dotnetdad - Лучший телеграм канал на свете ❤
Спасибо, хотя немного поверхностно, без кода и примеров. И уж по первым вопросам я бы добавил к ответам:
- Абстрактные классы могут содержать полноценные методы, поля, свойства, конструктор, которые не надо переписывать и они будут нормально наследываться.
- Ссылочные и значимые типы по разному ведут себя при передаче в методы через параметры.
- Для List можно проверять свойство Capacity (размер массива), при добавлении 1-го элемента оно 4, потом удваиваиться при каждом превышении размера.
- GetEnumerator() нужен чтобы при каждом его вызове создавался новый объект(структура) IEnumerable (что важно для вложенных циклов по одной коллекции)
Буквально к каждому ответу есть вопросы, новичкам не советую к просмотру, чего только стоит объяснение того, что Task - абстракция над потоками
Под капотом async/await не Task.ContinueWith же) то что это сделали после Task.ContinueWith и вместо него - это да. Но не на основе.)
Про интерфейсы в отличие от абстрактных классов можно было бы добавить что до c#8 нельзя было логику по умолчанию добавлять в методы.
максимально нелюбимые вопросы на интервью про garbage collector, никогда не использовал эти знания на работе, не понимаю что мне дает знание о существовании large object heap и 3-ех поколений, сейчас редко где используют lock при наличии concurrentColections, mutex и monitor это муть редкая которая тоже негде не используется в реальном мире, семафор известен за счот semaphorSlim, есть еще дополнительные примитивы асинхронизации со странными именами про которых любят спрашивать, еще самые нелюбимые вопросы это про уровни изоляции транзакций в бд, которые также негдк не используются, вообще это все потверждает что то спрашивают на интервью редко коррелируют с тем что делают на работе
Согласен, говорил то же самое в многих шортсах) Навык прохождения собеседований действительно очень слабо связан с рабочими навыками
Несколько лет назад вышел кирпич от Конрада Кокосы про всю вот эту машинерию с GC и памятью. Он писал книгу уже ориентируясь на открытые исходники дотнета и там было много интересных штук: например оказывается у GC есть 5 фаз работы, а не 3 как писал ранее тот же Рихтер, что например самая важная фаза сборки это планирование, про которую раньше вообще не знали, что там под капотом есть механизм Card Table, про который то же никто до этого не слышал. Т.е. почти 15 лет(с момента выхода первой версии фреймворка до открытия исходников) почти все разработчики пилили свои приложухи с ошибочными знаниями о работе GC и никто не умер даже там где были супер оптимизации для хайлоада. Это все что нужно знать о важности данного знания)
@@okke00 очень интересная информация, отметил у себя название книги. Спасибо
А отметил для чего? Правильно, чтобы выпендриваться на собеседованиях, нигде это больше не надо 😁
@@dotnetdad Вообще по факту да) За 11 лет работы мне лично знание GC не пригодилось ни разу. И я знаю ровно одного человека, которому оно понадобилось в работе и то там был проект на WPF и решали они какую-то очень специфическую проблему с утечкой памяти. А ну да есть еще Сидристый, который на рассказе про GC собрал целую платную конфу)
в с# интерфейс не может иметь поля?)Просто в джаве могут иметь, просто по дефолту они public static final и должны быть инициализированы)Просто с с# мало знаком и вот интересуюсь)думал эти два языка очень схожи)
Привет. Можете снять видео про то,как стать .Net разработчиком?
Что учить, чтобы стать джуном?
@@dotnetdad да
сейчас большинство дотнет разрабов это люди которые попали на стажировку после универа, мало кто сам хочет стать дотнет разработчиком,тема с геймдевом совсем другая, юнити это не совсем дотнет
@@olegtar83 а что не так с дотнетом,раз многие не хотят?)
@@olegtar83 я сам очень хотел с дотнет работать, но все жестко подсели на пайтон и джаваскрипт.
Все ИИ проекты на пайтон, а шарп довольно слабо поддерживается в этом плане.
После корявости пайтона мне на шарпе очень легко "дышалось".
Статическая типизация и компиллируемость вкупе с более высокой производительностью дали существенный рост к скорости разработки проектов над которыми работал.
шарп это не только геймдев но и много энтерпрайз проектов
Если человек понимает чем IEnumerable отличается от IQueryable, то знать кишки GC эму может долго не понадобиться))) примерно до собеседования)))
Ага, да кишки GC вообще никому не нужны, кроме как на собесе)
Ютуб стал мне рекомендовать к просмотру про все что я гуглю че за хер..ня а Видос интересно было по смотреть желаю каналу стать больше.
Спасибо)
Матрица готовит тебя в 300к наносеки. Я тоже стал получать контент, скоро иду на собес
11:55 всмысле "про твой вопрос" - ты ж сам сказал что вопросы написал ты, зачем вообще надо было это интро делать - всем плевать кто написал вопрос и чей это вопрос - просто сам бы себе задал вопросы с листочка=)