30+ вопросов с собеседований Apple

Аватарка пользователя Дух айтишной эмо школы

Собрали подборку вопросов, которые в Apple задают Data Scientist, QA-инженерам, разработчикам, фронтендерам и продакт-менеджерам.

Apple — одна из крупнейших технологических компаний мира по рыночной капитализации в 3 000 000 000 000 (три триллиона) долларов. Такого успеха Apple удалось достичь благодаря тщательно подобранной командой высококлассных инженеров.

На своих собеседованиях Apple задаёт вопросы, которые позволяют отобрать лучших программистов с отточенными soft и hard навыками.

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

Мы собрали краткую подборку вопросов, которые в Apple задают начинающим Data Scientist-ам, QA-инженерам, разработчикам, фронтендерам и Product Manager-ам.

Общие вопросы

1. Какое устройство Apple вы любите больше всего?

Этот вопрос направлен на выяснение знания устройств и продукции Apple. Укажите различные устройства Apple, которыми вы пользуетесь, но выделите свое любимое. Распишите его особенности, технологии и преимущества.

Также расскажите, в чём преимущества устройства перед конкурирующими продуктами: что делает его привлекательным с точки зрения инноваций, дизайна и функциональности.

Расскажите, как вы планируете применять ваши навыки, чтобы улучшить продукт и компанию.

2. Расскажите о случае, когда вы решили разногласия с вашим руководителем.

Этот вопрос исследует soft skills кандидата: умение работать в команде, способность решать конфликты и коммуницировать в коллегами. Обязательно упомяните, что вы благодарны тому, чему вас научили ранее.

“Однажды я не согласился с моим руководителем относительно лучшего способа оказания поддержки клиентам. Вместо того, чтобы понижать его авторитет перед сотрудниками, я поговорил с ним лично в его кабинете. Я предложил свою идею, которая могла бы лучше решить ситуацию. Руководитель согласился, и клиент остался довольным. Эта ситуация научила меня важности открытого общения на рабочем месте.”

3. Как бы вы отличили Cocoa от Cocoa Touch?

Cocoa Touch и Cocoa — это среды разработки приложений для iOS и OS X. Они обе включают в себя Objective-C runtime, но основные различия заключаются в следующем:

  • Cocoa предназначена для разработки под Mac OS, а Cocoa Touch — под iPhone и iPad.
  • Cocoa использует фреймворки Foundation и AppKit. Cocoa Touch использует Foundation и UIKit.
  • Классы в Cocoa используют префикс NS. Например, класс может называться NSWindow. Cocoa Touch использует префикс UI — UIWindow.

4. Какими способами можно достичь параллелизма в iOS?

В iOS есть три способа достичь параллелизма:

  1. Очереди диспетчеризации (Dispatch queues).
  2. Потоки (Threads).
  3. Очереди операций (Operation queues).

5. Какую библиотеку JSON поддерживает iOS? Каковы ее преимущества?

iOS поддерживает библиотеку SBJson. Её основные преимущества:

  1. Это легкий формат для обмена данными.
  2. Он легко читается и записывается как компьютерами, так и людьми.
  3. Поддержка сервером.
  4. Гибкие API и дополнительный контроль.

Вопросы собеседования на должность Data Scientist в Apple

  1. Какие существуют виды объединений (joins) в SQL?
  2. Можно ли выполнить откат (rollback) после использования команды ALTER?
  3. Чем отличаются команды Truncate и Drop?
  4. Объясните назначение операторов SELECT и FROM.
  5. Что бы вы предложили для улучшения Siri?

Вопросы собеседования на должность QA-специалиста в Apple

  1. Какие шаги вы предпримете для тестирования торгового автомата?
  2. Как бы вы справились с проблемами масштабируемости (scalability)?
  3. Расскажите о шагах жизненного цикла ошибки (bug cycle).
  4. В каких типах тестирования программного обеспечения вы наиболее компетентны?
  5. Когда бы вы использовали тестирование CRUD?
  6. Что вы понимаете под термином “матрица прослеживаемости” (traceability matrix)?

Вопросы собеседования на должность Product Manager в Apple

  1. Что делает вас квалифицированным для этой должности в Apple?
  2. Как бы вы справились с раздраженным коллегой?
  3. Как бы вы договорились с клиентом с нереалистическими ожиданиями?
  4. Если у вас есть задача, с которой вы не знакомы, как быстро вы научитесь ей?
  5. Apple славится тем, что относится к спискам приложений очень требовательно. Это условие вам нравится? Почему?

Вопросы собеседования на должность Front-End Developer в Apple

  1. Зачем нужен слой компоновки (composting layer) в CSS3?
  2. Как бы вы нашли позицию дубликата элемента строки?
  3. Как браузеры отображают пользовательский интерфейс?
  4. Какая задача самая сложная для фронтендера?
  5. На каком языке вы предпочитаете писать фронтенд? Объясните причину выбора.

Вопросы собеседования для кодеров в Apple

  1. Как проверить полноту заданного двоичного дерева?
  2. Напишите программу для проверки, является ли любая перестановка заданной строки палиндромом.
  3. Напишите функцию contains_cycle(), которая показывает, содержит ли список цикл, беря первый узел в односвязном списке и возвращая логическое значение.
  4. Вам заданы целое положительное число (integer) и target. Напишите программу, которая выводит возможные комбинации целых положительных чисел, сумма которых равна target.
  5. Есть список интервалов. Объедините пересекающиеся интервалы и получите список, содержащий только взаимоисключающие интервалы.
  6. Объясните событийно-управляемое программирование на примере языка C.
  7. Как проверить, установлен ли старший бит в байте?
  8. Используя корневой узел двоичного дерева, напишите программу, сортирующую “левых” и “правых” children-элементов для каждого узла.

Заключение

Смогли ответить на вопросы в статье? Напишите в комментариях, кем вы работаете сейчас и какой у вас уровень, и пришлите ваши ответы на вопросы, чтобы сравнить их с ответами других пользователей.

Задачи умеренной сложности
Apple
Собеседование
816