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

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

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

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

Наши каналы: https://yangx.top/proglibrary/9197
加入频道
Что такое система 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 правильно обрабатывает окончание месяца.
🪶 Как следовать принципу DRY при настройке Apache APISIX

DRY — один из самых известных принципов разработки ПО: он помогает избежать ненужного повторения фрагментов кода, которые выполняют одни и те же действия. DRY также стоит применять при настройке конфигурации сложных систем, поскольку этот принцип:

☑️ Делает конфигурацию более компактной и легкой для понимания.
☑️ Упрощает поддержку — когда нужно внести изменения, вы делаете это только в одном месте.
☑️ Повышает читаемость — конфигурация становится более структурированной и логичной, что облегчает ее понимание.
☑️ Улучшает масштабируемость — при усложнении конфигурации принципы DRY помогают сохранять ее управляемой и расширяемой.
☑️ Сокращает время на настройку — используя переиспользуемые компоненты, можно быстрее создавать новые конфигурации или модифицировать существующие.

В качестве примера в статье рассматриваем, как применять DRY при настройке конфигурации API-шлюза Apache APISIX.

🔗 Читать статью
🔗 Зеркало
🤔 Основы математики в Machine Learning / Deep Learning

🗓 16 октября мы разберем ряд Тейлора, собственные векторы и другие ключевые понятия в ML – https://proglib.io/w/d1f2eeeb

Спикер: Иван Потапов – Staff Machine Learning Engineer at ShareChat. Руководит командой, отвечающей за качество рекомендаций, и имеет 8-летний опыт в сфере машинного обучения.

😮 Что будем обсуждать:

– Теорию вероятностей: случайные величины, математическое ожидание и дисперсию.

Линейную алгебру: векторы, матрицы, собственные векторы и собственные значения.

Математический анализ: производные и разложение функций в ряд Тейлора.

👨‍💻 А еще после каждого блока вас ждет практика в применении полученных знаний.

🎯 Почему это важно?
Понимание математических основ помогает глубже разобраться в работающих под капотом алгоритмах ML/DL и эффективно применять их на практике.

Присоединяйтесь к нам и совершенствуйте свои навыки в машинном обучении!

📌 Регистрация по ссылке: https://proglib.io/w/d1f2eeeb
Please open Telegram to view this post
VIEW IN TELEGRAM