Comment évaluer les compétences des développeurs Java pour trouver les meilleurs - guide pour le recrutement dans le secteur des technologies de l'information

25 février 2016
Java : questions d'entretien avec un ingénieur en logiciel

Cela peut être un problème sérieux si vous voulez engager un développeur Java mais que vous n'avez pas la moindre idée de ce qu'il faut chercher. Vous pouvez effectuer des recherches dans le profil LinkedIn d'un candidat ou dans un CV tant que vous le souhaitez. Si vous ne pouvez pas distinguer l'APP de votre Gradel, vous ne pourrez pas savoir si le candidat correspond bien au poste que vous voulez pourvoir. J'ai écrit cet article pour rassembler toutes les informations dont vous avez besoin si vous êtes un recruteur informatique à la recherche de programmeurs ayant des compétences en Java.

1. Qu'est-ce que Java ?

Java est un langage de programmation compilé, orienté objet, dont la syntaxe est similaire à celle du C++. Il est destiné à permettre aux développeurs d'applications "d'écrire une fois, d'exécuter n'importe où", ce qui signifie que le code Java compilé peut s'exécuter sur toutes les plates-formes qui supportent Java sans qu'il soit nécessaire de le recompiler. Une application écrite en Java a de très bonnes performances grâce à l'utilisation d'un compilateur "Just-In-Time" qui analyse en permanence la vitesse du programme et optimise les points fréquemment exécutés. Un autre avantage clé de Java est une gestion automatique de la mémoire qui permet aux développeurs d'écrire des applications sans se soucier explicitement de l'allocation et de la désallocation de la mémoire. En 2020, il était le langage de programmation le plus populaire testé par les employeurs. Java n'est pas considéré comme un langage facile à utiliser pour les non-programmeurs.

Java est au Javascript ce que la voiture est à la moquette, alors ne confondez pas ces deux langages de programmation.

2. Qu'est-ce qu'il est important de savoir sur Java pour le recruteur informatique ?

Avant d'entrer dans les détails sur la façon de passer au crible les compétences en Java, permettez-moi d'abord de vous faire part de quelques bases qui vous permettront de vous familiariser avec cette technologie.

Premièrement, le monde de Java change souvent, de sorte que l'expérience acquise il y a 5 ans avec le framework n'est plus valable. Gardez cela à l'esprit lorsque vous évaluez les compétences des développeurs Java sur la base des emplois occupés jusqu'à présent.

Deuxièmement, dans l'environnement Java, la connaissance des outils et des bibliothèques est plus précieuse que la connaissance du langage lui-même. Sans elle, un programmeur écrira tout seul à partir de zéro et ne fera que perdre du temps. Si un développeur est familier avec les bibliothèques et les frameworks Java, il peut s'en servir comme d'un lego pour faire ce dont il a besoin et n'écrire du code que là où c'est nécessaire. En procédant de cette façon, son travail est beaucoup plus efficace.

Enfin et surtout, seule l'expérience commerciale est importante. La connaissance de Java acquise à l'université n'est pratiquement jamais utile pour le codage commercial. Par conséquent, à moins que vous ne recrutiez pour un poste de débutant ou de débutante, vous ne pouvez pas évaluer les compétences en Java en vous basant uniquement sur la formation et le diplôme universitaires. Dans ce cas, ce qui est plus important, ce sont les projets de codage réels du candidat, il n'est pas nécessaire qu'il s'agisse d'un projet commercial - il peut s'agir d'un passe-temps ou d'un projet de programmation à code source ouvert.

Compétences de base des développeurs Java

  1.  Langage Java
    - Collections
    - Flux et expressions lambda
    - Concurrence : pools de filières
    - Serrures
    - Caractéristiques des langues modernes : enregistrements, commutateur amélioré
  2. Cadres
    - Botte de printemps 2
    - MVC/WebFlux de printemps pour les API REST
    - Hibernation et SQL
    - JUnit
    - Spock (nécessite le langage Groovy))
  3. Outils
    - Maven and Gradle
    - IDE, par exemple IntelliJ IDEA
    - Git
    - Docker
  4. Prochaines étapes (en sélectionner quelques-unes) : (Kotlin, Groovy (pour Spock), Programmation réactive (Reactor), Kubernetes, React ou Angular 2+ pour le front-end, développement Android)

3. Comment vérifier les compétences en Java lors de la phase de sélection ?

Le dépistage est fatiguant, ardu et prend beaucoup de temps. En général, les recruteurs en informatique ont recours aux techniques de sélection suivantes : évaluation des compétences en Java sur la base d'un CV, entretiens ou appels vidéo, tests de codage en ligne.

Vous trouverez ci-dessous quelques conseils utiles et pratiques de recrutement sur la façon de vérifier les compétences en Java à l'aide de chaque méthode.

3.1. Sélection technique des compétences en Java sur la base du curriculum vitae des candidats

Technologie Java - un glossaire de base des termes Java pour les recruteurs en informatique

Bien sûr, toutes les informations dont vous avez besoin se trouvent dans le CV - il vous suffit de trouver les bonnes. Cela semble facile, non ? Cependant, lorsque vous commencez à examiner le CV, vous tombez sur des termes comme Hibernate ou JMX, et vous ne savez plus très bien si c'est le candidat que vous recherchez. Si vous êtes recruteur technique et que vous recrutez pour un poste en Java, vous devez au moins connaître tous ses cadres, outils de construction, etc. afin de savoir ce que vous recherchez et de pouvoir parler la même langue avec vos candidats (ou au moins comprendre les bases dont le candidat parle).

C'est pourquoi nous avons préparé ce glossaire Java de base, jetez-y un coup d'œil.

Glossaire Java pour les recruteurs techniques
Composants Java EE Java Server Pages (JSP), Servlets, Enterprise Java Beans (EJB), JAX-RS, JAX-WS, Java Message Service (JMS)
Cadres Web Java Java Server Faces (JSF), Spring MVC, Vaadin/GWT, Wicket, Play
ORM Hibernate, Java Persistence API (JPA), EclipseLink, OpenJPA
Outils de construction Java Maven, Gradle, Ant
Conteneurs d'applications Java Tomcat, JBoss/Wildfly, Undertow, Jetée, WebLogic, WebSphere
Outils de test Java JUnit, TestNG, Spock, Mockito, Concombre
Cadres de l'IoC Cadre de printemps, Guice, CDI

Maintenant que vous connaissez les bases, nous pouvons entrer dans les détails. Si vous n'êtes pas un technicien, il est facile de se laisser embrouiller par les différents noms et abréviations des technologies. Si le candidat déclare connaître EJB, cela signifie-t-il qu'il est familier avec Java EE ? Ou si le candidat connaît Maven 1, cela signifie-t-il qu'il peut également traiter avec Maven 2 ? Restez calme, nous vous aiderons. Continuez à lire.

Les noms les plus courants de la technologie Java qui sont utilisés de manière interchangeable :

- JPA, Hibernate, Java Persistence, Java Persistence API,

- Java EE, EJB, Enterprise Java Beans, Enterprise Java,

- JBoss, Wildfly.

Relations entre les versions respectives de la technologie Java :

- L'EJB 2.0 est totalement différent de l'EJB 3.0,

- Java EE 1.4 est totalement différent de Java EE 5,

- Java EE 7 est une version améliorée de Java EE 6 qui est une version améliorée de Java EE 5,

- Printemps 2.0 ou Printemps 3.0 similaire au Printemps 4.0,

- L'Acegi a changé de nom pour devenir Spring Security,

- Maven 1 est totalement différent de Maven 2,

- Maven 2 est très similaire à Maven 3,

- Hibernate 4.x est très similaire à Hibernate 5.x,

- GWT 1.x est différent de GWT 2.x,

- Struts 1 est totalement différent de Struts 2,

- JPA 2.x est une version plus riche de JPA 1.0.

Il est également utile d'être conscient des relations suivantes :

- Recherche en texte intégral: Si quelqu'un connaît l'un des Lucene, Solr ou ElasticSearch pourront s'occuper du reste.

- Cartographie relationnelle des objets : Si quelqu'un connaît l'un de Hibernate, EclipseLink ou OpenJPA, il pourra s'occuper du reste.

- Services RESTful : Si quelqu'un connaît l'un des Spring MVC, JaxRS, Jersey, il pourra alors s'occuper du reste.

L'importance d'un certificat Java pour évaluer les compétences d'un développeur en Java

Les certificats Java sont généralement appréciés par les employeurs. Cependant, la certification est rarement une exigence pour un candidat. En tant que recruteur technique, vous devez cependant être prudent lorsque vous évaluez les compétences en programmation Java sur la base de certificats, car aucun d'entre eux ne sert de garantie pour les capacités du développeur.

Il arrive très souvent qu'un programmeur très expérimenté réussisse à peine l'examen de certification et qu'un programmeur faible obtienne de bons résultats à un tel examen. Pourquoi en est-il ainsi ? De tels certificats ne permettent guère de vérifier les compétences pratiques. Ils exigent généralement d'apprendre par cœur des choses qu'un développeur plus expérimenté trouverait rapidement dans la documentation ou serait en mesure de vérifier. Par "rapidement", j'entends en quelques secondes l'utilisation de leur IDE préféré (logiciel qu'un programmeur utilise pour travailler sur des applications), qui n'est pas disponible pendant l'examen. A vrai dire, ne pas pouvoir utiliser l'IDE n'a pas de sens car, au quotidien, le programmeur utilise beaucoup de sources externes, comme l'IDE, pour faire son travail.

Vous trouverez ci-dessous une liste de certifications Java divisée en 3 groupes

A. Certificats pratiques de Java, exigeant une expérience pratique, garantie d'une connaissance approfondie du sujet

Certificats de printemps :

- Spring Professional,

- Spring Web Application Developer,

- Spécialiste de l'intégration des entreprises.

B. Des certificats Java utiles peuvent servir de preuve fiable des connaissances

- Oracle Certified Master, Java SE 6 - requiert des compétences Java d'un assez bon niveau, mais seulement Java 1.6, qui a été publié il y a 10 ans (2006),

- Oracle Certified Expert, Java EE 6 Web Services Developer - exige de solides connaissances mais ne vérifie pas l'expérience commerciale, donc ne peut pas servir de garantie pour la réussite du projet,

- Expert certifié Oracle, développeur de l'API Java EE 6 Java Persistence - nécessite de solides connaissances mais ne vérifie pas l'expérience commerciale, par conséquent, il ne peut servir de garantie pour la réussite du projet,

- Oracle Certified Master, Java EE 6 Enterprise Architect - le candidat comprend et peut appliquer Java au niveau de l'architecture,

- IBM WebSphere - exige une bonne connaissance du produit mais ne vérifie pas l'expérience commerciale, par conséquent, il ne peut servir de garantie pour la réussite du projet.

C. Certificats Java - connaissances théoriques, peu utiles du point de vue commercial

- Oracle Certified Associate, Java SE,

- Oracle Certified Professional, Java SE,

- Expert certifié Oracle, développeur Java EE 6 JavaServer Faces,

- Expert certifié Oracle, développeur de composants Web Java EE 6,

- Expert certifié Oracle, développeur Java EE 6 Enterprise JavaBeans.

Autres informations sur un CV pouvant montrer les compétences d'un développeur en Java

La participation à des projets à source ouverte est l'information qui mérite d'être prise en compte. Si le candidat est un contributeur à des projets connus et de grande envergure, elle peut être d'une grande valeur. Il est également important qu'un programmeur ait de l'expérience dans des projets informatiques similaires à ceux pour lesquels nous recherchons un employé. La création de nouvelles choses nécessite un ensemble de compétences et d'attributs différents de ceux nécessaires à leur entretien.

3.2. Sélection technique des compétences en Java lors d'un entretien technique par téléphone ou par vidéo

Comme il est assez difficile de tirer des conclusions fiables sur les compétences en programmation d'un candidat à partir du curriculum vitae lui-même, les recruteurs informatiques procèdent souvent à un entretien téléphonique ou vidéo. Ces types d'entretiens permettent de poser des questions sur leurs compétences en Java. Dans de nombreuses entreprises, ces entretiens techniques par téléphone ou par vidéo servent de base à la décision d'inviter ou non quelqu'un à un entretien technique sur place avec une équipe informatique, et il vaut donc la peine de poser les bonnes questions techniques.

Comme les questions elles-mêmes peuvent varier en fonction du poste pour lequel vous recrutez et des compétences spécifiques que vous souhaitez vérifier, sur la base de mon expérience, je vous recommande de suivre les questions générales pour en savoir plus sur les compétences du candidat en Java :

A. Question d'entretien sur Java concernant l'expérience du développeur

  • Q1 : Avec quelles technologies mentionnées dans votre CV, avez-vous eu une expérience commerciale au cours des deux dernières années ? Quelles étaient vos responsabilités ? Quelle a été votre plus grande réussite ?
  • Pourquoi demander Q1 : En posant cette question, vous pouvez en savoir plus sur l'expérience, les responsabilités et les réalisations du candidat en Java. Ainsi, vous apprenez à mieux connaître votre candidat.

B.Question d'entretien sur Javaconcernant les connaissances et les opinions du promoteur

  • Q2 : Quelles sont les bibliothèques Java open source que vous considérez comme précieuses et pourquoi ?
  • Pourquoi demander Q2 : Cette question permet au candidat de démontrer sa connaissance de l'écosystème de Java. De plus, le candidat peut indiquer ce qu'il prend en compte lors du choix d'une certaine technologie. En guise de questions de suivi, vous pouvez également lui demander quels sont, à son avis, les avantages des solutions commerciales par rapport à l'open source et vice versa. Cela montre comment le candidat pense.
  • Q3 : J'ai remarqué que vous avez inscrit le cadre X sur votre CV. Quelle est votre opinion à ce sujet ? Est-ce un bon choix ?
  • Pourquoi demander Q3 : Une telle question ouverte permet à un candidat de démontrer ses connaissances s'il les possède. Vous pouvez également jouer à l'avocat du diable en vous basant sur leurs réponses "Mais pourquoi ne pas utiliser le cadre Y pour cela ? Ainsi, vous pouvez voir comment les candidats choisissent une technologie, justifier leurs choix et si ses opinions sont en accord avec vos équipes informatiques.

C.Question d'entretien sur Javaconcernant la prise de décision du développeur concernant la technologie Java

  • Q4 : Sur quelle scène avez-vous rejoint des projets récents ? Avez-vous participé au choix de la technologie ou au montage du projet ? Si oui, quelle technologie avez-vous choisie ou recommandée pour le projet et pourquoi ?
  • Pourquoi demander Q4 : Une telle question montre non seulement comment un candidat fait des choix technologiques, mais aussi s'il a été inclus dans la prise de décision. C'est particulièrement important si vous cherchez quelqu'un qui a de l'expérience.

D. Question comportementale pour le développeur Java

  • Q5 : Pensez à la décision de programmer un projet que vous avez prise et qui a été un échec. Pourquoi pensez-vous que c'était une erreur ? Pourquoi est-ce arrivé ? Pourrait-on faire quelque chose de différent afin de le transformer en succès ? Quelles mesures avez-vous prises pour améliorer la situation ? Qu'avez-vous appris de cette expérience ?
  • Pourquoi demander Q5 : Ce type de question vous permettra de savoir comment le candidat perçoit ses décisions, tire des conclusions et tire des enseignements de son expérience antérieure.

3.3. Examen technique des compétences des développeurs Java à l'aide de tests de codage en ligne

Les tests de codage en ligne peuvent être un excellent moyen de vérifier les compétences des développeurs Java. Vous trouverez ci-dessous des informations sur la manière d'utiliser les tests de programmation et sur les tests à choisir.

Tests de codage Java en ligne - la méthode principale ou complémentaire de dépistage

Dans certaines entreprises, des tests de programmation sont utilisés comme méthode supplémentaire de sélection des candidats, après analyse du CV et entretien téléphonique ou vidéo. Cependant, de plus en plus d'entreprises se tournent vers les tests de codage comme première méthode de sélection des compétences en programmation. Ce que je veux dire, c'est que l'entreprise invite tous les candidats qui postulent à un certain poste à passer un test. De cette manière, d'une part, le recruteur informatique ne consacre du temps qu'aux candidats qui ont réussi l'examen afin de prouver qu'ils ont des compétences en programmation Java, et d'autre part, un tel candidat montre plus d'engagement car il a déjà consacré son temps au processus de recrutement et est donc plus susceptible de participer à toutes ses étapes.

Test de codage Java en ligne - lequel choisir ?

Mais pour que le dépistage soit précis, les tests de codage doivent être les bons.

Il existe de nombreux tests de codage Java en ligne sur le marché, mais en général, ils vérifient les connaissances des candidats plutôt que leurs compétences en programmation et leurs capacités à résoudre des problèmes de codage réels. C'est pourquoi beaucoup de programmeurs expérimentés n'aiment pas ce genre d'évaluation et, qui plus est, ils ne peuvent pas obtenir un bon score car ils ne peuvent pas montrer leur expérience et leurs compétences pour résoudre des problèmes de programmation de la vie réelle.

Quelles devraient donc être les caractéristiques de ces tests de codage ? Vous trouverez ci-dessous mon top 5 des caractéristiques que vous devriez rechercher :

  1. Les tests de programmation Java doivent vérifier non seulement les compétences des développeurs Java en matière de technologie en général, mais aussi les cadres et les bibliothèques
  2. Les tests de codage Java doivent comporter quelques tâches, non seulement des tests à choix multiples, mais surtout des tâches de programmation dont la difficulté doit correspondre aux responsabilités que les candidats auront s'ils obtiennent le poste (les tests ne doivent pas être basés sur des tâches algorithmiques, car on ne peut donc pas vérifier si un candidat peut résoudre des problèmes de codage réels).
  3. Il est préférable que la tâche de programmation Java soit préparée sur la base du code de l'entreprise, car c'est la meilleure façon d'imiter les défis que le candidat devra relever une fois qu'il aura obtenu le poste
  4. Il est inutile d'interdire au programmeur d'utiliser des sources externes, le meilleur moyen est de leur créer un environnement semblable à celui qu'ils ont au travail, l'examen à livre ouvert est donc beaucoup plus approprié. De plus, le candidat doit pouvoir utiliser son IDE préféré, comme il le fait au quotidien.
  5. Le test de codage peut également inclure une tâche de révision du code pour tester les compétences en Java. Il donne des informations très précises sur l'expérience du candidat, son approche de la qualité du code et l'efficacité du débogage et de la recherche de pièges. Une telle évaluation devrait être obligatoire lors du recrutement de développeurs expérimentés en Java.

4. Tests d'évaluation du codage Java en ligne prêts à l'emploi DevSkiller

Chez DevSkiller, nous donnons aux entreprises une infrastructure qui leur permet d'utiliser leur propre base de code, des projets informatiques entiers utilisant des cadres et des bibliothèques, pour tester les programmeurs en ligne. Cependant, nous avons également des tests de codage Java prêts à l'emploi que vous pouvez utiliser dans votre campagne de recrutement.

Printemps
JUNIOR
Des compétences éprouvées
Durée
35 minutes max.
Évaluation
Automatique
Aperçu des tests

Questions sur le choix

l'évaluation de la connaissance des Java, Printemps

Tâche de programmation - Niveau : Facile

Java | Spring | Currency Exchange Service - Create a currency exchange rate service. It should allow users to fetch information about currency exchange rates and calculate the amount of money they will get after the exchange.

Java
JUNIOR
Des compétences éprouvées
Durée
35 minutes max.
Évaluation
Automatique
Aperçu des tests

Questions sur le choix

l'évaluation de la connaissance des Java, Printemps

Tâche de programmation - Niveau : Facile

Java | Kafka | Réservation de billets d'avion - Mettre en place le service de validation de la qualité des données reçues des agences de voyage.

Botte de printemps
JUNIOR
Des compétences éprouvées
Durée
54 minutes max.
Évaluation
Automatique
Aperçu des tests

Questions sur le choix

l'évaluation de la connaissance des Java, Botte de printemps

Lacunes dans les codes

l'évaluation de la connaissance des Java

Tâche de programmation - Niveau : Facile

Java | Spring Boot | HATEOAS Bike Station - Terminer l'implémentation de HATEOAS à l'API REST.

Java
JUNIOR
Des compétences éprouvées
Durée
120 minutes max.
Évaluation
Automatique
Aperçu des tests

Tâche de programmation du Front End - Niveau : Facile

JavaScript | TypeScript | Application de facturation - frontend - Mise en œuvre de la partie frontale pour la fusion et l'agrégation des données des factures avec les taux de change.

Tâche de programmation du back-end - Niveau : Facile

Java | Application de facturation - backend - Mise en œuvre de la partie backend pour la recherche et l'agrégation des données de facturation avec le service et les méthodes DAO.

Java
JUNIOR
Des compétences éprouvées
Durée
29 minutes max.
Évaluation
Automatique
Aperçu des tests

Questions sur le choix

l'évaluation de la connaissance des Java

Lacunes dans les codes

l'évaluation de la connaissance des Java

Tâche de programmation - Niveau : Facile

Java | GetWordFromText et Reverse - Mettre en œuvre deux méthodes qui consistent à renvoyer les mots du texte et à les inverser.

Java
JUNIOR
Des compétences éprouvées
Durée
35 minutes max.
Évaluation
Automatique
Aperçu des tests

Questions sur le choix

l'évaluation de la connaissance des Java

Tâche de programmation - Niveau : Facile

Java | CRUD simple en utilisant HttpClient - Mettre en œuvre еasу les opérations de base du CRUD, en utilisant Java 11 HttpClient.

QA
SENIOR
Des compétences éprouvées
Durée
49 minutes max.
Évaluation
Automatique
Aperçu des tests

Questions sur le choix

l'évaluation de la connaissance des QA, Test à l'unité, Tests manuels, Test

Tâche de programmation - Niveau : Difficile

AQ | Java, Sélénium | Automatisation des tests d'authentification multi-facteurs - Automatiser le mécanisme d'authentification au Sélénium.

Sélénium
MIDDLE
Des compétences éprouvées
Durée
40 minutes max.
Évaluation
Automatique
Aperçu des tests

Lacunes dans les codes

l'évaluation de la connaissance des Java, QA, Sélénium

Tâche de programmation - Niveau : Moyen :

AQ | Java, Sélénium | Extraction de texte et de liens - Cette tâche a pour but de tester les capacités du candidat à récupérer du texte dans la page. Les tâches comprennent l'attente d'un élément avec du texte pour qu'il soit visible ainsi que des éléments invisibles.

Java
JUNIOR
Des compétences éprouvées
Durée
34 minutes max.
Évaluation
Automatique
Aperçu des tests

Questions sur le choix

l'évaluation de la connaissance des Java, Botte de printemps

Tâche de programmation - Niveau : Facile

Java | Spring Boot, Kotlin | Orders microservice - Mettre en place une épine dorsale du miscroservice RESTful.

Sélénium
JUNIOR
Des compétences éprouvées
Durée
35 minutes max.
Évaluation
Automatique
Aperçu des tests

Lacunes dans les codes

l'évaluation de la connaissance des Java, QA, Sélénium

Tâche de programmation - Niveau : Facile

Java | Selenium | Dropdowns et collections - Implémentez deux méthodes dans la classe SeleniumExecutor, qui doit utiliser le pilote Web Selenium pour effectuer les tâches ci-dessous sur la page à partir de la page src/test/resources/__files/index.html.

Partager le poste

C'est plus qu'un simple bulletin d'information

Recevez des informations utiles directement dans votre boîte de réception et apprenez-en davantage sur l'embauche des techniciens.

Vérifier et développer les compétences de codage de manière transparente.

Voir les produits DevSkiller en action.

Certifications de sécurité et conformité. Nous veillons à ce que vos données soient sûres et sécurisées.