Библиотека задач по C# | тесты, код, задания
5.26K subscribers
408 photos
2 videos
343 links
Задачи и тесты по C# для тренировки и обучения.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/05448a24

Для обратной связи: @proglibrary_feeedback_bot

Наши каналы: https://t.iss.one/proglibrary/9197
Download Telegram
Переворачиваем календарь — а там скидки, которые уже закончились.

Но мы их вернули на последний день 🤔

До 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. Машину времени одолжили у дяди Миши
1
В .NET Core сервисе под нагрузкой заметили, что методы, возвращающие Task, часто создают лишние аллокации и нагружают GC. Какой подход наиболее правильный для оптимизации?

👾 — Всегда заменять Task на Thread, чтобы избежать аллокаций
👍 — Использовать ValueTask там, где результат часто доступен синхронно
🥰 — Оборачивать каждый метод в Task.Run, чтобы распределить нагрузку на пул потоков
⚡️ — Принудительно вызывать GC.Collect() после завершения асинхронных операций

Библиотека задач по C#
👍13
😎 Сколько баллов набрали вы?

Голосуйте, какой у вас уровень разработчика:

😁 — 5-12 баллов (стажер)
👍 — 13-25 баллов (джуниор)
⚡️ — 26-40 баллов (джуниор+)
👏 — 41-60 баллов (миддл)
🔥 — 61-80 баллов (миддл+)
🎉 — 81-100 баллов (сеньор)
🤩 — 100+ баллов (тимлид)

Но вот в чем прикол — опытный разработчик набирает баллы не случайными косяками, а осознанными решениями.

👉 Научим, как быстро прокачаться от стажера до сеньора
🤩4👏1
В .NET Core приложении под нагрузкой замечены частые аллокации при работе с большими массивами, что вызывает давление на GC. Какой подход наиболее правильный?

👾 — Хранить массивы в static переменной, чтобы GC их не удалял
👍 — Использовать ArrayPool<T>.Shared для аренды и возврата массивов
🥰 — Создавать новые массивы на каждый запрос, чтобы избежать race conditions
⚡️ — Принудительно вызывать GC.Collect() после каждой партии запросов

Библиотека задач по C#
👍11
🎮 КВЕСТОВАЯ ЛИНИЯ: «Путь Data Scientist'а»

⮕ Твой стартовый набор искателя данных:
Python — твое легендарное оружие (урон по багам +∞)
Математика — твой базовый интеллект (влияет на понимание алгоритмов)
Машинное обучение — твое дерево навыков (открывает новые способности)


⚡️ АКТИВЕН ВРЕМЕННЫЙ БАФФ: «Щедрость наставника»

Эффект: –30% к цене полного набора ДСника
Было: 121.800 ₽ → Стало: 84.900 ₽

☞ Что ждет тебя в этом квесте

— Получение артефактов: портфолио проектов и сертификаты— Прокачка от новичка до Senior Data Scientist— Босс-файты с реальными задачами из индустрии— Доступ к гильдии единомышленников


📎 Забрать бафф
Рассрочки: 3 мес | 6 мес | 12 мес
Чем отличаются друг от друга классы String и StringBuilder?

Объект класса String представляет собой неизменяемую строку.
Когда выполняется какой-нибудь метод класса String, система создает новый объект в памяти с выделением ему достаточного места.

Объект класса StringBuilder представляет собой динамическую строку.
При создании строки StringBuilder выделяет памяти больше, чем необходимо этой строке, а при добавлении к ней каких-либо элементов строка не пересоздается заново.
В том случае если выделенной памяти не будет хватать для добавления новых элементов, то емкость объекта будет увеличена.


Библиотека задач по C#
👍1
⚡️ Будь как этот гений с картинки — предлагай свои условия работодателю, а не наоборот!

Кто нужен?

Senior ML-Engineer с опытом работы более 6 месяцев в FAANG компаниях. Требование: разработать кросс-платформенное приложение-трекер зарплат с AI-распознаванием вакансий по резюме.


Но если вы пока джун — я бы предложил:

- Full-time контракт: 180к/мес после курса + опцион на карьеру в топ-компаниях

- Либо фикс за проект: стань ML-инженером за 39к вместо 44к с промокодом LASTCALL

🔗 Старт 9 сентября
В .NET Core приложении вы заметили частые паузы из-за работы GC. Профилирование показывает большое количество короткоживущих объектов, создаваемых внутри горячих методов. Какой подход наиболее правильный для оптимизации?

👾 — Увеличить размер heap в настройках CLR
👍 — Снизить количество аллокаций, используя Span<T>, пулы объектов (ArrayPool<T>, ObjectPool<T>) и минимизацию временных коллекций
🥰 — Принудительно вызывать GC.Collect() после каждого запроса
⚡️ — Перевести все классы в struct, чтобы они хранились на стеке

Библиотека задач по C#
👍9
Какое из следующих утверждений верно относительно конструкторов в C#?

👾 — Они могут иметь возвращаемый тип
👍 — Они вызываются при создании объекта
🥰 — Они могут быть приватными
⚡️ — Второй вариант и третий

Библиотека задач по C#
28👍2
В C# есть ключевое слово async/await. Какое утверждение наиболее корректно описывает их использование?

👾 — async делает метод многопоточным автоматически
👍 — async позволяет использовать await, который освобождает поток до завершения задачи
🥰 — await блокирует поток, пока задача не завершится
⚡️ — async гарантирует, что метод всегда выполнится быстрее

Библиотека задач по C#
👍441😢1
В C# чем отличается struct от class?

👾 — Разницы нет, это взаимозаменяемые типы
👍 — struct — value type (хранится в стеке), class — reference type (в куче)
🥰 — struct можно наследовать от другого struct, а class — нет
⚡️ — class быстрее, чем struct, всегда

Библиотека задач по C#
👍57🔥1
В высоконагруженном ASP.NET Core сервисе, вызывающем внешние HTTP-API, при пиках нагрузки растут таймауты, наблюдается socket exhaustion (много соединений в TIME_WAIT). Какой подход наиболее корректный?

👾 — Создавать новый HttpClient на каждый запрос для «чистых» соединений
👍 — Использовать IHttpClientFactory с переиспользованием SocketsHttpHandler, настроив пул соединений, таймауты и политику DNS
🥰 — Оборачивать каждый запрос в Task.Run, чтобы разгрузить поток
⚡️ — Перейти на HttpWebRequest, так как он «ближе к сокетам»

Библиотека задач по C#
👍12🌚1
🔥 Последняя неделя перед стартом курса по AI-агентам

Старт курса уже 15го числа! Если вы планировали вписаться — сейчас ПОСЛЕДНИЙ шанс забронировать место

На курсе:
разложим LLM по косточкам: токенизация, SFT, PEFT, инференс
— соберём RAG и научимся оценивать его адекватно
— построим настоящую мультиагентную систему — архитектуру, которая умеет расти
— разберём CoPilot, сломаем через prompt injection (спасибо Максу)
— и наконец, посмотрим, как это работает в MCP и реальных кейсах

📍 Это 5 живых вебинаров + раздатка + домашки + чат с преподавателями

И главное — возможность реально разобраться, как проектировать системы на LLM, а не просто «поиграться с API»

Промокод на 5.000₽: LASTCALL

👉 Курс здесь
Библиотечный метод возвращает ValueTask<T> (часто завершается синхронно). В вызывающем коде результат нужно ждать несколько раз и/или комбинировать с другими задачами через Task.WhenAll. Что делать правильно?

👾 — ValueTask<T> можно await-ить сколько угодно раз — как Task<T>
👍 — Сконвертировать в Task<T> через .AsTask() и уже его ждать/комбинировать
🥰 — Обернуть в Task.Run(...), чтобы получить полноценную Task
⚡️ — Никогда не возвращать ValueTask<T> из публичных API — всегда только Task<T>

Библиотека задач по C#
👍7
Объясните, что такое GameObject и Component в Unity

В основе Unity лежат GameObjects, которые являются строительными блоками любого игрового сценария. GameObject может представлять различные сущности, например:
а) Персонажи
б) Объекты
в) Камеры
г) Свет и многое другое

Компоненты, с другой стороны, являются элементами, прикрепленными к GameObjects для определения их конкретного поведения или свойств. Unity предлагает широкий спектр встроенных компонентов, позволяющих разработчикам настраивать и расширять функциональность GameObjects. Эти компоненты включают в себя следующее:

a) Rigidbodies
b) Colliders
c) Источники аудио
d) Скрипты
e) Particle Systems и многое другое


🐸Библиотека задач по C#
Please open Telegram to view this post
VIEW IN TELEGRAM
ASP.NET Core сервис использует IHttpClientFactory и держит долгоживущие соединения к внешнему API. После смены DNS у апстрима трафик продолжает идти на старые IP. Как правильно исправить?

👾 — Создавать новый HttpClient на каждый запрос
👍 — Настроить у SocketsHttpHandler параметр PooledConnectionLifetime через IHttpClientFactory, чтобы периодически пересоздавать соединения и подхватывать новые DNS
🥰 — Уменьшить HttpClient.Timeout
⚡️ — Включить Expect: 100-continue

🐸Библиотека задач по C#
Please open Telegram to view this post
VIEW IN TELEGRAM
👍181
Какое ключевое слово C# используется для изменения данных и поведения базового класса путем замены члена базового класса новым производным членом?

👾 — overrides
👍 — protected
🥰 — base
⚡️ — new

🐸Библиотека задач по C#
Please open Telegram to view this post
VIEW IN TELEGRAM
👾312🥰1
Какое утверждение о ValueTask верно?

👾 — ValueTask можно безопасно ожидать сколь угодно раз, как и Task
👍 — ValueTask целесообразен, когда результат часто доступен синхронно; его корректно ожидать только один раз (если не преобразован в Task)
🥰 — ValueTask всегда аллоцирует меньше памяти, чем Task, вне зависимости от сценария
⚡️ — ValueTask ковариантен и неявно приводится к Task

🐸Библиотека задач по C#
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16