Logotipo de DevSkiller TalentBoostLogotipo de DevSkiller TalentScoreEl logo de DevSkillerLogotipo de TalentBoostLogotipo de TalentScore

Cómo evaluar las habilidades de los desarrolladores de Java para encontrar lo mejor - guía para la contratación de personal de TI

Publicado: Última actualización:
Java: preguntas de la entrevista a un ingeniero de software

Puede ser un problema serio si quieres contratar a un desarrollador de Java pero no tienes ni idea de qué buscar. Puedes buscar en el perfil de LinkedIn de un candidato o en un currículum todo lo que quieras. Si no puedes distinguir tu JPA de tu Gradel, no podrás saber si el candidato encaja bien en el puesto que quieres ocupar. Escribí este artículo para reunir toda la información que necesitas si eres un reclutador de IT que busca programadores con conocimientos de Java.

¿Qué es Java?

Java es un lenguaje de programación compilado, orientado a objetos, similar en sintaxis a C++. Su intención es permitir a los desarrolladores de aplicaciones "escribir una vez, ejecutar en cualquier lugar", lo que significa que el código Java compilado puede ejecutarse en todas las plataformas que soportan Java sin necesidad de recompilación. Una aplicación escrita en Java tiene un muy buen rendimiento gracias al uso de un compilador Just-In-Time que analiza continuamente la velocidad del programa y optimiza los puntos ejecutados con frecuencia. Otra ventaja clave de Java es la gestión automática de la memoria que permite a los desarrolladores escribir aplicaciones sin preocuparse explícitamente por la asignación de memoria y la distribución de la misma. A partir de 2020, fue el lenguaje de programación más popular probado por los empleadores. Java no se considera un lenguaje fácil de usar para los no programadores.

Java es a Javascript como el coche a la alfombra, así que no confundas estos dos lenguajes de programación.

What is important for IT Recruiter to know about Java and Java skills?

Antes de entrar en detalles sobre cómo mostrar las habilidades de Java, permítanme compartir algunos conceptos básicos que les permitirán familiarizarse con esta tecnología.

En primer lugar, el mundo de Java cambia a menudo, por lo que la experiencia con el marco de trabajo adquirida hace 5 años ya no es válida. Tengan esto en cuenta cuando evalúen las habilidades de los desarrolladores de Java en base a su empleo hasta ahora.

En segundo lugar, en el entorno de Java, el conocimiento de las herramientas y bibliotecas es más valioso que el conocimiento del propio lenguaje. Sin él, un programador escribirá todo por sí mismo desde cero y sólo perderá el tiempo. Si un desarrollador está familiarizado con las bibliotecas y marcos de Java, entonces puede utilizarlo como lego para hacer lo que necesitan y escribir código sólo donde sea necesario. Haciéndolo de esta manera su trabajo es mucho más eficiente.

Por último, pero no menos importante, sólo la experiencia comercial es importante. El conocimiento de Java de una universidad casi nunca es útil para la codificación de negocios. Así que a menos que reclutes para un puesto de entrada o junior, puedes saltarte la evaluación de los conocimientos de Java basándote únicamente en la educación y el título universitario. En ese caso, lo más importante son los proyectos de codificación de la vida real del candidato, no tiene por qué ser comercial, puede ser un hobby o un proyecto de programación de código abierto.

Habilidades básicas de desarrollo de Java

  1.  Lenguaje Java
    - Colecciones
    - Corrientes y expresiones lambda
    - Concurrencia: piscinas de hilos
    - Cerraduras
    - Características del lenguaje moderno: registros, interruptor mejorado
  2. Marcos
    - Bota de Primavera 2
    - MVC/WebFlux de primavera para los APIs de REST
    - Hibernar y SQL
    - JUnit
    - Spock (requiere lenguaje Groovy))
  3. Herramientas
    - Maven y Gradle
    - IDE, por ejemplo, IntelliJ IDEA
    - Git
    - Docker
  4. Próximos pasos (seleccione algunos): (Kotlin, Groovy (para Spock), Programación reactiva (Reactor), Kubernetes, React o Angular 2+ para el front-end, desarrollo de Android)

¿Cómo verificar los conocimientos de Java en la fase de selección?

What to look for when hiring a Java developer? Screening is tiring, arduous, and takes a lot of your time. Usually IT recruiters turn to the following screening techniques from assessing java skills based on resume through an interview or video calls to online coding tests.

A continuación encontrará algunos consejos útiles y prácticos de reclutamiento sobre cómo verificar las habilidades de Java usando cada método.

Revisión técnica de los conocimientos de Java basada en el currículum de los candidatos

La tecnología Java - un glosario básico de términos de Java para los reclutadores de IT

Seguro que toda la información que necesitas está en el currículum, sólo tienes que encontrar las correctas. Suena fácil, ¿verdad? Sin embargo, cuando empiezas a revisar el currículum, te encuentras con términos como Hibernate o JMX, y muy rápidamente te confundes si este es el candidato que estás buscando. Si eres un Tech Recruiter reclutando para un puesto en Java, entonces deberías al menos estar familiarizado con todos sus marcos de trabajo, herramientas de construcción, etc., para saber lo que estás buscando y ser capaz de hablar el mismo lenguaje con tus candidatos (o al menos entender los fundamentos de los que habla el candidato).

Por eso preparamos este glosario básico de Java, sólo echa un vistazo.

Glosario de Java para reclutadores técnicos
Componentes de Java EEJava Server Pages (JSP), Servlets, Enterprise Java Beans (EJB), JAX-RS, JAX-WS, Java Message Service (JMS)
Marcos Web JavaJava Server Faces (JSF), Spring MVC, Vaadin/GWT, Wicket, Play
ORMHibernar, Java Persistence API (JPA), EclipseLink, OpenJPA
Herramientas de construcción de JavaMaven, Gradle, Ant
Contenedores de aplicaciones JavaTomcat, JBoss/Wildfly, Undertow, Jetty, WebLogic, WebSphere
Herramientas de prueba de JavaJUnit, TestNG, Spock, Mockito, Pepino
Marcos de IOMarco de primavera, Guice, CDI

Ahora que sabes lo básico, podemos entrar en detalles. Si no eres una persona de tecnología, es fácil confundirse con los diferentes nombres y abreviaturas de la tecnología. Si el candidato declara que conoce el EJB, ¿significa que está familiarizado con Java EE? ¿O si el candidato conoce Maven 1 significa que también puede tratar con Maven 2? Mantén la calma, te ayudaremos. Sólo sigue leyendo.

Los nombres más comunes de la tecnología Java que se usan indistintamente:

- JPA, Hibernación, Persistencia de Java, API de Persistencia de Java,

- Java EE, EJB, Enterprise Java Beans, Enterprise Java,

- JBoss, Wildfly.

Relaciones entre las respectivas versiones de la tecnología Java:

- EJB 2.0 es totalmente diferente de EJB 3.0,

- Java EE 1.4 es totalmente diferente de Java EE 5,

- Java EE 7 es una versión mejorada de Java EE 6, que es una versión mejorada de Java EE 5,

- Primavera 2.0 o Primavera 3.0 similar a la Primavera 4.0,

- Acegi cambió su nombre a Spring Security,

- Maven 1 es totalmente diferente de Maven 2,

- Maven 2 es muy similar a Maven 3,

- Hibernación 4.x es muy similar a Hibernación 5.x,

- GWT 1.x es diferente de GWT 2.x,

- Struts 1 es totalmente diferente de Struts 2,

- JPA 2.x es una versión más rica de JPA 1.0.

También es valioso tener en cuenta las siguientes relaciones:

- Búsqueda de texto completo: Si alguien conoce a una de Lucene, Solr o ElasticSearch podrá ocuparse del resto.

- Mapeo de relación de objetos: Si alguien conoce a uno de Hibernate, EclipseLink, OpenJPA entonces podrá ocuparse del resto.

- Servicios de descanso: Si alguien conoce a uno de los MVC de primavera, JaxRS, Jersey, entonces podrá ocuparse del resto.

La importancia de un certificado de Java para evaluar las habilidades del desarrollador en Java

Los certificados de Java son generalmente apreciados por los empleadores. Sin embargo, la certificación rara vez es un requisito para un candidato. Sin embargo, como reclutador técnico, debe ser cauteloso al evaluar las habilidades de programación en Java basadas en los certificados, porque ninguno de ellos sirve como garantía de las capacidades del desarrollador.

Ocurre muy a menudo que un programador muy experimentado apenas aprueba el examen de certificación y el programador débil obtiene una buena puntuación en dicho examen. ¿Por qué es así? Estos certificados difícilmente verifican las habilidades prácticas. Normalmente requieren aprender de memoria cosas que un programador más experimentado encontraría rápidamente en la documentación o sería capaz de verificarlo. Con rápidamente me refiero a en varios segundos usando su IDE favorito (software que un programador usa para trabajar en las aplicaciones), que no está disponible durante el examen. Por cierto, no poder usar el IDE no tiene sentido porque a diario el programador utiliza muchas fuentes externas, como el IDE, para realizar su trabajo.

A continuación encontrará una lista de la certificación de Java dividida en 3 grupos

A. Los certificados prácticos de Java, que requieren experiencia práctica, garantizan un conocimiento profundo del tema

Certificados de primavera:

- Profesional de la primavera,

- Desarrollador de aplicaciones web de primavera,

- Especialista en integración de empresas.

B. Los certificados de Java útiles pueden servir como una prueba fiable de conocimiento

- Oracle Certified Master, Java SE 6 - requiere un buen nivel de conocimientos de Java, pero sólo Java 1.6, que fue lanzado hace 10 años (2006),

- Experto certificado por Oracle, desarrollador de servicios web de Java EE 6 - requiere conocimientos sólidos pero no verifica la experiencia comercial, por lo que no puede servir como garantía de éxito del proyecto,

- Experto certificado por Oracle, desarrollador de la API de persistencia de Java EE 6 - requiere conocimientos sólidos pero no verifica la experiencia comercial, por lo que no puede servir como garantía de éxito del proyecto,

- Oracle Certified Master, Java EE 6 Enterprise Architect - un candidato entiende y puede aplicar Java a nivel de arquitectura,

- IBM WebSphere - requiere un sólido conocimiento del producto pero no verifica la experiencia comercial, por lo que no puede servir como garantía de éxito del proyecto.

C. Certificados de Java - conocimientos teóricos, poco utilizados desde una perspectiva empresarial

- Asociado certificado de Oracle, Java SE,

- Profesional certificado por Oracle, Java SE,

- Experto certificado por Oracle, Java EE 6 JavaServer Faces Developer,

- Experto certificado por Oracle, desarrollador de componentes web de Java EE 6,

- Experto certificado de Oracle, desarrollador de Java EE 6 Enterprise JavaBeans.

Otra información en un currículum que puede mostrar las habilidades en Java de un desarrollador

La participación en proyectos de código abierto es la información que vale la pena tener en cuenta. Si el candidato contribuye a proyectos conocidos y de gran envergadura, puede ser de gran valor. También es importante si un programador tiene experiencia en proyectos de TI similares a los que estamos buscando un empleado. Crear cosas nuevas requiere un conjunto diferente de habilidades y atributos que mantenerlas.

Examen técnico de los conocimientos de Java durante una entrevista técnica telefónica/vídeo

Como es bastante difícil sacar conclusiones fiables sobre los conocimientos de programación de un candidato a partir del propio currículum, los reclutadores de TI suelen realizar una entrevista telefónica o en vídeo. Este tipo de entrevistas ofrecen la oportunidad de hacer preguntas sobre sus habilidades en Java. En muchas empresas, este tipo de entrevista técnica por teléfono o vídeo es la base para tomar la decisión de invitar a alguien a una entrevista técnica in situ con un equipo de TI o no, por lo que vale la pena hacer las preguntas técnicas adecuadas.

Como las preguntas en sí mismas pueden variar según el puesto para el que se esté reclutando y las habilidades específicas que se quieran verificar, en base a mi experiencia recomendaría seguir las preguntas generales para saber más sobre las habilidades del candidato en Java:

A. Pregunta de la entrevista de Java sobre la experiencia del desarrollador

  • Q1: ¿Con qué tecnologías enumeradas en su currículum, tuvo usted experiencia comercial en los últimos 2 años? ¿Cuáles eran sus responsabilidades? ¿Cuál fue su mayor logro?
  • Por qué preguntar a Q1: Haciendo esta pregunta, puede averiguar más sobre la experiencia actualizada en Java del candidato, sus responsabilidades y logros. De esta forma, conocerá mejor a su candidato.

B.Pregunta de la entrevista de Javasobre los conocimientos y opiniones del desarrollador

  • Q2: ¿Qué bibliotecas de código abierto de Java considera que son valiosas y por qué?
  • Por qué preguntarle a Q2: Esta pregunta permite al candidato demostrar su conocimiento del ecosistema de Java. Además, el candidato puede señalar lo que tiene en cuenta al elegir una determinada tecnología. Como preguntas de seguimiento también puede preguntar qué ventajas, en su opinión, tienen las soluciones comerciales sobre el código abierto y viceversa. Esto muestra cómo piensa el candidato.
  • Q3: Me he dado cuenta de que has incluido el marco X en tu currículum. ¿Qué opina al respecto? ¿Es una buena elección?
  • ¿Por qué preguntarle a Q3: Una pregunta abierta de este tipo permite al candidato demostrar sus conocimientos si los tiene. También puedes hacer de abogado del diablo basándote en sus respuestas: "¿Pero por qué no utilizar el marco Y para eso?". De este modo, puedes ver cómo los candidatos eligen una tecnología, justifican sus elecciones y si sus opiniones coinciden con las de tus equipos de TI.

C.Pregunta de la entrevista de Javasobre la toma de decisiones del desarrollador en relación con la tecnología Java

  • Q4: ¿En qué etapa se unió a los proyectos recientes? ¿Participó en la elección de la tecnología o en la configuración del proyecto? En caso afirmativo, ¿qué tecnología eligió o recomendó para el proyecto y por qué?
  • Por qué preguntar a Q4: Estas preguntas muestran no sólo cómo un candidato toma decisiones en relación con la tecnología, sino también si fueron incluidas en la toma de decisiones. Especialmente importante si estás buscando a alguien con experiencia.

D. Pregunta de comportamiento para el desarrollador de Java

  • Q5: Piensa en la decisión del proyecto de programación que tomaste y que fue un fracaso. ¿Por qué crees que fue un error? ¿Por qué sucedió? ¿Podría hacerse algo diferente para convertirlo en un éxito? ¿Qué medidas tomaste para mejorar la situación? ¿Qué aprendiste de esta experiencia?
  • ¿Por qué preguntarle a Q5: Este tipo de preguntas le ayudará a averiguar cómo percibe el candidato sus decisiones, saca conclusiones y cuánto aprende de su experiencia anterior.

Examen técnico de los conocimientos de los desarrolladores de Java con pruebas de codificación en línea

Los tests de programación en línea pueden ser una buena forma de evaluar las habilidades de los desarrolladores de Java. A continuación encontrarás información sobre cómo puedes utilizar los tests de programación y cuáles elegir.

Pruebas de codificación de Java en línea - el método principal o adicional para la selección

En algunas empresas, las pruebas de programación se utilizan como un método adicional de selección de candidatos, después de analizar el currículum y realizar una entrevista telefónica o en vídeo. Sin embargo, cada vez son más las empresas que recurren a las pruebas de programación como primer método de selección de las habilidades de programación. Lo que quiero decir es que la empresa invita a todos los candidatos que solicitan un determinado puesto a realizar una prueba. De este modo, por un lado, el responsable de la contratación de personal informático sólo dedica tiempo a los candidatos que han superado el examen, de modo que han demostrado que tienen conocimientos de programación en Java, y por otro lado, estos candidatos muestran un mayor compromiso, ya que han invertido su tiempo en el proceso de contratación y, por lo tanto, es más probable que participen en todas sus fases.

Prueba de codificación en línea de Java, ¿cuál elegir?

Pero para que el cribado sea preciso, las pruebas de codificación tienen que ser las correctas.

Hay muchos tests de codificación de Java online en el mercado, pero normalmente verifican los conocimientos del candidato en lugar de sus habilidades de programación y su capacidad para resolver problemas de codificación de la vida real. Por eso, a muchos programadores experimentados no les gusta este tipo de evaluación y, además, no son capaces de obtener una buena puntuación, ya que no pueden demostrar su experiencia y sus habilidades para resolver problemas de programación de la vida real.

Entonces, ¿qué características deberían tener tales pruebas de codificación? Abajo encontrarás mis 5 características más importantes que deberías buscar:

  1. Las pruebas de programación de Java deben verificar no sólo los conocimientos de los desarrolladores de Java en lo que respecta a la tecnología en general, sino también los marcos y bibliotecas
  2. Las pruebas de codificación de Java deberían consistir en un par de tareas, no sólo pruebas de elección múltiple, sino sobre todo, tareas de programación cuya dificultad debería corresponderse con las responsabilidades que los candidatos tendrán si consiguen el trabajo (las pruebas no deberían basarse en tareas algorítmicas ya que así no se puede verificar si un candidato puede resolver los desafíos de codificación de la vida real).
  3. Preferiblemente, la tarea de programación en Java debe ser preparada en base al código de la compañía, ya que es la mejor manera de imitar los desafíos que el candidato tendrá una vez que consiga el trabajo.
  4. No tiene sentido prohibir al programador el uso de fuentes externas, la mejor manera es crearles un entorno como el que tienen en el trabajo, por lo que el examen de libro abierto es mucho más apropiado. Además, el candidato debe ser capaz de usar su IDE preferido, tal como lo hace a diario.
  5. La prueba de codificación también puede incluir una tarea con desafíos de revisión de código para probar las habilidades de Java. Da información muy precisa sobre la experiencia del candidato, su enfoque de la calidad del código y la eficiencia de la depuración y la búsqueda de trampas. Tal evaluación debería ser obligatoria cuando se contraten desarrolladores senior de Java.

Preguntas de la entrevista de Java para 5, 10 y 15 años de experiencia

A la hora de crear las preguntas de la entrevista de Java para 5, 10 y 15 años de experiencia, es importante contar con una variedad de preguntas que no sólo verifiquen los conocimientos académicos del candidato, sino que también pongan a prueba sus habilidades de programación. Nuestras pruebas de selección son capaces de hacer esto mediante el uso de problemas del mundo real en lugar de rompecabezas y pruebas algorítmicas. Esto le permite verificar las habilidades de un desarrollador, así como el conocimiento de marcos y bibliotecas. Si está contratando para un puesto junior, medio o senior, cada prueba de Java debe coincidir con el puesto e incluir preguntas de entrevista de Java para 5, 10 y 15 años de experiencia. Esto puede hacerse utilizando el código base de su empresa para que se ajuste al trabajo diario del puesto.

Preguntas de la entrevista para desarrolladores de Java

Puede ser difícil obtener una comprensión completa de las habilidades de un candidato a partir de una prueba algorítmica. Esto se debe a que puede no incluir preguntas de entrevista para desarrolladores de Java que permitan a los candidatos demostrar sus habilidades y conocimientos actuales. Las pruebas algorítmicas se basan principalmente en la formación universitaria de los candidatos. Como el entorno de Java está en constante cambio, esto no permite al desarrollador mostrar todas sus habilidades y no proporciona una visión objetiva de sus capacidades. Por ello, los candidatos pueden abandonar el proceso de contratación al considerar que no han sido evaluados de forma justa. Es fundamental que las preguntas de la entrevista para desarrolladores de Java se basen en tareas del mundo real relacionadas con el puesto que se va a contratar. Los tests de Devskiller incluyen preguntas de entrevista para desarrolladores Java que emulan situaciones del mundo real utilizando nuestra metodología RealLifeTesting.

Pruebas de evaluación de la codificación de Java en línea DevSkiller, listas para usar

En DevSkiller damos a las empresas una infraestructura que les permite utilizar su propia base de código, proyectos informáticos completos utilizando marcos y bibliotecas, para probar a los programadores en línea. Sin embargo, también tenemos algunas pruebas de codificación de Java listas para usar, que puede utilizar en su campaña de reclutamiento.

Primavera
JUNIOR
Habilidades probadas
Duración
35 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Preguntas de elección

evaluando el conocimiento de Java, Primavera

Tarea de programación - Nivel: Fácil

Java | Spring | Servicio de cambio de moneda - Crear un servicio de cambio de moneda. Debe permitir a los usuarios obtener información sobre los tipos de cambio de moneda y calcular la cantidad de dinero que obtendrán después del cambio.

Java
JUNIOR
Habilidades probadas
Duración
35 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Preguntas de elección

evaluando el conocimiento de Java, Primavera

Tarea de programación - Nivel: Fácil

Java | Kafka | Reserva de billetes de avión - Implementar el servicio de validación de la calidad de los datos que se reciben de las agencias de viajes.

Bota de Primavera
JUNIOR
Habilidades probadas
Duración
54 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Preguntas de elección

evaluando el conocimiento de Java, Bota de Primavera

Lagunas en el código

evaluando el conocimiento de Java

Tarea de programación - Nivel: Fácil

Java | Spring Boot | Estación de Bicicletas HATEOAS - Termina la implementación de HATEOAS al REST API.

Java
JUNIOR
Habilidades probadas
Duración
120 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Tarea de programación de Front End - Nivel: Fácil

JavaScript | TypeScript | Aplicación de facturas - frontend - Implementa la parte del frontend para fusionar y agregar los datos de la factura con los tipos de cambio de la moneda.

Tarea de programación del Back End - Nivel: Fácil

Java | Aplicación de facturación - backend - Implementa la parte del backend para buscar y agregar los datos de la factura con el servicio y los métodos DAO.

Java
JUNIOR
Habilidades probadas
Duración
29 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Preguntas de elección

evaluando el conocimiento de Java

Lagunas en el código

evaluando el conocimiento de Java

Tarea de programación - Nivel: Fácil

Java | GetWordFromText and Reverse - Implementar dos métodos que devolverán las palabras del texto y las invertirán.

Java
JUNIOR
Habilidades probadas
Duración
35 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Preguntas de elección

evaluando el conocimiento de Java

Tarea de programación - Nivel: Fácil

Java | CRUD simple usando HttpClient - Implementa еasу operaciones básicas de CRUD, usando Java 11 HttpClient.

QA
SENIOR
Habilidades probadas
Duración
49 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Preguntas de elección

evaluando el conocimiento de QA, Pruebas de la unidad, Prueba manual, Prueba

Tarea de programación - Nivel: Duro

QA | Java, Selenium | Automatización de la prueba de autenticación multifactorial - Automatizar el mecanismo de autenticación en Selenium.

Selenio
MIDDLE
Habilidades probadas
Duración
40 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Lagunas en el código

evaluando el conocimiento de Java, QA, Selenio

Tarea de programación - Nivel: Medio

QA | Java, Selenio | Extracción de texto y enlaces - El objetivo de esta tarea es probar las habilidades del candidato para recuperar el texto de la página. Las tareas incluyen esperar a que un elemento con texto sea visible, así como elementos invisibles.

Java
JUNIOR
Habilidades probadas
Duración
34 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Preguntas de elección

evaluando el conocimiento de Java, Bota de Primavera

Tarea de programación - Nivel: Fácil

Java | Spring Boot, Kotlin | Ordena el microservicio - Implementa una columna vertebral del miscroservicio RESTful.

Selenio
JUNIOR
Habilidades probadas
Duración
35 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Lagunas en el código

evaluando el conocimiento de Java, QA, Selenio

Tarea de programación - Nivel: Fácil

Java | Selenio | Descargas y colecciones - Implementar dos métodos en la clase SeleniumExecutor, que debería utilizar el Selenium WebDriver para realizar las siguientes tareas en la página de la src/test/resources/__files/index.html.

Compartir correo

Más información sobre la contratación de tecnología

Suscríbase a nuestro Learning Hub para recibir información útil directamente en su bandeja de entrada.

Verificar y desarrollar las habilidades de codificación sin problemas.

Vea los productos DevSkiller en acción.

Certificaciones de seguridad y cumplimiento. Nos aseguramos de que sus datos estén seguros y protegidos.