Ir al contenido

Cómo evaluar los conocimientos de los desarrolladores de Groovy

Publicado: Última actualización:
Cómo evaluar los conocimientos de los desarrolladores de Groovy

El lenguaje de programación Apache Groovy es uno de los lenguajes de programación alternativos más antiguos que se ejecutan en JVM (Java Virtual Machine). El script Groovy, compatible con la sintaxis Java, cumple 17 años en 2020. La gente podría pensar que el desarrollo o el zumbido alrededor de lenguajes JVM más recientes como Kotlin han hecho Groovy redundante.

Pues bien, ¡eso no podría estar más lejos de la realidad!

La comunidad Groovy está más que viva y la sintaxis Groovy sigue siendo desarrollada por un grupo de colaboradores. El lenguaje es una de las bibliotecas más descargadas del Ecosistema Java y está soportado por una amplia gama de frameworks. Una de las razones de su popularidad es que Groovy facilita las pruebas unitarias y automatizadas. Lo que está claro es que cuando se utiliza correctamente - Apache Groovy tiene el potencial de dar a su tecnología un gran impulso a la productividad.

En esta guía encontrarás:

Guía para evaluar las competencias de los desarrolladores de Groovy

Si no está familiarizado con Groovy, no tema. Hemos creado una lista de cosas que deberías saber antes de empezar a buscar a tu próximo desarrollador Groovy.

¿Qué es un desarrollador Groovy?1. ¿Qué es Groovy?

Groovy o Apache Groovy es un lenguaje de programación basado en JVM. Es de naturaleza dinámica, con capacidades de tipado estático y compilación estática. El lenguaje de programación Groovy tiene como objetivo mejorar la productividad de los desarrolladores gracias a una sintaxis concisa, familiar y fácil de aprender. Groovy es un potenciador de Java porque proporciona mayor flexibilidad e incluso introduce características especiales en las aplicaciones (se pueden mejorar las ya desarrolladas o hacerlas desde cero).

Groovy tiene métodos de conveniencia que lo hacen parecer algo similar a Python o Ruby. La belleza del lenguaje Groovy es que puede reducir su código Java repetitivo en una cantidad sustancial. Lo mejor de Groovy es que se puede utilizar fácilmente junto con Java en el mismo proyecto.

1.1 ¿Cuál es la diferencia entre Groovy y Java?

Groovy es un lenguaje de programación orientado a objetos que también soporta scripts, mientras que Java es un lenguaje de programación orientado a objetos. La sintaxis de Groovy se basa en la de Java, lo que significa que el código Java puede copiarse y pegarse en Groovy (con algunas excepciones), pero no viceversa.

Groovy es conocido como un lenguaje de scripting JVM y muchos desarrolladores de Groovy están aprovechando su naturaleza flexible. Hay una serie de casos de uso en los que Groovy es una mejor opción que Java.

En cuanto a la sintaxis, Groovy se basa en Java. Groovy ofrece alternativas de sintaxis más flexibles que Java, que tiene que depender mucho del código boilerplate. Groovy añade muchas mejoras que reducen la cantidad de código repetitivo, a la vez que mantiene la sintaxis de Java. Esto es una gran ventaja, ya que ayuda a que el código sea más legible.

Groovy ofrece un soporte más completo para la programación funcional que Java. Ofrece sólidas capacidades de metaprogramación en tiempo de ejecución y compilación, un sólido soporte para la creación de DSL y capacidades de scripting.

Para un principiante, Groovy también es probablemente más fácil de aprender que Java, ya que muchas cosas básicas se pueden codificar de forma más intuitiva.

1.2 ¿En qué se parecen Groovy y Java?

Para un programador con conocimientos previos de Java, empezar a trabajar con código Groovy es extremadamente fácil. La curva de aprendizaje es prácticamente plana. Groovy le permite hacer cosas que eran excesivamente complejas en Java, pero de una manera mucho más ordenada. Esto en sí mismo es una experiencia gozosa.

La sintaxis es bastante similar para ambos, pero debido a las mejoras de Groovy, su código es mucho más fácil de leer. Lo mejor es que ambos pueden convivir en el mismo proyecto. El popular marco de pruebas Spock también está basado en Groovy.

Con algunas excepciones, puede copiar/pegar código de un archivo .java a un archivo .groovy. Groovy proporciona importaciones Java populares como java.io.*, java.lang.*, java.math.BigDecimal, java.math.BigInteger, java.net.*, java.util.*. Estos pueden ser utilizados dentro de código Groovy sin tener que añadir declaraciones de importación.

También es fácil utilizar tanto Java como Groovy dentro de un proyecto Maven o Gradle.

2. ¿Para qué sirve Groovy?

Groovy puede utilizarse como lenguaje de proyecto independiente o como lenguaje adicional en proyectos Java. Existen aplicaciones de producción construidas completamente sobre Groovy, incluyendo muchas aplicaciones web construidas sobre el framework Grails (un framework basado en Groovy similar a Ruby en Rails). Muchas Los principales marcos de trabajo de la JVM, incluido Spring, son compatibles con Groovy. Además, una gran cantidad de herramientas y "software de cola" está escrito en Groovy.

Como lenguaje complementario en proyectos Java, se utiliza con frecuencia para realizar pruebas (incluido el exquisito marco de pruebas Spock), trabajar con cadenas, colecciones y archivos JSON o XML, así como para crear DSL (lenguajes específicos de dominio) y secuencias de comandos. Sin embargo, es importante decir que de todas las características enumeradas anteriormente, sólo el scripting no se puede hacer en Java.

Groovy también se utiliza para crear plugins y scripts de herramientas de compilación y como un potente lenguaje de scripting dentro del proceso de despliegue (por ejemplo, Groovy DSL para Jenkins CI/CD).

Selección de un desarrollador Groovy: ¿qué debe saber sobre Groovy un seleccionador de personal informático?3. ¿Qué es importante que un reclutador de TI sepa sobre Groovy?

Groovy se integra a la perfección con el vasto ecosistema Java. Puede utilizarse junto con un número significativo de herramientas y marcos de trabajo que funcionan con Java, incluidos Maven y Gradle. El lenguaje ofrece marcos de pruebas de última generación (Spock, Geb) y marcos de desarrollo web fáciles de usar (como Grails y Ratpack). Groovy es compatible con varios marcos de aplicaciones basados en Java, incluido el popular marco Spring. Incluso tiene su propio marco para desarrollar aplicaciones de escritorio (Griffon).

3.1 ¿Qué herramientas y técnicas debería conocer un desarrollador Groovy?

Al igual que con Java, el conocimiento de herramientas de construcción, como Maven y / o Gradle será esencial. Además, un buen conocimiento práctico de un IDE como IntelliJ es importante. Otra cosa a tener en cuenta es que un desarrollador Groovy se espera que esté familiarizado con al menos un marco de aplicación.

Examinar a un desarrollador de Groovy: Verificar los conocimientos de Groovy4. ¿Cómo verificar los conocimientos de Groovy en la fase de selección?

Para evaluar las habilidades Groovy de un candidato, un reclutador puede utilizar uno de los siguientes medios:

  • Tareas de programación
  • Preguntas de respuesta múltiple (MCQ),
  • Preguntas de respuesta múltiple (MAQ)
  • Rellenar los espacios en blanco, Preguntas de pizarra
  • Preguntas sobre audio y vídeo
  • LogicBox (plataforma de pseudocodificación basada en inteligencia artificial)
  • Simuladores de codificación
  • Preguntas de verdadero o falso, etc.

4.1 Selección de un desarrollador Groovy a partir de su currículum vitae

Un candidato con experiencia en el desarrollo de aplicaciones, herramientas o bibliotecas en Groovy sería claramente una ventaja.

Sin embargo, como aprender Groovy es funcionalmente sencillo para los desarrolladores Java, contratar desarrolladores Java para puestos de Groovy también podría ser una buena idea. Por supuesto, siempre que estén interesados en aprender y utilizar Groovy en el trabajo.

Ambas tecnologías requieren conocer el mismo motor subyacente, así que parece una buena combinación para empezar.

4.2 ¿Qué tipo de experiencia es importante buscar en un desarrollador Groovy?

Esto depende más del tipo de proyecto que de la tecnología en sí.

Puede tener sentido buscar desarrolladores con experiencia en áreas similares. Sin embargo, no es algo que deba tratarse como una condición necesaria.

Una experiencia en código abierto suele tener la ventaja de permitirle ver las contribuciones que el candidato ya ha realizado. Este conocimiento puede darte una idea de sus habilidades y capacidades.

Pantalla de un desarrollador Groovy: Glosario Groovy4.3 Un glosario Groovy para reclutadores técnicos

Versiones Groovy
  • 2.5.x - GA más reciente
  • 2.6.x - todavía alfa
  • 3.0.x - ya disponible RC 2
Marcos de aplicación
  • Spring (GA más reciente: 5.2.2.RELEASE) - más popular,
  • Spring Boot (GA más reciente: 2.2.2.RELEASE) - más popular,
  • Grails (ahora disponible 4.0.x) - relevante si se utiliza en el proyecto para el que es la contratación,
  • Ratpack (GA más reciente: 1.7.x) - relevante si se utiliza en el proyecto para el que se realiza la contratación,
  • Micronaut (GA más reciente: 1.2.x) - relevante si se utiliza en el proyecto para el que se realiza la contratación,
  • Quarkus (ahora disponible 1.1.x) - relevante si se utiliza en el proyecto para el que se realiza la contratación.
Construir herramientas
  • Maven
  • Gradle
IDEs
  • IntelliJ IDEA (probablemente el más popular)
  • Eclipse

4.4 Las diferentes versiones de Groovy

Ha habido muchas revisiones de Apache Groovy, pero las versiones más populares son las siguientes:

  • Groovy 1.0
  • Groovy 1.5
  • Groovy 1.6
  • Groovy 1.7
  • Groovy 1.8
  • Groovy 2.0
  • Groovy 2.1
  • Groovy 2.2
  • Groovy 2.3
  • Groovy 2.4
  • Groovy 2.5
  • Groovy 2.6
  • Groovy 3.0

4.5 ¿Qué versiones son similares entre sí? ¿Qué versiones son diferentes?

Groovy 2.0 ha sido durante mucho tiempo la línea más reciente con versiones GA y es la más utilizada.

Esta versión ofrece un amplio soporte cuando se trata de soportar la sintaxis Java. Una ventaja es que puedes copiar/pegar grandes cantidades de código Java en clases Groovy y se compila y ejecuta sin problemas.

Una actualización significativa del lenguaje incluyó el Parser Groovy Parrot (disponible por defecto en 3.0 y como opt-in a partir de 2.6). Esta actualización admite más sintaxis Java, incluidos bucles Java, inicializadores de matrices, métodos de interfaz por defecto, lambdas y referencias a métodos, ofreciendo una paridad sintáctica casi 1 a 1 con Java.

Otra diferencia es que Groovy 3.0 incluye algunos cambios en los nombres de clases/paquetes con respecto a las versiones anteriores.

4.6 ¿Qué importancia tienen los certificados Groovy para evaluar las habilidades de codificación de un candidato?

No existen certificaciones de renombre para el lenguaje Groovy. Sin embargo, las certificaciones de Oracle Java podrían constituir una ventaja; no obstante, no las consideraríamos imprescindibles.

4.7 Otras cosas que buscar en el currículum de un desarrollador Groovy

Un título en informática suele indicar un conocimiento más amplio del campo y sin duda podría considerarse una ventaja.

Fíjate si el candidato:

  • Ha trabajado en un proyecto Groovy típico
  • Ha participado en grandes proyectos, tratando con requisitos únicos y estrictos (si usted está buscando a alguien para trabajar en un sistema empresarial complejo). Si está buscando a alguien que escriba bibliotecas en Groovy o que trabaje en las herramientas CI/CD, puede que este no sea un criterio importante.
  • Ha participado en un proyecto similar al que está contratando

Además, si se mencionan las siguientes, estos tipos de actividad pueden examinarse basándose en el historial públicamente visible del candidato:

  • Intervención en conferencias
  • Asistencia a conferencias
  • Escribir artículos para revistas técnicas
  • Escribir un blog técnico
  • Contribuir al OSS
  • Contribuir a sitios de respuestas (por ejemplo, Stack Overflow)

Examinar a un desarrollador de Groovy: Preguntas de la entrevista Groovy 5. Preguntas útiles para una entrevista técnica por teléfono o vídeo

Es difícil fiarse sólo de las palabras de un currículum. Al fin y al cabo, es importante desafiar al candidato para determinar si realmente posee las habilidades que dice tener. Aunque solo sea una entrevista telefónica, puede ayudarle a entender cómo piensa el candidato y cómo resuelve los problemas relacionados con su oficio.

5.1 Preguntas sobre la experiencia del candidato

  • ¿Cuánto tiempo lleva el desarrollador trabajando con Groovy y/o Java?
  • ¿Qué tipo de proyectos han creado con Groovy y/o Java? ¿Cuántos (aplicaciones web, sistemas distribuidos, herramientas, DSLs, etc.)?
  • ¿En qué versión de Groovy trabajaban?
  • En términos más generales, ¿en qué proyectos de desarrollo de software han trabajado (también en otras tecnologías)?

Estas preguntas le ayudarán a determinar el nivel de experiencia profesional que tiene el desarrollador con Groovy y/o Java. La mayor cantidad de experiencia, así como la experiencia en proyectos similares al que está reclutando, debe considerarse una ventaja.

Si alguien no tiene experiencia trabajando con Groovy pero tiene amplia experiencia con otras tecnologías, también podría ser una buena opción, siempre y cuando se demuestre que aprende rápido.

5.2 Preguntas sobre los conocimientos y opiniones del candidato

  • ¿Cuáles son las características más importantes de Groovy?
  • ¿Cuáles son las principales diferencias entre Groovy y Java?
  • ¿Cuáles son algunas de las buenas prácticas de Groovy a la hora de utilizar el lenguaje?
  • ¿Qué debo tener en cuenta al trabajar con Groovy?

Estas preguntas le permitirán comprender hasta qué punto el candidato conoce la tecnología y si es consciente de los problemas y escollos más comunes.

5.3 Preguntas de comportamiento que debe formular para comprender cómo ha actuado el candidato en el pasado

  • ¿Cuál es su mayor logro en programación? ¿Por qué ocurrió? ¿Cómo puede repetirlo?

Esta pregunta permitirá al candidato presentar una historia de éxito y puede indicar al reclutador si el candidato está más interesado en resolver el problema o en recibir elogios.

  • ¿Cuál ha sido tu mayor problema a la hora de programar? ¿Por qué ocurrió? ¿Cómo puedes evitar repetirlo en el futuro?

Esta pregunta pedirá al candidato que describa un punto bajo personal, y mostrará al reclutador si el candidato se siente cómodo hablando de ello. Además, puede revelar si el candidato está interesado en resolver el problema o en echar la culpa a otros.

  • ¿Te gustaría ser mentor de un desarrollador junior? ¿Por qué? ¿Cómo lo harías? ¿Tienes alguna experiencia como mentor de otras personas?

De este modo, el responsable de la contratación podrá calibrar el interés del candidato y las aptitudes interpersonales necesarias para compartir conocimientos.

Consulte más cualidades de un buen promotor.

Autor - Olga Maciaszek-Sharma

Cómo evaluar los conocimientos de los desarrolladores de Groovy (Olga Maciaszek-Sharma)Olga Maciaszek-Sharma es ingeniera de software sénior del equipo de Spring Cloud en Pivotaldonde trabaja principalmente en Spring Cloud Commons (Spring Cloud LoadBalancer), Spring Cloud Contract, Spring Cloud Netflix y Spring Cloud Gateway. Ha adquirido experiencia trabajando con microservicios en los que se utilizaron soluciones de vanguardia, así como con complejos sistemas heredados, implementando tanto nuevas funciones empresariales como soluciones destinadas a mejorar el proceso de despliegue y configuración continuos de las aplicaciones. Olga es también colaboradora de otros proyectos OSS, incluyendo JFairy, Jenkins Pipeline Plugin, Jenkins Stash Pull Request Builder Plugin, y Java Gitlab Client. Antes de dedicarse al desarrollo, trabajó durante más de 3 años como ingeniera de control de calidad, especializada en la automatización de pruebas.

Examina a un desarrollador de Groovy: Pruebas de codificación Groovy6. Examen técnico de las competencias de un desarrollador Groovy mediante una prueba de codificación en línea.

La principal preocupación que debe tener a la hora de contratar a un desarrollador Groovy es si tiene unas habilidades de codificación inmaculadas. Groovy es un lenguaje sencillo que facilita la codificación, pero, como todos los lenguajes, requiere buenas habilidades de codificación. Lo que es seguro es que una criba de currículum y una criba telefónica le ayudarán a filtrar a algunos de sus candidatos. Dicho esto, lo último que quieres es invitar a un candidato a una entrevista técnica sólo para descubrir que nunca ha tenido las habilidades de codificación que necesitas. Una pesadilla.

6.1 ¿Qué examen de programación Groovy en línea debe elegir?

A la hora de buscar el Test de programación Groovy en línea debe asegurarse de que cumple los siguientes criterios:

  • La prueba refleja la calidad del trabajo profesional que se realiza
  • La duración no es demasiado larga, de una a dos horas como máximo.
  • La prueba puede enviarse automáticamente y es de naturaleza sencilla
  • El nivel de dificultad se ajusta a las capacidades del candidato
  • La prueba va más allá de comprobar si la solución funciona: comprueba la calidad del código y lo bien que funciona en casos extremos.
  • Es lo más parecido posible al entorno natural de programación y permite al candidato acceder a los recursos pertinentes
  • Proporciona al candidato la oportunidad de utilizar todas las bibliotecas, frameworks y otras herramientas con las que se encuentra habitualmente.

6.2 Pruebas en línea de evaluación de la codificación Groovy para desarrolladores DevSkiller listas para usar

Las pruebas de codificación DevSkiller utilizan nuestra metodología RealLifeTesting™ para reflejar el entorno de codificación real en el que trabaja su candidato. En lugar de utilizar algoritmos oscuros, las pruebas DevSkiller requieren que los candidatos construyan aplicaciones o funciones. Se califican de forma totalmente automática y pueden realizarse en cualquier parte del mundo. Al mismo tiempo, el candidato tiene acceso a todos los recursos que utilizaría normalmente, como bibliotecas, frameworks, StackOverflow e incluso Google.

Las empresas utilizan DevSkiller para poner a prueba a los candidatos utilizando su propia base de código desde cualquier lugar del mundo. Para hacerlo más fácil, DevSkiller también ofrece una serie de pruebas de codificación Groovy pre-hechos como los de aquí:

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

Preguntas de elección

evaluar los conocimientos de Java, Spring Boot

Lagunas del código

evaluar los conocimientos de Java

Tarea de programación - Nivel: Fácil

Java | Spring Boot | HATEOAS Bike Station - Finalizar la implementación de HATEOAS a la API REST.

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

Preguntas de elección

evaluar los conocimientos de Groovy

Tarea de programación - Nivel: Fácil

Java | Groovy | Método de operación - Implementar un método para sumar los números de una lista dada de cadenas en Groovy.

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

Preguntas de elección

evaluar los conocimientos de Groovy, Java

Tarea de programación - Nivel: Medio

Java | Groovy | Aplicación de gestión de vuelos | Reserva de asientos y análisis de vuelos - Implementar las características que faltan de la aplicación de gestión de datos de vuelos como reserva de asientos y análisis de vuelos.

Java Script
MEDIO
Habilidades probadas
Duración
80 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Tarea de programación - Nivel: Medio

Java | Gestor de vuelos | Implementar una aplicación que se encargue de gestionar los datos de los vuelos

Tarea de programación - Nivel: Medio

JavaScript | React | Formulario de contacto - Optimizar el formulario de relleno para los usuarios del sitio

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

Preguntas de elección

evaluar los conocimientos de Java API estándar

Tarea de programación

aplicación de gestión de vuelos, el candidato necesita implementar dos métodos de negocio para encontrar vuelos entre dos ciudades y generar una lista de asientos para un avión. Requiere Java conocimientos.

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

Preguntas de elección

evaluar los conocimientos de Java API estándar

Tarea de programación

Aplicación de gestión de vuelos, el candidato necesita implementar dos métodos de negocio para encontrar vuelos y reservar un asiento, lo que requiere conocimientos básicos sobre Java

Compartir post

Verificar y desarrollar habilidades de codificación sin problemas.

Vea los productos DevSkiller en acción.