¿Cuáles son las habilidades esenciales, técnicas y no técnicas, de un desarrollador Java EE o Enterprise Java?

Si está buscando ser un Desarrollador JEE realmente efectivo, estas son las siguientes habilidades que recomendaría.

Técnico

  • Conocimiento de los conceptos de POO.
  • Conocimientos básicos de cómo funciona JVM y conceptos como hashing.
  • Al menos un marco (Struts o Spring).
  • JSP y un lenguaje de script (Javascript, / JQuery). Le aconsejaría que también controle los fundamentos de HTML / XHTML. Los clientes hoy en día son muy particulares sobre el diseño de la interfaz de usuario.
  • EJB (el conocimiento de CORBA sería una ventaja).
  • Al menos un servidor de aplicaciones (Weblogic / Websphere / JBoss) sobre el que debería tener algún conocimiento.
  • Los servicios web, considerando que muchas organizaciones se están cambiando, como una mejor alternativa a los EJB.
  • Una herramienta ORM como Hibernate.
  • Conocimiento de una herramienta de gestión de configuración como CVS / SVN.
  • Conocimiento de cualquier herramienta de construcción como ANT.
  • Herramientas de prueba de unidades como JUnit.
  • Buena idea sobre las herramientas de código abierto disponibles en la red.
  • Conocimiento de patrones de diseño.

En general, un desarrollador JEE realmente bueno debería tener un conocimiento holístico de todo el proceso de desarrollo de aplicaciones. Los buenos viejos tiempos, cuando los candidatos que sabían cómo programar Hello World en Java, fueron reclutados, se han ido.

No técnico

  • Las habilidades de comunicación son imprescindibles, interactuará con los clientes, sus gerentes, el equipo de control de calidad y la comunicación efectiva será de gran ayuda, especialmente en un entorno en red.
  • Buenas habilidades de presentación, estas serían útiles cuando buscas hacer un recorrido con el cliente o explicar una nueva herramienta al equipo.

1. Ajuste de JVM: análisis de registros de gc
2. Comprender los estándares JavaEE. Esto debería ser independiente del servidor de aplicaciones.
3. Aprenda EJB3 +, JAX-WS, JAX-RS, CDI y las últimas tecnologías de servlet.
4. Procesamiento XML y JSON.
5. Buena comprensión de html, CSS y JavaScript. Algunas experiencias prácticas con jquery.
6. Al menos un servidor de aplicaciones en profundidad.

Puede echar un vistazo a ReSkill.me, más específicamente la página del desarrollador de Java allí. Tiene información sobre las habilidades que los empleadores buscan en un desarrollador de Java, luego puede crear un programa de capacitación personalizado para llegar allí.

  • Conocimiento sobre EJB o Spring o marco de EE similar
  • Bibliotecas HTML, CSS, Javascript, + javascript como JQuery
  • Uso de Firebug <: depuración de problemas de interfaz de usuario de desarrollo front-end
  • Conocimiento sobre un marco de persistencia, JPA, Hibernate, etc.
  • Experiencia trabajando con un servidor de aplicaciones como Weblogic o JBoss, …
  • Al menos habilidades básicas de base de datos
  • Comandos básicos de Unix: para analizar los registros del servidor, verificar si los procesos del servidor se están ejecutando, etc.
  • Conciencia sobre concurrencia, rendimiento, escalabilidad
  • Análisis de trazas de pila en volcados de hilos y archivos de registro
  • Depuración remota de un servidor de aplicaciones utilizando un IDE como Eclipse
  • Es mejor tener curiosidad sobre los trabajos internos de los servidores de aplicaciones, marcos, etc. -> ayuda a comprender / depurar problemas
  • Herramientas de monitoreo del sistema: para monitorear la memoria, el uso de la CPU, el uso del disco, etc. por la aplicación / db, puntos de acceso de métodos, etc.
  • Patrones de diseño

Las habilidades esenciales y exigentes del mercado de Java EE son:
1. Un marco (como struts o spring, incluso JSF también es bueno)
2. EJB (Enterprise Java Bean)
3. Aunque esto no entrará en J2EE, pero también solía ser muy importante en el mundo corporativo: Hibernate

-SOA con servicios web (SOAP-REST) ​​ya que las mejores prácticas son las de hoy en día. JAXB, JAXWS, JAXRS, WSDL, Anotaciones para modificar manejadores, Al menos una herramienta como CXF o AXIS para situaciones problemáticas.
-Una herramienta ORM con buen fondo sql
-Una herramienta de control de versiones en profundidad
-Una idea como Eclipse que puede controlar todo e ideas sobre extensiones
-Suficientes habilidades de JavaScript para comprender el flujo de datos entre el frontend y el back-end, especialmente si la estructura del proyecto se basa en un marco js en el frontend. Es posible que se requiera un marco javascript como angular, dojo, nodo o personalizado
-JSP, JSF … etc. pueden ser necesarios de acuerdo con el proyecto.
-bueno conocimiento sobre los principios de OOP es imprescindible
-buenos conocimientos sobre patrones de diseño solo son necesarios si usted es arquitecto o ampliará la estructura.
-Una buena comprensión de los patrones de diseño empresarial es imprescindible ya que debe comprender el panorama general para no perderse en el proyecto
-Un marco jee como resorte, costura, puntales, etc. es imprescindible
-Maven o una herramienta de compilación similar puede ser requerida de acuerdo con el proyecto
-Al menos un servidor de aplicaciones o una experiencia de contenedor de servlets
-Se pueden requerir pruebas de unidad de acuerdo con el proyecto
– Prácticas de análisis Json y XML, las herramientas son una ventaja
-Se pueden requerir herramientas de integración continua de acuerdo con el proyecto.
-Se requiere con frecuencia la capacidad de integrar herramientas de código abierto o con licencia para el proyecto.
-Experiencia en la configuración del entorno y capacidad para resolver problemas dependientes.
-Una herramienta de bus de servicio empresarial puede ser requerida como Mule, Fuse
-La experiencia de dominio sobre el tema del proyecto es una gran ventaja
-Al menos una herramienta de seguimiento de problemas como JIRA, Asana ..

Ajuste de rendimiento de memoria y CPU para aplicaciones que incluyen db.

Yo diría que la solución de problemas. Tratar de descubrir qué causó un error es la habilidad más importante, una que puede ocupar fácilmente el 70% de su tiempo.

¿Cuáles son las habilidades esenciales de un desarrollador JEE o Enterprise Java?