Данная статья - продолжение первой части(ссылка). В данной статье описаны более сложные вопросы: устные, задачи на логику, знания языка, технологии.
Важно подготовится к собеседованию, повторить все особенности языка, технологий, рассмотреть алгоритмы.
Устные вопросы:
- Технология. После проверки основ интервьюер захочет узнать ваши знания по основной технологии, с которой вам нужно будет работать. О собеседованиях на каждую технологию будут отдельные статьи.
- Углубленная работа с БД. Различные JOIN, GroupBy запросы.
JOIN запросы - запросы объединения таблиц. Существуют: Inner Join (запрос, который объединяет данные, которые существуют в двух таблицах), Full Join (запрос, который объединяет данные, которые существуют в двух таблицах и не связанные данные с двух таблиц), Left/Right Join ( запрос, который объединяет данные, которые существуют в двух таблицах и не связанные данные с правой/левой таблицы).
Пример: SELECT Orders.OrderID, Customers.CustomerName,
Orders.OrderDate
FROM Orders
INNER JOIN Customers ON
Orders.CustomerID=Customers.CustomerID;
GroupBy запрос - запрос группировки данных, путем выбора параметра/колонки относительно которой будет выполнена группировка. В таких запросах становится возможным использовать математические функции, например: min, max, avg и т.д.
- Entity Framework (EF). Представляет из себя объектно-ориентированную, легковесную и расширяемую технологию от компании Microsoft для доступа к данным. Отношения конвертируются в классы и работа происходит с объектами, а работу с запросами на себя берет сам EF. Полезным будет рассказать свой опыт работы с EF и установкой провайдеров для разных БД.
- Паттерны и работа с ними. Подробнее про паттерны можно прочитать здесь: "Паттерны. Что это и когда их применять?".
- Language Integrated Query (LINQ) — проект Microsoft по добавлению синтаксиса языка запросов, напоминающего SQL, в языки программирования платформы .NET Framework. Ранее был реализован в языках C# и Visual Basic .NET. Удобный инструмент для работы с множествами. Довольна объемная тема для рассмотрения, также будет сделана отдельная статья про LINQ и работу с ней.
Техническая часть
Довольно часто интервьюеры просят показать знания ООП на практике путем создания проекта, приближенного к реальности. Большим плюсом будет, если в проекте/примере будут реализованы паттерны/Linq.
Техническое задание. Создайте приложение для продажи автомобиля. Модули:
- Добавление авто.
- Отображение.
- Продажа.
- Сортировка.
Ссылка на проект: https://github.com/CrispyPigeon/CarManager
В данном проекте нет визуального интерфейса. Реализован проект с помощью паттерна стратегия. Использован Linq. Всегда открыт к критике)
Телеграмм канал: https://t.me/dotnetreview
Источники: LINQ Wiki