І в 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.