Какой опыт прохождения собеседований

«Какой опыт прохождения собеседований» — вопрос из категории Софт-скиллы, который задают на 25% собеседований C# Разработчик. Ниже — развёрнутый пример ответа, который можно адаптировать под свой опыт.

Ответ

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

Знаю распространенные алгоритмические задачи (поиск, сортировки, деревья, графы) и оптимизационные подходы. Например, для задачи TwoSum:

public int[] TwoSum(int[] nums, int target) {
    var dict = new Dictionary<int, int>();
    for(int i = 0; i < nums.Length; i++) {
        if(dict.TryGetValue(target - nums[i], out var index)) {
            return new[] {index, i};
        }
        dict[nums[i]] = i;
    }
    return Array.Empty<int>();
}

Готов обсуждать trade-off между разными решениями, оценивать сложность (O(n) в примере выше). Также разбираюсь в вопросах многопоточности, асинхронности, паттернах проектирования и архитектурных подходах.