Что нужно знать Java EE developer'у? [закрыт]

208
09 января 2019, 08:20

Что и в каком порядке изучать для Java EE?

Answer 1
  • JDBC;
  • Servers + Servlets +JSP;

Что входит в Java EE, написано в wiki.

Если вы хотите устроится на работу, то вам нужно добавить еще SQL, JS, HTML, знание Tomcat(это будет минимум).

Вот то, чем должен владеть хороший Java разработчик(DOU.UA):

JDBC (Java Database Connectivity)

Зачем учить то, чем никто уже в чистом виде не пользуется? По двум причинам.

Во-первых, новичков любят нанимать на проекты поддержки (support). А это в большинстве своем весьма древний софт, написанный кем-то левой задней. И вероятность того, что там используется plain JDBC — не нулевая.

Во-вторых, под капотом у всех ORM-ов все равно лежит тот же самый старый добрый JDBC. И рано или поздно (скорее рано, чем поздно), когда у вас что-то сломается, вы увидите как раз ошибки JDBC. И с этим надо будет что-то делать

Servers

Тут все просто. Любой java разработчик должен знать Tomcat. Он самый простой, самый легкий и пожалуй, имеющий наибольшую knowledge base. Спрашивать на собеседовании о нем вас никто не будет — предполагается, что вы его и так знаете. Не знать томкет — это стыд и позор. Имейте в виду.

Дальше стоит изучать уже JBoss/WildFly — всё-таки многие J2EE технологии на томкете не работают (те же EJB или кластерное решение, хотя, может, я отстал от жизни). А вот JBoss/WildFly — как раз оптимален. Он бесплатен и вполне функционален. Никто не ожидает от новичка, что он взял и скачал где-то WebLogic и фигачит код под него. А вот знание JBoss/WildFly — самое оно. Более того, он частенько используется даже у серьезных заказчиков

Unix-like

Про знания юникса вас могут максимум спросить — владеете ли и на каком уровне. Сразу отвечаю — достаточно владеть на уровне пользователя. Запустить, остановить, воспользоваться SSH и SCP. Ну в общем-то и все.

Servlets + JSP

Этот пункт аналогичен пункту про JDBC. И встречаются они всё-таки иногда, и знание того, что под капотом более современных web фреймворков — очень полезно. Как минимум, сокращает время нахождения ошибки в разы. Лишним не будет. Да и спросить на собеседовании об этом вполне могут.

Spring

Знание спринга — ультимативно. Как минимум, потому что спринг — отраслевой стандарт. И не важно, нравится вам спринг или нет. Главное, чтобы вы его знали. С вероятностью 80% вы будете с ним работать уже на одном первых трёх проектов. Да и вообще, энтерпрайз разработчик не должен перебирать — это хочу, это не хочу. Взялись и работаем. Вот это как раз тот случай.

Есть ещё CDI, стандарт от Оракла. Я провел опрос среди своих друзей, спрашивая, кто им пользуется. 80% ответили: «А что это такое?. Остальные 20% сказали: «Нет, не пользуемся». Так что можете смело на него забить.

ORM

Промышленным стандартом является Hibernate. Опять же, нравится он вам или нет, знать вы его обязаны. Использовать должны через JPA.

Объем знаний: уметь замепить отношения один-к-одному, один-ко-многим и многие-ко-многим. Написать HQL запрос и настроить лейзи загрузку.

Web-framework

В этом пункте всё-таки вкусовщина, но знание какого-либо веб-фреймоврка необходимо. JSF, так JSF. SpringMVC, так SpringMVC. Всё будет хорошо. Главное, чтобы вы могли хоть каким-то образом отрисовать UI. Все веб-фреймворки сходны в принципах работы, так что учите то, что покажется наиболее востребованным.

Web-services (SOAP, REST)

Ну, с REST вообще всё просто. От джавера там нужно только аннотацию повесить. И в принципе представлять, как оно работает.

С SOAP сложнее — надо знать несколько ключевых слов, описать, для чего служит WSDL, ну и представлять общие основы протокола.

SQL, HTML, JavaScript

Знание SQL — ультимативно. Вы должны его знать на уровне джавы. Сейчас даже на проекты, использующие NoSQL базы, не берут без хорошего знания SQL. Что уж говорить об остальных. Почему он так нужен — объяснять не буду, но если вкратце — на SQL вы будете писать часто и много. Естественно, не хранимые процедуры (хотя это тоже не исключено, но это всё-таки экзотика), но запросы на вставку и проверку тестовых данных — очень часто.

Насчет знания HTML я даже говорить не буду. Чего там знать? Прочитал статью — ты уже его знаешь. Естественно, все хитрости и заморочки современных CSS — это хлеб Front End. Вот пусть они там и пасутся. Мы же должны хорошо знать HTML и немного JavaScript. Причем, знание JavaScript — отличный бонус для новичка. Знаете почему? Потому что новичков любят брать на саппортовый проект, в котором давно уже не работают дизайнеры. Java-скриптик подправить иногда надо, а джаверы его не любят. И если вы, в отличии от остальной команды, готовы им заниматься — все будут вас любить. И вы с бОльшими шансами попадете на работу, чем чистоплюи, которые не хотят ковыряться в этом вашем фронт-энде. Так что любите JavaScript, и будет вам счастье.

По объёмам знаний. Надо знать сам JavaScript. Хорошо также уметь читать JQuery. А ещё лучше — уметь его писать. Если вы обладаете соответствующим опытом — не стесняйтесь указать их в резюме. Это смежные с нами знания.

Знания скриптовых языков (sh, bash, perl &etc) — штука полезная. Как минимум, вы увеличиваете свои возможности по затыканию дыр — а это и есть основная суть работы на саппортовом проекте. Другой разговор, спрашивать вас об этом на собеседовании не будут, а выучить основы такого языка — дело пары дней. Так что я бы не советовал в это упираться.

Answer 2

Java EE developer'у нужно знать как минимум Java Core и входящие в Java EE стандарты.

Answer 3

имхо, начинать нужно с туториала актуальной на момент изучения версии (пока Jakarta EE https://jakarta.ee/ не обзавелась нормальным туториалом, можно пользоваться все еще доступной версией от Oracle: Java EE 7 tutorial: https://docs.oracle.com/javaee/7/tutorial/ )

READ ALSO
Кодовые точки, кодовые единицы. Тип char, String

Кодовые точки, кодовые единицы. Тип char, String

Как я прочитал в книге КХорстмана, что некоторые символы из UNICODE представляются с дополнением

191
android login to onlyoffice

android login to onlyoffice

Никак не могу добиться JSON ответа от сервера OnlyOffice, приходит plain/text, всю голову сломал, использую async-http:14

184
Laravel css и .htaccess RewriteRule

Laravel css и .htaccess RewriteRule

Поставил свежий Laravel 55, переименовал server

135