Dependiendo del papel y la industria, un desarrollador de Java podría requerir estas habilidades: Comprensión de los conceptos de programación orientados a objetos Comprensión de cuándo usar patrones de diseño como Singleton, Factory, Fly-Weight, Builder, Object Pool, Iterator, Estrategia, Visitante, Compuesto. Esta habilidad es particularmente importante para los desarrolladores de Java que tendrán que trabajar en la arquitectura de las aplicaciones para diseñar soluciones a largo plazo. Comprensión del proceso de carga de clase y cómo funcionan los cargadores de clase Comprensión profunda del mundo matizado del rendimiento, ya sea que sea la sobrecarga de la memoria, la complejidad del cálculo o la velocidad Conocimiento de cuándo se asigna la memoria, desde qué contexto y cómo afecta la fragmentación del montón Familiaridad con los diversos algoritmos de recolección de basura y cómo usar los perfiladores Experiencia con JSP / Servlets, marcos web como Struts / Spring y Arquitectura / Servicios web orientados a los servicios- SOAP / REST Capacidad para aplicar los patrones más modernos y las características del lenguaje a los sistemas existentes Experiencia en el uso de tecnologías en el ecosistema Java: Struts, Spring, Maven, Gradle, Ant, Junit, Spock y Hibernate, entre muchos otros Conocimiento de las complejidades de las consultas SQL Capacidad para aprender nuevas tecnologías y disposición para salir de la zona de confort para explorar y aprender nuevas habilidades