Были ли предупреждения о необходимости писать код вживую
Что проверяют
Обычно это вопрос в начале технического этапа: интервьюер сверяет ожидания и заодно смотрит, как вы реагируете на неожиданность. Настоящая проверка идёт следом, в самом лайвкодинге: как вы рассуждаете вслух, уточняете условие и проверяете свой код на C#.
Как отвечать
Ответьте коротко и честно. Если предупредили: «Да, рекрутер говорил, я готов». Если нет, без упрёков: «Не предупреждали, но это нормально, давайте начнём». И сразу уточните формат:
- среда: IDE с подсказками или онлайн-редактор без IntelliSense, можно ли запускать код;
- язык и версия: современный .NET и свежий C# или ограничения вроде старого .NET Framework;
- задача: алгоритм, работа с коллекциями, код-ревью готового фрагмента или небольшой проект.
Дальше держите порядок работы: переспросить условие и граничные случаи, проговорить простое решение и его сложность, написать код, прогнать на примерах вручную, включая null, пустую коллекцию и дубликаты.
Что стоит освежить по C# перед такими встречами:
- коллекции и LINQ:
Dictionary<TKey, TValue>,HashSet<T>,GroupBy,ToDictionary, отложенное выполнение запросов; - строки: неизменяемость
string,StringBuilderдля склейки в цикле; - асинхронность:
async/await, почему блокировка через.Resultопасна, чем плохasync voidвне обработчиков событий; - ресурсы:
usingиIDisposable.
Типичное код-ревью на собеседовании ловит как раз эти места.
Где спотыкаются
Молчат, пока пишут. Интервьюер оценивает ход мысли, и десять минут тишины почти всегда хуже неидеального кода с объяснениями.
Сразу пишут без уточнений и решают не ту задачу. Минута вопросов в начале экономит половину времени.
Полагаются на автодополнение и теряются в редакторе без подсказок: не помнят сигнатуру TryGetValue или путают First и FirstOrDefault. Базовое API коллекций стоит знать без подсказок.