Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 30
×

Собеседование Mobile Developer

Добрый день,

Есть проблема. На работе необходимо нанять Android/iOS программистов, к сожалению в фирме нет ни одного программиста с опытом в этом направление. Но нанять нужно, т.к. будет развиватся пара новых мобильных проектов. Планируется react-native для нескольки приложений, и одно чисто native. Что ожидается от разработчиков — в случае чего делать native модули для react-native, и развитие native приложения.

Вопрос, как таких людей собеседовать?
100% спрашивал бы про многопоточность (т.к. с вероятностью в 95% она будет необходима).

Но что еще можно спросить? Как понять подойдет ли тот или иной человек?

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn

Найкращі коментарі пропустити

Це все дічь, питати якусь псевдотеоретичну хрень, яка відірвана від життя. Дуже ненавиджу такі інтерв«ю, вони не показник абсолютно нічого.
Запитайте людину, які задачі вона(він) вирішувала, з якими проблемами стикалась і які рішення приймали. Якщо задачі, які робились раніше ± схожі на те, з чим доведеться працювати у вас — беріть.
Якщо дуже хочете поговорити про багатопоточність(повторюсь), запитайти які саме проблеми вирішували за допомогою багатопоточності, чому там не можна було просто обійтись одним мейн тредом.

P.S. Всі хто задають запитання в стилі: «Розкажіть про ООП, а чим семафор від мютекса відрізняється?, що таке абстрактний клас?» ви ідіоти чи просто не розумієте, що відповіді на ці запитання означають лише те, що людина знає на них відповіді, а не те, що вона спеціаліст?
Написати реверс стрічки на папірцю і то більший показник ніж такий булшіт.
Був би радий почути відповіді тих, хто таке питає, бо вже задовбало, 90% такого на українських(!!!!) співбесідах.

react-native — это ЗЛО! Если хотите что бы к вам хотя бы отправляли резюме мало мальски адекватные программисты — забудьте про разработку на кроссплатформенных решениях. Все эти react, xamarin, ionic и т.п. только на первый взгляд ускоряют разработку ПО, а в конечном итоге получается кривой продукт, который сложно дебажить, изменять и, к тому же, — скорость работы которого на уровне приложений 5-ти летней давности (или официального андроид приложения ФБ сейчас). Я бы вам посоветовал взять 2-х кодеров под android и iOS соответственно. В конечном итоге это обойдётся дешевле как в плане денег, так и нервов.

Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Ну в данном случае вам нужен не android/ios dev для собеседования)
Принципы разработки на нативных языках и на кроссплатформенных костылях — значительно отличаются)

Найдите через знакомых разработчика, чтоб надежный. Заплатите ему почасово, чтоб он просебеседовал вам. Сами, если вы не в теме платформ — не сможете адекватно прособеседовать. Очень уж много особенностей, которые должен знать опытный разработчик. А спрашивать абстракции ничего не даст, разве что студента адекватного найдете.

react-native — это ЗЛО! Если хотите что бы к вам хотя бы отправляли резюме мало мальски адекватные программисты — забудьте про разработку на кроссплатформенных решениях. Все эти react, xamarin, ionic и т.п. только на первый взгляд ускоряют разработку ПО, а в конечном итоге получается кривой продукт, который сложно дебажить, изменять и, к тому же, — скорость работы которого на уровне приложений 5-ти летней давности (или официального андроид приложения ФБ сейчас). Я бы вам посоветовал взять 2-х кодеров под android и iOS соответственно. В конечном итоге это обойдётся дешевле как в плане денег, так и нервов.

Чистый Xamarin (не Forms) вполне ок для ситуаций когда в приложении есть серьезная бизнес-логика и её можно вынести в отдельную библиотеку, общую для всех приложений. А сами приложения по сути нативные, просто пишутся на C#.
Но большинство из кроссплатформенных решений — способ взять одного специалиста вместо двух или быстро переучить имеющегося web программиста в mobile область. С соответствующим результатом.

Чистый Xamarin (не Forms) вполне ок для ситуаций когда в приложении есть серьезная бизнес-логика и её можно вынести в отдельную библиотеку, общую для всех приложений.

Если есть серьёзная бизнес-логика которую можно вынести в отдельную библиотеку то это должно быть сделано на стороне сервере, а не на стороне клиента. Если бизнес-логика этого не позволяет сделать — то нужно пересмотреть бизнес-логику или уже выносить её в более универсальном виде, например как либу на С++, но уж ни как не на таком страхо*бище как Xamarin.

А сами приложения по сути нативные, просто пишутся на C#.

Когда это C# стал нативным JVM языком или я что-то пропустил?

Когда это C# стал нативным JVM языком или я что-то пропустил?

Я в том смысле что программист работает с нативными элементами интерфейса, логикой и т.д. Ну и для Анроида есть NDK.
Про бизнес-логику правильно, в идеальном мире. А в нашем бывает и нужно такое.
А вот чистый кроссплатформенный Xamarin Forms как раз — ужас ужас.

JVM — внезапно, такая же точно надстройка над NDK, как и встроенный в Xamarin Mono рантайм. Просто JVM считается «православным», потому что от Гугла. А чисто технически — что то, что другое — просто виртуальная машина.

странное утверждение про JVM? может быть устаревшний Dalvic или ART который в более/менее новых версиях включен по умолчанию имееться в виду? Про ксамарин — тут ок, это просто либа с виртуальной машиной, по такому же принципу можно встроить в прогу js, lua or python. И там действительно используется НДК для удобства компиляции (но при желании можно скачать AOSP обойтись без НДК, для тех кто не ищет легких путей)

Но про «JVM» утверджение не соответсвует истине. андроид это вариант встраивамого линукса, при старте там создается процес называемый zigote (упустим что их на самом деле больше одного для простоты) в этот процес грубо говоря подключена сошка (so library) в которой и находится рантайм. А а эта сошка собрана тулчпейном аоспа и с его либами. А ндк там в другой директории и использует немного другую билд систему

если приложение формошлепство то логика экранов шариться во viewmodel, она общая.
Дальше нативные контролы байндяться на общюю логику экранов.

Чистый Xamarin (не Forms) вполне ок для ситуаций когда в приложении есть серьезная бизнес-логика и её можно вынести в отдельную библиотеку, общую для всех приложений. А сами приложения по сути нативные, просто пишутся на C#.

Есть достойные примеры в маркетплейсе, подветрждающие это?

Ничего хорошего про Xamarin не знаю... Но контраргуммент немного тухловат.

Есть достойные примеры в маркетплейсе

В маркете были достойные примеры успешного применения первого даггера. (Не путать с вторым)
Но это не делает его менее говеной хайповой библиотекай, которая взлетела только на харизме товарища Уортона.

P.S. Excelsior jet позволяет портировать джава код в нативный код, выполняющийся нативно на IOS.
P.P.S github.com/google/j2objc *MAD*

У меня нет контраргумента, есть только один вопрос, который я задавал здесь десятки раз людям, пропагандирующим Xamarin, но до сих пор не получил ответа.

приложение для tesla написана на xamarin forms, nintendo switch компаньйон тоже это из последних что я вспомнил, netflix тоже ))))

У netflix приложение очень так-себе. Не очень отзывчивое. Почти нет анимаций. Т-е нет того, что ты получаешь «бесплатно», если пишешь на (языках поддерживаемых вендором).
Но действительно лучше других приложений на кросплатформенных движках, которые я видел.

В Xamarin есть весь api который есть в нативной разработке, если там нету анимации значит они их просто выключили(дефолтовые) или просто не подописывали все эти circular reveal. Так как используються те же контролы что в нативной, у них тот же неймспейс и те же проперти.

Разработка таких приложений как tinder,mail, тодолистов, LOB приложений и т.д. это те на которых ты можешь получить наибольший плюс разрабатывая на xamarin.

Платформенные вещи такие как работа с камерой лучше делать нативно, но опять же можно написать на swift\kotlin и прокинуть в Xamarin.Если все приложение это тупо работа с камерой — тут выбор очевиден — Swift/Kotlin.

Да на Xamarin Native нету Android Instant Run к примеру,(он есть на Xamarin Forms) порой нету нужных популярных контролов, но ты можешь их сам вручную прокинуть в Xamarin.

Я очень много слышу незаслуженной критики в сторону Xamarin от нативных ребят, потому что это им не «родное» + это круто ненавидить Microsoft + мало кто хочет меняться и учить что-то новое, многие ребята которые приходят на xamarin так и продолжают ебашить code-behind и говорит ну и нахер этот Xamarin.

Но лично я обожаю программирование с async\await который был в C# с 2012 года, pattern matching, null conditional operator и другие языковые плюшки, плюс архитектуру MvvmCross когда я пишу логику экрана в одном классе а на ViewController и Activity делаю только bindings.

походу я ошибся насчет netflix он вроде не на xamarin

походу я ошибся насчет netflix

Все эти react, xamarin, ionic

Ставить Ionic в один ряд с Xamarin и React Native — это сразу расписаться в «не читал, но осуждаю»

мой опыт с react-native говорит что таки это удачный продукт, Ionic — да, сгодится для каких-то уж очень простых вещей

Собеседования с хорошими спецами происходят так:
— спеца вызванивает/выпочтивает рекруитер с предложением проекта, с такими-то технологиями
— если спец свободен и заинтересован, они созваниваются, договариваются, спец отсылает рекруитеру свои бумаги (мотивационное письмо, cв, описания проектов, рекомендации, итп)
— рекруитер отсылает бумаги кандидатов клиенту (это вы)
— клиент выбирает с кем хочет встретиться (на основании изложенных в документах проектов/технологий) и встречается

— на встречах, клиент описывает свой проект, спец описывает, чем он может помочь и какого рода подобные вещи каким образом делал + выясняются прочие вопросы из области психологии, игры в команде, профморали, итп
— по итогу встреч, клинт принимает решение и выбирает себе чела (или даже нескольких)

Технологий клиенту для проведения таких собеседований знать не надо. Устраивать спецу экзамен не надо тоже. Работает довольно хорошо.

П.С. В Украине, говорят, своя специфика — когда у кодерков нет рекомендаций, соответственно люди могут нарисовать себе в бумагах любой опыт, а потом на проектах заниматься непонятно чем. Тогда клиенту остаётся, разве что, одолжить у кого-нибудь квалифицированного спеца в нужных технологиях (но откуда клиент вообще знает, какие технологии ему нужны?) для проведения собеседований. И пускай спец экзаменует соискателей (что, врпочем, не гарантирует).

Возможен другой вариант. Брать чела «без экзамена», начать грузить задачами и смотреть, как дело идёт. Понять кваификацию чела на реальном проекте, можно будет в течении нескольких недель/месяца — а там и решать иметь ли с ним дело дальше или искать ещё...

П.П.С. Часть собеседования можно провести на английском. Т.к. кодерок в современных технологиях без английского — это балласт.

извеняюсь за вопрос: а что такое «native»? c/c++?

имеется в виду, использование языка, который в первую очередь предназначен для этой платформы ( ios — swift \ Objective C, android — java \ kotlin).

Всегда думал, что java вообще не native.
А по поводу вопроса — лично у меня на собеседованиях спрашивали всякую ерунду плюс просили написать тестовое задание. А так в идеале взять синьора с большим опытом работы, у которого есть рекомендации. А если вы хотите платить как джуну, то и результат будет соответствующий.

Всегда думал, что java вообще не native.

Она ненативна, в смысле наличия jvm. Нo на андроиде «first class citizen».
Хотя, гугл быстро одумался — и выпустил Андроид НДК.

Зааутсорсити технічну частину співдесіди

Вітаю!
А розглядаєте часткову зайнятість в проекті Junior/Trainee по iOS на безкоштовній основі?

...на безкоштовній основі

То есть вредительство :8))) ?

Можна і за зарплатню :) *жартую*
Ціль — отримати практичний досвід та позитивні рекомендації, по закінченню проектів.

Гроші — десь на останніх позиціях пріоритетності.

Мається наувазі що для компанії трейні — це витрати навіт при нульовій зарплаті, тому що на нього потрібно буде витрачати час більш кваліфікованим співробіникам які будуть відволікатися від своїх задач. Перспектива потім почати на цьому трейні заробляти — далека та віддалена, а без кабального контракту ніяких гарантій компанія не отримає.
Тому не компанія має платити трейні, а трейні — компанії.

У друзей в компании была похожая проблема. Выкрутились тем, что нашли сеньора на ЛинкедИн, предложили ему несколько часов в месяц «работу», для проведения тех собеседования и затем code review. Вроде бы все довольны.

Це все дічь, питати якусь псевдотеоретичну хрень, яка відірвана від життя. Дуже ненавиджу такі інтерв«ю, вони не показник абсолютно нічого.
Запитайте людину, які задачі вона(він) вирішувала, з якими проблемами стикалась і які рішення приймали. Якщо задачі, які робились раніше ± схожі на те, з чим доведеться працювати у вас — беріть.
Якщо дуже хочете поговорити про багатопоточність(повторюсь), запитайти які саме проблеми вирішували за допомогою багатопоточності, чому там не можна було просто обійтись одним мейн тредом.

P.S. Всі хто задають запитання в стилі: «Розкажіть про ООП, а чим семафор від мютекса відрізняється?, що таке абстрактний клас?» ви ідіоти чи просто не розумієте, що відповіді на ці запитання означають лише те, що людина знає на них відповіді, а не те, що вона спеціаліст?
Написати реверс стрічки на папірцю і то більший показник ніж такий булшіт.
Був би радий почути відповіді тих, хто таке питає, бо вже задовбало, 90% такого на українських(!!!!) співбесідах.

Боюсь наши HR будут против такого метода интервью.

Вопрос в том, кому больше нужен Mobile Developer, рекрутерам или вам.

для того чтобы писать на react-native нужен в первую очередь react и идущий вместе с ним зоопарк технологий, соответственно собеседовать по этим скиллам можно, или таких девелоперов тоже нет в компании?

Понятное дело — смотреть в резюме. Смотрите, не слишком ли длинное у кандидата резюме (1-2 страницы), есть ли проекты на github, проработал ли кандидат несколько лет на релевантных позициях, есть ли подтвержденный опыт в native, Android/iOS, react-native, c многопоточностью. Проверьте, хорош ли английский. Посмотрите, чтобы предыдущий опыт работы был сформулирован в виде достижений. Если все норм — зовите на собеседование. Смотрите — пунктуально ли пришел, был ли в отглаженной одежде, не покусаны ли ногти. Ну и — подготовится ли к собеседованию, спросите, чем именно заинтересовала эта позиция, про недостатки, про видение через 5 лет. На всякий случай — спросите про опыт разрешения конфликтных ситуаций. Если нигде не зашкварился — надо брать!

Точно не стеб, так как нет проверки на наличие внутреннего конфликта.

Обязательно проверить, не муляет ли в одном месте.

был ли в отглаженной одежде, не покусаны ли ногти

Уставная ли прическа
Правильно ли чеканит шаг
Подшит ли свежий воротничек
Натерты ли сапоги
...

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

решает задачки про гномиков-гомиков и круглые люки

какой ужас, надеюсь это стеб

уверен, что в lehrermarktplatz.de по такому шаблону и набирают

И какое у вас видение курса доллара по отношению к гривне через 5 лет? Как вы разрешили конфликтную ситуацию с налоговой? А вы сегодня успели проскочить новый ремонт на южном и попасть вовремя на работу? Вам же искренне интересен человек о котором вы знаете 20 слов из розюме, которое было написано по шаблону как и все вакансии, а у вас есть подтвеожденный опыт в бизнесе и управлении кадрами? Сколько лет у вас релевантного опыта? А в открытом доступе есть отчеты о вашей «деятельности»? У вас в офисе как-то грязно...а на тратуаре возле входа лежит один окурок, вы в компании наверное ко всему так относитесь...пойду искать чтото получше

Как вы разрешили конфликтную ситуацию с налоговой?

Спалился незачОт правильный термин «порешали».

не слишком ли длинное у кандидата резюме

Стоп. Именно вы же рассказывали в интервью, что когда немецкие рекрутеры вам рассказывали «что-то вы часто меняете работу», вы слали их лесом, поясняя что работаете вы за деньги и опыт, а феодализм уже закончился. Am I right?

есть подозрение что он упустил где-то в своем посту пометку про сарказм.

Мне кажется достаточно просто. Собеседовать на общепрограммный скилл, в остальном доверится рекомендациям.

Пока что, так и видится, просто никогда ранее не доводилось собеседовать на абсолютно незнакомую для себя тематику

На апворке полно людей с андроидом. Наймите кого то для собеседований

Лучше наймите парттайм опытного мобильного разработчика (по рекомендации знакомых например) для проведения качественных технических собеседований.
Собеседовать человека не обладая компетентностью в этой области — бесполезная затея, которая может отразиться на судьбе проекта.

PS. Это мне напоминает моё первое собеседование в далёком 2011, когда на собеседовании я рисовал несуществующих животных, решал задачки и отгадывал загадки. Так как собеседователь не рубил в мобильной разработке

К сожалению нет знакомых, у которых точно хороший уровень. Можете посоветовать, что бы вы спрашивали на собеседовании у Андроид разработчика? Интересуют общие темы на которые стоит обратить внимание при собеседовании. Спасибо.

Я много чего мог бы спрашивать, но вопрос в том поймёте ли вы человека и откуда вы будете знать прав он или нет. Правильных ответов зачастую может быть несколько, например выполнить асинхронную задачу можно не менее 8 способами, работать с базой можно через фреймворки, провайдеры и сырые запросы и все ответы будут верными. Если неоткуда взять мобильного разработчика, то возьмите самого опытного в фирме и поспрашивайте стандартный набор вопросов для разработчика: шаблоны проектирования, ООП, алгоритмы и структуры данных, принципы SOLID, разновидности архитектур приложения и их отличия (MVC, MVP, MVVM, CLEAN) и у вас сложится картина о базовых знаниях человека

шаблоны проектирования, ООП, алгоритмы и структуры данных, принципы SOLID, разновидности архитектур приложения и их отличия (MVC, MVP, MVVM, CLEAN) и у вас сложится картина о базовых знаниях человека

Эти вопросы само собо разумеется.

Меня как раз более интересует специфические знания.

К примеру если в Java будет система на Vert.X то сразу от человека ожидается что асинхронность не должна составлять для него труда, ну и вытекающее понимание RxJava.

Соотвественно это надо спросить.

К сожалению о Android разработке я знаю почти 0.

основной шаблон проектирования — здравый смысл
все остальное — маркетинговая хрень

основной шаблон проектирования — здравый смысл
все остальное — маркетинговая хрень

Это уровень студента делающего лабораторку

т.е. андроид-девелоперу здравый смысл использовать не стоит? ок, так и запишем

Здравый смысл — понятие субъективное. После таких «здравомыслящих» приходится проекты переписывать

К сожалению нет знакомых, у которых точно хороший уровень.

Поищите на линкедине, пишите людям сразу, что именно от них нужно и как часто. Найдутся.

Если не шарите в технологиях, то как вы его будете контролировать и помогать/направлять? Посмотрите на его общую адекватность, как вариант.

Контролировать как раз не проблема. А вместо направлять/помогать, скорее вместе с ним работать над решением проблемы.

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

Контроль как и любой контроль программистов. Доставка целей спринта, изменения скорости внесения изменений в коде который сам создал, в целом заметить откровенный говнокод может программист с любой специализацией.

А помогать и направлять — как и сказал, заменяется на совместном решение задач. Так или иначе другие программисты имеются. Да — смены среды, да — смена языка, но так или иначе люди пересаживаются на новые технологии. Направлять не выйдет однозначно, с другой стороны люди будут более вольны в выборе решений, и получения опыта, понимаю что ценой проекта, но иначе никто опыта и не набирался.

А если человек скажет «подымал Tomcat» 50 часов, то как понять что он врет? Может быть ситуация что реально плохой environment , все рушится как карточный домик от каждого чиха. Но может быть чувак просто знатный теннисист и постоянно играет в теннис на работе.

Для этого надо с человеком работать, и вникать в те проблемы которые перед ним возникают.

Это значит как минимум 2 раза в день спрашивать как идут дела, нет ли затыков, над чем работает, с чем в данный момент борется, что ему не ясно и где бы могла понадобится помощь.

Это значит как минимум 2 раза в день спрашивать как идут дела, нет ли затыков, над чем работает, с чем в данный момент борется, что ему не ясно и где бы могла понадобится помощь.

И как ты ему поможешь, если не умеешь программировать под андроид?

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

Команда нужна на сейчас, а не на потом

Дать тебе контакты людей, которые собеседуют за деньги?

вынести задачу на оутсорс.

Взять CTO для начала)

А если серьезно то не может собеседовать мобайла человек который в этом не рубит.

Ох, немного оффтоп, но бывает так что собеседует чувак, который не знает абсолютно чего, тот же Java Lead не знает ООП, это угар, но когда это твой лид — не угар.

Блин, я не мобайл но мобалов собеседовал, и даже нанял одного очень годного мидла. Еще одного тимлида наняли коллеги.

Можете посоветовать как лучше собеседовать в данной ситуации?

Мы спрашивали
— то, что знаем сами из заявленных навыков кандидата. (java core, C++, алгоритмы, базы данных, REST, ну и что там вообще есть в мире ещё?)
— описательно про опыт работы
— ну и вопросы типа «расскажи нам о том о чем мы не знаем».
* Какая вот специфика в мобайл разаработке?
* А каково время жизниприложения на платформе Х.
* что там с многопоточностью, хороший ворос
* что можно и что нельзя делать в бекграунде
* а как вообще узнать в бекраунде ты или в фореграунде
* есть ли спицифика работы с сетью?
* какие сущестуют ограничения в разработке под твою любимую платформу или в мобильной разработке вообще? Какие наиболее важные с твоей точки зрения? Сталкивался ли ты с ними лично и как ты решал.
Ну и сможешь ли ты работать самостоятельно — или в команде с отличными от твоей техническими компетенциями? Как ты будешь развиваться в такой команде?

Мы собственно искали людей способных развивать мобильное направление у нас...
Ну и самое главное — смотреть на человека с точки зрения сможешь ли ты с ним вообще работать.

Спасибо! У нас собственно примеоно такая же цель,создать команду которая смогла бы заниматся мобильными решениями

CTO есть, только в этом деле не поможет, у него абсолютно другой бекграунд, а проекты развивать надо, у нас не аутсорс, и отдавать на него никто не будет

поможет, если за этой леблой не просто обычный девелопер прячется. Это часть его работы

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

Підписатись на коментарі