Библиотека собеса по C# | вопросы с собеседований
5.41K subscribers
160 photos
93 links
Вопросы с собеседований по C# и ответы на них.

Список наших каналов: https://t.me/proglibrary/9197
Учиться у нас: https://proglib.io/w/4c2f1c3b

Обратная связь: @proglibrary_feedback_bot

По рекламе: @proglib_adv
Прайс: @proglib_advertising
Download Telegram
Что такое конструктор?

Конструктор — это особый тип функциональных членов класса, который имеет одно и то же имя, что и класс. Он автоматически вызывается всякий раз, когда создается новый экземпляр объекта класса, и этот процесс также вызывает элементы данных класса. Это может включать передачу параметров в конструктор класса, если он параметризован.
Как использовать типы, допускающие значение NULL, в C#?

Чтобы присвоить нулевое значение типам значений в C#, мы должны использовать тип, допускающий значение Null. Это можно сделать либо с помощью ключевого слова Nullable, либо с помощью сокращенного оператора «?», как показано ниже.

Nullable i = null;
int? i = null;

Невозможно использовать тип Nullable с переменными vartype, поскольку они не определены явно, а скорее неявно определяются значением, присвоенным переменной.
❗️Вакансии «Библиотеки программиста» — ждем вас в команде!

Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉авторов в наше медиа proglib.io
👉контент-менеджеров для ведения телеграм-каналов

Подробности тут.

Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴

Ждем ваших откликов 👾
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое закрытый класс?

Мы используем ключевое слово «sealed» для создания закрытого класса. Классы создаются как закрытый класс, когда нет необходимости наследовать это дальше или когда есть необходимость ограничить наследование этого класса.
🏅🏃 Кто такие Junior, Middle, Senior и чем они различаются между собой

От стажеров до сеньоров — разбираемся, кто есть кто в мире программирования и чем они отличаются друг от друга.

⛓️‍💥 Читать статью
⛓️‍💥 Зеркало
Как вы можете управлять памятью в C# в сценарии, где у вас есть множество объектов с коротким временем жизни, создаваемых в высоконагруженной многопоточной среде, и какие подходы вы использовали бы для минимизации сборки мусора (GC)?

В такой ситуации я бы использовал пул объектов для управления памятью. Пулинг объектов позволяет избежать частого создания и уничтожения объектов, что снижает нагрузку на сборщик мусора. Также можно использовать структуры (ValueType) вместо классов, где это возможно, чтобы уменьшить нагрузку на кучу. Помимо этого, важно тщательно управлять многопоточностью, чтобы избежать состояния гонки и утечек памяти.
Можете ли вы объяснить различие между управляемой кучей в .NET и стеком, и как это влияет на управление памятью и производительность приложения?

В .NET управляемая куча — это область памяти, используемая для размещения объектов, управляемых средой CLR (Common Language Runtime), которые уничтожаются автоматически с помощью сборщика мусора. Это помогает предотвратить утечки памяти и обеспечивает автоматизацию управления памятью. Стек используется для хранения примитивов и ссылок на объекты в куче, которые создаются в рамках потока исполнения и имеют время жизни, ограниченное текущим контекстом вызова (например, выполнением метода).

Управление памятью в стеке более быстрое, поскольку объекты выделяются и освобождаются в порядке LIFO (Last In, First Out), что требует минимального управления. В куче же объекты могут быть размещены и освобождены в произвольном порядке, что требует более сложного управления и периодического запуска сборщика мусора, что может влиять на производительность. Однако куча позволяет работать с динамически создаваемыми объектами, что необходимо для большинства приложений.
Объясните концепцию Raycasting в Unity и ее применения.

Raycasting предполагает проецирование линии (луча) из точки в определенном направлении для обнаружения столкновений с объектами на игровой сцене. Общие приложения включают в себя следующее:
⚡️ Механика стрельбы;
⚡️Проверка прямой видимости;
⚡️Взаимодействие объектов;
⚡️Обнаружение поверхностей для движения персонажа.
🎓 Как я перешел из математиков в аналитики данных

Сменить профессию — нелегко, самое сложное — заставить себя получать новые знания. Но у вас есть прекрасная возможность взять под контроль ваш путь к карьере в области Data Science. Узнайте, как получить работу аналитиком данных.

🔗
Ссылка
Обсудите важность Asset Bundles в разработке игр на Unity.

Пакеты активов — это пакеты, содержащие ресурсы (текстуры, модели, аудио и т. д.), которые можно загружать динамически во время выполнения. Они позволяют разработчикам уменьшить размер сборки и реализовать потоковую передачу ресурсов, необходимую для мобильных и онлайн-игр, обеспечивая лучший пользовательский опыт и сокращая время загрузки.
🏝️ Решаем очень сложную SQL-задачу об островах и проливах

Задача об островах и проливах — это классическая задача в SQL, часто используемая для оценки навыков программиста в работе с базами данных. Суть задачи заключается в том, чтобы в таблице, содержащей данные о событиях и их временных интервалах, объединить отдельные записи в непрерывные интервалы, представляющие собой «острова» (периоды, когда происходили события) и «проливы» (промежутки между ними).

👉В новой статье разбираем решение задачи👈
В чем разница между классами System.String и System.Text.StringBuilder?

System.String является абсолютным. Когда значение строковой переменной изменяется, новому значению присваивается новая память. Предыдущее выделение памяти освобождается. System.StringBuilder, с другой стороны, спроектирован таким образом, что он может иметь изменяемую строку, в которой можно выполнять множество операций без необходимости выделения отдельной области памяти для измененной строки.
🤤 Жадные алгоритмы: все, что нужно знать для собеседования

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

В этой статье мы рассмотрим основные принципы работы жадных алгоритмов, их преимущества и недостатки, а также разберем несколько практических примеров их применения.

🔗 Читать статью
🔗 Зеркало
Что такое синглтон в C#?

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

Логично, что при использовании этого шаблона проектирования мы не параметризуем конструктор, поскольку не будем создавать несколько экземпляров класса с разными полями. Мы также обеспечиваем приватность конструктора.
📜💎 Как сделать продающее резюме: 7 простых способов

Хотите узнать секреты, которые помогут вашему резюме выделиться среди сотен других? 7 простых, но действенных способов превратить резюме в мощный инструмент для поиска работы — уже в этой статье.

Читать статью
Самые полезные каналы для программистов в одной подборке!

Сохраняйте себе, чтобы не потерять 💾

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
Азбука айтишника — здесь мы познаем азы из мира программирования

🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion

#️⃣C#

Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel

☁️DevOps

Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования

🐘PHP

Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты

🐍Python

Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты

Java

Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков

👾Data Science

Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту

🦫Go

Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go

🧠C++

Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++

💻Другие каналы

Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности

📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈

Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT

Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *

* Организация Meta запрещена на территории РФ
В чем разница между public, static и void?

Публично объявленные переменные или методы доступны в любом месте приложения. Статически объявленные переменные или методы доступны глобально без создания экземпляра класса. Статический член по умолчанию не доступен глобально, это зависит от используемого типа измененного доступа. Компилятор сохраняет адрес метода в качестве точки входа и использует эту информацию, чтобы начать выполнение до создания каких-либо объектов. А Void — это модификатор типа, который указывает, что метод или переменная не возвращает никакого значения.
Объясните различия между async void и async Task в C#. Когда вы бы использовали один вместо другого?

async void используется для обработчиков событий, и его следует избегать в большинстве других сценариев, поскольку это усложняет обработку ошибок. async Task используется для асинхронных методов, которые возвращают результат и позволяют лучше обрабатывать ошибки через свойство Exception Tasks.
💬😊 Как найти общий язык с коллегами на новой работе: 11 простых советов

Практичные советы для эффективной адаптации на новом рабочем месте и налаживания контакта с коллегами.

Читать статью
Возможно ли переопределить частный виртуальный метод?

Частный виртуальный метод не может быть переопределен, поскольку к нему нельзя получить доступ вне класса.