Решил поделиться своими мыслями на тему того, в какую отрасль разработки стоит пойти человеку, освоившему Java core и основы computer science. А дороги как известно две: Java Enterprise или Android-разработка. Под Java Enterprise программированием я понимаю разработку, вакансии которой на hh имеют заголовок «Java-разработчик». Вакансии, связанные с android-разработкой можно найти на том же сайте по запросу, соответственно, «android-разработчик».

Будем считать, что вы изучили на базовом уровне core языка Java, а также ознакомились с темами алгоритмов, SQL и другими базовыми вещами из computer science, и теперь выбираете путь куда двигаться дальше с прицелом на то, чтобы как можно скорее устроиться на должность junior-программиста. Обсудим какие есть плюсы и минусы в выборе между двумя обозначенными выше ветками разработки.

1) Стек технологий


Java-программирование пришло в бизнес уже почти 20 лет назад. Как следствие, в сфере появилось большое разнообразие фреймворков. На каждом проекте используется свой стек технологий, и бывает достаточно сложно понять, какие технологии еще будут жить, какие вот-вот умрут, а какие уже давно не используются. При этом, кроме джавовских вещей от джависта также требуют знать UI технологии: JS с фреймворками, html, css

Так как android относительно молодая ОС, а в бизнес она вошла еще позже, то тут нет такого зоопарка фреймворков как в большой джаве. Нет тут ни спринга, ни хибернейта, ни других более экзотических вещей. Работу тут можно начинать имея в багаже знаний лишь android sdk и java core. UI, насколько мне известно, предоставляется прямо «из коробки» (android studio), средствами drag and drop. То есть GUI часть дополнительно изучать не нужно

2) Особенности сферы


Как это ни печально, в России Java-программирования нет (за небольшим исключением — банки и гос порталы). То что мы пишем тут отправляется заказчикам в Европу и Америку. Следствием того, что заказчиками являются крупные компании является сложность самой бизнес-логики. Минимальный порог вхождения предполагает не только знание основных фреймворков, но также и специфические требования по распределенным системам, big data, глубокому пониманию многопоточности, машинному обучению

Android-приложения пишутся как для малого бизнеса, так и для крупных игроков по всему миру. Как следствие, есть возможность стартовать с простых проектов и развиваться в сторону более сложных. Другими словами, android предоставляет более низкий порог входа, но не ограничивает потолок — наряду с простыми проектами на рынке присутствуют также и достаточно сложные.

3) Есть ли будущее?


Насчет промышленного программирования на большой джаве — не знаю. Хотя она и держится в первых строчках рейтинга языков программирования, чем это вызвано для меня не понятно. Раньше это можно было объяснить наличием JVM и ее переносимостью, но теперь, когда десктопные приложения больше не разрабатываются и весь функционал выносится в веб — будущее джавы как языка для enterprise программирования для меня под вопросом. Наверное, раз джаву не очень активно используют российские компании, предпочитая ей другие языки программирования, видимо джава не очень современный язык, отвечающий требованиям реальной жизни.

На рынке смартфонов OS Android нет конкурентов. Вероятность того, что iOS поглотит android близка к нулю. Следовательно, ближайшие пару десятков лет в отрасли вряд ли произойдут существенные изменения. Может будут появляться новые фреймворки, но тот кто начинает с нуля сейчас сможет последовательно их изучать и расти профессионально вместе с развитием самой отрасли. В отличие от большой джавы не нужно пытаться изучить все и сразу, чтобы хоть куда-то устроиться — можно спокойно изучать тот небольшой scope технологий, что используются на рынке сейчас

Комментарии (17)


  1. Suvitruf
    23.12.2018 12:24

    Как это ни печально, в России Java-программирования нет (за небольшим исключением — банки и гос порталы)
    В этом месяце новое место работы искал. Всё у нас хорошо с Java вакансиями. Я про Москву, правда, сейчас.

    TL;DR: нравится заниматься визуалом, верстать и вот это всё — идите в Android-разработчики, нравится возиться на серваках — вперёд в Backend Developer'ы.


    1. sergey-gornostaev
      23.12.2018 18:19

      Даже в Иркутске есть вакансии. Хоть и немного, но платят сильно выше рынка.


  1. altrus
    23.12.2018 12:32
    +2

    будущее джавы как языка для enterprise программирования для меня под вопросом. Наверное, раз джаву не очень активно используют российские компании, предпочитая ей другие языки программирования, видимо джава не очень современный язык, отвечающий требованиям реальной жизни.

    Первый пост автора на Хабре, как я понимаю, только что окончившего какие-то модные онлайн курсы по Java, и не понимающего, что делать дальше.

    Для начала надо набрать опыта в разработке, а потом уже философствовать на популярных ресурсах — современный язык «джава», или не очень. И определять будущее технологий по их популярности у «российских компаний».

    А может даже и специализацию стоит поменять, чтобы время не терять.


    1. Anton23
      23.12.2018 12:45
      +1

      +. Как говорил один человек, «уже кучу лет говорят что Java умрет, а она не умирает и не умирает»


  1. vanyas
    23.12.2018 12:47

    Если собираетесь в будущем в США, то очень советую Java Enterprise, оно там очень востребовано и высоко оплачивается


  1. shishmakov
    23.12.2018 13:23

    Автор статьи либо троль, либо решил написать свой вариант книги Григория Остера «Вредные советы».

    Решил поделиться своими мыслями на тему того, в какую отрасль разработки стоит пойти человеку, освоившему Java core и основы computer science

    Действительно очень важный вопрос для молодых специалистов в любое время, что же им посоветует автор?

    Как это ни печально, в России Java-программирования нет (за небольшим исключением — банки и гос порталы). То что мы пишем тут отправляется заказчикам в Европу и Америку

    Вот беда, Java Core учили, а выходит всё зря! Горбатиться на дядю Сэма, как же так? Возможно это какой-нибудь заговор?

    Насчет промышленного программирования на большой джаве — не знаю. Хотя она и держится в первых строчках рейтинга языков программирования, чем это вызвано для меня не понятно

    Автор и сам признаёт, что что-то тут не так… истина где-то рядом?

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

    Вот она и истина: Java ужас и мрак, а значит все кто используют данный ЯП просто извращенцы или старпёры.

    ИТОГ от себя.
    Плохие вредные советы. Почитайте Григория Остера что ли, узнайте как нужно писать.
    Java один из множества ЯП, который вы можете использовать в работе.
    Его часто используют для написания серверов: микросервисы с RESTful API — один из примеров применения, а диапазон компаний может быть широким от Lamoda до Ростелекома.
    Google написали распределённую файловую систему, в open source исполнении именуемую Hadoop Distributed File System.
    Игровые компании: могут использовать фреймворк Unity с ЯП C# (клиент) для ваших телефонов/планшетов, а общаться с сервером, написанным на Java.
    Банки: могут применять широкий диапазон технологий с разными ЯП и Java всего один из них, и да как правило это сервер.
    Панель инструментов с графиками: наверное это одно из немногих мест применения Swing/JavaFX для написания UI до сих пор (другие мне неизвестны)

    web-пауки, real-time bidding, сервис для кухонных рецептов вашей маме = всё это может быть написано на разных ЯП и в том числе с использованием Java.


    1. Suvitruf
      23.12.2018 14:12

      Да та же Cassandra на Java.


      1. sergey-gornostaev
        23.12.2018 18:18

        А также графовая СУБД neo4j на ней же.


  1. Terras
    23.12.2018 13:40

    То, что автор выучил азы Java и не нашел работу, поэтому сейчас строит из себя обиженного обличателя — это понятно.

    Специфика Java заключается в том, что она достаточно сложная и объемная. Плюс Java не хило так вызывает отторжение у тех, кто сидел на более удобном стеке. Поэтому большие компании либо нанимают Java программистов с опытом, либо отбирают талантливых студентов через различные бесплатные обучайки и затачивают под себя. Поэтому у джуна с улицы нет шансов — это очевидно.


  1. not_bad
    23.12.2018 14:41

    Вероятность того, что iOS поглотит android близка к нулю. Следовательно, ближайшие пару десятков лет в отрасли вряд ли произойдут существенные изменения.

    По поводу отсутствия в будущем изменений в отрасли — сильное заявление.


    1. Anton23
      23.12.2018 14:50

      +. Тут как раз куча вопросов от людей, которые хотят начать учить Android dev, по поводу

      стоит ли учить Java, есть гарантии что Android не будет вытеснен новой ОС от Гугла
      или
      омг, на ежегодной Google конфе Google ни разу не сказала слово «android»!

      Так что будущее андроида не так безоблачно.


  1. Age1mar
    23.12.2018 15:44

    Тоже недавно была аналогичная дилемма, думал на что сделать упор. В итоге заинтересовался Java Enterprise, но не со стороны разработки ( кодить пока получается не очень хорошо), а со стороны DevOps.


  1. sergey-gornostaev
    23.12.2018 18:34

    А дороги как известно две: Java Enterprise или Android-разработка. Под Java Enterprise программированием я понимаю разработку, вакансии которой на hh имеют заголовок «Java-разработчик»

    С таким подходом можно считать, что и у C++ программистов дороги только две — системщики и прикладники.


  1. tuxi
    23.12.2018 20:16

    Как же нету то? В нашей компании и Б2С и Б2Б проекты на java реализованы. Первый с 2004 года работает, второй с 2012. И кстати без спринга :)


  1. amaksr
    23.12.2018 20:29

    Вероятность того, что iOS поглотит android близка к нулю. Следовательно, ближайшие пару десятков лет в отрасли вряд ли произойдут существенные изменения.
    Если автор хочет выбрать технологию, и пару десятков лет в ней спокойно работать, то Java Enterprise для этого подходит лучше, учитывая то сколько фреймворков и кастомного софта для нее написано. Стабильности в Андроид (и мобильной разработке вообще) пока ждать не приходится: вот сейчас пошел хайп на Котлин, до этого умерли Блекберри и WF, Apple теперь топит за Swift, а про шапито фреймворков я вообще молчу.
    Мой совет — изучайте все, до чего можете дотянуться в данный момент, но не слишком долго, чтобы не залипнуть на одном стеке слишком сильно.


  1. xpendence
    24.12.2018 10:26

    Сильные заявления экспертного уровня от человека, который, судя по статье, ещё даже не побывал в джунах.

    Местами очень даже смешно.


  1. Mishiko
    24.12.2018 14:08

    в России Java-программирования нет (за небольшим исключением — банки и гос порталы)

    — стоимость контрактов на разработку систем для госзаказчика которыми оперируют российские интеграторы, в разы превосходит то что зарабатывают остальные участники рынка разработки ПО. Цифры не секретные, легко гуглятся. Ну а разработка бэкенда для госов это преимущественно JavaEE.