Умный дверной глазок. Выбираем электронный глазок с датчиком движения
Вакансия: разработчик мобильных приложений для ОС 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 |
|
Диапазон II |
|
Диапазон III |
|
Диапазон IV |
|
Подготовила Валерия Чернецова, руководитель отдела аналитики SuperJob
Вконтакте
Недавно в продаже появилось забавное устройство - электронный дверной глазок, устанавливающийся на место штатного глазка в любую дверь. Устройство так и называется «ГлазОК». Стоит около 3500 рублей.
Глазок состоит из двух частей - внешней и внутренней.
На внешней части камера, кнопка звонка, светодиод инфракрасной подсветки и датчик освещённости.
Внешняя часть крепится изнутри с помощью пластины и двух винтов.
Шлейф подключается к плате внутренней части.
И она защёлкивается на выступах крепёжной пластины. На дверь, обитую винилискожей, как у меня, установить внутренний блок довольно сложно. Оказалось что проще это сделать, не устанавливая заднюю крышку.
Изображение посетителя показывается на экране при нажатии большой кнопки на внутреннем блоке или при нажатии кнопки звонка на внешнем (при этом ещё и раздаётся громкий звонок, в настройках можно выбрать один из четырёх рингтонов). Экран включается через 4 секунды после нажатия кнопки. Это довольно долго и не очень удобно.
При нажатии кнопки звонка или повторном нажатии кнопки на внутреннем блоке изображение записывается на карту памяти MicroSD. При дополнительных нажатиях кнопки на внутреннем блоке записываются дополнительные кадры. Размер картинки 320x240 точек, формат JPG. ГлазОК может записывать не только фото, но и видео (3, 5 или 10 секунд), но я в этом не вижу особого смысла.
В устройстве установлена карточка на 128 мегабайт. Этого вполне достаточно, ведь размер каждой картинки составляет в среднем шесть килобайт и на карту поместится около двадцати тысяч изображений. Для каждой даты создаётся отдельная папка, в неё помещаются файлы, имя которых формируется из даты и времени съёмки.
Угол обзора камеры существенно уже, чем у обычного глазка. Вот так выглядело изображение в обычном глазке.
А это кадр с карты памяти электронного глазка.
Но угол обзора и не стоило делать больше - на картинках не было бы видно лиц. Как видно на картинке, изображение темновато. ИК-подсветка есть, но включается она только в темноте. Если заклеить датчик небольшим кусочком чёрной изоленты, инфракрасная подсветка включается всегда, при этом картинка выглядит так.
Устройство питается от трёх «пальчиковых» батареек АА. Я измерил потребляемый ток.
При показе изображения с камеры ГлазОК потребляет 120 ма, при просмотре картинок и настройках - 70 ма, в дежурном режиме - 1.4-1.5 ма. Таким образом хороших алкалиновых батареек хватит на 2.5-3 месяца. При желании глазку можно смастерить внешнее питание из зарядки от любого мобильного телефона.
Для просмотра картинок и управления внизу корпуса есть три кнопки - влево, вправо и ОК. В качестве кнопки «назад» используется большая центральная кнопка.
Я снял небольшое видео, демонстрирующее работу глазка:
В заключение плюсы и минусы устройства «ГлазОК»:
Плюсы:
Устанавливается на место обычного глазка за пять минут
Не требует внешнего питания
Записывает изображения на карту MicroSD
Функция звонка
Инфракрасная подсветка в темноте
Минусы:
Очень неудобно менять батарейки и извлекать карту памяти
Для посетителя не очевидно, что маленькая кнопка на глазке - звонок
Невысокое качество изображения, низкое разрешение картинок на карте
Высокая цена
чтобы вы всегда были в курсе самого интересного.