Какое у тебя общее впечатление от процесса собеседования?

Ответ

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

Сильные стороны процесса, которые я отметил:

  1. Баланс между теорией и практикой: Вопросы охватывали как фундаментальные концепции (SOLID, управление памятью), так и требовали написания или анализа конкретного кода.
  2. Акцент на архитектурные решения: Обсуждение выбора между различными подходами (например, GCD vs OperationQueue) показывает внимание к качеству и поддерживаемости кода.
  3. Техническая глубина: Вопросы не останавливались на поверхностном уровне («что это?»), а углублялись в детали реализации, trade-offs и best practices («почему именно так?», «какие могут быть проблемы?»).
  4. Профессиональная атмосфера: Вопросы были четкими, интервьюер был вовлечен в диалог, давал возможность аргументировать свой выбор.

Пример конструктивного обсуждения (из собеседования):

Интервьюер: «В этом коде есть потенциальная утечка памяти. Как ее исправить?»

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+ 🔞

Да, ну что за день сегодня, блядь! Только что от собеседования отполз, и знаешь, впечатление — хуй с горы, а не просто положительное. Всё было на редкость адекватно, без этих ваших ебученьких загадок про мамкины спички.

Что прям в душу бога мать понравилось, так это:

  1. Теорию с практикой не смешали в одну кучу, блядь. Не было этого: «расскажи мне про SOLID, как мантру». Сразу вьебывали задачку, чтобы я на этих принципах показал, где у них тут архитектура хромает. Не «что», а «почему и как», вот это я понимаю!
  2. Архитектурой голову ебали, и это охуенно. Не просто «используешь GCD?», а «а вот смотри, тут OperationQueue будет лучше, потому что...». Заставляли думать, сука, а не языком молоть. Чувствую, там не идиоты сидят, которые свой говнокод потом поддерживать будут.
  3. В детали лезли, как маньяки, и правильно делали. Не «скажи, что такое weak», а «вот тут у тебя retain cycle нарисовался, как будешь выкручиваться?». Прям видно, что им похуй на заученные фразы, им надо, чтобы ты мозги включал.
  4. Атмосфера была рабочая, без пафоса. Не смотрели свысока, вопросы чёткие, давали договорить и даже поспорить. В общем, не ощущал себя школотой у доски.

Вот, например, как диалог строился, пиздец как конструктивно:

Он такой: «Смотри, тут у тебя в коде бомба замедленного действия, память потечёт. Где и как поправишь?»

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)
}

Итог: В общем, собеседование было ебать какое вменяемое. Понятно, что от тебя хотят, и понятно, что ребята в теме. После таких не чувствуешь себя обосанным идиотом, а будто нормально потехничал.