Что спрашивают на техничке в Pyrus по C#

Я помогаю Golang, Java и C# разработчикам находить работу и проходить собеседования: резюме и отклики, которые доходят до HR, спокойный собес и торг по офферу. Разбираю механику найма изнутри, я провёл более 100 собеседований. Без воды, только чек-листы и готовые фразы.

pyrusc#техничка

Продолжаю серию про технички в конкретных компаниях. Сегодня Pyrus и C#: я разобрал 11 записей собеседований наших учеников с мая 2025 по сентябрь 2026. Задачи там из раза в раз почти не меняются, а первая часть собеса такая же, как и 5 лет назад.

Сначала тебе дают две задачи для самостоятельного решения прямо во время собеса. После интервьюер возвращается и начинает задавать вопросы по твоему решению и уже дальше вопросы по техничке. Давайте разберем основные задачи.

🔁 Задача на удаление дубликатов (8 раз из 11)

Первая задача на удаление дубликатов из массива. Проверяют, как реализуешь, спрашивают про сложность алгоритма, а также акцентируют внимание на сохранении порядка. Дополнительные вопросы такие: "Сложность добавления в HashSet всегда O(1), в среднем или в худшем тоже?", "Какой плохой случай у Add в List?"

Как избежать ошибки. Реши задачу перед собесом и подготовься к вопросам, найдёшь их в файле со сводкой вопросов. Повтори, какие сложности у операций работы с коллекциями, особенно HashSet и List. Изучи, что происходит при коллизии при добавлении в HashSet.

🐢 FilterLast: убрать последние N элементов (8 из 11)

На 10 из 11 собеседований проверяли знания ленивой загрузки. Просят реализовать метод FilterLast, который возвращает последовательность без последних N элементов. Реализация должна выполняться за один проход, а длина коллекции неизвестна. Решается через Queue и yield return. Но решить недостаточно, потом душат вопросами.

Пример дополнительного вопроса. В источнике 12 элементов, получение каждого стоит 100 долларов, потому что он качается из облака. Сколько заплатим за src.FilterLast(3).Take(4).ToList()? Ученик ответил 1200. Правильно 700: Take остановится на четвёртом элементе, а FilterLast, чтобы его отдать, прочитает семь.

Так интервьюер проверяет понимание работы с коллекциями.

Как избежать ошибки. Подготовься заранее — реализуй метод перед собесом. Вызови его несколько раз, чтобы понять, как работает, а также как комбинируется с другими Linq операторами, например: Take, Skip, Last.

🗃 SQL (7 из 11)

На 10 из 11 собесов просили написать запрос, который вернёт имя одного сотрудника с максимальной зарплатой, и название его отдела. Нечто подобное спрашивают в Ozon.

Также были запросы типа: "Получи список отделов со средней зарплатой больше 1000", "Что изменится, если в Group By оставить имя отдела, а ID убрать?" и просили придумать данные, на которых группировка по имени даст неправильный результат.

🔒 Две транзакции в одну строку (7 из 11)

Уровни изоляции ты наверняка знаешь. Но здесь их проверяют на практике, задают вопрос: "Две транзакции одновременно делают UPDATE одной строки по первичному ключу. Что останется в базе?".

Как ответить. В PostgreSQL вторая транзакция ждёт, пока первая отпустит блокировку строки. На Read Committed после коммита первой она перезапишет значение, выигрывает последняя запись. На Repeatable Read и Serializable получит ошибку сериализации и откатится, а повтор ложится на бэкенд. Добавь к этому, как MVCC хранит версии строк, и ответ перестанет звучать как пересказ таблицы.

📌 Что ещё встречается

GC, IDisposable, async и lock были в 3 записях из 11, все до середины июня 2026.

JWT и HTTPS: как сервер проверяет токен и почему нельзя подделать сертификат.

Задачи в Pyrus можно выучить заранее. Проверяют в основном то, можешь ли ты сам найти, где твой код сломается.

Пиши в комментариях, на чём тебя ловили на собесах в Pyrus?

Полный список вопросов по С# в Pyrus в боте

Если хочешь подготовиться к собеседованиям, напиши мне

#техничка #csharp

Читайте так же