В этом блоке вопросы сильно зависят от специализации, но логика ответа едина. Мы приведем примеры для собеседования в IT-компанию.
Вопрос № 13. — «Объясните, что такое [базовое понятие, например, REST API]»
Зачем задают: Проверить фундаментальные знания.
Как правильно отвечать: Дать четкое определение + простое сравнение/аналогию.
Пример: «REST API — это набор правил, который позволяет разным программам общаться друг с другом через HTTP. Это как официант в ресторане: вы (клиент) делаете заказ (отправляете запрос), официант (API) передает его на кухню (сервер) и приносит вам блюдо (ответ)».
Ошибка: Выдумывать на ходу и делать вид, что все знаешь. Лучше честно признаться, что с этим вопросом вы пока не знакомы.
Вопрос № 14 — «Объясните, что такое strong reference и retain cycle в контексте iOS. Приведите пример, как она может возникнуть, и как ее избежать».
Зачем задают: Проверить понимание фундаментальных механизмов платформы, оценить качество кода, увидеть практический опыт.
Как правильно отвечать: Дать определение терминов, привести пример из своего опыта (если он есть).
Пример: «Сильная ссылка (strong) — это ссылка по умолчанию, которая увеличивает счетчик ссылок (retain count) на объект. Память освобождается, когда счетчик становится равен нулю. Циклическая зависимость возникает, когда два объекта сильно ссылаются друг на друга, не позволяя счетчику ссылок достичь нуля, что приводит к утечке памяти. В моем проекте возникла утечка памяти, когда UIViewController содержал сильную ссылку на кастомный DataManager, который в своем замыкании обратного вызова ссылался на self. Я использовал weak self в замыкании, утечки прекратились, производительность стабилизировалась».
Ошибка: Отвечать поверхностно («ну, это когда память не очищается. Надо быть аккуратнее с замыканиями. Я обычно просто ставлю [weak self] везде, и все работает.» Ответ показывает отсутствие глубоких знаний. Кандидат не может объяснить причину проблемы и применяет решение шаблонно, не понимая, когда [weak self] нужен, а когда — нет.
Другие технические вопросы могут касаться вашего стека технологий (например, «В чем разница между == и === в JavaScript?»), решения практических задач (попросят написать функцию) или ситуативных кейсов (что вы будете делать, если пользователи жалуются, что в приложении «Умный дом» не приходит вызов от домофона?)