Рубрика:
Карьера/Образование /
Рынок труда
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
Вакансия: разработчик мобильных приложений для ОС Android
Планшеты, смартфоны – многие профессионалы и просто пользователи не могут уже представить свою жизнь без них. Удобство работы с этими гаджетами обеспечивают разработчики, которые создают всевозможные приложения под мобильные ОС. Какие же требования предъявляют компании к тем, кто создает приложения для Android?
- Какими знаниями и навыками должен обладать разработчик мобильных приложений для ОС Android?
- Каков инструментарий разработчика мобильных приложений для ОС Android?
- Каковы требования компании к уровню образования потенциальных сотрудников?
- Какие требования предъявляются к опыту работы?
- Есть ли особые требования, которые обусловлены спецификой деятельности компании?
Дмитрий Калита, ведущий Android-разработчик в Parallels
1. Во-первых, всеми теми, которыми должен вообще обладать любой разработчик программного обеспечения: абстрактное мышление, знание и умение применять паттерны проектирования, способность писать простой «читабельный» код, умение пользоваться основными инструментами разработчика (трекер задач, система контроля версий, система code review и т.д.).
Во-вторых, и это уже специфика именно Android-разработки, необходимо знание Java как основного языка для разработки таких приложений, а также основных компонентов, входящих в Android SDK: их назначения, возможности и жизненные циклы.
Кроме того, мобильные операционные системы (и Android в частности) сейчас бурно развиваются. Некоторые подходы, технологии, которые считались хорошими и современными два-три года назад, сейчас устарели и не рекомендуются к использованию. Поэтому в области мобильной разработки особенно важны желание и способность постоянно обучаться, совершенствоваться и осваивать что-то новое.
2. Как правило, основной инструмент современного Android-разработчика – это IDE Android Studio. Этот инструмент Google развивает не менее бурно, чем саму операционную систему, поэтому для повышения собственной эффективности знания о его возможностях также нужно постоянно актуализировать.
Существует также много современных инструментов более общего назначения, которые в том числе могут быть использованы и в Android-разработке. На нашем проекте из таких инструментов мы используем, например, Kotlin и Dagger 2.
Мы также используем при разработке другое решение компании – Parallels Desktop для Mac. Поскольку Parallels Access, над которым мы работаем, – это приложение для удаленного доступа с мобильного устройства на десктоп, то во время отладки Android-клиента нам нужен десктоп, чтобы к нему подключаться. Так вот, например, при работе из дома не очень удобно подключаться к тому же десктопу, на котором собственно пишешь код. Намного удобнее поднять виртуальную машину с помощью Parallels Desktop и подключаться к ней.
Другой пример: при разработке Android-клиента Parallels Access нам нужно тестировать его совместно с серверной частью, установленной на разные версии операционных систем Mac OS и Windows. В этом нам очень помогают виртуальные машины, созданные с помощью Parallels Desktop.
3, 4. Конечно же, это сильно зависит от вакансии (например, у нас сейчас есть вакансии Android-разработчиков как в московский, так и в таллинский офисы Parallels, и требования там слегка разные).
Сейчас мы ищем специалистов уровня Senior Software Developer. Как показывает практика, люди, не получившие «программистского» образования, дорастают до этого уровня квалификации достаточно редко. Поэтому отсутствие такого образования будет минусом при рассмотрении резюме, хотя и не явится безусловной причиной для отказа от собеседования. Другие заслуги кандидата вполне могут перевесить этот минус.
Еще в резюме Android-разработчиков мы обращаем внимание на наличие ссылок на проекты в Google Play, обязательно смотрим эти проекты, смотрим количество установок и отзывы. Весомым плюсом на этапе рассмотрения резюме будет опыт работы в известной девелоперской компании, с хорошей культурой программирования, такой как, например, Parallels!
На собеседовании на эту позицию мы обычно задаем глубокие вопросы по Java, по компонентам Android SDK, обсуждаем паттерны проектирования, решаем задачки на программирование. Как правило, классного специалиста видно уже через 15-20 минут такого собеседования. Человек с легкостью отвечает на большую часть вопросов, часто освещает тему более глубоко, чем это подразумевал вопрос, приводит примеры из своего опыта. Если не знает ответа на некоторые немногие вопросы, заявляет о своем незнании сразу, а не несет с умным видом бред, пытаясь угадать ответ. И, конечно же, у такого специалиста не вызывают затруднения задачки на программирование уровня второго курса института, которые мы даем на собеседовании.
К сожалению, таких разработчиков действительно очень немного. Найти их и убедить работать именно у нас – сложная задача, требующая времени. Однако сам факт существования нашей команды доказывает, что это возможно.
5. Каких-то специфических требований у нас нет. Если во время собеседования мы видим, что человек адекватный, толковый, глубоко знает свою предметную область и что-то в своей профессиональной жизни уже успел сделать, мы сделаем ему достойное предложение.
Григорий Харченко, руководитель отдела мобильной разработки Kokoc Mobile (Kokoc Group)
1. Основное требование к разработчику – это доскональное знание базового языка программирования Java, поскольку именно на нем создаются все мобильные приложения для ОС Android.
2. Кандидат должен знать средства разработки Android SDK, уметь использовать серверный протокол HTTP, такие библиотеки, как Retrofit и Picasso, создавать разметку экранов Layouts, базы данных SQL, SQLite, текстовый формат обмена данными JSON, разбираться в компонентах интерфейса пользователя (UI) и методе взаимодействия обмена данными Rest API.
3. Обычно мы берем на работу специалистов, имеющих за плечами высшее образование, желательно техническое. Но это не обязательное требование, так как нам приходилось сталкиваться со случаями, когда представители гуманитарных профессий становились грамотными разработчиками мобильных приложений.
4. Опыт работы в области программировании должен составлять не менее трех лет, при этом не менее года кандидат должен посвятить мобильной разработке под ОС Android.
5. Разработчик мобильных приложений должен знать API социальных сетей, таких как Facebook, Twitter, Instagram. Уметь работать с API геосервисов, например, Google Maps, Яндекс.Карты. Это важно, поскольку функционал перечисленных API используется для создания практически любого приложения, как сервисного, так и e-commerce. Еще одно требование – хорошее знание английского языка, поскольку разработчику предстоит читать много технической документации на английском.
Кирилл Харьков, руководитель команды Android-разработки, Почта Mail.Ru
1. Разработчику, который хочет попасть в нашу команду, прежде всего понадобится уверенное знание Java – это основной язык, на котором он будет работать. Мы ждем доскональных знаний – вплоть до моделей памяти, синтаксических нюансов и четкого понимания того, что происходит «под капотом». Когда обычный пользователь касается дисплея смартфона и видит, как там все движется, раскрывается и выезжает, для него все это настоящая магия. Разработчик же обязан представлять, как это работает и почему именно так, а не иначе. Естественно, нужно знать саму платформу Android. Требуются базовые знания фреймворка и его компонентов. Обязательно знать принципы ООП и шаблоны проектирования.
2. Нужно знать и уметь применять все техники тестирования (unit-тестирование и так далее). IDE у нас обычная – AndroidStudio, которая с недавних пор попала под крыло Google. В настоящий момент этот редактор довольно стандартизирован, и из более-менее редко используемых плагинов можно назвать лишь Memory Analyzer.
3. У нас нет каких-то жестких требований к уровню образования, и на диплом мы обращаем внимание далеко не в первую очередь. Все зависит от практического опыта кандидата, от его знаний и навыков. Как показывает практика, сильный разработчик может прийти из непрофильного вуза или вообще не иметь законченного высшего образования – у нас есть и такие примеры, причем очень успешные.
4. Формальных требований к опыту у нас опять же нет. Я вот, к примеру, пришел работать в компанию с опытом чуть больше года. Все зависит от того, насколько качественно подготовлен человек и хватает ли у него знаний для решения наших задач. У нас достаточно высокие требования к пониманию принципов построения ПО. Нам нужно, чтобы кандидат хорошо знал все техники программирования и паттерны проектирования, которые на выходе позволят получить большое, сложное, работающее как часы приложение.
5. Потенциальному кандидату на место в нашей компании нужно осознавать масштабность задач, которые ему предстоит решать в будущем. Android-приложениями Mail.Ru Group пользуются миллионы – это, несомненно, повышает уровень ответственности. Человек должен иметь опыт оценки задач по сложности и времени выполнения, хорошо расставлять приоритеты, находить общий язык с сотрудниками из самых разных команд. Ведь у нас очень большая компания, и над одним продуктом могут работать люди из самых разных отделов и подразделений одновременно.
Дмитрий Воронкевич, Android Platform Team Lead, Badoo
1. Для Android-разработчика в первую очередь важна гибкость, умение быстро разбираться в новых технологиях, подходах и библиотеках. Android-разработка находится на передовой развития технологий, но далеко не каждая новая идея хорошо проявляет себя с течением времени. Надо не останавливаться на достигнутом, постоянно развиваться. Где-то проспишь – и все, твои конкуренты уже далеко впереди.
С другой стороны, нужно обладать терпением. Путь Android-разработчика лежит сквозь тернии медленного билда, не всегда стабильной среды разработки, постоянных перемен в интеграции с внешними сервисами (например, Facebook), которые с завидным постоянством ломают совместимости со своим SDK при каждом глобальном релизе.
Нужно понимать, что в любой отрасли сильно помогают базовые знания алгоритмов и структур данных. Обязательно знание Android SDK и набора библиотек от Google.
Важно хорошо и глубоко понимать, как работает Java. Многопоточность – это еще одна важная тема. Ее нужно хорошо понимать и уметь применять на практике. Как показывает мой опыт, это одно из самых слабых мест у мобильных разработчиков. Затем XML, нужно уметь его писать, читать и парсить с помощью библиотек. JSON и библиотеки по работе с ним. Нужно понимать data binding. На мобильных телефонах у нас не Oracle, но все же хорошо разбираться в том, как работают базы данных, какие запросы будут ресурсоемкими и почему. Плюс разработчик должен понимать, как работать с сетью, причем на разных уровнях: чем шире знания, тем лучше.
2. В Badoo мы пользуемся множеством общепринятых инструментов, таких как: Android Studio, Gradle, Git, shell, Jira, Teamcity, JaCoCo, HockeyApp и т.д.
Также у нас много внутренних утилит и сервисов. Например, у нас в реальном времени измеряется производительность самых важных экранов приложения для оценки оптимизаций и оперативного отслеживания проблем.
Вот еще пример: мы очень серьезно боролись с утечками памяти, в результате создали и выложили в Open Source целый набор утилит для этого: https://github.com/badoo/hprof-tools, https://github.com/badoo/android-weak-handler.
3. У нас нет жестких требований к образованию кандидата. Мы смотрим на реальные знания и практический опыт.
4. Мы предпочитаем кандидатов с реальным опытом, у которых в портфолио есть хорошие качественные приложения. С другой стороны, талантливый программист может пройти у нас собеседование, не имея внушительного опыта. Как раз сейчас у нас открыта такая вакансия: http://bit.ly/AndroidBadoo.
5. Мы в Badoo делаем качественный продукт и делаем его быстро. Мы ожидаем, что наши разработчики будут уделять особое внимание деталям, производительности, стабильности, потреблению памяти и работе с сетью.
Плюс вся наша мобильная разработка сидит в Лондоне, и мы ищем людей, которые готовы переехать в Великобританию. В свою очередь, мы активно помогаем им с переездом.
Подготовил Игорь Штомпель
Разработчик Android
З/п диапазон |
Город |
ИТ Телекоммуникации |
Промышленность Производство |
Строительство Управление недвижимостью |
Услуги B2B |
Продажи B2B |
Продажи В2С |
I |
Москва |
50 000 – 70 000 |
45 000 – 65 000 |
45 000 – 60 000 |
50 000 – 70 000 |
45 000 – 60 000 |
50 000 – 70 000 |
Санкт-Петербург |
40 000 – 55 000 |
40 000 – 53 000 |
40 000 – 50 000 |
40 000 – 55 000 |
40 000 – 50 000 |
40 000 – 55 000 |
Екатеринбург |
34 000 – 48 000 |
31 000 – 44 000 |
30 000 – 40 000 |
34 000 – 48 000 |
30 000 – 40 000 |
34 000 – 48 000 |
Новосибирск |
33 000 – 46 000 |
29 000 – 42 000 |
29 000 – 38 000 |
33 000 – 46 000 |
29 000 – 38 000 |
33 000 – 46 000 |
II |
Москва |
70 000 – 87 000 |
65 000 – 78 000 |
60 000 – 75 000 |
70 000 – 90 000 |
60 000 – 78 000 |
70 000 – 80 000 |
Санкт-Петербург |
55 000 – 70 000 |
53 000 – 62 000 |
50 000 – 60 000 |
55 000 – 72 000 |
50 000 – 62 000 |
55 000 – 65 000 |
Екатеринбург |
48 000 – 59 000 |
44 000 – 53 000 |
40 000 – 51 000 |
48 000 – 61 000 |
40 000 – 53 000 |
48 000 – 55 000 |
Новосибирск |
44 000 – 58 000 |
42 000 – 50 000 |
38 000 – 50 000 |
46 000 – 60 000 |
38 000 – 50 000 |
45 000 – 55 000 |
III |
Москва |
87 000 – 125 000 |
78 000 – 110 000 |
75 000 – 110 000 |
90 000 – 120 000 |
78 000 – 110 000 |
80 000 – 120 000 |
Санкт-Петербург |
70 000 – 100 000 |
62 000 – 90 000 |
60 000 – 90 000 |
72 000 – 100 000 |
62 000 – 90 000 |
65 000 – 93 000 |
Екатеринбург |
59 000 – 85 000 |
53 000 – 75 000 |
51 000 – 75 000 |
61 000 – 80 000 |
53 000 – 75 000 |
55 000 – 80 000 |
Новосибирск |
58000 – 81000 |
50000 – 72000 |
50000 – 72000 |
60000 – 78000 |
50000 – 72000 |
55000 – 78000 |
IV |
Москва |
125 000 – 170 000 |
110 000 – 150 000 |
110 000 – 140 000 |
120 000 – 150 000 |
110 000 – 150 000 |
120 000 – 150 000 |
Санкт-Петербург |
100 000 – 135 000 |
90 000 – 120 000 |
90 000 – 110 000 |
100 000 – 120 000 |
90 000 – 120 000 |
93 000 – 120 000 |
Екатеринбург |
85 000 – 120 000 |
75 000 – 100 000 |
75 000 – 95 000 |
80 000 – 100 000 |
75 000 – 100 000 |
80 000 – 100 000 |
Новосибирск |
81 000 – 120 000 |
72 000 – 100 000 |
72 000 – 92 000 |
78 000 – 100 000 |
72 000 – 100 000 |
78 000 – 100 000 |
Среднее |
Москва |
110 000 |
95 000 |
95 000 |
108 000 |
97 000 |
100 000 |
Санкт-Петербург |
89 000 |
75 000 |
75 000 |
89 000 |
78 000 |
80 000 |
Екатеринбург |
75 000 |
65 000 |
65 000 |
73 000 |
66 000 |
68 000 |
Новосибирск |
72 000 |
62 000 |
62 000 |
70 000 |
63 000 |
65 000 |
Типичный функционал:
- разработка мобильных приложений под Android;
- поддержка мобильных приложений;
- участие в отладке и тестировании приложений;
- размещение приложений в GooglePlay.
Портрет соискателя:
- 28 – средний возраст
- 97 – мужчины
- 81 – высшее образование
- 2,2 года – средний срок работы на последнем месте
- 36 – готовы к переезду
- 41 – на момент размещения резюме не имели работы
Зарплатный диапазон |
Требования и пожелания к профессиональным навыкам |
Диапазон I |
- Неполное высшее образование (техническое /ИТ)
- Знание HTTP, XML
- Знание принципов объектно-ориентированного программирования
- Знание СУБД
- Знание принципов клиент-серверной модели взаимодействия приложений
- Навыки практического применения шаблонов проектирования
- Знание Android SDK
- Умение оптимизировать и тестировать код
- Опыт работы с веб-технологиями
- Опыт программирования на Java – от 1 года
|
Диапазон II |
- Знание английского языка на уровне чтения технической документации
- Знание паттернов проектирования под Android
- Знание одной из систем поддержки командной разработки
- Опыт работы с системами контроля версий
- Опыт разработки мобильных приложений под Android
|
Диапазон III |
- Высшее образование (техническое / IT)
- Знание Android Guidelines
- Знание правил и требований к релизам в GooglePlay
- Портфолио завершенных опубликованных в GooglePlay приложений
- Опыт работы в команде разработчиков
- Опыт разработки многопоточных приложений
- Опыт разработки мобильных приложений под Android– от 2 лет
- Возможное пожелание: знание одного или нескольких дополнительных языков программирования: C/C++/ Python /Perl/Ruby
|
Диапазон IV |
- Опыт работы в start-up проектах
- Опыт разработки сложных пользовательских интерфейсов
- Опыт участия в разработке крупных проектов
- Опыт разработки мобильных приложений под Android – от 3 лет
|
Подготовила Валерия Чернецова, руководитель отдела аналитики SuperJob
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|