Jak prověřit dovednosti vývojáře Groovy

Vydáno: Poslední aktualizace:
Jak prověřit dovednosti vývojáře Groovy

The Apache Groovy programming language is one of the oldest alternative programming languages running on JVM (Java Virtual Machine). The Java-syntax compatible Groovy script celebrates its 17th birthday in 2020. People might think that development or the buzz surroundings more recent JVM languages like Kotlin have made Groovy redundant.

Well, that couldn’t be further from the truth!

The Groovy community is more than alive and well and the Groovy syntax is still developed by a group of contributors. The language is one of the most downloaded libraries in the Java ecosystem and it is supported by a wide range of frameworks. One of the reasons for its popularity is that Groovy makes unit and automated testing easier. What’s clear is that when used correctly – Apache Groovy has the potential to give your tech a huge productivity boost.

In this guide you’ll find:

A guide to screening Groovy developer skills

If you’re not familiar with Groovy, have no fear. We’ve created a list of things you should know before you begin screening for your next Groovy developer.

What is a Groovy developer?1. What is Groovy?

Groovy or Apache Groovy is a JVM-based programming language. It is dynamic in nature, with static typing and static compilation capabilities. The Groovy programming language is aimed at improving developer productivity thanks to a concise, familiar and easy to learn syntax. Groovy is a Java enhancer because it provides greater flexibility and even introduces special features to applications (those that have already been developed can be improved or they can be made from scratch).

Groovy has convenience methods that make it seem somewhat similar to Python or Ruby. The beauty of the Groovy language is that it can reduce your boilerplate Java code by a substantial amount. What’s really great about Groovy is that it can be used really easily alongside Java in the same project.

1.1 What is the difference between Groovy and Java?

Groovy is an object-oriented programming language that also supports scripting whereas Java is an object-oriented programming language. Groovy syntax builds on top of Java which means Java code can mostly be copied and pasted into Groovy (with some exceptions), while not vice-versa.

Groovy is known as a JVM scripting language and a lot of Groovy developers are taking advantage of its flexible nature. There are a number of use-cases where Groovy is a better choice than Java.

When it comes to syntax, Groovy builds on top of Java. Groovy offers more flexible syntax alternatives than Java, which has to rely a lot on boilerplate code. Groovy adds many enhancements that reduce the amount of boilerplate code, all while supporting the Java syntax. This is a great benefit as it helps make the code more readable.

Groovy provides more comprehensive support for functional programming than Java. It offers robust runtime and compile-time meta-programming capabilities, strong support for creating DSLs and scripting capabilities.

For a beginner, Groovy is also probably easier to learn than Java as many basic things can be coded more intuitively.

1.2 What is similar between Groovy and Java?

For a programmer with previous knowledge of Java, starting to work with Groovy code is extremely easy. The learning curve is practically flat. Groovy allows you to do things that were overly complex in Java, but in a much neater fashion. This in itself is a joyous experience.

The syntax is quite similar for both, but because of Groovy’s enhancements, its code is much easier to read. The best part is that both can live together in the same project. The popular Spock testing framework is also built on Groovy.

With a few exceptions, you can copy/paste code from a .java to a .groovy file. Groovy provides out-of-the-box popular Java imports such as java.io.*, java.lang.*, java.math.BigDecimal, java.math.BigInteger, java.net.*, java.util.*. These can be used within Groovy code without having to add import statements.

It’s also easy to use both Java and Groovy within one Maven or Gradle project.

2. What is Groovy used for?

Groovy can be used as an independent project language as well as an additional language in Java projects. There are production applications built fully on top of Groovy, including many web applications built on top of the Grails framework (a Groovy-based framework similar to Ruby on Rails). A lot of prevalent JVM frameworks, including Spring, support Groovy. Also, a lot of tooling and “glue software” is written in Groovy.

As a companion language in Java projects, it’s frequently used for testing (including the exquisite Spock testing framework), working with Strings, Collections, and JSON or XML files, as well as creating DSLs (Domain Specific Languages) and scripting. It’s important to say though that of all the features listed above, only scripting cannot be done in Java.

Groovy is also used for building build tool plugins and scripts and as a powerful scripting language within the deployment process (for example, Groovy DSL for Jenkins CI/CD).

Screen a Groovy developer: what should an IT recruiter know about Groovy?3. What is important for an IT Recruiter to know about Groovy?

Groovy integrates seamlessly with the vast Java ecosystem.  It can be used in conjunction with a significant number of the tools and frameworks that work with Java, including Maven and Gradle.  The language offers state-of-the-art testing frameworks (Spock, Geb) and easy-to-use web development frameworks (such as Grails and Ratpack).  Groovy is supported by various Java-based application frameworks, including the popular Spring framework. It even has its own framework for developing desktop applications (Griffon).

3.1 What tools and techniques should a Groovy developer be familiar with?

As with Java, knowledge of build tools, such as Maven and/or Gradle will be essential. In addition, a good working knowledge of an IDE such as IntelliJ is important.  Another thing to take into account is that a Groovy developer will be expected to be familiar with at least one application framework.

Screen a Groovy developer: Verify Groovy skills4. How to verify Groovy skills in the screening phase?

To evaluate a candidate’s Groovy skills, a recruiter may use one of the following mediums:

  • Úkoly programování
  • MCQ (Multiple Choice Questions),
  • Otázky s více odpověďmi (MAQ)
  • Vyplňte prázdná místa, otázky na tabuli
  • Otázky týkající se zvuku / videa
  • LogicBox (platforma pro pseudokódování založená na umělé inteligenci)
  • Simulátory kódování
  • Pravdivé nebo nepravdivé otázky atd.

4.1 Screening a Groovy developer using their resume

A candidate with experience developing applications, tools or libraries in Groovy would clearly be an advantage.

However, as learning Groovy is functionally simple for Java developers, hiring Java developers for Groovy positions might also be a good idea. Of course, only provided they are interested in learning and using Groovy on the job.

Both technologies require an understanding of the same underlying engine, so it seems like a decent match for starters.

4.2 What type of experience is important to look for in a Groovy developer?

This depends more on the type of project than the technology itself.

It might make sense to look for developers with experience in similar areas. However, it’s not something to treat as a necessary condition.

An open–source experience often has the advantage of allowing you to see the contributions that the candidate has already made. This knowledge can give you some insight regarding their skills and abilities.

Screen a Groovy developer: Groovy glossary4.3 A Groovy glossary for technical recruiters

Groovy versions
  • 2.5.x – most recent GA
  • 2.6.x – still alpha
  • 3.0.x – now available RC 2
Application frameworks
  • Spring (most recent GA: 5.2.2.RELEASE) – most popular,
  • Spring Boot (most recent GA: 2.2.2.RELEASE) – most popular,
  • Grails (now available 4.0.x) – relevant if used in the project that the recruitment is for,
  • Ratpack (most recent GA: 1.7.x) – relevant if used in the project that the recruitment is for,
  • Micronaut (most recent GA: 1.2.x) – relevant if used in the project that the recruitment is for,
  • Quarkus (now available 1.1.x) – relevant if used in the project that the recruitment is for.
Nástroje pro sestavení
  • Maven
  • Gradle
IDEs
  • IntelliJ IDEA (probably most popular)
  • Eclipse

4.4 The different versions of Groovy

There have been many revisions of Apache Groovy but the most popular releases are as follows:

  • 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 Which versions are similar to each other? Which versions are different?

Groovy 2.0 has been for a long time the most recent line with GA releases and it’s the most broadly used.

This version offers vast support when it comes to supporting Java syntax. One advantage is you can just copy/paste large amounts of Java code into Groovy classes and it compiles and runs without any issues.

A significant update to the language included the Groovy Parrot Parser (available by default in 3.0 and as opt–in from 2.6). This update supports more Java syntax, including Java loops, array initializers, default interface methods, lambdas and method references, offering nearly 1-to-1 syntax parity with Java.

Another difference is that Groovy 3.0 includes some changes to class/package names as compared to the previous versions.

4.6 How important are Groovy certificates for assessing a candidate’s coding skills?

There are no well-renowned certifications for the Groovy language. Oracle Java certifications might constitute an advantage, though; however, we would definitely not consider them a must-have.

4.7 Other things to look for on a Groovy developer’s resume

A computer science degree usually indicates a broader knowledge of the field and could certainly be seen as an advantage.

Zjistěte, zda kandidát:

  • Has worked on a typical Groovy project
  • Has participated in large projects, dealing with unique and stringent requirements (if you are looking for someone to work on a complex enterprise system). If you are looking for someone to write libraries in Groovy or to work on the CI/CD tooling, this might not be an important criterion
  • Has participated in a similar project to the one you are recruiting for

Additionally, if the following are mentioned, these types of activity can be examined based on the publicly visible history of the candidate:

  • Vystoupení na konferencích
  • Účast na konferencích
  • Psaní článků do technických časopisů
  • Psaní technického blogu
  • Přispívání do OSS
  • Přispívání na stránky s odpověďmi (např. Stack Overflow)

Screen a Groovy developer: Groovy interview questions 5. Groovy interview questions to ask during a phone/video technical interview

Je obtížné spoléhat se pouze na slova v životopise. Je přece důležité vyzvat uchazeče, aby zjistil, zda má skutečně takové dovednosti, jaké uvádí. I kdyby šlo jen o telefonický rozhovor, může vám pomoci pochopit, jak kandidát přemýšlí a jak postupuje při řešení problémů souvisejících s jeho řemeslem.

5.1 Questions about the candidate’s experience

  • How long has the developer worked with Groovy and/or Java?
  • What kind of projects have they created with Groovy and/or Java? How many (web applications, distributed systems, tooling, DSLs, etc.)?
  • What version of Groovy did they work on?
  • More broadly, what software development projects have they worked on (also in other technologies)?

These questions will help you determine the level of professional experience the developer has with Groovy and/or Java. The greater amount of experience, as well as experience in projects similar to the one you’re recruiting for, must be considered an advantage.

If someone does not have experience working with Groovy but has broad experience with other technologies, they also might be a good fit provided they are a proven fast-learner.

5.2 Questions about the candidate’s knowledge and opinions

  • What are Groovy’s most important features?
  • What are the main differences between Groovy and Java?
  • What are some Groovy good practices when using the language?
  • What should I be aware of when working with Groovy?

These questions will allow you to understand how well the candidate knows the technology and if they are aware of the most common issues and pitfalls.

5.3 Otázky týkající se chování, které byste měli položit, abyste pochopili, jak se uchazeč choval v minulosti.

  • What is your biggest programming achievement? Why did it happen? How can you repeat it?

This question will allow the candidate to present a success story and can indicate to the recruiter whether the candidate is more interested in solving the problem or getting the praise.

  • What was your biggest problem in programming? Why did it happen? How can you avoid repeating it in the future?

This question will prompt the candidate to describe a personal low-point, and will show the recruiter whether the candidate is comfortable speaking about it. It can additionally reveal if the candidate is interested in solving the problem or shifting the blame.

  • Would you like to mentor a junior developer? Why? How would you go about doing it? Do you have any experience mentoring other people?

Náborový pracovník tak může posoudit zájem uchazeče o sdílení znalostí a jeho potřebné měkké dovednosti.

Podívejte se na další vlastnosti good developer.

Author – Olga Maciaszek-Sharma

How to screen Groovy developer skills author Olga Maciaszek-SharmaOlga Maciaszek-Sharma is a Senior Software Engineer on the Spring Cloud Team at Pivotal, where she works primarily on Spring Cloud Commons (Spring Cloud LoadBalancer), Spring Cloud Contract, Spring Cloud Netflix, and Spring Cloud Gateway. She has gained experience while working with microservices where cutting-edge solutions were used as well as with complex legacy systems, implementing both new business features and solutions aimed at improving the process of continuous deployment and setup of applications. Olga is also a contributor to various other OSS projects, including JFairy, Jenkins Pipeline Plugin, Jenkins Stash Pull Request Builder Plugin, and Java Gitlab Client. Before switching to development, she worked for more than 3 years as a Quality Assurance Engineer, specialized in test automation.

Screen a Groovy developer: Groovy coding tests6. Technical screening of a Groovy developer’s skills using an online coding test

The number one concern you should have with recruiting a Groovy developer is whether they have immaculate coding skills. Groovy is a simple language which makes coding easier, but like all languages, it does require good coding skills What is for certain, a resume screen and phone screen will help you filter through some of your candidates. That said, the last thing you want is to invite a candidate to a technical interview only to find that they never had the coding skills you require. Nightmare.

6.1 Which Groovy online programming test should you choose?

Při hledání správného Groovy online programming test měli byste se ujistit, že splňuje následující kritéria:

  • Zkouška odráží kvalitu prováděné odborné práce.
  • Doba trvání není příliš dlouhá, maximálně jedna až dvě hodiny.
  • Test může být odeslán automaticky a je jednoduchý.
  • Úroveň obtížnosti odpovídá schopnostem uchazeče.
  • Testování jde nad rámec kontroly, zda řešení funguje - kontroluje kvalitu kódu a to, jak dobře funguje v okrajových případech.
  • Je co nejblíže přirozenému programovacímu prostředí a umožňuje kandidátovi přístup k příslušným zdrojům.
  • Poskytuje uchazeči možnost používat všechny knihovny, frameworky a další nástroje, se kterými se pravidelně setkává.

6.2 DevSkiller ready-to-use online Groovy developer coding assessment tests

Testy kódování DevSkiller využívají naši metodiku RealLifeTesting™, která odráží skutečné kódovací prostředí, v němž váš kandidát pracuje. Namísto používání obskurních algoritmů vyžadují testy DevSkiller, aby kandidáti vytvářeli aplikace nebo funkce. Jsou hodnoceny zcela automaticky a lze je absolvovat kdekoli na světě. Zároveň má kandidát přístup ke všem zdrojům, které by běžně používal, včetně knihoven, frameworků, StackOverflow a dokonce i Google.

Companies use DevSkiller to test candidates using their own codebase from anywhere in the world. To make it easy, DevSkiller also offers a number of pre-made Groovy coding tests like the ones here:

Spring Boot
JUNIOR
Testované dovednosti
Doba trvání
54 maximálně minut.
Hodnocení
Automatické
Přehled testů

Otázky s výběrem odpovědí

hodnocení znalostí Java, Spring Boot

Mezery v kódu

hodnocení znalostí Java

Úloha programování - Úroveň: Snadné

Java | Spring Boot | HATEOAS Bike Station - Dokončení implementace HATEOAS do REST API.

Groovy
STŘEDNÍ
Testované dovednosti
Doba trvání
40 maximálně minut.
Hodnocení
Automatické
Přehled testů

Otázky s výběrem odpovědí

hodnocení znalostí Groovy, Java

Úloha programování - Úroveň: - Střední úroveň

Java | Groovy | Aplikace pro správu letů | Rezervace míst a analýza letů - Implementace chybějících funkcí aplikace pro správu dat o letech, jako je rezervace míst a analýza letů.

Java Script
STŘEDNÍ
Testované dovednosti
Doba trvání
80 maximálně minut.
Hodnocení
Automatické
Přehled testů

Úloha programování - Úroveň: - Střední úroveň

Java | Správce letů | Implementace aplikace, která je zodpovědná za správu dat o letech

Úloha programování - Úroveň: - Střední úroveň

JavaScript | React | Kontaktní formulář - Optimalizace vyplňovacího formuláře pro uživatele webu

Java
STŘEDNÍ
Testované dovednosti
Doba trvání
55 maximálně minut.
Hodnocení
Automatické
Přehled testů

Otázky s výběrem odpovědí

hodnocení znalostí Java standardní API

Programovací úkol

aplikace pro správu letů, kandidát potřebuje implementovat dvě obchodní metody pro vyhledávání letů mezi dvěma městy a generování seznamu míst pro letadlo. Požaduje Java znalosti.

Java
JUNIOR
Testované dovednosti
Doba trvání
45 maximálně minut.
Hodnocení
Automatické
Přehled testů

Otázky s výběrem odpovědí

hodnocení znalostí Java standardní API

Programovací úkol

Aplikace Flights manager, kandidát musí implementovat dvě obchodní metody pro vyhledávání letů a rezervaci místa, což vyžaduje základní znalosti o Java

Sdílet příspěvek

Další informace o najímání zaměstnanců v oblasti technologií

Přihlaste se k odběru našeho vzdělávacího centra a dostávejte užitečné informace přímo do své e-mailové schránky.

Bezproblémové ověřování a rozvíjení dovedností v oblasti kódování.

Podívejte se na produkty DevSkiller v akci.

Bezpečnostní certifikace a shoda s předpisy. Zajistíme, aby vaše data byla v bezpečí.

Logo DevSkiller Logo TalentBoost Logo TalentScore