How to screen Java developers’ skills to find the best – guide for IT recruitment

Fevereiro 25, 2016
Java: software engineer interview questions

It can be a serious problem if you want to hire a Java developer but haven’t got a clue what to look for. You can search through a candidate’s LinkedIn profile or a resume all you want. If you can’t tell your JPA from your Gradel you won’t be able to tell if the candidate is a good fit for the position you want to fill. I wrote this article to gather all of the information you need if you are an IT recruiter searching for programmers with Java skills.

1. What is Java?

Java is a compiled, object-oriented programming language, similar in syntax to C++. It is intended to let application developers “write once, run anywhere” meaning that compiled Java code can run on all platforms that support Java without the need for recompilation. An application written in Java have very good performance thanks to the use of a Just-In-Time compiler which continuously analyses the program speed and optimizes frequently executed spots. Another key advantage of Java is an automatic memory management which allows developers to write applications without worrying explicitly about memory allocation and deallocation. As of 2020, it was the most popular programming language tested by employers. Java is not considered an easy-to-use language for non-programmers.

Java is to Javascript like car is to carpet, so don’t confuse these two programming languages.

2. What is important for IT Recruiter to know about Java?

Before I go into details on how to screen Java skills first let me share some basics that will allow you to become more familiar with this technology.

Firstly, Java world changes often, so experience with framework gained 5 years ago is not valid anymore. Bear this in mind when you assess Java developer skills based on so far employment.

Secondly, in the Java environment, knowledge of tools and libraries is more valuable than knowledge of the language itself. Without it, a programmer will write everything by himself from scratch and just waste time. If a developer is familiar with Java libraries and frameworks then he can use it like lego to make what they need and write code only where it is necessary. By doing it this way their work is much more efficient.

Last but not least only commercial experience is important. Java knowledge from a university is hardly ever useful for business coding. So unless you recruit for an entry-level or junior position you can skip assessing Java skills based solely on university education and degree. In that case, what is more important is the candidate’s real-life coding projects, it doesn’t have to be a commercial one – it can be a hobby or open source programming project.

Basic Java developer skills

  1.  Java language
    – Collections
    – Streams and lambda expressions
    – Concurrency: thread pools
    – Locks
    – Modern language features: records, enhanced switch
  2. Estruturas
    – Spring Boot 2
    – Spring MVC/WebFlux for REST APIs
    – Hibernate and SQL
    – JUnit
    – Spock (requires Groovy language))
  3. Tools
    – Maven and Gradle
    – IDE, e.g. IntelliJ IDEA
    – Git
    – Docker
  4. Next steps (select some): (Kotlin, Groovy (for Spock), Reactive programming (Reactor), Kubernetes, React or Angular 2+ for front-end, Android development)

3. How to verify Java skills in the screening phase?

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.

Below you find some useful and practical recruiting tips on how to verify Java skills using each method.

3.1. Technical screening of Java skills based on the candidates resume

Java technology – a basic glossary of Java terms for IT recruiters

Sure all the information you need is in the resume – you just need to find the right ones. Sounds easy, right? However, when you start screening the resume, you come across terms like Hibernate or JMX, and pretty quickly you get confused whether this is the candidate you are looking for. If you are Tech Recruiter recruiting for java position then you should at least be familiar with all its frameworks, build tools etc. in order to know what you are looking for and to be able to speak the same language with your candidates (or at least understand basics the candidate is talking about).

That’s why we prepared this basic Java glossary, just have a look.

Java glossary for technical recruiters
Java EE components Java Server Pages (JSP), Servlets, Enterprise Java Beans (EJB), JAX-RS, JAX-WS, Java Message Service (JMS)
Java Web frameworks Java Server Faces (JSF), Spring MVC, Vaadin/GWT, Wicket, Play
ORM Hibernate, Java Persistence API (JPA), EclipseLink, OpenJPA
Java build tools Maven, Gradle, Ant
Java application containers Tomcat, JBoss/Wildfly, Undertow, Jetty, WebLogic, WebSphere
Java testing tools JUnit, TestNG, Spock, Mockito, Cucumber
IoC frameworks Spring Framework, Guice, CDI

Now that you know the basics, we can go into details. If you’re not a tech person then it’s easy to get confused by all the different technology names and abbreviations. If the candidate states that they know EJB does it mean that they are familiar with Java EE? Or if the applicant knows Maven 1 does it mean they can also deal with Maven 2? Keep calm, we’ll help you out. Just continue reading.

The most common Java technology names that are used interchangeably:

– JPA, Hibernate, Java Persistence, Java Persistence API,

– Java EE, EJB, Enterprise Java Beans, Enterprise Java,

– JBoss, Wildfly.

Relations between respective versions of Java technology:

– EJB 2.0 is totally different from EJB 3.0,

– Java EE 1.4 is totally different from Java EE 5,

– Java EE 7 is an enhanced version of Java EE 6 which is an enhanced version of Java EE 5,

– Spring 2.0 or Spring 3.0 similar to Spring 4.0,

– Acegi changed its name to Spring Security,

– Maven 1 is totally different from Maven 2,

– Maven 2 is very similar to Maven 3,

– Hibernate 4.x is very similar to Hibernate 5.x,

– GWT 1.x is different from GWT 2.x,

– Struts 1 is totally different from Struts 2,

– JPA 2.x is a richer version of JPA 1.0.

Também é valioso estar atento às seguintes relações:

– Full-text search: If someone knows one of Lucene, Solr or ElasticSearch will be able to deal with the rest.

– Object Relational Mapping: If someone knows one of Hibernate, EclipseLink, OpenJPA then will be able to deal with the rest.

– RESTful services: If someone knows one of Spring MVC, JaxRS, Jersey then will be able to deal with the rest.

The significance of a Java certificate for assessing developer’s Java skills

Java certificates are usually appreciated by employers. However, certification seldom is a requirement for a candidate. As a technical recruiter, you have to be however cautious in assessing Java programming skills based on certificates, because none of them serves as a guarantee for developer’s capabilities.

It happens very often that a very experienced programmer hardly passes the certification exam and weak programmer scores well in such an exam. Why is it so? Such certificates hardly verify practical skills. They usually require learning by heart things that a more experienced developer would quickly find in documentation or be able to verify it. By quickly I mean within several seconds using their favorite IDE (software that a programmer uses to work on applications), which is not available during the exam. BTW, being not able to use IDE doesn’t make sense ‘cause on a daily basis, the programmer uses a lot of external sources, such as IDE, to perform their job.

Below you will find a list of Java certification divided into 3 groups

A. Practical Java certificates, requiring hands-on experience, guarantee of in-depth knowledge of the subject

Spring Certificates:

– Spring Professional,

– Spring Web Application Developer,

– Enterprise Integration Specialist.

B. Useful Java certificates can serve as a reliable proof of knowledge

– Oracle Certified Master, Java SE 6 –  requires pretty good level Java skills, but only Java 1.6, which was released 10 years ago (2006),

– Oracle Certified Expert, Java EE 6 Web Services Developer – requires sound knowledge but doesn’t verify commercial experience, therefore, it cannot serve as a guarantee for project success,

– Oracle Certified Expert, Java EE 6 Java Persistence API Developer – requires sound knowledge but doesn’t verify commercial experience, therefore, it cannot serve as a guarantee for project success,

– Oracle Certified Master, Java EE 6 Enterprise Architect – a candidate understands and can apply Java on an architecture level,

– IBM WebSphere – requires sound product knowledge but doesn’t verify commercial experience, therefore, it cannot serve as a guarantee for project success.

C. Java certificates – theoretical knowledge, not much use from a business perspective

– Oracle Certified Associate, Java SE,

– Oracle Certified Professional, Java SE,

– Oracle Certified Expert, Java EE 6 JavaServer Faces Developer,

– Oracle Certified Expert, Java EE 6 Web Component Developer,

– Oracle Certified Expert, Java EE 6 Enterprise JavaBeans Developer.

Other information on a resume that can show a developer’s Java skills

Participation in open source projects is the information worth taking into account. If the candidate is a contributor to well-known and large projects then it can be of great value. It is also important if a programmer has experience in similar kind of IT projects that we are looking an employee for. Creating new things requires a different set of skills and attributes than maintaining them.

3.2. Technical screening of Java skills during a phone/video technical interview

As it is pretty difficult to draw reliable conclusions about a candidate’s programming skills from the resume itself, IT recruiters often conduct a phone or video interview. These types of interviews provide an opportunity to ask questions concerning their Java skills. In many companies such a technical phone or video interview is the basis for making a decision whether to invite somebody for an on-site technical interview with an IT team or not, so it’s worth asking the right technical questions.

As questions themselves can vary based on the position you are recruiting for and specific skills you want to verify, based on my experience I would recommend following general questions to find out more about candidate’s Java skills:

A. Java interview question concerning developer’s experience

  • Q1: With which technologies listed in your resume, did you have commercial experience in the past 2 years? What were your responsibilities? What was your biggest achievement?
  • Porque perguntar Q1: Ao fazer esta pergunta, você pode saber mais sobre a experiência, responsabilidades e realizações do candidato em Java. Assim, você poderá conhecer melhor o seu candidato.

B.Java interview questionconcerning developer’s knowledge and opinions

  • Q2: Which Java open source libraries do you consider to be valuable and why?
  • Porque perguntar Q2: This question lets the candidate demonstrate their knowledge of the Java ecosystem. Moreover, the candidate can point out what he takes into account when choosing a certain technology. As a follow up questions you can also ask what in his opinion advantages of commercial solutions over open source and vice versa are. This shows how the candidate thinks.
  • Q3: Reparei que listaste o quadro X no teu currículo. Qual é a sua opinião sobre isso? É uma boa escolha?
  • Porque perguntar Q3: Such an open question allows a candidate to demonstrate their knowledge if they have it. You can also play devil’s advocate based on their answers “But why not use framework Y for that?”. Thus you can see how the candidates choose a technology, justify their choices and whether his opinions are in line with your IT teams.

C.Java interview questionconcerning developer’s decision making regarding Java technology

  • Q4: Em que estágio você se juntou a projetos recentes? Você esteve envolvido na escolha da tecnologia ou na configuração do projeto? Se sim, que tecnologia você escolheu ou recomendou para o projeto e por quê?
  • Why to ask Q4: Such a questions shows not only how a candidate makes choices regarding technology but also whether they were included into making decisions. Especially important if you are looking for someone with experience.

D. Behavioral question for java developer

  • Q5: Pense na decisão de programar o projeto que você tomou que foi um fracasso. Porque achas que foi um erro? Porque é que aconteceu? Poderia haver algo diferente a fim de transformá-lo em sucesso? Que passos você tomou para melhorar a situação? O que você aprendeu com essa experiência?
  • Porque perguntar Q5: Esse tipo de pergunta o ajudará a descobrir como o candidato percebe suas decisões, tira conclusões e o quanto aprende de sua experiência anterior.

3.3. Technical screening of Java developer skills with online coding tests

Online coding tests can be a great way to screen Java developer skills. Below you will find informati abouton how you can use programming tests and which ones to choose.

Online Java coding tests – the primary or additional method for screening

In some compani,es programming tests are used as an additional method for screening candidates, after resume is analysed and phone or video interview is conducted. However, more and more companies turn to coding tests as the first method of screening programming skills. What I mean is that the company invites all candidates that apply foa r certain position to take a test. In such a way, on the one hand IT recruiter spends time only on the candidates that passed the exam so they proved that they have Java programming skills, and on the other hand such a candidate shows more engagement as they’ve already spent their time on recruitment process and thus are more likely to participate all its stages.

Java online coding test – which one to choose?

But in order to screen accurate, coding tests have to be the right ones.

There are a lot of Java online coding tests on the market but usual,ly they verify candidate’s knowledge rather than programming skills and abilities to solve real life coding problems. That’s why a lot of experienced programmers don’t like that kind of assessment and, what’s more, they aren’t able to get a good score as they cannot show their experience and skills in solving real life programming problems.

So what features should such coding tests have? Below you will find my top 5 features you should be looking for:

  1. Java programming tests should verify not only Java developer skills as far as technology in general is concerned but also frameworks and libraries
  2. Java coding tests should consist of a couple of tasks, not only multiple-choice tests, but above all, programming tasks which difficulty should match the responsibilities the candidates will have if they get the job (tests shouldn’t be based on algorithmic tasks as thus you cannot verify whether a candidate can solve real life coding challenges).
  3. Preferably, Java programming task should be prepared on a company’s code base, as this is the best way to imitate the challenges the candidate will have once he gets the job
  4. There is no point in forbidding the programmer to use external sources, the best way is to create them such an environment like they have at work, so open book exam is much more appropriate. Moreover, the candidate should be able to use their preferred IDE, just as he does on a daily basis.
  5. Coding test can also include task with code review challenges to test Java skills. It gives very accurate information about the experience of the candidate, their approach to code quality and efficiency of debugging and finding traps. Such an assessment should be obligatory when recruiting Java senior developers.

4. DevSkiller ready-to-use online Java coding assessment tests

At DevSkiller we give companies an infrastructure which lets them use their own code base, whole IT projects using frameworks and libraries, to test programmers online. However, we also have some ready-to-use Java coding tests which you can use in your recruitment campaign.

Java
JUNIOR
Competências testadas
Duração
35 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de Java, Primavera

Tarefa de programação - Nível: Fácil

Java | Kafka | Reservas de bilhetes de avião - Implementar o serviço de validação de qualidade de dados que é recebido das agências de viagens.

Bota da Primavera
JUNIOR
Competências testadas
Duração
54 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de Java, Bota da Primavera

Lacunas de código

avaliação do conhecimento de Java

Tarefa de programação - Nível: Fácil

Java | Spring Boot | Estação de Bicicletas HATEOAS - Terminar a implementação da HATEOAS para a API REST.

Java
JUNIOR
Competências testadas
Duração
120 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Tarefa de programação Front End - Nível: Fácil

JavaScript | TypeScript | Aplicação de facturação - frontend - Implementar a parte front-end para fusão e agregação dos dados da facturação com as taxas de câmbio da moeda.

Tarefa de programação Back End - Nível: Fácil

Java | Aplicação de facturação - backend - Implementar a parte backend para pesquisa e agregação de dados de facturação com o serviço e os métodos DAO.

Java
JUNIOR
Competências testadas
Duração
29 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de Java

Lacunas de código

avaliação do conhecimento de Java

Tarefa de programação - Nível: Fácil

Java | GetWordFromText and Reverse - Implemente dois métodos que irão retornar as palavras do texto e revertê-las.

Java
JUNIOR
Competências testadas
Duração
35 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de Java

Tarefa de programação - Nível: Fácil

Java | Simple CRUD using HttpClient - Implementar еasу operações básicas de CRUD, usando Java 11 HttpClient.

GQ
SENIOR
Competências testadas
Duração
49 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de GQ, Unidade de teste, Testes Manuais, Testes

Tarefa de programação - Nível: Difícil

QA | Java, Selenium | Automatização do teste de autenticação multi-factor - Automatize o mecanismo de autenticação em Selenium.

Selénio
MÉDIO
Competências testadas
Duração
40 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Lacunas de código

avaliação do conhecimento de Java, GQ, Selénio

Tarefa de programação - Nível: Médio

QA | Java, Selenium | Extracção de texto e links - O objectivo desta tarefa é testar as capacidades do candidato na recuperação de texto da página. As tarefas incluem esperar que um elemento com texto seja visível, bem como elementos invisíveis.

Java
JUNIOR
Competências testadas
Duração
34 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de Java, Bota da Primavera

Tarefa de programação - Nível: Fácil

Java | Spring Boot, Kotlin | Encomendar microserviço - Implementar uma espinha dorsal do serviço RESTful miscroservice.

Selénio
JUNIOR
Competências testadas
Duração
35 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Lacunas de código

avaliação do conhecimento de Java, GQ, Selénio

Tarefa de programação - Nível: Fácil

Java | Selenium | Dropdowns and collections - Implemente dois métodos na classe SeleniumExecutor, que deve usar o Selenium WebDriver para realizar as tarefas abaixo na página da página src/test/resources/__files/index.html.

Selénio
JUNIOR
Competências testadas
Duração
43 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Lacunas de código

avaliação do conhecimento de Java, Selénio

Tarefa de programação - Nível: Fácil

Java | Selenium | Autenticação em serviço web - Implementar quatro métodos na classe LoginPage marcados com //TODO de implementação. Todos eles devem usar o Selenium WebDriver para interagir com a página.

Partilhar correio

É mais do que um simples boletim informativo.

Receba insights úteis diretamente em sua caixa de entrada e aprenda mais sobre a contratação de tecnologia.

Verificar e desenvolver as habilidades de codificação sem problemas.

Veja os produtos DevSkiller em ação.

Certificações de segurança e conformidade. Certificamo-nos de que os seus dados estão seguros e protegidos.