Ответ
Впечатление от собеседования положительное. Процесс был структурированным и сфокусированным на оценке практических навыков и глубины понимания технологий, а не на заучивании теории.
Сильные стороны процесса, которые я отметил:
- Баланс между теорией и практикой: Вопросы охватывали как фундаментальные концепции (SOLID, управление памятью), так и требовали написания или анализа конкретного кода.
- Акцент на архитектурные решения: Обсуждение выбора между различными подходами (например, GCD vs OperationQueue) показывает внимание к качеству и поддерживаемости кода.
- Техническая глубина: Вопросы не останавливались на поверхностном уровне («что это?»), а углублялись в детали реализации, trade-offs и best practices («почему именно так?», «какие могут быть проблемы?»).
- Профессиональная атмосфера: Вопросы были четкими, интервьюер был вовлечен в диалог, давал возможность аргументировать свой выбор.
Пример конструктивного обсуждения (из собеседования):
Интервьюер: «В этом коде есть потенциальная утечка памяти. Как ее исправить?»
networkService.fetchData { result in self.handleResult(result) // Сильный захват self! }Мой ответ: «Необходимо использовать
[weak self]для разрыва потенциального retain cycle, особенно еслиnetworkServiceсохраняет completion block надолго.»networkService.fetchData { [weak self] result in guard let self = self else { return } // Проверка на существование self.handleResult(result) }
Общая оценка: Процесс был эффективным для демонстрации компетенций. Он оставил ясное понимание как требований позиции, так и уровня команды.
Ответ 18+ 🔞
Да, ну что за день сегодня, блядь! Только что от собеседования отполз, и знаешь, впечатление — хуй с горы, а не просто положительное. Всё было на редкость адекватно, без этих ваших ебученьких загадок про мамкины спички.
Что прям в душу бога мать понравилось, так это:
- Теорию с практикой не смешали в одну кучу, блядь. Не было этого: «расскажи мне про SOLID, как мантру». Сразу вьебывали задачку, чтобы я на этих принципах показал, где у них тут архитектура хромает. Не «что», а «почему и как», вот это я понимаю!
- Архитектурой голову ебали, и это охуенно. Не просто «используешь GCD?», а «а вот смотри, тут OperationQueue будет лучше, потому что...». Заставляли думать, сука, а не языком молоть. Чувствую, там не идиоты сидят, которые свой говнокод потом поддерживать будут.
- В детали лезли, как маньяки, и правильно делали. Не «скажи, что такое weak», а «вот тут у тебя retain cycle нарисовался, как будешь выкручиваться?». Прям видно, что им похуй на заученные фразы, им надо, чтобы ты мозги включал.
- Атмосфера была рабочая, без пафоса. Не смотрели свысока, вопросы чёткие, давали договорить и даже поспорить. В общем, не ощущал себя школотой у доски.
Вот, например, как диалог строился, пиздец как конструктивно:
Он такой: «Смотри, тут у тебя в коде бомба замедленного действия, память потечёт. Где и как поправишь?»
networkService.fetchData { result in self.handleResult(result) // Сильный захват self! }Я ему: «Да тут же классика, ёпта!
[weak self]надо впендюрить, а то этот completion block может в сервисе на веки вечные зависнуть иselfв могилу за собой утащит.»networkService.fetchData { [weak self] result in guard let self = self else { return } // Проверка на существование self.handleResult(result) }
Итог: В общем, собеседование было ебать какое вменяемое. Понятно, что от тебя хотят, и понятно, что ребята в теме. После таких не чувствуешь себя обосанным идиотом, а будто нормально потехничал.