W zależności od roli i branży programista Java może wymagać tych umiejętności: Zrozumienie obiektowych koncepcji programowania Zrozumienie, kiedy używać wzorów projektowych, takich jak Singleton, Factory, Fly-Waight, Builder, Buash, Iterator, Strategy, Visitor, Composite. Ta umiejętność jest szczególnie ważna dla starszych programistów Java, którzy będą musieli pracować nad architekturą aplikacji do projektowania długoterminowych rozwiązań Zrozumienie procesu ładowania klas i działania ładowarek klasowych Głębokie zrozumienie dopracowanego świata wydajności, czy to na ogólny narzut pamięci, złożoność obliczeń, czy prędkość Wiedza na temat przydzielania pamięci, z jakiego kontekstu i jak wpływa ona na fragmentację sterty Znajomość różnych algorytmów zbierania śmieci i sposobu korzystania z profilerów Doświadczenie z JSP / Servlets, ramami internetowymi, takimi jak Struts / Spring i zorientowane na usługi architekturę / usługi internetowe- mydło / odpoczynek Możliwość stosowania najnowocześniejszych wzorów i funkcji języka do istniejących systemów Doświadczenie w korzystaniu z technologii w ekosystemie Java: Struts, Spring, Maven, Gradle, Ant, Junit, Spock i Hibernate, między innymi Znajomość zawiłości zapytań SQL Zdolność do nauki nowych technologii i gotowości do wyjścia ze strefy komfortu, aby odkrywać i uczyć się nowych umiejętności