C# Development | YeaHub
743 subscribers
303 photos
33 videos
1 file
535 links
Теория, подготовка к интервью и курсы для C# разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Download Telegram
#Собес #orm #testing #multithreading

🤔 Middle C# Backend-разработчик в Элисофт

Техническое собеседование. Весна 2026. Опыт в резюме — 2.4 года.

💬 Вопросы:

- Что такое сборщик мусора (Garbage Collection) в C#?

- Почему не стоит ставить индекс на каждую колонку таблицы?

- Что такое индекс в базе данных?

- Когда использование индексов неэффективно?

- Какие есть уровни изоляции транзакций и как они работают?

👉 Все вопросы из этого собеседования (44)

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #transaction #isolation
🤔 Чем REPEATABLE READ отличается от SERIALIZABLE?

💬 Кратко:

REPEATABLE READ гарантирует, что данные, прочитанные в транзакции, не изменятся при повторном чтении. Однако он не защищает от логических аномалий при сложных условиях. SERIALIZABLE обеспечивает максимально строгую изоляцию, как если бы транзакции выполнялись строго последовательно. Это достигается ценой возможных ошибок сериализации и повторных попыток транзакций.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #disposal #finalization
🤔 Зачем нужны и в чём разница между финализатором и интерфейсом IDisposable?

💬 Кратко:

IDisposable — это детерминированный механизм, позволяющий программисту явно и немедленно освободить ресурсы (например, закрыть файл) с помощью метода Dispose(). Финализатор — это недетерминированный механизм "страховки", который сборщик мусора вызовет когда-то в будущем для освобождения ресурсов, если программист забыл это сделать сам. Основное правило: для освобождения неуправляемых ресурсов всегда используйте IDisposable, а финализатор добавляйте только как резервный вариант.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #csharp #boxing #async

🤔 Middle C# Backend Developer в ПочтаТех

Техническое собеседование. Осень 2024. Вилка: 200к+. Опыт в резюме: 3 года. Были вопросы по С#, базам данных, рассматривались реальные кейсы.

💬 Вопросы:

- Что такое CTE (Common Table Expressions) в PostgreSQL?

- В чем разница между ключевыми словами ref и out?

- Что такое сборщик мусора (Garbage Collection) в C#?

- В чем разница между методами Dispose и Finalize в C#?

- Объясните различия между типами значений и ссылочными типами.

👉 Все вопросы из этого собеседования (26)

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #grpc #performance #streaming
🤔 В чём преимущества и недостатки gRPC по сравнению с REST?

💬 Кратко:

gRPC даёт высокую производительность и двоичную сериализацию Protobuf, поддерживает стриминг, строгую типизацию и автоматическую генерацию кода, но требует HTTP/2, сложнее дебажить и не так широко поддерживается браузерами. REST с JSON проще в освоении, более совместим с HTTP/1.1 и широко поддерживается в инструментах, но уступает по скорости и полноте контрактов.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
Техническое собеседование. Вилка до 230к. Опыт в резюме — 3.6 года.

Ссылка на вопросы и задачи собеседования:
https://app.yeahub.ru/wiki/collections/414
#repository #net #примеры
📚 dotnet-samples

Официальная коллекция примеров кода от Microsoft для различных технологий .NET, включая C#. Охватывает ASP.NET Core, Entity Framework, Blazor и другие фреймворки. Полезен для изучения современных подходов к разработке на C#.

Перейти к материалу

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #multiple_inheritance #interface #composition
🤔 Как перенести множественное наследование из C++ в Java?

💬 Кратко:
В Java отсутствует множественное наследование классов для избежания проблемы ромбовидного наследования и сложностей с конструкторами. Вместо этого используется множественная реализация интерфейсов, которые могут содержать методы по умолчанию (default methods). Для повторного использования кода из нескольких источников применяется композиция (включение объектов других классов) и делегирование.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #c# #.net #postgres

🤔 Middle C# Backend разработчик в компанию TVision

Техническое собеседование. Лето 2024. Вилка: до 200к. Опыт в резюме: 3 года 4 месяца. Проект: Образовательная платформа для школ. Также были вопросы на знание React, Redux.

💬 Вопросы:

- Какие есть типы соединений (JOIN) в PostgreSQL?

- Что такое сборщик мусора (Garbage Collection) в C#?

- Что такое многопоточное программирование в .NET?

- Что такое нормальные формы в базах данных? Зачем они нужны?

- В чём отличие кластеризованного и некластеризованного индекса? Когда их стоит применять?

👉 Все вопросы из этого собеседования (21)

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #authentication_tokens #localStorage #sessionStorage
🤔 Где безопаснее хранить токены и почему?

💬 Кратко:
Токены безопаснее хранить в HTTP-only куках, а не в localStorage или sessionStorage. localStorage и sessionStorage доступны через JavaScript, что делает их уязвимыми для XSS-атак. HTTP-only куки недоступны для скриптов, что снижает риск утечки токена. Однако куки требуют защиты от CSRF с помощью дополнительных мер, таких как SameSite атрибуты и CSRF-токены.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
Технический скрининг. Вилка не обсуждалась, кандидат ищет от 300к. Опыт в резюме — 3.6+ года.

Ссылка на вопросы и задачи собеседования:
https://app.yeahub.ru/wiki/collections/445
#article #highload #dotnet
📚 Система резервации на 600 заказов в секунду без буферизации и другой дичи

Автор подробно показывает, как создать высоконагруженный сервис резервирования остатков товаров в базе данных на .NET/C# и PostgreSQL, который способен обрабатывать сотни заказов в секунду без буферизации и лишних ухищрений. Он описывает архитектуру приложения, модель данных, настройки Entity Framework и схемы транзакционной обработки, объясняет, как гарантировать целостность данных и инвариант (чтобы резерв не превышал остаток), а также делится практическими примерами кода и оптимизаций для достижения высокой пропускной способности в условиях конкурентных обновлений

Перейти к материалу

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #csharp #unity #optimization
🤔 Какие инструменты можно использовать для анализа производительности?

💬 Кратко:

Для анализа производительности используются: Unity Profiler, Unreal Profiler, RenderDoc для графики, Memory Profiler для утечек памяти, VTune для CPU анализа, NVIDIA Nsight для GPU. Эти инструменты помогают найти узкие места в рендеринге, логике и использовании памяти.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #type #dictionary #list

🤔 Middle C# Backend разработчик в компанию Платформа

Техническое собеседование. Осень 2024. Просил 350 к. Опыт в резюме: 3+ года. На собеседование было много вопросов по .NET, паттернам проектирования, в конце затронули математику.

💬 Вопросы:

- С какими ORM вы сталкивались (Entity Framework, Dapper и др.)?

- Приходилось ли писать T-SQL-запросы вручную?

- Знаете ли вы базовые математические операции над векторами и матрицами (например, скалярное произведение) и их смысл?

- На какие категории в .NET делятся типы данных и в чём ключевые отличия между value type и reference type?

- Как устроена строка в C# — ссылочный тип или значимый, и зачем нужен string pool (интернирование)?

👉 Все вопросы из этого собеседования (23)

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #explain
🤔 Какие инструменты используются для анализа производительности SQL-запросов

💬 Кратко:

Для анализа SQL-запросов используют встроенные инструменты базы данных. Основной инструмент — EXPLAIN и EXPLAIN ANALYZE. Они показывают план выполнения запроса. Также используются логи и мониторинг. Эти инструменты помогают понять, где теряется производительность.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#trainer #tutorials #exercise
📚 W3schools

На сайте представлены интерактивные уроки и справочные материалы по HTML, CSS, JavaScript, SQL, Python и другим технологиям; есть онлайн‑редактор для практики, примеры кода с возможностью редактирования и тестирования, а также разделы с упражнениями и тестами для закрепления знаний.

Перейти к материалу

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #microservices_challenges #distributed_systems
🤔 Какие сложности возникли при переходе на микросервисы (определение границ сервисов, дублирование функционала)?

💬 Кратко:

Основные сложности:

- Определение границ сервисов
- Дублирование кода/данных
- Сложность отладки
- Согласованность данных

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #int #char #struct
🤔 Объясните различия между типами значений и ссылочными типами.

💬 Кратко:

Типы значений хранят данные непосредственно в своей памяти (например, int), а ссылочные типы содержат ссылку на данные, расположенные в другой области памяти (например, объекты классов). Типы значений хранятся в стеке, а ссылочные — в куче.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #http2 #multiplexing
🤔 Для чего применяется HTTP/2 и чем он отличается от HTTP/1.1 с точки зрения модели запросов и производительности?

💬 Кратко:

HTTP/2 решает главную проблему HTTP/1.1 — неэффективность множества параллельных запросов. Он использует одно соединение и мультиплексирует несколько потоков данных внутри него, избегая блокировок и экономя задержку. Заголовки сжимаются, статические ресурсы передаются быстрее, а сервер может отправлять данные клиенту заранее (server push). В итоге HTTP/2 уменьшает время загрузки страниц и снижает сетевые накладные расходы.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#video #api
📚 Разработка Web API на ASP.NET Core 5 и .NET 5

Используя чистую архитектуру (clean architecture), ASP NET Core 5, EF Core 5, Swagger, IdentityServer4, C#, SQLite, Fluent Validation, XUnit, NSwag Studio, Serilog, Automapper, MediatR, CQRS мы будем разрабатывать web api для работы с заметками.

Мы пройдемся по всем основным этапам разработки web api и в итоге получим масштабируемый, легко поддерживаемый проект Web API, сделанный с использованием good practices.

Перейти к материалу

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #boxing #memory #performance
🤔 Когда происходит боксинг?

💬 Кратко:

Боксинг происходит, когда тип значения (например, int или struct) преобразуется в ссылочный тип object. Это нужно, когда тип значения используется там, где ожидается object - например, при добавлении в коллекцию ArrayList. При этом создается новый объект в куче, что требует дополнительной памяти и времени. Распаковка (unboxing) - обратный процесс, когда object преобразуется обратно в тип значения.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа