Как именно развиваться начинающему 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 месяца, никакой работы, никаких гулянок, никаких передышек, абсолютно ничего, кроме изучения.
Скорее всего, кто-то потратил год, полтора на изучение Java/Kotlin, но я думаю что в основном сроки увеличиваются из-за основной работы если она есть или из-за того что частично забивали на обучение и возвращались к этому спустя какое-то время.
Лично у меня ушёл почти год на мой первый язык. И я тогда не занимался вообще ничем другим, а забивал только на учёбу в школе. Из моего окружения нет никого, кто управился бы быстрее, чем за полгода, независимо от стека. Впрочем, как и тех, кто провозился больше года. Четыре месяца с нуля - это очень амбициозная цель, как мне кажется.
dev02, потому что программист это не дворник. Нужна склонность. Это должно быть интересно. А прошерстить вакансии, увидеть заманчивую ЗП и стать программистом - так вряд ли прокатит.
dev02, если бы это было твое - то ты сейчас не рассуждал о том что будешь делать когда-то в сентябре, а изучал что-то уже сейчас. Отговорки вида "нет времени" - это фигня, время на что-то от чего тебя прет всегда можно найти, спать меньше как самое простое.
Забавно, не одним пользователем, не был предоставлен хоть какой-либо ответ, который можно воспринимать как рекомендацию.
Поумничать и за счет "новичков" пытаться показать свои яйца, и поднять свою самооценку, глупо.
На данном сайте, разные люди, среди которых как опытные разработчики с опытом работы 40 лет из 30, так и такие как я.
Мне следовало хорошо погуглить и не ждать вашего ответа, действительно. Но, если какой-нибудь человек, такой же как и я, будет гуглить и когда-нибудь наткнется на этот вопрос, у него уже будет примерное представление "Что и как?!". Ведь когда-то, и вы гуглили и учились, натыкались на вопросы в которых были содержательные ответы, рекомендации.
если какой-нибудь человек, такой же как и я, будет гуглить
и он найдет уже существующие сто ответов
Ведь когда-то, и вы гуглили и учились, натыкались на вопросы в которых были содержательные ответы, рекомендации.
ну да, на твои вопросы уже и так дохрена ответов, поэтому странно задавать в сто первый раз один и тот же вопрос
В табличку выписал основные требования к разработчику, всех уровней (Junior, Middle, Senior).
а можешь показать что нашел? всегда видел одно и тоже в описании вакансии
кстати есть целые книги, видосы по подготовке к собесам, еще больше книг по андроид программированию, и там даны основные темы и следовательно программа
А какую ты хочешь рекомендацию? Как за 4 месяца пересобрать мышление? Увы, это нереально. Есть конечно истории, как люди и за 3 месяца с полного нуля работу находят, но во первых - каким путем? Во вторых, а не копирайт ли эти истории сотрудниками курсов, или чего-то подобного? В третьих - это обычно фронтэндеры. Да даже если и так - а долго они на работе задерживаются? Ты пойми, что чтобы стать разработчиком, нужно перестроить свое нестрогое человеческое мышление, в мышление строгое - аналитическое. Тут нельзя дать конкретных советов, как это сделать. Это приходит со временем упорного труда. И по факту тебе ужа дали несколько дельных советов. Учись и пиши код. Нет серебрянной пули, хоть некоторым по началу это не очевидно. Они думают, что люди по ту сторону монитора не совершают ошибок в коде, что их код хорошо организован в 100% случаев, что ими проблемы решаются на раз два. Нет. Человек с опытом, так же тупит над задачей которую он еще не делал ранее, так же делает банальные ошибки, так же говнокодит. Просто он упорно двигается дальше, и доводит дело до конца, потому что иначе нельзя, это и есть профессионализм. Стальные нервы, сильная воля и желание, вот и весь дельный совет.
Я до этого не додумался, искать именно как роадмап. Надеюсь Александр Прохорович меня простит, и я не сильно обижу других (отмечу этот ответ решением). Но эта ссылка представляет из себя больше, чем любой другой набор слов. Спасибо Вам!
Я сам прошел этот путь и вот уже неделю работаю андройд-разработчиком. Честно скажу - 4 месяца это слишком мало. Слишком! Мне потребовалось год и два месяца, чтобы найти первую работу в этом направление. Но в любом случае, удачи вам!
LukyanovPA, Я мельком глянул роадмап, и да, согласен, я не совсем трезво оценил все.
Значит, меняем план.
Мне не хотелось бы поверхностно и торопливо учиться.
Поздравляю Вас с успешным трудоустройством, вы молодец(без сарказма). Это действительно круто. Очень надеюсь, когда-нибудь такое написать где-нибудь в ответах или комментариях :).
Если у вас есть база в логическом мышлении, составлению алгоритмов, то вкурить логику программирования вам будет проще. Нет, я не говорю про идеально умение нахождения асимптомики и прочих вещей, а именно скажем так - мышление программиста, абстрактное мышление. За 4 месяца можно освоить язык без проблем. Фреймворки и либы это тоже не проблема. Проблема именно приобрести то самое мышление которое сделает так, что пункты выше перестанут быть проблемой. ИМХО за 4 месяца при полном нуле ваша цель нереальная.
На счет технологий вы сильно распылились. Возьмите срез по 40-50 вакансиям вы найдете core в хард скилах. Это Java, Android SDK и что-то там еще, что используется для разработки под ведро. В остальном каждая вакансия будет уникальна. Кто-то использует одни либы для тестрирования, кто-то другие и так со всем. Умение на ходу разобраться это часть профессии.
Порог входа в профессию сильно поднялся за последнее время, а требования в вакансиях часто крайне специфичные и плохо пересекаются.
Если хотите начать - сфокусируйтесь на базе - Java, SQL, Android SDK, алгоритмы, умение решать реальные задачи. Остальное, чего не хватит, либо сами поймете по ходу изучения, либо на работе подскажут и научат. Этих знаний хватит, чтобы выйти на конкурентный уровень.
И еще - прочитайте расшифровку всех выбранных Вами терминов, а то там все вперемешку, те же понятия MVP и MVC изучаются за пару часов.
Денис Загаевский, если вы даёте ответ, комментарий и являетесь куратором тега, будьте любезны, проявите хоть немного уважения.
Ведёте себя как троль.
Да ещё и Senior помидор, стыдно.
dev02, не андроид сеньор-помидор, но с Денисом согласен, на первый взгляд кажется проще некуда, на практике могут быть затупы. Умейте воспринимать точку зрения людей, не совпадающей с вашей...
Araya, никто не говорил что будет легко и просто.
Но, вместо того, чтобы делится опытом :) тут иной раз детский сад.
Пока приходили ответы, я и сам загуглил.
И понял одно, гуглить нужно на английском. Русское сообщество...это что-то.
dev02, нет, я просто высказываю своё мнение, и задаю вопросы, не вижу тут никакого троллинга. MVP и MVC не изучаются за часы, это факт.
Для того, чтобы стать хорошим разработчиком, нужна склонность, определенный склад ума, и куча времени, это тоже факт.
Вопрос о том, почему именно андроид, был абсолютно серьёзным.
Если тебе прям сильно интересно, помидор или не помидор, я могу тебе рассказать, что я старший разработчик в мобильных Яндекс.Картах. Я 10 лет в деле, и до этого я ещё лет 5-6 программировал в качестве учёбы.
Что я могу тебе (и таким как ты, которые тут появляются раз в месяц стабильно) порекомендовать? Пиши код. Не смотри на зарплаты, ты их не скоро начнёшь получать. Если у тебя есть время сидеть тут и задавать банальные вопросы, но "за программирование как возьмусь в сентябре, ууух", у меня для тебя плохие новости. Это значит, что тебе интересно не программирование, а зарплаты в программировании. И с таким подходом ничего хорошего из этой затеи с большой вероятностью не выйдет. Программист всегда учится. Постоянно, то есть.
Денис Загаевский, вот сейчас, нормальный ответ.
Учитесь.
Молодец что работаете приличное время в Яндексе, не каждому удается.
Касательно денег...ну тут не совсем так. Я понимаю, что буду получать от 40-60 тысяч примерно год (г.Москва).
Моя зарплата, куда ниже вашей(хоть я и не люблю считать чужие деньги).
Чтобы вы понимали, я готов рискнуть и жить в проголод некоторое время. На текущий момент, зарплата 105 тысяч на руки, и я собираюсь бросить все :) ради идеи.
И у меня нет какой-то почвы(запаса денег или собственной квартиры), как то так.
Денис Загаевский, что для человека знакомого с ООП и организацией кода, знакомого с понятием абстрагирования может занять дольше двух часов в понимании MVC, MVP, MV* ?
Серьезно, это не шутка, реально хотелось бы услышать ответ, узнать для себя что-то новое.