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

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

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 2016, it is one of the most popular programming languages in use. 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. Bare this in mind when you assess Java skills based on so far employment.

720 x 90 – download Hack the process

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.

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 how to verify Java skills using each method.  

3.1. Technical screening of Java skills based on the candiates 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.

It is also valuable to be aware of 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 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 developers 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 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 useful 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 project 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 candidate’s programming skills from resume itself, IT recruiters often conduct a phone or video interview. Such an interview gives an opportunity to ask questions concerning their Java skills. In many companies such a technical phone or video interview is a basis for making a decision whether to invite somebody for an on-site technical interview with IT team or not, so it’s worth to choose and ask the right technical questions.

As questions itself can vary based on 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?
  • 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: Which Java open source libraries do you consider to be valuable and why?
  • 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: I’ve noticed you listed framework X on your resume. What’s your opinion about it? Is it a good choice?
  • 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

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.

Contains following tasks:

1) Choice questions - assessing knowledge of Java

2) Programming task [level: Easy] - Java | Configuration Provider - Implement configuration provider for loading properties with precedence from 3 sources: command line arguments, file and default values.

Share the article...Share on Facebook
Facebook
0Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin

View assessment details

Contains following tasks:

1) Choice questions - assessing knowledge of Hibernate, Java, JPA

2) Programming task [level: Easy] - Java | Hibernate | Recipes collection app - Implement missing methods to successfully perform some simple CRUD operations.

Share the article...Share on Facebook
Facebook
0Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin

View assessment details

Contains following tasks:

1) Choice questions - assessing knowledge of Java, Android

2) Programming task [level: Hard] - Android | Bitmap Manipulations - Implement the three operations which should be performed on a selected image prior initiating a share.

Share the article...Share on Facebook
Facebook
0Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin

View assessment details

Contains following tasks:

1) Choice questions - assessing knowledge of Java

2) Programming task [level: Easy] - Java | Spring Boot | Discount microservice - Implement microservice using Spring Boot features.

Share the article...Share on Facebook
Facebook
0Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin

View assessment details

Contains following tasks:

1) Choice questions - assessing knowledge of Java

2) Programming task [level: Easy] - Java | Find duplicates - Implement findDuplicates method that returns a new list containing duplicates which occured N-times.

3) Choice questions - assessing knowledge of ES6, JavaScript, Typescript

4) Programming task [level: Easy] - JavaScript | Node.JS | Websocket server - Complete the server.js file in order to finish the WebSocket server.

Share the article...Share on Facebook
Facebook
0Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin

View assessment details

Contains following tasks:

1) Choice questions - assessing knowledge of iOS, Swift, Android, C, Kotlin, Java

2) Programming task [level: Hard] - iOS | Swift | Conference App Senior - Implement a network service that is used to interact with the server.

3) Programming task [level: Hard] - Android | Async call from native to Java via JNI - Provide the missing JNI part of the native-Java communication combo that fulfills the certain requirements.

Share the article...Share on Facebook
Facebook
0Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin

View assessment details

Contains following tasks:

1) Choice questions - assessing knowledge of Java, Android, iOS

2) Programming task [level: Easy] - Android | Style Basics - Implement a Style that can be re-used with a number of TextView widgets.

3) Programming task [level: Easy] - iOS | Swift | Water Power Plant Application - Implement the missing functions in the application for the analysis of data from a hydroelectric power plant.

Share the article...Share on Facebook
Facebook
0Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin

View assessment details

Contains following tasks:

1) Choice questions - assessing knowledge of Hibernate, Java

2) Programming task [level: Easy] - Java | Hibernate | Attribute Converter - Implement the missing Attribute Converter methods to correctly perform the entity mapping.

Share the article...Share on Facebook
Facebook
0Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin

View assessment details

Contains following tasks:

1) Choice questions - assessing knowledge of Java

2) Programming task [level: Easy] - Java | Find duplicates - Implement findDuplicates method that returns a new list containing duplicates which occured N-times.

Share the article...Share on Facebook
Facebook
0Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin

View assessment details

Contains following tasks:

1) Choice questions - assessing knowledge of Kotlin, Android

2) Programming task [level: Hard] - Android | Kotlin | Async call from native to Java via JNI - Provide the missing JNI part of the native-Java communication combo that fulfills the certain requirements.

Share the article...Share on Facebook
Facebook
0Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin

View assessment details

720 x 90 – download Hack the process
Share the article...Share on Facebook
Facebook
0Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin
  • Pingback: Recruitement | Syed Ahmed Zaki()

  • Mrs Kulkarni

    nice article

  • Pingback: 5 Skills a Microservices Candidate Should Possess – Tech Hiring Blog()

  • Mohammad Ibraheem

    Very informative and helpful article . Thank you a lot for giving this knowledge.

  • Pingback: Glossary of IT terms for Tech Recruiters()

  • publicola

    You have answered my question.

    I retired in 2000 following a career in IT programming to management. I am seeking to re-enter
    the workplace. I realize I am not up-to-date on the current technologies. I cannot become up-to-date because I am not up-to-date.

    I am seeking positions part or full time where I can use my experience and learn.

    I have completed an online course on PYTHON and viewed tutorials. Currently I am reading instruction books and viewing Tutorials on Java and Javascript. You can “learn” only for a limited amount of time before the only way to progress is experience.

    My experience includes application design, development and implementation in a mainframe environment; websites using Macromedia’s Dreamweaver and Fireworks and HTML and CSS. What I am looking for is an
    opportunity to use my work experience while working with others using the current technologies.

    I began programming in 1963 when there was no one to ask and we had to learn while doing. My last position was with IBM as a Project Manager among Project Managers on a Y2k project for a major city government.

    If any possibilities come to mind I would like to speak with someone or am I wasting my time?

  • Rishi

    The demand for Java developers is great, especially by companies that work on the latest application projects and applets.Before hire java developer i always suggest everyone must read an your blog, very informative one.Thank you for sharing such an amazing blog with us.

  • It’s the best way for me. Thank you so much java developers for informative share with me.
    https://www.graphicsexpertsbd.com/automobile-image-editing-service

Devskiller is now ISO 27001 certified for Information security management!
This confirms the steps we have always taken to keep your data secure.
Read More