И в Enterprise, и в Android используется та же самая Java, но разница на самом деле очень большая.
Разные задачи
Разработчики Энтерпрайз работают с очень большими системами со сложной бизнес логикой. Задачи для программистов этого направления ставятся примерно следующим образом: вот тут выводится неправильная цифра, сделай так, чтобы выводилась правильная. Чаще всего вы вообще не понимаете, что к чему и идете к своему бизнес аналитику. В лучшем случае он проводит часовую лекцию, в худшем вы услышите, что «просто так должно быть». Предметная область очень сложная, изучить ее полностью практически нереально. Поэтому большая часть работы Java Enterprise разработчика заключается в необходимости разобраться, что именно должно произойти и почему сейчас работает не так как нужно. Ну и еще одна проблема – много миллионов строк кода, вы будете тратить ну очень много времени, чтобы найти нужное кусок с ошибкой.
У Андроид разработчиков все иначе – есть задача написать приложение, и вы его пишете с нуля. Задача может выглядеть и таким образом: если приложение установить на девайсе N-ного века, не нажимается кнопочка/разрешение хреновое и пр. Вы ставите эмулятор этого девайса, ищите проблему и фиксите. Причем так, чтобы все работало и на этом устройстве, и не сломалось с внесением изменений на других. Проблема в том, что девайсов море и очень трудно подогнать так, чтобы работало идеально на всех.
Дальше вы выбираете, что вам больше по душе.
Удаленная работа
Андроид разработчик запросто может быть фрилансером или работать ремоут – это очень распространенная практика. В Энтерпрайзе до текущей ситуации с COVID не было возможности работать удаленно. Как будет дальше, когда вся эта история с пандемией закончится – никто не знает. Поэтому если вы из маленького городка и не хотите никуда релокейтиться, то лучше обратить внимание на Java Android – это однозначно будет проще.
Дополнительные обязанности
Нужно понимать, что у каждого программиста есть дополнительные обязанности, и если они вас бесят, то и вся профессия целиком не будет приносить удовольствие. Дополнительная обязанность Энтерпрайз разработчика – умение работать с Linux сервером. Т.е. вы как минимум должны быть джуниор Linux админом – уметь открыть/закрыть порты, создать пользователя, проверить логи, запустить/застопить сервер, построить простенький pipe и пр. По большому счету тут нет ничего сложного – это все учится за пару недель. Но если вам это не нравится, то зачем себя мучить?
У Андроид разработчиков такими дополнительными обязанностями будет понимание UI/UX. Т.е. не смотря на то что вы разработчик, вам придется много думать как UX дизайнер: где поставить менюшку, какие пункты этой менюшки, где какая кнопочка и пр. Да, этим должны заниматься UX дизайнеры, но на них, бывает, экономят и во всех тонкостях нужно разбираться вам. Вам также понадобятся знания графических редакторов, так как вполне реальна ситуация, что вам потребуется какая-то картинка для иконки, и эту картинку нужно создать. Если вам это все не нравится, то Андроид – не ваша специальность.
Kotlin в Android
Ну и конечно пару слов про Kotlin. Многие сейчас говорят, что Android больше про Kotlin, чем про Java. Да, Google заявил, что для Андроида теперь только Kotlin. Но Google много чего говорит, а завтра все может измениться. Задайте запрос «The Google cemetery». На данный момент там уже более 166 похороненных проектов. Поэтому да, Google может передумать. Лично для меня больная тема, когда Google закрыл отлично работающий проект Hangouts On Air. Поэтому совершенно не исключено, что сегодня/через неделю/месяц Google вдруг сообщит, что они решили не поддерживать Kotlin, а написать свой собственный язык.
Понятно, что от java они рано или поздно уйдут, так как у них сейчас разборки с Oracle по поводу торговой марки. Однако учить Kotlin с 0 сейчас практически не реально, потому что вся документация создана по принципу: «вот это делаем как в Джаве, а это делаем не как в Джаве, а вот так». Т.е. не зная Java, вы эту документацию просто не поймете. Именно поэтому Андроид девелоперы сначала учат Java, а потом доучивают Kotlin. Когда Java совсем не будет, вероятно, документацию перепишут исключительно под Kotlin. И тогда уже вы будете учить этот язык с нуля. Но Kotlin вырос из Java, языки очень близкие, поэтому я все равно рекомендую начинать с Java.