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

Durch Februar 25, 2016 #!31Do, 16 Jul 2020 11:12:58 +0200p5831#31Do, 16 Jul 2020 11:12:58 +0200p-11Europe/Warsaw3131Europe/Warsawx31 16am31am-31Do, 16 Jul 2020 11:12:58 +0200p11Europe/Warsaw3131Europe/Warsawx312020Do, 16 Jul 2020 11:12:58 +02001211127amDonnerstag=8#!31Do, 16 Jul 2020 11:12:58 +0200pEurope/Warsaw7#Juli 16th, 2020#!31Do, 16 Jul 2020 11:12:58 +0200p5831#/31Do, 16 Jul 2020 11:12:58 +0200p-11Europe/Warsaw3131Europe/Warsawx31#!31Do, 16 Jul 2020 11:12:58 +0200pEurope/Warsaw7# IT-Rekrutierung, Rekrutierungs-Tipps, Technisches Interview
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 Anwendung 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 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 Programmierer 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. Frameworks
    – 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 Personalvermittler 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 Rekrutierung 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 componentsJava Server Pages (JSP), Servlets, Enterprise Java Beans (EJB), JAX-RS, JAX-WS, Java Message Service (JMS)
Java Web frameworksJava Server Faces (JSF), Spring MVC, Vaadin/GWT, Wicket, Play
ORMHibernate, Java Persistence API (JPA), EclipseLink, OpenJPA
Java build toolsMaven, Gradle, Ant
Java application containersTomcat, JBoss/Wildfly, Undertow, Jetty, WebLogic, WebSphere
Java testing toolsJUnit, TestNG, Spock, Mockito, Cucumber
IoC frameworksSpring 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.

It is also valuable to be aware of the following relations:

– 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 allgemein 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?
  • Why to ask Q1: By asking this question, you can find out more about candidate’s Java up-to-date experience, responsibilities and achievements. Thus you get to know your candidate better.

B. Java interview question concerning developer’s knowledge and opinions

  • Q2: Welche Java-Open-Source-Bibliotheken halten Sie für wertvoll und warum?
  • Why to ask 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: Ich habe bemerkt, dass Sie den Rahmen X in Ihrem Lebenslauf aufgeführt haben. Was ist Ihre Meinung dazu? Ist es eine gute Wahl?
  • Why to ask 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 question concerning developer’s decision making regarding Java technology

  • Q4: On what stage did you join recent projects? Were you involved in the choice of technology or project setup? If yes, which technology did you choose or recommend for the project and why?
  • 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: Think about programming project decision you made that was a failure. Why do you think it was a mistake? Why did it happen? Could there be anything done differently in order to turn it into success? What steps did you take to improve the situation? What did you learn from this experience?
  • Why to ask Q5: That type of question will help you find out how the candidate perceives their decisions, draws conclusions and how much they learn from their previous experience.

3.3. Technical screening of Java skills with online coding tests

Online coding tests can be a great way to screen Java 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 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

Unter 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
Geprüfte Fähigkeiten
Dauer
35 Minuten max.
Auswertung
Automatisch
Test-Übersicht

Auswahlfragen

Beurteilung des Wissens über Java

Programmieraufgabe - Stufe: Einfach

Java | Simple CRUD using HttpClient - Implement еasу basic CRUD operations, using Java 11 HttpClient.

Verfügbar in Team- und Unternehmensplänen

Konto erstellen
QUALITÄTSSICHERUNG
SENIOR
Geprüfte Fähigkeiten
Dauer
49 Minuten max.
Auswertung
Automatisch
Test-Übersicht

Auswahlfragen

Beurteilung des Wissens über QUALITÄTSSICHERUNG, Unit-Testing, Manual Testing, Prüfung

Programmieraufgabe - Stufe: Hart

QA | Java, Selenium | Multi-factor authentication test automation - Automate the authentication mechanism in Selenium.

Verfügbar in Team- und Unternehmensplänen

Konto erstellen
Selen
MIDDLE
Geprüfte Fähigkeiten
Dauer
40 Minuten max.
Auswertung
Automatisch
Test-Übersicht

Code-Lücken

Beurteilung des Wissens über Java, QUALITÄTSSICHERUNG, Selen

Programmieraufgabe - Stufe: Medium:

QA | Java, Selenium | Text and link extraction - The aim of this task is to test the candidate's abilities in retrieving text from the page. The tasks include waiting for an element with text to be visible as well as invisible elements.

Verfügbar in Team- und Unternehmensplänen

Konto erstellen
Java
JUNIOR
Geprüfte Fähigkeiten
Dauer
34 Minuten max.
Auswertung
Automatisch
Test-Übersicht

Auswahlfragen

Beurteilung des Wissens über Java, Federstiefel

Programmieraufgabe - Stufe: Einfach

Java | Spring Boot, Kotlin | Orders microservice - Implement a backbone of the RESTful miscroservice.

Verfügbar in Team- und Unternehmensplänen

Konto erstellen
Selen
JUNIOR
Geprüfte Fähigkeiten
Dauer
35 Minuten max.
Auswertung
Automatisch
Test-Übersicht

Code-Lücken

Beurteilung des Wissens über Java, QUALITÄTSSICHERUNG, Selen

Programmieraufgabe - Stufe: Einfach

Java | Selenium | Dropdowns and collections - Implement two methods in the SeleniumExecutor class, which should use the Selenium WebDriver to perform the below tasks on the page from the src/test/resources/__files/index.html page.

Verfügbar in Team- und Unternehmensplänen

Konto erstellen
Selen
JUNIOR
Geprüfte Fähigkeiten
Dauer
43 Minuten max.
Auswertung
Automatisch
Test-Übersicht

Code-Lücken

Beurteilung des Wissens über Java, Selen

Programmieraufgabe - Stufe: Einfach

Java | Selenium | Authentifizierung im Webdienst - Implementieren Sie vier Methoden in der LoginPage-Klasse, die mit //TODO-Implementierung gekennzeichnet ist. Alle sollten den Selenium WebDriver verwenden, um mit der Seite zu interagieren.

Verfügbar in Team- und Unternehmensplänen

Konto erstellen
Federstiefel
JUNIOR
Geprüfte Fähigkeiten
Dauer
34 Minuten max.
Auswertung
Automatisch
Test-Übersicht

Auswahlfragen

Beurteilung des Wissens über Java, Federstiefel

Programmieraufgabe - Stufe: Einfach

Java | Spring Boot | Health Indicator - Implementieren Sie die Health-Methode innerhalb der Klasse ServiceHealthCheck.

Verfügbar in Team- und Unternehmensplänen

Konto erstellen
Federstiefel
JUNIOR
Geprüfte Fähigkeiten
Dauer
2 Minuten max.
Auswertung
Automatisch
Test-Übersicht

Auswahlfragen

Beurteilung des Wissens über Java, Federstiefel

Programmieraufgabe - Stufe: Einfach

Java | Spring Boot mit JPA-Abfragen - Implementieren Sie SQL-Abfragen, um die beste Streaming-Plattform zu finden.

Verfügbar in Team- und Unternehmensplänen

Konto erstellen
Java
JUNIOR
Geprüfte Fähigkeiten
Dauer
26 Minuten max.
Auswertung
Automatisch
Test-Übersicht

Auswahlfragen

Beurteilung des Wissens über Java, MongoDB, NoSQL

Programmieraufgabe - Stufe: Einfach

Java | MongoDB | Filmdatenbank - Implementieren Sie eine Klasse zum Abrufen von Filmen aus einer Datenbank.

Verfügbar in Team- und Unternehmensplänen

Konto erstellen
Frühling
MIDDLE
Geprüfte Fähigkeiten
Dauer
101 Minuten max.
Auswertung
Automatisch
Test-Übersicht

Auswahlfragen

Beurteilung des Wissens über Java, Frühling, JPA

Programmieraufgabe - Stufe: Medium:

Java | Spring, Hibernate | RESTful Blog - Implementieren Sie eine Kommentarfunktion für eine einfache REST-Anwendung zur Bedienung eines Blogs.

Verfügbar in Team- und Unternehmensplänen

Konto erstellen