itechart_logo

JAVA — 25 лет успеха

Students Lab Development & QA

Java более 25 лет находится в топе языков программирования (ЯП). Таким может похвастаться далеко не каждая технология. Обсудили с нашими джавистами, почему так получилось, для каких проектов подходит Java, насколько хорош язык для начинающих специалистов. Задали эти и другие вопросы нашим специалистам Артему Силичу, Павлу Ханкевичу, Евгению Шилову.

Наши собеседники
Артем Силич.jpg

Артем Силич

Group Manager iTechArt

Полагает, что новичкам в Java успех гарантирован при кропотливой самостоятельной работе не только в теории, но и на практике.

Павел Ханкевич.jpg

Павел Ханкевич

Team Manager iTechArt

Считает, что Java идеален в качестве первого языка программирования

Евгений Шилов.jpg

Евгений Шилов

Team Manager iTechArt

Утверждает, что Java появился в "правильное время"

  1. В чем заключается секрет популярности Java?
  2. Для чего подходит Java?
  3. Насколько Java подходит для стартапов?
  4. Подходит ли Java в качестве первого языка программирования?
  5. Как развивается Java направление в iTechArt?
  6. Проекты на Java
  7. Советы новичкам

В чем причина популярности Java, почему технология уже много лет не покидает топ популярных ЯП?

АРТЕМ СИЛИЧ: Не каждая технология актуальна 25+ лет. Я вижу несколько причин, почему Java удается держаться в топе:

  • Независимость от платформы, принцип WORA — Write Once Run Everywhere. Java код, скомпилированный на одном устройстве, можно запустить на любом другом устройстве, поддерживающем виртуальную машину Java (JVM)
  • Развитое комьюнити, поддержка Oracle и изобилие приложений и языков на JVM. Постоянно выпускаются новые версии Java с крутыми фичами
  • Относительно невысокий порог вхождения для новичков.

ПАВЕЛ ХАНКЕВИЧ: Java зарекомендовал себя как язык, который подходит для больших и сложных проектов. К тому же не стоит забывать, что Java активно преподают в ВУЗах, и существует огромное количество литературы по изучению языка.

ЕВГЕНИЙ ШИЛОВ: На мой взгляд, Java появился в правильное время, и отличная команда маркетологов сумела убедить бизнес, что Java — именно то, что нужно для создания успешных enterprise-приложений. После первых успехов спрос на Java-разработчиков стал расти — нужно было поддерживать старые приложения и создавать новые. Помимо этого, Java постоянно развивается и обрастает крутой экосистемой.

Для чего лучше всего и для чего меньше всего подходит Java?

АРТЕМ СИЛИЧ: По моему опыту — финансовая сфера одна из самых популярных. В последнее время появляется больше big data проектов, для которых в Java есть много классных инструментов.

ПАВЕЛ ХАНКЕВИЧ: Лучше всего Java подходит для больших и сложных проектов благодаря развитой инфраструктуре и комьюнити. Можно найти множество решений и материала для популярных сейчас технологий: AWS, Rabbit, Mongo, GraphQL. На Java часто пишутся микросервисные проекты.

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

ЕВГЕНИЙ ШИЛОВ: Я бы сказал, что на Java лучше всего писать средние и большие веб-приложения. Не советовал бы использовать его для мелких приложений, так как это многословный язык, и для реализации даже самых простых функций потребуется довольно много кода. В целом, эти свойства идут на пользу серьезным проектам за счет улучшения показателей расширяемости, но не подходят, если нужно стартовать быстро.

Java для стартапов - JAVA — 25 лет успеха

Насколько Java подходит для стартапов?

ПАВЕЛ ХАНКЕВИЧ: Подходит, хотя, если нужен быстрый результат, лучше выбрать более легковесный язык. Если стартап обещает быть успешным и большим, Java выиграет в долгосрочной перспективе. Главное — с самого начала делать все на высоком уровне.

Если пожалеть время на проектирование, то по мере развития Java-проект будет сложнее исправлять.

АРТЕМ СИЛИЧ: Считается, что Java больше подходит для больших enterprise-решений. Но я убежден, что в скорости поиска решения и разработки MVP Java может конкурировать с другими популярными языками благодаря доступности, обилию и качеству фреймворков и библиотек.

ЕВГЕНИЙ ШИЛОВ: Как уже было сказано, Java подходит для стартапов, но если времени мало, лучше посмотреть в сторону чего-то вроде Python или Ruby. Java окупается в перспективе. Я слышал о стартапах, которые начинали с прототипа на Ruby on Rails, а потом переписывались на Java или ASP.NET.

На ваш взгляд, подходит ли Java в качестве первого языка программирования для новичков?

ЕВГЕНИЙ ШИЛОВ: Скорее да, чем нет. С Java можно изучить базовые концепции программирования — ООП, статическую типизацию переменных и прочее, не перегружаясь при этом работой напрямую с памятью. Но абсолютным новичкам я бы все же посоветовал начинать с более простых языков вроде Python или Delphi.

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

АРТЕМ СИЛИЧ: Однозначно. Он прост, типизирован и предсказуем, при этом у него огромное комьюнити и безграничное количество ресурсов для обучения.

ПАВЕЛ ХАНКЕВИЧ: Да. Java помогает понять базовые концепции, такие как ООП. В процессе изучения будут открываться более сложные и интересные темы: concurrency, streams, lambdas.

Как развивается Java направление в iTechArt?

АРТЕМ СИЛИЧ: Я бы сказал, очень динамично. Регулярно проводим внутренние Java Dev2Dev сессии, Java Lab’ы для новичков.

ПАВЕЛ ХАНКЕВИЧ: Стремительно развивается. Появляются новые люди, новые проекты. В нашем юните есть платформа edu — можно попробовать себя в роли ментора, интервьюера, разработчика базы знаний и, конечно же, студента. На проектах с нашей стороны участвуют не только разработчики, но и менеджеры. Благодаря этому добиваемся комфортных и интересных ролей и задач.

Над какими интересными проектами на Java вы работали или работаете сейчас?

АРТЕМ СИЛИЧ: Одним из последних был проект для компании CrownCastle. Мы разрабатывали платформу для бизнеса по переоборудованию телекоммуникационных вышек в США. Много сложных вычислений, математики, моделирования и сам по себе комплексный процесс автоматизации. С точки зрения разработки очень интересный проект.

ПАВЕЛ ХАНКЕВИЧ: В своем первом проекте на Java я был единственным backend-разработчиком. Занимался всем: от проектирования баз данных до размещения приложения на AWS. Работал с Postgre, RabbitMQ, Redis, Heroku и Firebase. Несмотря на то, что проект был маленьким, я получил хороший технический опыт и захотел попробовать свои силы в чем-то более крупном. Сейчас работаю на проекте из сферы логистики. На нем занято 300 человек, со стороны iTechArt порядка 40. Проект состоит из 9 микросервисов и огромного количества сторонних сервисов.

ЕВГЕНИЙ ШИЛОВ: Первым проектом в компании была система трекинга происшествий на школьных спортивных мероприятиях. Как backend, так и frontend были написаны на Java. Это было монолитное приложение, которое разворачивалось в AWS.
Одним из минусов проекта было то, что он был довольно-таки legacy. Зато я научился разбираться в чужом коде и сам стараюсь писать так, чтобы другим было комфортно работать после меня.

Советы новичкам Java - JAVA — 25 лет успеха

Что можете посоветовать новичкам, которые решили изучать Java?

АРТЕМ СИЛИЧ: Главный залог успеха — кропотливая самостоятельная работа не только в теории, но и на практике. Ну, а с материалами для обучения и поиском помощи проблем не будет.

ПАВЕЛ ХАНКЕВИЧ:

  • Конференции — https://jprof.by/, https://jokerconf.com/, https://jug.ru/.
  • Книги — «Effective Java», «Java complete reference», «High performance Java persistence».
  • YouTube — GOTO Conferences, Devoxx, Spring I/O, LeadDev, Coding Tech и записи с конференций, которые я указал.
  • Учите не только Java, но и популярные фреймворки: Spring, Hibernate.
  • Изучайте паттерны, чистоту написания кода, архитектуры и развивайте софт-скилы.
  • Помните, что лучший разработчик — командный разработчик.
  • Читайте документацию, книги в оригинале, смотрите конференции и, конечно же, пишите код!

ЕВГЕНИЙ ШИЛОВ: Новичкам я советую создать план для изучения языка. А в идеале найти ментора, который и с планом поможет, и с материалами, и опытом поделится. Мне кажется, многие опытные ребята с радостью возьмут на себя роль ментора, так как это поможет им структурировать собственные знания, понять пробелы, развить коммуникативные навыки.

Пара советов от меня:

  • начните с азов программирования: структуры данных, подходы, парадигмы и т.д.;
  • найдите книгу, которая будет больше походить на учебник, нежели на справочник по языку (мне лично импонирует книга «Философия Java»), можете поискать хороший курс по Java, например, на Udemy (там постоянно скидки);
  • смотрите видеоуроки на YouTube.

И самое главное — постоянно практикуйтесь. Есть множество сайтов, где можно решать небольшие, но иногда довольно замысловатые задачи. К примеру, https://www.codewars.com/.