Библиотека собеса по C# | вопросы с собеседований
5.67K subscribers
210 photos
2 videos
1 file
184 links
Вопросы с собеседований по C# и ответы на них.

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

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

Работать у нас: https://job.proglib.io/

Наши каналы: https://yangx.top/proglibrary/9197
加入频道
Вакансии «Библиотеки программиста» — ждем вас в команде!

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

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

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

Ждем ваших откликов 👾
Какова цель Unity Profiler?

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

На собеседовании надо объяснить, что Profiler может отслеживать использование ЦП, распределение памяти, статистику рендеринга и другие показатели производительности. Также стоит упомянуть, что его можно использовать как в редакторе, так и на целевых устройствах.

Сильные кандидаты могут обсудить конкретные методы оптимизации, которые они применили на основе данных Profiler, или упомянуть, как использовать Profiler для диагностики проблем производительности на разных платформах.
Что такое система NavMesh в Unity и как она используется?

Система NavMesh (навигационная сетка) в Unity — это встроенное решение для поиска пути для разработчиков игр. Она генерирует упрощенное представление игрового мира, которое управляемые ИИ персонажи могут использовать для навигации.

На собеседовании стоит объяснить, что NavMesh работает путем запекания проходимых поверхностей игрового уровня в сетку, которую агенты затем могут использовать для расчета путей. Можно упомянуть такие компоненты, как NavMeshAgent и NavMeshObstacle.
🔟🏩 ТОП-10 перспективных студий разработки: лучшие компании для вашего карьерного роста

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

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

🔗 Читать статью
🔗 Зеркало
Можете ли вы объяснить, что такое шейдер в Unity?

Шейдер в Unity — это специализированная программа, которая определяет, как визуализировать графику на GPU. Она определяет, как свойства материалов, такие как цвет, текстура и освещение, рассчитываются и применяются к объектам в игре. Unity использует язык шейдеров ShaderLab, который является оболочкой вокруг HLSL (High-Level Shader Language).
Можете ли вы объяснить, что такое кватернион и почему он используется в Unity?

Кватернион — это математическая концепция, используемая в Unity для представления вращений. Это четырехмерный вектор, который избегает проблемы «карданного замка», связанной с углами Эйлера. Хотя кватернионы менее интуитивно понятны для непосредственной работы, они обеспечивают более стабильный и эффективный способ обработки вращений в трехмерном пространстве. Если вы уверены в себе, то обсудить, как преобразовывать кватернионы в углы Эйлера или упомянуть встроенные функции Unity для работы с кватернионами.
Какова цель системы Unity Asset Bundle?

Asset Bundles — это способ упаковки и распространения ассетов в Unity. Они позволяют разработчикам транслировать контент в свою игру или приложение, уменьшая начальный размер загрузки и позволяя динамически обновлять контент.
Что из перечисленного нельзя использовать для объявления интерфейса в C#?
Anonymous Quiz
6%
Методы
12%
Свойства
28%
События
54%
Структуры
Каково назначение функции Awake в скриптах Unity?

Функция Awake — это специальный метод в Unity, который вызывается при загрузке экземпляра скрипта. Он используется для инициализации переменных или состояния игры перед ее запуском. Awake вызывается только один раз за время существования экземпляра скрипта и вызывается даже если компонент отключен.

Awake используется для инициализаций, которые должны быть выполнены до вызова методов Start любых других скриптов, обеспечивая правильную настройку ссылок на объекты и начального состояния.
Какова важность физики в Unity и как ее применять?

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

Ожидайте, что кандидаты обсудят такие компоненты, как Rigidbody, Colliders и Physics Materials. Они должны предоставить примеры применения физики в своих проектах, обеспечивающие реалистичное поведение и взаимодействия в своих играх.
В чем разница между MonoBehaviour и ScriptableObject в Unity?

MonoBehaviour — это базовый класс для компонентов, которые прикрепляются к GameObjects, позволяя им получать события жизненного цикла Unity и взаимодействовать с игровым миром. ScriptableObject, с другой стороны, — это класс контейнера данных, используемый для хранения и обмена данными между различными объектами и сценами.

MonoBehaviours являются специфичными для экземпляров и привязаны к GameObjects, в то время как ScriptableObjects основаны на ассетах и могут существовать независимо от объектов сцены.

Можно обсудить использование MonoBehaviours для игровой логики и ScriptableObjects для данных конфигурации или общих ресурсов.
😮 SQL: от Тетриса до ИИ — неожиданные возможности языка баз данных

Долгое время SQL использовали лишь для запросов и изменения записей в базах данных — для полноценного программирования в привычном смысле слова он не подходил. Однако добавление рекурсивных общих табличных выражений (CTE) сделало SQL полным по Тьюрингу. Рекурсивные CTE состоят из двух частей:

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

Благодаря CTE на SQL можно при желании реализовать любой алгоритм. Энтузиасты уже сделали:

Визуализацию множества Мандельброта с помощью ASCII-графики.
3D-движок для рисования объемных фигур.
GPT на 500 строках SQL-кода. Подробная статья о реализации этого проекта опубликована здесь.
Трассировку лучей (это метод создания реалистичных изображений).

На прошлой неделе коллекция крутых SQL-проектов пополнилась еще одной интересной разработкой — версией «Тетриса».

Эта реализация демонстрирует несколько нестандартных SQL-техник, о которых стоит знать, даже если вы используете SQL только по прямому назначению:

• игровой цикл;
• вывод игры;
• пользовательский ввод;
• решение проблемы изоляции данных;
• предотвращение кэширования.

Для управления состоянием игры и обработки игровых событий используются подзапросы и агрегатные функции.

🔗 Подробнее читайте в статье
🔗 Зеркало
Можете ли вы описать, как бы вы реализовали регистрацию ошибок в приложении .NET?

Реализация регистрации ошибок в приложении .NET обычно включает использование библиотек регистрации, таких как log4net, NLog или встроенной Microsoft.Extensions.Logging. Эти библиотеки предоставляют настраиваемые механизмы, которые могут регистрировать ошибки в различных местах назначения, таких как файлы, базы данных или внешние службы.

Разработчики должны настроить библиотеку регистрации в коде запуска приложения и использовать различные уровни регистрации (например, Debug, Info, Warn, Error, Fatal) для сбора и классификации логов соответствующим образом.
Интерполированные строки $»{x}»

Возможности C# позволяют вам интерполировать (разбивать) строки простым и элегантным путем.

Вы можете подставлять различные значения переменных в фигурные скобки в любой части строки, что делает инструмент весьма мощным и полезным.
💻🔍💼 Кризис IT-рынка: как джуны и кадровый голод меняют правила игры

В условиях нехватки опытных специалистов и наплыва джунов, IT-компании вынуждены искать нестандартные подходы к найму. Рассмотрим основные тренды и стратегии адаптации рынка.

Читать статью

#почитать
Можете ли вы объяснить, что означает LOD (уровень детализации) в Unity?

LOD (Level of Detail) в Unity — это метод, используемый для оптимизации производительности рендеринга путем снижения сложности 3D-моделей по мере их удаления от камеры. Это помогает поддерживать баланс между визуальным качеством и производительностью. Система LOD Unity позволяет разработчикам создавать несколько версий модели с разным уровнем детализации.
Синхронизация двух мастер-баз кажется сложной задачей? Векторные часы предлагают простое решение. Этот подход обеспечивает согласованность данных в распределенных системах, повышая надежность и эффективность вашей IT-инфраструктуры.

👉 Статья
Перечислите этапы компиляции кода в C#.

Предварительная обработка
Компиляция
Сборка
Связывание
Получение всех дат между двумя DateTime в C#

Вы можете использовать DateTime объекты непосредственно в цикле. DateTime.AddDays правильно обрабатывает окончание месяца.