Библиотека собеса по C# | вопросы с собеседований
Відкрити в Telegram
Вопросы с собеседований по C# и ответы на них. По рекламе: @tproger_sales_bot Учиться у нас: https://clc.to/QRJIVw Для обратной связи: @proglibrary_feeedback_bot Наши каналы: https://t.me/proglibrary/9197
Показати більше5 628
Підписники
-324 години
-57 днів
-2530 днів
Архів дописів
📅 24 сентября в 19:00 МСК — бесплатный вебинар с Максимом Шаланкиным.
Тема: «ИИ-агенты: новая фаза развития искусственного интеллекта».
🔹 Почему все говорят про ИИ-агентов и куда вливаются миллиарды инвестиций.
🔹 Чем они отличаются от ChatGPT и обычных ботов.
🔹 Как работает цикл агента: восприятие → планирование → действие → обучение.
🔹 Живое демо простого агента.
🔹 Потенциал для бизнеса: автоматизация процессов и ROI до 80%.
Не придёшь — будешь потом рассказывать, что «агенты — это как чат-боты», и ловить косые взгляды от коллег 😏
👉 Регистрируйтесь через форму на лендинге
Как можно запустить бесконечный цикл с помощью оператора for()?
Используя for(;;).
Библиотека собеса по С#
У вас в ASP.NET Core есть эндпоинт, который стримит данные клиенту. Под нагрузкой память растёт, клиенты часто обрывают соединение. Что сделать?
Не копите всё в памяти: сделайте ограниченную очередь (Channel.CreateBounded), отправляйте по мере готовности (await foreach с RequestAborted), пишите потоково в ответ (Response.BodyWriter), а не собирайте большие буферы.
Библиотека собеса по С#
Какие гарантии и ограничения даёт lock в C# при работе с многопоточностью?
Короткий ответ: обеспечивает взаимное исключение по одному и тому же объекту и полные барьеры памяти (acquire на входе, release на выходе; «happens-before» между секциями по тому же объекту), но не гарантирует справедливость/очередность, не предотвращает дедлоки и не синхронизирует потоки, использующие разные объекты.
Библиотека собеса по С#
Напишите особенности обобщений на 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го числа! Если вы планировали вписаться — сейчас ПОСЛЕДНИЙ шанс забронировать место
На курсе:
— разложим 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 собеседовании вас спросили про 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 с опытом работы более 6 месяцев в FAANG компаниях. Требование: разработать кросс-платформенное приложение-трекер зарплат с AI-распознаванием вакансий по резюме.Но если вы пока джун — я бы предложил: - Full-time контракт: 180к/мес после курса + опцион на карьеру в топ-компаниях - Либо фикс за проект: стань ML-инженером за 39к вместо 44к с промокодом LASTCALL 🔗 Старт 9 сентября
Что такое делегаты в C#?
Это эквивалент указателя функции C в C#, основное отличие которого состоит в том, что делегаты C# являются типобезопасными. Это ссылочный тип, который можно использовать для обработки других функций, таких как данные. Мы можем передавать функции в качестве параметров и обрабатывать любые связанные функции обратного вызова и эвенты.
Библиотека собеса по С#
🎮 КВЕСТОВАЯ ЛИНИЯ: «Путь Data Scientist'а»
⮕ Твой стартовый набор искателя данных:
Python — твое легендарное оружие (урон по багам +∞) Математика — твой базовый интеллект (влияет на понимание алгоритмов) Машинное обучение — твое дерево навыков (открывает новые способности)⚡️ АКТИВЕН ВРЕМЕННЫЙ БАФФ: «Щедрость наставника» Эффект: –30% к цене полного набора ДСника Было: 121.800 ₽ → Стало: 84.900 ₽ ☞ Что ждет тебя в этом квесте
— Получение артефактов: портфолио проектов и сертификаты— Прокачка от новичка до Senior Data Scientist— Босс-файты с реальными задачами из индустрии— Доступ к гильдии единомышленников📎 Забрать бафф Рассрочки: 3 мес | 6 мес | 12 мес
