Вопросы о собеседовании с мобильными разработчиками, которые разработчик не-мобильных может задать [закрыт]

17

Мне нужно взять интервью у некоторых людей за позицию мобильного разработчика (iphone) в ближайшее время. Проблема в том, что моя сила в веб-разработке Java.

Какие вопросы я должен задать, не говоря о идиотом? Кроме того, каковы действительные ответы на эти вопросы?

    
задан mkoryak 08.12.2010 в 20:35
источник
  • +1 отличный вопрос !!! –  Linuxmint 08.12.2010 в 22:31
  • Хороший вопрос, но я бы сказал, что это может быть более подходящим для программистов, чем здесь. –  Brad Larson♦ 10.12.2010 в 19:31
  • должен быть значок для получения значка по неконструктивному вопросу –  mkoryak 23.01.2012 в 21:43

6 ответов

18

WOW этот ответ пять лет. На 2015 год я бы просто спросил:

  • Ответ для OP здесь - это что-то вроде "автозапуска, автозапуска, автозапуска" . В недвижимости у вас есть фраза «местоположение, местоположение, местоположение»; в iOS-разработке это «автоотключение, автозапуск, автозапуск». Как реальный практический вопрос, скажем, вы проверяете кого-то за внештатную работу. На практике, о единственном, что вы попросите показать, это то, что они являются экспертами с автозапуском и связанными с ними проблемами, такими как использование ограничений в коде и т. Д.

  • Вы полностью знакомы с PubNub, Firebase, Parse и другими подобными системами ... baas "is iOS engineering" сегодня. Чтобы узнать iOS сегодня, нужно научиться подключаться к басу; для фрилансеров в iOS - выполнять задания baas.

  • В идеале, вы также знакомы с разработкой Android, по крайней мере, у вас есть Android Studio на вашем Mac, и вы можете создать тривиальное приложение для своего Samsung; поэтому вы можете взаимодействовать с коллегами.

Вот старый ответ! ...

Если бы это был я, я бы спросил их ...

, они полностью знакомы с этими TEN KEY POINTS :

  • XCode (и в идеале это инструменты отладки)
  • Конструктор интерфейсов
  • отправка приложений в магазин приложений, все, что включает (certs, blah blah)
  • в объективе-C, используя свойства наизнанку
  • в объекте-C, используя делегаты наизнанку
  • взаимодействие с ASIHttpRequest {этому ответу исполнилось пять лет!} , AsyncSockets, GameKit, Bonjour
  • полное понимание подкласса
  • основы, такие как CoreAnimation и CoreData
  • «все обычные интерфейсы» на iOS, такие как UITableView и т. д.
  • все, сверху донизу, об управлении памятью.

Я думаю, что это хороший стартовый список. (Если я забуду что-нибудь очевидное, скоро это будет предложено.)

Обратите внимание, что пункт 10, управление памятью, является критическим элементом. Вы просто не можете создавать готовые рабочие приложения для мобильных устройств, если вы не являетесь экспертом по памяти на своей платформе. Кроме того, кто-то, кто действительно хорош в управлении памятью в iPhone, обычно хорош во всем остальном на iPhone. Если бы я мог только спросить, что это такое!

Есть также несколько десятков мелочей, которые вы должны использовать для создания iPhone для iPhone - например, «настройки», «акселерометр», «значки» и заставки , "играть звуки" и так далее. Вы должны иметь возможность делать все это через пять минут, а не пять дней расследования. На самом деле это довольно сложно. Кто-то, вероятно, мог бы перечислить все эти «второстепенные обязательные вещи».

Возможно, отдельная проблема с несколькими специалистами - OpenGL . В зависимости от того, что вы платите им и что вам нужно, вы можете потребовать того, кто, кроме того, является экспертом OpenGL.

Является ли разработка вашей компании разработкой игр ? Если это так, вполне вероятно, что, кроме того, как «общий» разработчик игр для iPhone, вам может понадобиться кто-то , который также является полностью экспертом

  • Unity3D (для 3D и т. д.)
  • популярные физические (2D) пакеты (например, бурундук и т. д.)
  • так или иначе, серверная сторона систем клиент-сервер

Вот и все. Вопрос: , что СПЕЦИАЛЬНО вы собираетесь делать (в общих чертах)? т.е. научные вычисления, разработка игр, маркетинговые приложения для разбогатевания, внутренние каталоги, ручные клиенты или Если вы сообщите нам, мы сможем рассказать вам, что им нужно.

И, наконец, в подавляющем большинстве - вы должны были бы видеть 3+ актуальные приложения, которые они сделали. С iPhone вам действительно нужно иметь возможность «принести его домой», пишущие хорошие фрагменты кода недостаточно, вы знаете. Это сложно.

Вот уже начало "материал, который мы забыли в десяти критических точках" !

  • Мэтт указывает, что они должны быть удобны с «MVC», что означает мышление модели-view-controller. (Это своего рода фашистский культ в мире iOS - мы все придерживаемся! Мы не можем рассказать вам об этом, пока вы не являетесь одним из нас. Если их лицо загорается, когда вы упоминаете MVC, вы все настроены. темнеет и неудобно смотреть, двигаться дальше ...)

  • Дэвид и Брэд отмечают, что, возможно, в отличие от других программных полей - программисты iPhone и Mac обычно нуждаются в смысле интерфейса . Вам нужно почувствовать этот чистый интерфейс iPhone, вы должны знать, как разметить какую-либо конкретную проблему на iPhone, используя элементы iOS, которые дополняют пользовательский интерфейс iPhone.

ответ дан Fattie 08.12.2010 в 21:35
источник
  • Я думаю, что это хорошие моменты, но я бы определенно добавил подход MVC к этому списку. –  Matt 08.12.2010 в 21:44
  • +1 Отличный ответ. Тем не менее, я не вижу, как кто-то, не знающий вышеизложенного, сможет оценить ответы, прежде чем почувствовать, уверен ли собеседник в своем собственном опыте / уровне знаний. –  John Parker 08.12.2010 в 22:37
  • Еще одна вещь, о которой следует упомянуть, - исследовать их способность создавать функциональные интерфейсы. Даже если приложения являются просто основными представлениями таблиц в представлениях таблиц, вы должны быть в состоянии определить, можно ли использовать интерфейс или просто ужасно. Если вы не являетесь крупным пользователем пользовательского интерфейса, просто убедитесь, что у вас есть на нем свои руки, на самом деле его используют, чтобы получить свои собственные чувства относительно того, как все это работает. –  David Liu 09.12.2010 в 01:34
  • Обычно «давайте посмотрим, играют ли они со всеми правильными игрушками», что-то типа ... Как это проверяет их реальную способность? –  CashCow 09.12.2010 в 14:16
  • Я бы окончательно связался с Джо Блов лично и спросил его: «Джо, ты готов сделать это интервью для меня и получить компенсацию за свое время»? Он может оценить это за один час, и вам (OP) было бы намного лучше с рекомендацией Джо относительно умения кандидата. –  Escualo 09.12.2010 в 21:52
Показать остальные комментарии
9

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

Кроме того, вы можете попросить кандидата объяснить вам о развитии iPhone, объяснить, что вы с ним не знакомы, и судить ответ: кандидат высокомерно об этом? Кандидат в восторге от этого? Кандидат может четко объяснить ход мысли? Кандидат «имеет смысл»? Все это черты, которые вы можете законно судить, и они имеют значение для любой позиции.

Опять же, не пытайтесь оценить то, что вы сами не знаете.

    
ответ дан Escualo 08.12.2010 в 20:39
источник
  • Re: Опять же, не пытайтесь оценить то, что вы сами не знаете. - У этого варианта нет. здесь нет разработчиков iphone –  mkoryak 08.12.2010 в 21:04
  • @Joe Blow: «эта штука из-за волнения не запускает ракеты», я прошу отличить. ОТНОШЕНИЕ - это разница между хорошей космической программой и плохой. Любой может интегрировать дифференциальное уравнение (с правильным обучением), но он принимает шары и отношение, чтобы сказать: «Теперь отправьте это дерьмо на Марс и сделайте это безупречно». Разница между хорошими техническими людьми и великими учеными-ракетологами не является техническими навыками (учитывая минимальный исходный уровень) - это энтузиазм, товарищество и отношение, ИМХО. –  Escualo 09.12.2010 в 21:47
  • @mkoryak: разве вам не лучше отказаться от технической части интервью? Я бы предпочел заплатить за то, чтобы кто-то оценил кандидата, а не застрял с сотрудником, который не может этого сделать. Я согласен, однако, что прагматичным решением может быть «разобраться» в технических аспектах и ​​сделать это самостоятельно, но это «прагматичное» решение кажется немного рискованным. –  Escualo 09.12.2010 в 21:50
5

Прикрепите их перед машиной с Xcode. Затем попросите их написать базовое приложение и запустить его.

Вещи, которые можно добавить в указанное приложение:

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

Или, перейдите с чем-то основным:

  • простой текстовый редактор
  • калькулятор

Как только приложение запустится, попробуйте что-то вроде поворота устройства. Посмотрите, как человек реагирует. Они понимают, как исправить ошибки? Как быстро? Где они ищут решения, если они не знают о себе? Используют ли они документацию или просто копируют / вставляют код откуда-то?

Не пытайтесь заставить человека создать полномасштабное приложение. Другими словами, убедитесь, что вы используете что-то basic . В противном случае это будет совершенно контрпродуктивно. Это немного давление, но ни один разработчик с опытом не может справиться.

    
ответ дан joshpaul 09.12.2010 в 06:11
источник
  • Это отличный ответ. –  Fattie 28.05.2015 в 04:44
4

Я бы подумал, что просить увидеть примерный код (в идеале заблаговременно до интервью) все равно будет полезным упражнением, особенно если вы попросите собеседника для самостоятельного примера.

Пока вы не будете знакомы с нюансами Objective-C, вы все равно можете оценить степень, в которой собеседник комментирует свой код, а части кода, отличные от Cocoa / UIKit, не будут отличаться от Java или даже любой другой язык OO.

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

    
ответ дан John Parker 08.12.2010 в 20:51
источник
4

Не задавайте им вопросы о тех областях, где вы недостаточно хорошо понимаете ответы, чтобы их можно было заглянуть. Это требует неприятностей (повторите запись в памяти и / или работу с глинистым снегом).

Найдите общий язык, даже если вам нужно вернуться к основам программирования или разработки приложений / тестирования / отладки / методологии QA и т. д. Копайте в своих ответах в области, которую вы хорошо понимаете. Только тогда вы узнаете, кормят ли вас тарабарщину или нет.

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

Затем вы можете попросить кандидата объяснить основные различия между вашей общей точкой и их специальностью, которую вы не знаете (мобильная и т. д.). Почему Objective C, UIKit, Xcode (и т. Д.) Делают что-то по-другому, чем кодирование общего кода XYZ? Посмотрите, сможете ли они четко объяснить это так, чтобы вы это поняли (вы можете позже ответить на вопрос Google, если они приведут вас в правильном направлении).

    
ответ дан hotpaw2 08.12.2010 в 22:13
источник
2

Они должны были уже работать над приложением или двумя (даже если только для себя), попросите их объяснить его структуру. Вы должны уметь разумно комментировать расположение классов, и, надеюсь, они узнают некоторый UML, чтобы иметь возможность описывать макет класса или пути вызова.

    
ответ дан Kendall Helmstetter Gelner 08.12.2010 в 22:18
источник
user contributions licensed under cc by-sa 3.0 with attribution required. DMCA.com Protection Status