en
Feedback
Библиотека собеса по C# | вопросы с собеседований

Библиотека собеса по C# | вопросы с собеседований

Open in Telegram

Вопросы с собеседований по C# и ответы на них. По рекламе: @proglib_adv Учиться у нас: https://clc.to/QRJIVw Для обратной связи: @proglibrary_feeedback_bot Наши каналы: https://t.me/proglibrary/9197

Show more
5 641
Subscribers
-124 hours
+27 days
+930 days
Posts Archive
Напишите особенности обобщений на C#? Generics — это метод, который улучшает ваши программы во многих отношениях, например: Он помогает вам в повторном использовании кода, производительности и безопасности типов. Вы можете создавать собственные универсальные классы, методы, интерфейсы и делегаты. Вы можете создавать универсальные классы коллекций. Библиотека классов .NET Framework содержит много новых универсальных классов коллекций в пространстве имен System.Collections.Generic. Вы также можете получить информацию о типах, используемых в универсальных типах данных во время выполнения. Библиотека собеса по С#

Долгоживущий .NET-сервис постепенно “распухает” по памяти без явных LOH-пиков. В дампе видно множество делегатов/лямбд, Timer и CancellationTokenRegistration, висящих в Gen2. Как диагностировать и устранить утечки из-за событий/таймеров/регистраций? Проанализировать пути до корней (dotMemory/PerfView/dotnet-dump gcroot) — проверить коллекции подписчиков и списки делегатов у источников событий. Убедиться, что: ✍🏻 все подписки снимаются в Dispose/IAsyncDisposable; ✍🏻 CancellationToken.Register хранит IDisposable и корректно Dispose(); ✍🏻 Timer/PeriodicTimer/System.Threading.Channels закрываются/завершаются; ✍🏻 не удерживаются замыканиями большие объекты/this. При необходимости — слабые события/WeakReference, паттерн “own the lifetime”, и тест “утечек” в CI с сравнением heap-снимков. Библиотека собеса по С#

В чем разница между Task и Thread в C#? Ниже приведены различия между Task и Thread в C#: Task — это объект, используемый в Task Parallel Library (TPL) для представления асинхронной операции, в то время как Thread — это отдельный путь выполнения в программе. Задачи — это более высокий уровень абстракции, чем потоки, и используются для управления параллельным выполнением кода. Задачи проще в использовании и управлении, чем потоки, и их также можно использовать для обеспечения более эффективного использования ресурсов. Потоки, с другой стороны, обеспечивают более низкий уровень абстракции и используются для выполнения кода непосредственно в процессоре. Библиотека собеса по С#

В ASP.NET Core сервисе растёт хвост задержек и паузы GC. Профилировщик показывает миллионы аллокаций byte[]/MemoryStream в сети/серилизации на горячем пути. Как перепроектировать ввод/вывод, чтобы сделать его low-alloc/почти zero-copy, и какие подводные камни учесть? Перейти на System.IO.Pipelines (PipeReader/PipeWriter) и парсинг через ReadOnlySequence<byte>/SequenceReader<byte>; писать в IBufferWriter<byte> вместо конкатенаций и ToArray(). Временные буферы брать из ArrayPool<byte>/MemoryPool<byte> (IMemoryOwner<byte>) и возвращать в finally. Не удерживать Span<T> через await (переносить как Memory<T>), уважать backpressure (AdvanceTo, FlushAsync), ограничивать параллелизм. Минимизировать boxing/LINQ на горячем пути, использовать source-generated сериализацию. Проверить ETW/EventCounters и бенчмарки, валидировать, что аллокации и tail-latency упали. Библиотека собеса по С#

🔥 Последняя неделя перед стартом курса по AI-агентам Старт курса уже 15го числа! Если вы планировали вписаться — сейчас ПОСЛ
🔥 Последняя неделя перед стартом курса по AI-агентам Старт курса уже 15го числа! Если вы планировали вписаться — сейчас ПОСЛЕДНИЙ шанс забронировать место На курсе:разложим LLM по косточкам: токенизация, SFT, PEFT, инференс — соберём RAG и научимся оценивать его адекватно — построим настоящую мультиагентную систему — архитектуру, которая умеет расти — разберём CoPilot, сломаем через prompt injection (спасибо Максу) — и наконец, посмотрим, как это работает в MCP и реальных кейсах 📍 Это 5 живых вебинаров + раздатка + домашки + чат с преподавателями И главное — возможность реально разобраться, как проектировать системы на LLM, а не просто «поиграться с API» Промокод на 5.000₽: LASTCALL 👉 Курс здесь

В ASP.NET Core под нагрузкой растёт хвост задержек: CPU низкий, но наблюдаются пики длины очереди ThreadPool и таймауты HttpClient. Где искать корень проблемы и как её устранить? Это типичный признак thread pool starvation из-за sync-over-async: блокировки .Result/.Wait(), синхронные I/O или тяжёлая синхронная работа в request-потоках. Диагностика — EventCounters/PerfView (ThreadPool QueueLength, Contentions), анализ async-стека. Решение — сделать путь запроса полностью асинхронным (DB/HTTP/FS), убрать блокировки, вынести CPU-bound в Task.Run/фоновые очереди, корректно использовать HttpClientFactory, и как временную меру — поднять ThreadPool.SetMinThreads. Библиотека собеса по С#

Что такое IDisposable и как работает using в C#? IDisposable определяет метод Dispose(), который освобождает неуправляемые ресурсы (файлы, соединения, хэндлы). using гарантирует вызов Dispose() даже при исключении, фактически это синтаксический сахар для try/finally. Библиотека собеса по С#

⏹️Новая специализация, о которой почти никто не знает: проще вход, ниже конкуренция, выше чеки В архитектурной сфере катастро
⏹️Новая специализация, о которой почти никто не знает: проще вход, ниже конкуренция, выше чеки В архитектурной сфере катастрофически не хватает разработчиков. Проектировщики и инженеры нуждаются в плагинах для софта, а программистов, которые умеют их писать, — единицы. Конкуренция минимальна, спрос растет, а чеки за проекты выше, чем в классическом аутсорсе. ▶️Освоив Revit API, вы сможете быстро войти в нишу, где каждый навык напрямую конвертируется в деньги. На курсе «Программирование в Autodesk Revit» от EdTech-платформы STEMPS вы научитесь: ➡️Писать плагины и инструменты на C# для инженеров ➡️Автоматизировать рутинные процессы и проверки моделей ➡️Создавать востребованный софт для архитектурных и проектных бюро 👤Автор курса — Дмитрий Смирнов, CTO DynamicLabs, STEMPS, Atomtech, Plancy. Разрабатывал системы автоматизации и SaaS-системы для компаний на 700+ сотрудников. 🗓 Старт курса — 23 сентября. 📍Студенты получат документ о повышении квалификации. 🔥Успейте записаться на курс со скидкой 10%: https://stemps.ru/

В чём разница между IEnumerable, ICollection и IList в C# и когда стоит использовать каждый из них? IEnumerable — только перебор коллекции (итерация, LINQ). ICollection — добавляет информацию о размере и методы добавления/удаления элементов. IList — упорядоченная коллекция с доступом по индексу. Использовать стоит в зависимости от требований: для readonly-итераций — IEnumerable, для работы с изменяемыми коллекциями — ICollection, а если нужен доступ по индексу — IList. Библиотека собеса по С#

Готовились к LeetCode, но на интервью дали задачу «не по учебнику»? А может, думали, что знаете async/await, но на senior соб
Готовились к LeetCode, но на интервью дали задачу «не по учебнику»? А может, думали, что знаете async/await, но на senior собеседовании вас спросили про ConfigureAwait и CLR? Технические интервью в C# — это всегда стресс и неожиданные повороты. Где-то проверяют умение решать нестандартные задачи, где-то — глубину понимания работы платформы. Важно быть готовым к обоим сценариям. 📅 В сентябре пройдут сразу два бесплатных вебинара в рамках курса «C# Developer. Professional», которые помогут вам: → понять, что делать, если привычные паттерны не работают и идей нет; → прокачать навыки live-coding в реальном времени; → разобраться в тонкостях async/await, CLR и управления памятью; → научиться уверенно отвечать на вопросы уровня senior и проектировать системный дизайн. Вы получите практику и стратегию подготовки к интервью — от первых шагов до экспертных уровней. После вебинаров вы сможете превратить страх перед собеседованиями в уверенность и чётко показать свой уровень на интервью. 👉 Бесплатная регистрация по ссылке — успейте занять место: https://clc.to/_NHpmQ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Какой синтаксис нужно использовать в C# для отлова любого возможного исключения? Блок catch, отлавливающий исключения типа System.Exception. Также можно просто использовать catch{}, не указывая тип исключения. Библиотека собеса по С#

В .NET Core приложении вы замечаете рост задержек при обработке запросов. Профилирование показывает большое количество объектов, попадающих в Large Object Heap. Как будете искать и устранять проблему? Проверю профилировщиком (dotMemory, PerfView), какие именно объекты создаются в Large Object Heap (например, строки или массивы > 85 KB). Оптимизирую работу с большими структурами: разобью их на меньшие, буду использовать пулы (ArrayPool<T>), Span<T>/Memory<T>, кеширование. При необходимости изменю архитектуру, чтобы минимизировать аллокации крупных объектов. Библиотека собеса по С#

⚡️ Будь как этот гений с картинки — предлагай свои условия работодателю, а не наоборот! Кто нужен? Senior ML-Engineer с опыто
⚡️ Будь как этот гений с картинки — предлагай свои условия работодателю, а не наоборот! Кто нужен?
Senior ML-Engineer с опытом работы более 6 месяцев в FAANG компаниях. Требование: разработать кросс-платформенное приложение-трекер зарплат с AI-распознаванием вакансий по резюме.
Но если вы пока джун — я бы предложил: - Full-time контракт: 180к/мес после курса + опцион на карьеру в топ-компаниях - Либо фикс за проект: стань ML-инженером за 39к вместо 44к с промокодом LASTCALL 🔗 Старт 9 сентября

Что такое делегаты в C#? Это эквивалент указателя функции C в C#, основное отличие которого состоит в том, что делегаты C# являются типобезопасными. Это ссылочный тип, который можно использовать для обработки других функций, таких как данные. Мы можем передавать функции в качестве параметров и обрабатывать любые связанные функции обратного вызова и эвенты. Библиотека собеса по С#

🎮 КВЕСТОВАЯ ЛИНИЯ: «Путь Data Scientist'а» ⮕ Твой стартовый набор искателя данных: Python — твое легендарное оружие (урон по
🎮 КВЕСТОВАЯ ЛИНИЯ: «Путь Data Scientist'а» ⮕ Твой стартовый набор искателя данных:
Python — твое легендарное оружие (урон по багам +∞) Математика — твой базовый интеллект (влияет на понимание алгоритмов) Машинное обучение — твое дерево навыков (открывает новые способности)
⚡️ АКТИВЕН ВРЕМЕННЫЙ БАФФ: «Щедрость наставника» Эффект: –30% к цене полного набора ДСника Было: 121.800 ₽ → Стало: 84.900 ₽ ☞ Что ждет тебя в этом квесте
— Получение артефактов: портфолио проектов и сертификаты— Прокачка от новичка до Senior Data Scientist— Босс-файты с реальными задачами из индустрии— Доступ к гильдии единомышленников
📎 Забрать бафф Рассрочки: 3 мес | 6 мес | 12 мес

В .NET Core приложении под нагрузкой вы замечаете рост задержек, а профилирование показывает частые блокировки при использовании lock. Как будете искать и устранять проблему? Проверю профилировщиком (PerfView, dotTrace) участки кода с высокой конкуренцией за lock. Для оптимизации — уменьшу область критических секций, при возможности заменю lock на более лёгкие механизмы (ReaderWriterLockSlim, SemaphoreSlim) или lock-free структуры (ConcurrentQueue, ConcurrentDictionary). В особо нагруженных местах — перепроектирую алгоритм, чтобы минимизировать синхронизацию. Библиотека собеса по С#

😎 Сколько баллов набрали вы? Голосуйте, какой у вас уровень разработчика: 😁 — 5-12 баллов (стажер) 👍 — 13-25 баллов (джуни
😎 Сколько баллов набрали вы? Голосуйте, какой у вас уровень разработчика: 😁 — 5-12 баллов (стажер) 👍 — 13-25 баллов (джуниор) ⚡️ — 26-40 баллов (джуниор+) 👏 — 41-60 баллов (миддл) 🔥 — 61-80 баллов (миддл+) 🎉 — 81-100 баллов (сеньор) 🤩 — 100+ баллов (тимлид) Но вот в чем прикол — опытный разработчик набирает баллы не случайными косяками, а осознанными решениями. 👉 Научим, как быстро прокачаться от стажера до сеньора

В высоконагруженном .NET сервисе вы замечаете рост задержек при работе с БД. Профилирование показывает, что большинство запросов выполняются асинхронно, но при этом часто возникают блокировки потоков. Как будете искать и устранять проблему? Проверю, не используются ли .Result или .Wait() в async-коде, которые могут вызывать deadlock. Посмотрю конфигурацию пула подключений (Connection Pool) и добавлю таймауты. Для оптимизации — обеспечу полный async/await pipeline, уберу синхронные вызовы, при необходимости введу ограничение параллелизма через SemaphoreSlim или очереди задач. Библиотека собеса по С#

Переворачиваем календарь — а там скидки, которые уже закончились. Но мы их вернули на последний день 🤔 До 00:00 третьего сен
Переворачиваем календарь — а там скидки, которые уже закончились. Но мы их вернули на последний день 🤔 До 00:00 третьего сентября (цены как до 1 сентября): ▪️ Математика для Data Science — 35.199 ₽ вместо 44.900 ₽ ▪️ Алгоритмы и структуры данных — 31.669 ₽ вместо 39.900 ₽ ▪️ Основы IT — 14.994 ₽ вместо 19.900 ₽ ▪️ Архитектуры и шаблоны — 24.890 ₽ вместо 32.900 ₽ ▪️ Python — 24.990 ₽ вместо 32.900 ₽ ▪️ ML для Data Science — 34.000 ₽ вместо 44. 000 ₽ ▪️ AI-агенты — 49.000 ₽ вместо 59.000 ₽ 👉 Хватаем скидки из прошлого P.S. Машину времени одолжили у дяди Миши