Большинство разработчиков Android принадлежит к так называемому поколению Y (средний возраст соискателя на эту позицию «Разработчик Android» - 27 лет). Не секрет, что у этого поколения свои взгляды на идеальную работу, а значит, и методы мотивации этих людей должны быть особыми. К тому же не стоит забывать, что на одну вакансию разработчика Android приходится меньше одного резюме, так что работодателям поневоле приходится подстраиваться под пожелания соискателей. Что по-настоящему интересует в работе разработчиков поколения Y, рассказывает рекрутинговый портал .


К основным отличительным чертам поколения Y с точки зрения их отношения к работе обычно относят:

1. Ориентация на быстрый результат: желание решать задачи, эффект от которых виден сразу.
2. Неформальность: стремление к неформальному стилю общению, неприятие жесткого дресс-кода, любовь к гибкому графику работы.
3. Привычка к обратной связи: желание быстро получить обратную связь от руководства, партнеров, клиентов и т.д.
4. Ориентация на содержательную, интересную работу, решение новых задач.

Уже из этого понятно, что большим конкурентным преимуществом компании как работодателя станет неформальная обстановка, свободный график, прозрачные и гибкие бизнес-процессы. Но есть и еще один момент, пожалуй, даже основной: возможность профессионального роста через решение новых, интересных задач, бросающих вызов специалисту. Однако совершенно очевидно, что словосочетание «интересные задачи» в вакансии само по себе не привлечет внимания специалистов: слишком уж шаблонно и обтекаемо. Что же можно посоветовать работодателям?

Хорошо дать ссылку на портфолио осуществленных проектов: так соискатель сразу оценит масштаб ваших разработок. Если в вашей компании работают опытные специалисты, делавшие крупные проекты или обладающие какими-то уникальными знаниями, это тоже хорошо бы упомянуть в вакансии. Безусловно, речь не идет о том, что раскрывать коммерческую информацию, но следует помнить, что желание работать в одной команде с IT-гуру может пересилить все материальные блага, предложенные вашими конкурентами.

Должностные обязанности разработчика Android

Разработка приложений под Android,
- тестирование приложений,
- поддержка приложений.

Зарплатные предложения и требования работодателей

Среднее зарплатное предложение для разработчика Android в Москве составляет 100 000 руб., в Санкт-Петербурге - 80 000 руб., в Волгограде - 45 000 руб., в Воронеже - 50 000 руб., в Екатеринбурге - 67 000 руб., в Казани - 50 000 руб., в Красноярске - 60 000 руб., в Нижнем Новгороде - 47 000 руб., в Новосибирске - 55 000 руб., в Омске - 57 000 руб., в Перми - 50 000 руб., в Ростове-на-Дону - 50 000 руб., в Самаре 50 000 руб., в Уфе - 50 000 руб., в Челябинске - 57 000 руб.

Пробовать силы в разработке приложений под Android могут соискатели с опытом программирования на Java не менее 1 года. В качестве начинающего разработчика Android работодатели хотели бы видеть специалиста со знанием принципов объектно-ориентированного программирования, СУБД, HTML, HTTP, XML, ранее работавшего с web-технологиями. Востребованы навыки практического применения шаблонов проектирования, умение оптимизировать и тестировать код. Предпочтительно высшее образование (профильное либо техническое). Зарплатные предложения для начинающих разработчиков Android в столице составляют от 50 000 до 70 000 руб., в Санкт-Петербурге – от 40 000 до 55 000 руб., в Екатеринбурге – от 35 000 до 45 000 руб., в Красноярске – от 30 000 до 40 000 руб.


Город Уровень дохода, руб.
(без опыта работы на данной позиции)
Москва 50 000 - 70 000
- Высшее / неполное высшее образование (техническое / IT)
- Знание HTML, HTTP, XML
- Знание принципов объектно-ориентированного программирования
- Знание СУБД
- Понимание взаимодействия приложения по модели клиент-сервер
- Навыки практического применения шаблонов проектирования
- Опыт работы с web-технологиями
- Умение оптимизировать и тестировать код
- Опыт программирования на Java от 1 года
Санкт-Петербург 40 000 - 55 000
Волгоград 22 000 - 30 000
Воронеж 25 000 - 35 000
Екатеринбург 35 000 - 45 000
Казань 25 000 - 35 000
Красноярск 30 000 - 40 000
Нижний Новгород 24 000 - 32 000
Новосибирск 28 000 - 40 000
Пермь 30 000 - 40 000
Омск 25 000 - 35 000
Ростов-на-Дону 25 000 - 35 000
Самара 25 000 - 35 000
Уфа 25 000 - 35 000
Челябинск 28 000 - 40 000

Вакансии для разработчиков Android со стажем работы от 1 года требуют от кандидатов опыта работы с системами контроля версий, знания Android SDK, нескольких языков программирования и систем поддержки командной разработки. Оклад программистов, соответствующих указанным требованиям, в Москве возрастает до 80 000 руб., в северной столице – до 62 000 руб., в Екатеринбурге – до 55 000 руб., в Красноярске – до 48 000 руб.

Город Уровень дохода, руб.
(с опытом работы от 1 года)
Требования и пожелания к профессиональным навыкам
Москва 70 000 - 80 000
- Знание Android SDK
- Знание одного или нескольких дополнительных языков программирования: C / C++ / Python / Perl / Ruby
- Знание одной из систем поддержки командной разработки
- Опыт работы с системами контроля версий
Санкт-Петербург 55 000 - 62 000
Волгоград 30 000 - 35 000
Воронеж 35 000 - 40 000
Екатеринбург 45 000 - 55 000
Казань 35 000 - 40 000
Красноярск 40 000 - 48 000
Нижний Новгород 32 000 - 38 000
Новосибирск 40 000 - 45 000
Пермь 40 000 - 46 000
Омск 35 000 - 40 000
Ростов-на-Дону 35 000 - 40 000
Самара 35 000 - 40 000 Уфа 35 000 - 40 000 Челябинск 40 000 - 45 000

В следующем зарплатном диапазоне востребован опыт разработки многопоточных и мобильных приложений. Стаж разработки под Android должен составлять более 2 лет. Дополнительным плюсом при трудоустройстве станет знание английского языка. Такие специалисты зарабатывают в Москве до 120 000 руб., в городе на Неве – до 95 000 руб., в Екатеринбурге – до 80 000 руб., в Красноярске – до 72 000 руб.

Город Уровень дохода, руб.
(с опытом работы от 2 лет)
Требования и пожелания к профессиональным навыкам
Москва 80 000 - 120 000
- Высшее образование (техническое / IT)
- Опыт разработки многопоточных приложений
- Опыт разработки мобильных приложений

Возможное пожелание: знание английского языка

Санкт-Петербург 62 000 - 95 000
Волгоград 35 000 - 53 000
Воронеж 40 000 - 60 000
Екатеринбург 55 000 - 80 000
Казань 40 000 - 60 000
Красноярск 48 000 - 72 000
Нижний Новгород 38 000 - 55 000
Новосибирск 45 000 - 67 000
Пермь 46 000 - 68 000
Омск 40 000 - 60 000
Ростов-на-Дону 40 000 - 60 000
Самара 40 000 - 60 000
Уфа 40 000 - 60 000
Челябинск 45 000 - 67 000

Наиболее высоким доходом вакансии хотят привлечь разработчиков сложных пользовательских интерфейсов, программирующих под Android более 3 лет. В качестве претендентов работодатели готовы рассматривать участников крупных проектов, имеющих портфолио собственных Android-приложений, опубликованных в Google Play. Максимальная зарплата разработчиков Android в Москве составляет 160 000 руб., в Санкт-Петербурге – 130 000 руб., в Екатеринбурге – 110 000 руб., в Красноярске – 100 000 руб.

Город Уровень дохода, руб.
(с опытом работы от 3 лет)
Требования и пожелания к профессиональным навыкам
Москва 120 000 - 160 000
- Знание английского языка
- Опыт разработки сложных пользовательских интерфейсов
- Опыт участия в разработке крупных проектов
- Портфолио собственных Android-приложений, опубликованных в Google Play
Санкт-Петербург 95 000 - 130 000
Волгоград 53 000 - 70 000
Воронеж 60 000 - 80 000
Екатеринбург 80 000 - 110 000
Казань 60 000 - 80 000
Красноярск 72 000 - 100 000
Нижний Новгород 55 000 - 75 000
Новосибирск 67 000 - 90 000
Пермь 68 000 - 90 000
Омск 60 000 - 80 000
Ростов-на-Дону 60 000 - 80 000
Самара 60 000 - 80 000
Уфа 60 000 - 80 000
Челябинск 67 000 - 90 000

Портрет соискателя

Типичным представителем профессии разработчика Android является молодой мужчина с высшим образованием. Женщин в данном, относительно молодом сегменте рынка труда, немного – всего 4%. Большинство соискателей должности разработчика Android – молодежь в возрасте до 30 лет (74%). 77% специалистов имеют высшее образование. 14% разработчиков Android свободно владеют английским языком.

Разработчик Android

Большинство разработчиков Android принадлежит к так называемому поколению Y (средний возраст соискателя на эту позицию «Разработчик Android» - 27 лет). Не секрет, что у этого поколения свои взгляды на идеальную работу, а значит, и методы мотивации этих людей должны быть особыми. К тому же не стоит забывать, что на одну вакансию разработчика Android приходится меньше одного резюме, так что работодателям поневоле приходится подстраиваться под пожелания соискателей. Что по-настоящему интересует в работе разработчиков поколения Y, рассказывает рекрутинговый портал .

Для того, чтобы написать свой первый софт, необходимо как минимум три вещи:

  • Среда разработки;
  • Эмулятор Андроид;
  • Сборщик кода в конечный установщик с расширением apk.

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

Этап разработки приложения и выбор инструментов

Для качественного написания приложений профессионалы в области программирования используют самые передовые технологии, а также хорошо зарекомендованные инструменты, используя которые можно добиться отличного результата. Но не стоит гоняться за самым новым софтом, так как в большинстве своих случаев нужен немного устаревший набор средств среды разработки, так как именно по ним есть учебный материал, который Вам будет крайне необходим. Например, запрос: скачать «Разработка приложений для android» выдаст ссылку на книгу Хашими С., в которой раскрываются все возможности и тонкости программирования, которые Вам предстоит встретить. Знакомиться с большим количеством литературы всегда полезно, так как Вы сможете узнать о разных подходах и путях программирования, выбрав для себя самый оптимальный.

Первым делом нужно завестись инструментом, которым Вы будете разрабатывать приложение. Это не что иное, как среда разработки приложений для android. Она должна отвечать достаточными требованиями функциональности и простоты именно для Вас, так как именно Вам предстоит заниматься написанием кода и проектированием конечного приложения. Чаще всего начинающие программисты выбирают один из двух путей: Visual Studio от компании Microsoft или Eclipse(Netbeans).

После выбора среды разработки обязательно нужно обзавестись эмулятором Android, используя который можно быстро и просто увидеть свой результат. Эмулятор — это не что иное, как надстройка над средой разработки, используя которую Вы сможете тестировать свое приложение как на реальном устройстве андроид. Главное ее преимущество, это то, что даже в случае краха приложения, ни одно устройства не пострадает. Поэтому в самом начале разработки первых приложений именно использование эмулятора рекомендуется всеми авторами.

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

Разработка приложений

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

Согласно статистике, большинство разработчиков всех уровней предпочитают только одну среду разработки. Это связано не только с ее универсальностью, но и хорошим функционалом, а также простотой и удобством разработки. Поэтому разработка приложений для android и eclipse — это два понятия, которые все чаще сливаются в одно. Так как именно благодаря этой студии, многие начинают только программировать и продолжают разрабатывать именно в ней от самым простых до проектов промышленного масштаба.

Написание хорошего софта компания-заказчик поручает чаще всего крупному разработчику или фирме, так как это гарантирует качественный результат в поставленные сроки. Поэтому первым делом, после того как Вы написали типичное «Привет android», разработка мобильных приложений продолжается путем наращивания Вами знаний в области применения различных библиотек и методов. Именно знание различных подходов поможет Вам выкрутиться с самых тяжелых ситуациях, благодаря чему Вы станете профессионалом в этой области.

Оправданность разработки и стоимости

Иметь собственное фирменное приложение для любой компании престижно. Поэтому разработка мобильных приложений android будет актуальной, пока пользователи и потенциальные клиенты компании будут пользоваться мобильной операционной системой компании Google, а с учетом того, что доля данной ОС около половины от общего рынка, то не стоит труда сделать вывод, что актуальность данной темы еще будет велика на протяжении многих лет.

Еще один важный параметр, это средства, которые будут потрачены на проект. Разработка приложений для android — стоимость такой услуги обычно зависит от масштабности и функциональности приложения, а также сроком разработки. Поэтому большинство компаний проводят тендер, благодаря которому отбирается разработчик или фирма.

Один раз написанное приложение при грамотном его сопровождении и разработке способно работать на всех устройствах, которые обладают минимальными системными требованиями для запуска приложения. То есть приложение способно работать как на обычном смартфоне, так и на планшете, а тем более на компьютере, который оснащен ОС Android. Именно эта тенденция заставляет многие компании обзаводиться собственным программным обеспечением.

Путь разработчика

Любой начинающий разработчик, который только освоил технологию и смог запустить сове первое приложение «Hello Android!», становиться junior developer. То есть человек, который имеет знания, но у него нет практического опыта непосредственной разработки серьезных приложений. Повысить свой уровень можно только практикой. Для этого достаточно устроиться в компанию, которая заинтересована в «доработке» новичков до нужного уровня.

Следующим шагом будет разработка приложения для андроид непосредственно в команде. Именно так Вы сможете достичь нужного уровня в короткое время, благодаря чему повысите свой рейтинг и наберетесь необходимого опыта. Не стоит стесняться спрашивать у коллег, так как если Вы выполняете все один проект, каждый будет заинтересован в конечном результате другого. Даже профессионалы иногда сталкиваются с проблемами и нуждаются в совете.

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

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

Имея необходимые знания и большой разнообразный опыт написания приложений, лишь немногие профессионалы выбирают путь самостоятельной разработки и принятия заказов. То есть открывают свое дело по разработке. Это скорее редкость, так как для реализации большинства приложений необходима команда, члены которой облают специализированными навыками в конкретной сфере. Поэтому один разработчик не сможет просто знать все.

Вывод

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

Что касается языка, то преимущество использовать именно Java, так как среда разработки и большинство компонентов являются бесплатными, благодаря чему у Вас всегда будет актуальная версия программного обеспечения. Кроме знания возможностей самой студии разработки, Вам необходимо владеть как минимум озами языка и основными понятиями объектно-ориентированного программирования.

Поэтому, если Вы приняли решение стать профессионалам своего дела, то Вам сразу стоит понять, что эта затея как минимум займет несколько лет, за которые Вы сможете стать именно тем, кого Вы хотите в себе видеть. Являясь опытным разработчиком, Вы получаете очень много преимуществ, таких как высокооплачиваемая работа, использование ИТ повсеместно, возможность работать удаленно и так далее.

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


Основы программирования
Азы программирования, основные термины и понятия

Видеокурс познакомит студентов с азами программирования, основными терминами и понятиями. Научит разрабатывать алгоритмы и даст реальный опыт создания веб-продуктов. Уроки включают обзор актуальных языков и направлений программирования, помогают студентам выбрать наиболее интересные для себя и предоставляют материалы и инструкции для дальнейшего профессионального развития.

Урок 3. Первая программа

Выбор языка программирования. Подготовка браузера. Программа «Hello, world!».

Урок 4. Переменные

Установка удобного редактора кода. Знакомство с переменными. Простой калькулятор.

Урок 5. Типы данных

Типы данных. Операции с разными типами данных. Преобразование типов данных.

Урок 6. Алгоритмы и блок-схемы

Алгоритмическое мышление. Визуальные блок-схемы.

Урок 7. Оператор ветвления if

Выбор вариантов в программе. Оператор ветвления if. Игра в загадки.

Урок 8. Логические операции

Комплексные условия выбора. Логические И, ИЛИ. Игра «Злые птицы».

Урок 9. Циклы do, while

Циклы do и while. Игра в русскую рулетку.

Урок 10. Цикл for

Цикл for. Финансовый калькулятор.

Урок 11. Массивы

Большие наборы данных и массивы. Игра в рулетку.

Урок 12. Функции

Функции. Подготовка к написанию игры «Black Jack (21)».

Урок 13. Игра «Black Jack». Часть 1

Написание полноценной игры. Основа – раздача карт и подсчет очков.

Урок 14. Игра «Black Jack». Часть 2

Завершение написания игры. Определение результатов и победителя.

Урок 15. Карьера программиста

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

Git. Быстрый старт
Основы работы с Git

Видеокурс дает опыт командной разработки с использованием Git. Учит «с нуля» организовать совместное хранилище кода и эффективно его использовать. Студенты осваивают git-клиенты с графическим и консольным интерфейсом, учатся контролировать выпуск версий программы и «откатываться» к предыдущим версиям. Подробно рассматриваются распространенные ошибки командной разработки: при слиянии веток, создании commit-ов, хранении исполняемых файлов в репозитории.

Урок 1. Назначение и возможности

Узнаем, зачем нужен git и какие возможности он открывает для программистов.

Урок 2. Базовые операции

Создаем хранилище кода, доступное всем участникам разработки по сети. Осваиваем базовые операции: Clone, Commit, Push, Pull.

Урок 3. Откат изменений кода

Учимся откатывать изменения в коде с помощью git. Осваиваем операции Discard, Revert, Reset.

Урок 4. Работа с ветками

Работа с ветками.
Параллельно разрабатываем несколько версий программы. Осваиваем операции Add branch, Checkout, Merge.

Урок 5. Конфликты

Учимся разрешать конфликты при слиянии веток.

Урок 6. Распространенные ошибки. Часть 1

Боязнь создания новых веток. Хранение исполняемых файлов в репозитории.

Урок 7. Распространенные ошибки. Часть 2

Ошибки при работе с ветками. Ошибки при создании commit-ов.

Урок 8. Pull Request. Работа с Open-Source-проектами

Осваиваем Pull Request-ы на примере работы с Open-Source-проектами.

Урок 9. Pull Request. Сдача домашних заданий.

Сдача домашних заданий в GeekBrains с помощью Pull Request.

Урок 10. Консольный git-клиент. Базовые операции

Осваиваем базовые операции в консольном git-клиенте.

Урок 11. Консольный git-клиент. Работа с ветками

Учимся работать с ветками в консольном git-клиенте.

Урок 12. Работа с версиями программы

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

Урок 13. Итоги

Подводим итоги проделанной работы.

Java. Быстрый старт
Основы языка Java на примере разработки небольшой игры

Видеокурс познакомит вас с одним из самых популярных, красивых, широко применяемых, надёжных языков программирования – Java. В первой части вы научитесь основам языка и научитесь писать простые консольные приложения. Далее мы расскажем, как можно буквально за несколько минут создать простую игру с графическим интерфейсом и не использовать при этом сторонние библиотеки. Цель курса: раскрыть некоторые возможности языка и показать, что Java – это просто и увлекательно. После успешного прохождения курса вы сможете использовать созданную нами модель для разработки собственных игр. Для эффективного освоения материала требуется минимальный опыт программирования, поэтому совсем начинающим разработчикам мы рекомендуем сначала пройти бесплатный онлайн-курс “Основы программирования”.

Урок 1. Знакомство с языком Java

Краткое описание языка; установка необходимых инструментов разработки; написание первой программы.

Урок 2. Переменные, типы данных, ветвления

Описание фундаментальных понятий языка Java на примере простого консольного калькулятора.

Урок 3. Циклы; игра «Угадай число»

Начинаем писать консольную игру «Угадай число», на примере которой будем продолжать изучение основ языка.

Урок 4. Методы

Демонстрация методов на примере усовершенствования игры «Угадай число».

Урок 5. Завершаем разработку игры «Угадай число»

Доводим код игры до конечного варианта.

Урок 6. Разработка игры «Поймай каплю». Часть 1

Создаём окно игры.

Урок 7. Разработка игры «Поймай каплю». Часть 2

Учимся загружать и рисовать картинки; реализуем игровой цикл.

Урок 8. Разработка игры «Поймай каплю». Часть 3

Ловим события мыши и заканчиваем разработку игры.

Урок 9. Итоги

Собираем проект в один jar-файл, чтобы его было удобно запускать без среды разработки; подводим итоги.

Java. Уровень 1. 1 месяц.
Java SE 8 и выше

Курс для начинающих разработчиков, тех, кто хочет быстро освоить основы объектно-ориентированного программирования (ООП) и научиться создавать собственные проекты. Главной особенностью курса является сочетание изучения теоретических основ языка Java и практических онлайн-тренировок под руководством преподавателя.

Урок 1. Java. Введение

Особенности платформы Java, инструменты разработчика, написание первой программы “Hello, World!”. Переменные, константы, примитивные типы данных и принципы работы с ними. Методы. Условные операторы.

Урок 2. Основные конструкции

Циклы, оператор switch, кодовые блоки, области видимости переменных, массивы.

Урок 3. Практика

Разбор практических примеров использования базовых элементов языка Java, работа с консолью.

Урок 4. Крестики-нолики в процедурном стиле

Применяем полученные знания для написания консольной программы “Крестики-нолики”.

Урок 5. Введение в ООП

Введение в объектно-ориентированное программирование. Классы, объекты, конструкторы, инкапсуляция и модификаторы доступа.

Урок 6. Продвинутое ООП

Углубленное изучение вопросов объектно-ориентированного программирования: наследование, полиморфизм.

Урок 7. Практика ООП и работа со строками

Разбор практических примеров применения ООП при разработке приложений. Работа с классами String, StringBuilder, StringBuffer.

Урок 8. Написание приложения с графическим интерфейсом

Основы работы с библиотекой Swing. Основное окно приложения, элементы управления и их компоновка. Написание приложения с графическим интерфейсом, сборка проекта.

Курс для тех, кто хочет укрепить свои знания в Java. На курсе ученики осваивают теорию и параллельно под руководством преподавателя с нуля разрабатывают полноценный проект на Java, получая таким образом практический опыт применения сложных объектно-ориентированных концепций, характерных для языка. Перед прохождением курса рекомендуется освоить курс для новичков: "Java. Уровень 1".

Урок 1. Объектно-ориентированное программирование Java

Углубленное изучение вопросов ООП в Java: основные принципы ООП, абстрактные классы, интерфейсы.

Урок 2. Исключения

Концепция обработки исключений, её сравнение с традиционным механизмом обработки ошибок, блок try-catch-finally, типы исключений, стандартные исключения в Java и их роль, выброс исключения из метода

Урок 3. Коллекции

Виды контейнеров в Java: List, Map, Set. Основные реализации и приемы использования, проход по элементам коллекции, сравнение и сортировка элементов коллекции

Урок 4. Продвинутые вопросы создания графического интерфейса

Создание собственных элементов управления. Работа с графикой. Обработка событий

Урок 5. Многопоточность

Потоки в Java, способы создания и управления состояниями потоков, основные проблемы при работе с потоками и синхронизация.

Урок 6. Работа с сетью

Сокеты. Написание простого эхо-сервера и консольного клиента.

Урок 7. Написание сетевого чата. Часть I

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

Урок 8. Написание сетевого чата. Часть II

Разработка интерфейса для клиентской части. Авторизация. Механизмы взаимодействия клиента и сервера.

Android. Уровень 1. 1 месяц.
Разработка под мобильные устройства

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

Урок 1. Введение.

Знакомство с Android. Перспективы. Как работает Android. Создание проекта. Activity.

Урок 2. Activity. Основы

Activity. Предназначение. Стек обратного вызова. Манифест. Жизненный цикл.

Урок 3. Activity. Смена ориентации экрана. Две Activity

Сохранение и восстановление переменных Activity. Паттерн «Одиночка». Приложение с двумя Activity. Запуск Activity с помощью Intent и OnClickListener. Передача параметров.

Урок 4. Android Studio. Ресурсы.

Стиль кодирования. Горячие клавиши. Отладка в Android Studio. Ресурсы.

Урок 5. Фрагменты

Фрагменты, их жизненный цикл, взаимодействие с activity. Стек обратного вызова. Менеджер фрагментов. Создание разных интерфейсов с использованием фрагментов.

Урок 6. Пользовательский интерфейс

Класс View. Макет. Контейнеры. Разметка. Обзор элементов и их свойств. Навигация.

Урок 7. Списковые элементы пользовательского интерфейса

Обзор ListView и RecyclerView. Принципы работы. Переопределение Adapter. Использование RecyclerView.ViewHolder, RecyclerView.Adapter, RecyclerView.LayoutManager.

Урок 8. Материальный дизайн

Элементы материального дизайна. CardView. TextInputLayout. CoordinatorLayout. ConstraintLayout. SnackBar.

Android. Уровень 2. 1 месяц.

Вы уже имеете базовые знания архитектуры операционной системы Android? Но Android SDK содержит системные службы, поставщики контента, базу данных и много других интересных вещей, которые позволят вам эффективно использовать аппаратные и программные возможности платформы. На втором уровне мы будем учиться использовать SDK, чтобы не изобретать ещё раз колесо. Наша цель научить вас создавать приложения, ориентированные на пользователя.

Урок 1. Материальный дизайн. Меню. Навигация по приложению

Материальный дизайн. Menu, AppBar, ActionBar и ToolBar. Navigation Drawer. Темы, атрибуты тем, свои стили.

Урок 2. Жизненный цикл View. Создание View. Вызов телефонного номера. Датчики

Жизненный цикл View. Создание Custom View на конкретном примере. Краткий обзор телефонии, работа с сенсорами.

Урок 3. Многопоточность

Многопоточность в Android. Thread, AsyncTask на примере загрузки http-страницы. Handler. Альтернативы AsyncTask. Service. Методы разгрузки главного потока. Синхронное и асинхронное выполнение.

Урок 4. Интернет. Сохранение настроек и состояний приложения

HTTP-протокол. HTTP-запросы с помощью HttpUrlConnection. OkHttp. Shared preferences.

Урок 6. Работа с Интернетом через Retrofit. Библиотеки Gson и Picasso

Продвинутая работа с сетью: Retrofit, парсинг json, библиотеки Gson и Picasso. Примеры работы с сетью и открытыми API (погодный сервер).

Урок 7. Базы данных. Принцип работы Content Provider

База данных SQLite: создание, обновление и подключение. Демонстрация работы с Content Provider.

Урок 8. Широковещательные сообщения и Intent Filter. Push-уведомления

Broadcast Receiver и Intent Filter. Push-уведомления. Пример с определением, открыто ли приложение.

Урок 9. Геолокация и GoogleMaps API. Публикация приложения на Google Play

Позиционирование и GoogleMaps API. Публикация приложения в Play Store. Как загружать приложения в маркет. Версии приложения, локализация и другие атрибуты приложения, необходимые для распространения.

Урок 10. Консультация с преподавателем

Android. Уровень 3. 1 месяц.
Профессиональная разработка приложений

YouTube, Facebook, VKontakte, Google Photos, Google Keep, Instagram - приложения этих сервисов являются "клиент-серверными". Проще всего понять этот термин можно так: они обращаются куда-то за какими-либо данными и отображают их на экране в удобном для пользователя виде. Курс даёт актуальные знания и практические навыки разработки клиент-серверных приложений. Мы также рассмотрим популярные программные решения и научимся тестировать созданное с нуля клиент-серверное приложение.

Урок 1. Понятие “архитектура приложения"

Шаблон проектирования MVP; библиотека Mosby; как можно и нужно проектировать архитектуру приложения.

Урок 2. Щепотка реактивности в вашем проекте

Реактивное программирование, реактивная лапша; введение в rxjava - как красиво и без головной боли работать с асинхронными задачами и не только с ними.

Урок 3. Приведение кода приложения в порядок

Retrolambda, Butterknife, Support Annotations и инструменты “контроля качества” Checkstyle, Findbugs, PMD; их корректная настройка.

Урок 4. Взаимодействие с сервером

Варианты реализации взаимодействия с сервером. Взаимодействие с ним без головной боли - использование библиотеки retrofit. Преобразование серверных данных в объект.

Урок 5. Консультация с преподавателем

Урок 6. Модный и популярный Realm

Работа с базой данных Realm; как связать её с тем, что мы уже имеем; плюсы и минусы её использования; почему нельзя использовать какое-либо программное решение в проекте, в первую очередь ориентируясь на его популярность.

Урок 7. Dependency Injection и dagger 2.

Коротко о Dependency Injection; использование библиотеки dagger2: почему эти инструменты использовать круто.

Урок 8. Тестирование кода

Покрытие тестами в целом; почему это важно; что, как, чем и зачем нужно тестировать; в каком случае это может быть бессмысленно.

Обсудим эффективный набор инструментов, которые можно использовать в проекте; зачем это надо и что улучшает каждый в отдельности; использование и принцип работы инструмента Proguard, сервиса Crashlytics, библиотекb Leakcanary; некоторые решения, которые помогут улучшить приложение.

«Что требуется от Android Dev?» – вопрос из категории FAQ. Я работодатель и в этой статье расскажу, каким должен быть Junior Android разработчик.

Хотите устроиться в качестве Junior? Есть несколько вещей, которые я от вас жду. Разумеется, требовать особенно углубленных знаний по ним я не буду, но хочу видеть, что вы заинтересованы в этой области и учитесь, совершенствуя уже имеющиеся навыки.

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

На первый взгляд алгоритм кажется сложным:

Но я и не жду, что Junior Android разработчик знает все наизусть. Важно лишь, чтобы вы понимали, за что отвечают методы onCreate, onPause, onResume и onDestroy, что их вызывает и каков результат работы. В противном случае рекомендую ознакомиться с официальной документацией. Если же вы приведете пример того, как жизненный цикл может привести к утечке памяти, я буду действительно впечатлен.

Фундамент любого приложения. Существует 4 основных компонента:

  • BroadcastReceiver;
  • Service;
  • Activity;
  • Content Provider.

Каждая из этих составляющих играет важную роль в создании Android-приложений. Зачастую вам даже не придется использовать все компоненты в одном ПО (например, я за всю свою профессиональную карьеру ни разу не написал ContentProvider), но мне бы хотелось, чтобы кандидат на должность понимал их назначение и знал, где они необходимы.

Не забывайте и об : ваша работа должна выделяться.

Параметры сохранения

Есть несколько вариантов сохранения данных в программировании на Андроид, и в каждом из них есть свои плюсы и минусы. На сайте Android Developer вы найдете полезное руководство, в котором подробно изложен принцип работы каждого типа сохранения, и я хочу видеть, что вы помните их и хотя бы в общих чертах понимаете, для чего используется тот или иной вариант.

Сети

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

Базовые знания о REST обязательны, и если вы не умеете делать простые GET и POST запросы из Android-приложения, следует вернуться к базису. Почти любое приложение, которое приходит мне на ум, способно делать REST-запросы, и это является главным в выборе специалиста. Volley для Android станет отличным началом для тех, кто хочет изучить основы, вот только вы очень быстро поймете, что данный способ взаимодействия с сетью уже устарел.

Таким образом, если вы отдадите предпочтение альтернативному варианту в виде Retrofit, вы значительно увеличите свои шансы получить должность. Также есть другие варианты создания сетей на Android, однако все они довольно узконаправленные. Retrofit же необычайно прост в использовании, хорошо сочетается с гибкостью OkHttp и регулярно получает обновления в виде замечательных функций от команды Square.

Кроме того, знания о сереализации оказались бы весомым плюсом. Опыт работы с Moshi, Gson, Jackson и аналогичными библиотеками действительно важен, поскольку в 2017 году пора забыть о том, чтобы вручную вытаскивать данные из JSON.

Android разработчик vs Android Studio

Данная IDE преодолела большой путь, учитывая, что первый запуск был осуществлен несколько лет назад, в те времена, когда все активно юзали Eclipse. Даже в Junior-разработчике я бы хотел видеть доказательства того, что он знаком со средой программирования Android Studio. Исключительно ручной ввод данных – признак скудного опыта. К тому же, это занимает уйму времени, а потому неэффективно. Мне нравится, когда люди используют горячие клавиши для быстрого ввода. В перечне моих тем для собеседования есть и вопрос о том, какие комбинации клавиш наиболее часто использует кандидат.

Говоря простым языком, я не ожидаю от вас уровня гуру, но ориентировка в инструментарии Android Studio на должном уровне продемонстрирует ваш неподдельный интерес к работе. Знание же хотя бы нескольких комбинаций из этого перечня сделает вас особенно продуктивным, а парное программирование – максимально легким.

Ничего страшного, если вы все еще используете IntelliJ IDEA, но если вы до сих пор работаете с Eclipse… Скажем, мне было бы любопытно узнать, почему вы предпочитаете именно эту среду разработки.

Git

Еще один важный момент. Для меня удивительно, что в наши дни некоторые кодеры работают без использования VCS. Если вы не используете Git прямо сейчас, пора начинать. И хоть изучить эту систему контроля версий непросто, результат приложенных усилий не заставит себя ждать. Да, сложно оценить все преимущества системы, если вы до этого времени работали самостоятельно. Но вы их обязательно увидите, когда в процессе разработки приложения допустите существенную ошибку и захотите вернуться к тому состоянию программы, когда она еще работала. Вам нужно просто начать, и вы непременно освоите Git.

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

Паттерны

Шаблоны проектирования не так важны, и, уверен, многие их используют, даже не догадываясь, что это и есть те самые паттерны. Но если вы знаете Builders, Singletons и Factory Methods, а также хорошо осведомлены, где их можно использовать (и даже знаете, где найти пример в Android SDK) – это огромный плюс для вашего резюме.

Даже если вы только слышали о «Банде четырех» (GoF) и «Effective Java» Джошуа Блоха, это также дополнительные баллы для вас. Кстати, говоря о баллах:

Бонусы

  • модульное тестирование и понимание, почему тесты на Android могут быть настолько сложными;
  • наличие хотя бы одной из классических книг по программированию;
  • вы «играли» с другими языками, в том числе с Kotlin;
  • в Play Store загружено хотя бы одно ваше приложение.


Прочее

Конечно, есть и другие навыки, которые мне хотелось бы видеть в практике кандидата на такую должность, как Junior Android разработчик.

На мой взгляд, роль этой категории программистов заключается в том, чтобы выучить как можно больше и как можно быстрее для качественного вклада в разрабатываемый продукт. Грубо говоря, Junior выполняет изначально простую работу, которая постепенно погружает его все глубже и глубже в «тему», взращивает уверенность и навыки профессионального разработчика.

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

И самое главное: вам должно это нравиться. Моя профессиональная деятельность включает 6 лет, а я до сих пор словно впервые волнуюсь, когда вижу обновление от команды Android. И всякий раз устанавливаю далеко не идеальную альфу, чтобы просто поковыряться в ней и узнать обо всех плюсах обновления.

Android – это новое слово в современном мире, и я просто счастлив, что могу участвовать в развитии данной отрасли. Если вы также в этом заинтересованы и можете поставить немало галочек напротив перечисленных мною пунктов – будьте уверены, любой адекватный работодатель будет рад взять вас на такую должность, как Junior Android разработчик.