“Desarrollador Java” tiene múltiples significados por ahí. Intentaré cubrir algunos de ellos.
En común
- Comprensión básica de la sintaxis y el funcionamiento de Java (por ejemplo, clases de recopilación, creación de la propia clase)
- Error al manejar el uso de excepciones de manera razonable.
- Serialización y deserialización de datos a / desde el disco a través de formas como la serialización JVM utilizando Serializable, XML / JSON, enlaces de base de datos
- Comprensión básica de roscado.
- Red simple (por ejemplo, hacer una solicitud HTTP, hacer un socket)
- Administración del código fuente (control de versiones, integración continua, uso de un rastreador de errores)
- Ser capaz de consultar la documentación de la API (javadocs).
Aplicación web
- Todo lo enumerado en “en común”
- Almacenamiento de datos en una base de datos (especialmente con acceso simultáneo a la base de datos)
- Roscado intermedio (sincronización, control de acceso)
- HTML + JS (no tiene uso tener un backend impresionante y una mala interfaz)
- Entender el alcance de su proyecto / classpath / classloading en un Tomcat / JBoss / etc. servidor
- Sintaxis de JSP con las bibliotecas de etiquetas (es posible pero no se recomienda no hacerlo con los scriptlets)
- Seguridad (entrada de desinfección, prevención XSS, inyección de cadenas de consulta de base de datos, ingeniería social), especialmente si hay dinero involucrado
GUI
- Todo lo enumerado en “en común”
- Comprensión del modelo de subprocesamiento de su API (ya sea Android, Swing)
- Comprensión de cómo se distribuyen los componentes, en qué circunstancias se actualizan y similares.
- Saber qué hace un diseño utilizable .
Juego
- Procesamiento de hilos y eventos realmente avanzado.
- Red avanzada, si es multijugador.
- Si es en tiempo real, el énfasis en las dos entradas anteriores
- Cómo funcionan las funciones de renderización 3D / OpenGL, sombreadores, estrategias de rendimiento y similares.
- Seguridad (como se indica para la aplicación web anterior)
- Diseño eficiente de protocolo de red.
aplicación Android
- Todo cubierto bajo GUIs
- Manejo del cierre inesperado de la aplicación (debido al ahorro de energía, al deslizar de la lista de aplicaciones recientes y similares)
- Usabilidad en varios dispositivos diferentes con diferentes tamaños de pantalla, especificaciones y factores de forma
- Integración con una API muy vasta y en evolución.