Как именно развиваться начинающему Android разработчику?
==========================================================

 Привет, друзья.  

  

Я прошерстил несколько вакансий на позицию Android разработчика.  

В табличку выписал основные требования к разработчику, всех уровней (Junior, Middle, Senior).  

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

Срок у меня примерно 4 месяца (не больше).  

Бэкграунда в программировании никакого. Знаю только SQL на среднем уровне.  

  

Ниже список требований к Android разработчику, от разных компаний: Сбер, Билайн, LinguaLeo, Okko.  

В каждой из вакансий есть какие-то уникальные требования и есть общие.  

Поехали!  

Kotlin, Java, RxJava, Dagger, MVP, MVC, MVVM, Android SDK, Rest, Json, UI, Room, Realm, Coroutines, Retrofit + OkHttp, Glide,  

Moshi, GSON, GOF, SOLID, KISS, DRY, YAGNI, Android NDK, Unit и Integration тесты, Знание ООП и шаблонов проектирования(Patterns), CI/CD  

  

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

Скорее всего, кто-то потратил год, полтора на изучение Java/Kotlin, но я думаю что в основном сроки увеличиваются из-за основной работы если она есть или из-за того что частично забивали на обучение и возвращались к этому спустя какое-то время.  

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

[https://github.com/ermolnik/android\_roadmap/blob/m...](https://github.com/ermolnik/android_roadmap/blob/main/README.md) 

 Если у вас есть база в логическом мышлении, составлению алгоритмов, то вкурить логику программирования вам будет проще. Нет, я не говорю про идеально умение нахождения асимптомики и прочих вещей, а именно скажем так - мышление программиста, абстрактное мышление. За 4 месяца можно освоить язык без проблем. Фреймворки и либы это тоже не проблема. Проблема именно приобрести то самое мышление которое сделает так, что пункты выше перестанут быть проблемой. ИМХО за 4 месяца при полном нуле ваша цель нереальная.  

На счет технологий вы сильно распылились. Возьмите срез по 40-50 вакансиям вы найдете core в хард скилах. Это Java, Android SDK и что-то там еще, что используется для разработки под ведро. В остальном каждая вакансия будет уникальна. Кто-то использует одни либы для тестрирования, кто-то другие и так со всем. Умение на ходу разобраться это часть профессии. 

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

  

Если хотите начать - сфокусируйтесь на базе - Java, SQL, Android SDK, алгоритмы, умение решать реальные задачи. Остальное, чего не хватит, либо сами поймете по ходу изучения, либо на работе подскажут и научат. Этих знаний хватит, чтобы выйти на конкурентный уровень.   

  

И еще - прочитайте расшифровку всех выбранных Вами терминов, а то там все вперемешку, те же понятия MVP и MVC изучаются за пару часов. 

 Забавно, не одним пользователем, не был предоставлен хоть какой-либо ответ, который можно воспринимать как рекомендацию.  

Поумничать и за счет "новичков" пытаться показать свои яйца, и поднять свою самооценку, глупо.  

На данном сайте, разные люди, среди которых как опытные разработчики с опытом работы 40 лет из 30, так и такие как я.  

Мне следовало хорошо погуглить и не ждать вашего ответа, действительно. Но, если какой-нибудь человек, такой же как и я, будет гуглить и когда-нибудь наткнется на этот вопрос, у него уже будет примерное представление "Что и как?!". Ведь когда-то, и вы гуглили и учились, натыкались на вопросы в которых были содержательные ответы, рекомендации.