Стать Android разработчиком
Хочу создавать качественные, удобные и полезные мобильные приложения для людей, решающие их проблемы. В будущем устроиться в компанию, занимающуюся разработкой ПО или основать свой старта.
Goal Accomplishment Criteria
Создать несколько pet-проектов и приложений, разместить в GooglePlay
Personal resources
Время, знание основ программирования и ООП, начальные знания синтаксиса Ruby, Java-core, Python, JS, HTML, сайт startandroid.ru, различные сайты, книги и видеокурсы по Java и Android разработке, вера в себя и огромное желание учиться.
Goal ecological compatibility
Смена рода деятельности и возможно Фриланс. Цель позволит создавать свои интересные проекты, реализовывать свои идеи, зарабатывать хорошие деньги развивая свой мозг и обучаясь.
- 
                    
                    
Организовать рабочее место
- 
                                                                        
Скачать, установить JDK.
 - 
                                                                        
Скачать, установить Android SDK. Настроить среду разработки Android Studio или IDEA.
 - 
                                                                        
Скачать, установить и настроить эмулятор Genymotion
 - 
                                                                        
Скачать, установить Git и настроить работу с GitHub
 
 - 
                                                                        
 - 
                    
                    
Подтянуть знания в Java-core
- 
                                                                        
Прочитать книгу Head First Java. Авторы: Кэти Сиерра, Берт Бейтс (есть в наличии)
 - 
                                                                        
Прочитать книгу Java 8. Руководство для начинающих, 6-е издание. Автор: Герберт Шилдт (есть в наличии)
 - 
                                                                        
Пройти видео курсы от geekbrains.ru. Java 1 (есть в наличии)
 - 
                                                                        
Написать несколько программ для проверки знаний. (крестики-нолики, морской бой и т.д.)
 
 - 
                                                                        
 - 
                    
                    
Написать свое первое приложение
Написал, https://github.com/solandmedotru/RemindMeAbout
Залил на Google Play https://play.google.com/store/apps/details?id=ru.solandme.remindmeabout
Продолжаю поддерживать и обновлять, по мере обучения
- 
                                                                        
Создать свое первое работающие приложение (напоманание о праздниках с возможностью отправки поздравлений из базы)
 - 
                                                                        
Опубликовать приложение на Google Play
 - 
                                                                        
Получить отзывы и добиться 1000 скачиваний
 - 
                                                                        
Добавить рекламу в приложение и заработать первые 100 долларов
 
 - 
                                                                        
 - 
                    
                    
Изучить теоретические основы Андроид разработки
- 
                                                                        
Прочитать книгу Head First. Программирование для Android. Автор Д. Гриффитс, Д. Гриффитс (есть в наличии)
 - 
                                                                        
Пройти видео курсы от geekbrains.ru Профессия Андроид - разработчик. Уровень 1 (есть в наличии)
 - 
                                                                        
Пройти видео курсы от geekbrains.ru Профессия Андроид - разработчик. Уровень 2 (есть в наличии)
 - 
                                                                        
Просмотреть все видео на сайте startandroid.ru и fandroid.info (есть в наличии)
 - 
                                                                        
Пройти видео курсы от Тимура Батыршинова по Android разработке (есть в наличии)
 - 
                                                                        
Пройти видео курс от LoftSchool. Комплексное обучение разработке на Android. (есть в наличии)
 - 
                                                                        
Прочитать книгу Android. Программирование для профессионалов 2-е издание.
 - 
                                                                        
Прочитать книгу. Программирование для андроид 5. Самоучитель. Колиснеченко Д.Н.
 
 - 
                                                                        
 - 
                    
                    
Углубленное изучение Java
- 
                                                                        
Прочитать книгу Java 8. Полное руководство. Автор: Герберт Шилдт (есть в наличии)
 - 
                                                                        
Пройти видео курсы от geekbrains.ru. Java 2 (есть в наличии)
 
 - 
                                                                        
 - 
                    
                    
Еще один чек-лист знаний перед собеседованием
- 
                                                                        
Файл AndroidManifest.xml: зачем нужен, необходимые параметры, секции.
 - 
                                                                        
Структура проекта: assets, res, src, gen, libs. Что лежит в каждой папке, что должно лежать под версионным контролем, а что нет
 - 
                                                                        
Компоненты приложения. Activity, Service, BroadcastReceiver, ContentProvider.
 - 
                                                                        
Особенности запуска Activity и Service. Что такое Task, Activity Stack. Как принимается решение о запуске процесса Service.
 - 
                                                                        
ContentProvider, зачем нужен, как используется. Доступ и использование ContentResolver. Работа с курсорами. Помнить про managed cursors.
 - 
                                                                        
BroadcastReceiver: статические и динамические, механизмы вызова, lifecycle.
 - 
                                                                        
Межпроцессное взаимодействие. Что такое и зачем нужен Intent, как передавать информацию с его помощью, что такое Bundle и зачем нужен Parcel
 - 
                                                                        
Построение UI приложения. Что такое Layout и View, какие бывают типы layout'ов(4 штуки), зачем они применяются.
 - 
                                                                        
Хранение данных в платформе: 4 типа. Internal, External Storage, DB, SharedPreferences. Варианты использование, отличия.
 - 
                                                                        
Локализация. Встроенные средства платформы для локализации, моменты выбора локали.
 - 
                                                                        
Виджеты. Механизм создания виджетов, доступные средства UI в них. Что такое AppWidgetProvider.
 - 
                                                                        
Работа в фоне. Когда использовать Service, когда AsyncTask. Что такое AsyncTask, его связь с UI.
 - 
                                                                        
Модель безопасности в Android. Разрешения.
 - 
                                                                        
Использование телефонных средств: сенсоров, вибрации, GPS.
 - 
                                                                        
Новинки платформы: Loaders, Fragments, In-app billing.
 - 
                                                                        
Производительность в платформе: best practices. Неиспользование enums до 2.2, использование final и проч.
 - 
                                                                        
Поддержка старых версий платформы: доступ до функциональности через Reflection.
 - 
                                                                        
Собственные views: механизмы отрисовки, Canvas.
 - 
                                                                        
Состояния компонент: какие компоненты системы могут сохранять состояния(Activity и View), способы сохранения и восстановления состояний
 - 
                                                                        
Механизмы подписи приложений для публикации в Android Market.
 - 
                                                                        
Android NDK: вызов нативного кода
 - 
                                                                        
Фреймворки для разработки под различные мобильные OS: Titanium, PhoneGap и прочие.
 
 - 
                                                                        
 - 
                    
                    
Что я должен буду знать.
- 
                                                                        
Общая архитектура приложения. Компоненты приложения.
 - 
                                                                        
Интерфейс (Fragments, ActionBar, диалоги и прочее). Работа с анимацией элементов управления. Создание кастомных элементов управления.
 - 
                                                                        
Многопоточность (Threads + Handler, AsyncTask, runOnUiThread, post).
 - 
                                                                        
Работа с файлами.
 - 
                                                                        
Сеть. Сокеты. WebView.
 - 
                                                                        
Сервисы.
 - 
                                                                        
Google Maps и GPS (в перспективе возможно OpenStreetMap и MapKit Яндекса).
 - 
                                                                        
SQLite.
 - 
                                                                        
Протоколы. HTTP/HTTPS, JSON, XML, OAuth2, возможно protobuf.
 - 
                                                                        
API социальных сетей (ВКонтакте, Facebook, Twitter, Instagram, Flickr).
 - 
                                                                        
Создание виджетов.
 
 - 
                                                                        
 - 
                    
                    
Создать свое второе приложение (более сложное) с использованием клиент-серверных технологий
- 
                                                                        
Создать клиентскую часть (мобильное приложение)
 - 
                                                                        
Создать серверную часть (на Node.js, Ruby on Rails или на чем к тому времени я буду уметь писать)
 - 
                                                                        
Покрыть хотя бы 70% кода тестами
 
 - 
                                                                        
 - 
                    
                    
Что нужно знать и чем нужно уметь пользоваться
Английский язык на уровне чтенияПринципы ООП, java, jvm, garbage collector, Gradle, GitРазбираться и отличать друг от друга MVC, MVP и MVVMПамять. Как она устроена и как с ней работатьЖизненный цикл ActivityЖизненный цикл FragmentКонцепции Material DesignSupport Libraries- Dagger 2 — самый популярный фреймворк, реализующий Dependency Injection для Android
 - ButterKnife. Используется, когда нужно связывание полей и методов с Android views и когда лень копипастить findById
 Retrofit. Нужен для работы с Rest-API- Конвертер для json Moshi 
GSON Загрузчик изображений PicassoOkHttp- Библиотека RxJava
 - RxAndroid
 - Timber (удобное и умное логирование)
 Retrolambda. Позволяет использовать Java 8 лямбда-выражения- nosql-база данных Realm
 - обёртка над sqllite StorIO
 - обёртка над sqllite Cupboard
 - LeakCanary. Помогает отлавливать утечки базы данных
 
Приветствуется:
- Знание Kotlin / C++
 
 - 
                    
                    
Найти ментора, пройти стажировку и выбрать дальнейший путь развития
- 
                                                                        
Найти ментора (Гуру)
 - 
                                                                        
Пройти стажировку
 - 
                                                                        
Устроится на работу или уйти во фриланс (еще не решил)
 
 - 
                                                                        
 
- 4563
 - 13 March 2016, 12:16
 
Don't miss new posts!
Subscribe for the Goal and follow through to its completion