Программирую на всяком-разном 30 с лишним лет, пишу под Андроид с самого его начала - начал незадолго до того, как приобрёл
HTC A3288 Tattoo, почти 10 лет уже как.
Не имею опыта работы, но понимаю как работает: Dagger, RxJava2, Moxy, разнообразное юнит-тестирование и всякие либы поменьше. Ничего не помню наизусть, даже методы класса Object. Имею смутное представление о том, как работает многопоточность, какие там есть виды списков и в душе не понимаю, как устроено хэширование объектов. Без IDE с подсказками и онлайновой помощи глух и слеп как котёнок.
Без работы не сижу. Считаю себя успешным.
Постараюсь сообщить минимальный набор, который помогает мне и, надеюсь, поможет вам найти себя, работу и всё, что пожелаете. Это всё - очевидные вещи, но, возможно, вы увидите что-то новое.
* В первую очередь, необходимо иметь и культивировать четыре вещи: здравый смысл, уверенность в себе, внутреннюю свободу и аккуратность. Даже если вы ничего не знаете сейчас, вы должны осознавать, что узнаете это всё потом. И то, лишь в случае, если считаете необходимым. А благодаря аккуратности вы будете понятны большему числу коллег.
* Поскольку библиотек с дублирующейся направленностью пруд пруди, важнее знать принцип работы, а не какую-то конкретную библиотеку.
* Вы должны понимать, что все эти Dagger, RxJava и прочие Moxy - тупо библиотеки тупо пацанов, которые сидят в трусах перед компами и всё такое. То есть, изначально это всё - нонконформистская прогрессивная адова самописуха с присущими ей концептуальными и арфогрофичесскими ошибками, которая в нечастых случаях превращается в продукт примерно корпоративного масштаба. Потому, надо стараться не переоценивать их значимость на вегетативном уровне.
* Держитесь корней. То есть, за корни. Ну, в общем, за JetPack, AndroidX и всё, что выдумал Google. Это основное и самое важное.
* Старайтесь обходиться минимумом зависимостей.
* Кроссплатформа - это совсем другая индустрия. Надо определиться, нативщик вы или кроссплатформа.
* Обычное трудоустройство напоминает обучение вождению в автошколе: вы учите кучу всего, что требуется, потом сдаёте экзамен, получаете водительское удостоверение и через год помните только правило правой руки и полдюжины дорожных знаков. Ездите по городу по привычке, страдаете от того, что где-то повесили новый или убрали старый знак.
* Устроиться на работу при наличии свободного времени можно очень просто: нужно найти достаточно большую группу вакансий, связаться с любым техническим руководителем, узнать, что конкретно надо знать. Ни один нормальный лид не откажет направить вас в нужную сторону с перспективой получить специалиста требуемого профиля практически без затрат на начальную подготовку.
* Иногда важнее знать русский язык, нежели Java или Kotlin. Впрочем, иногда технический английский ещё важнее.
* Даже если днище, безнадёга и фриланс, надо понимать, что есть два типа клиентов: те, которым надо красивый код в стартап и те, которым код не надо.