Comment passer au crible les compétences des développeurs Python

Publié : Dernière mise à jour :
Python : questions d'entretien avec un ingénieur en logiciel

Si vous cherchez une personne ayant des compétences de développeur Python, sachez que les trouver n'est que la moitié du chemin. Ainsi, même si vous pouvez les trouver, il vous faudra peut-être faire un effort supplémentaire pour vraiment comprendre ce que sont les compétences Python. Le véritable ensemble de compétences Python est une chose complexe à comprendre, mais nous vous présentons ici un expert dans le domaine, Wojtek Erbetowski, pour mettre le sujet en lumière.

1. Qu'est-ce que Python ?

Python est l'un des langages de programmation les plus populaires (il occupe la troisième place selon le Index TIOBE à partir de décembre 2018). Il a été publié pour la première fois en 1991 et a gagné en popularité parce qu'il est simple à apprendre, tout en étant puissant pour résoudre les problèmes. Sa syntaxe est similaire à celle de la famille C++, mais elle est dotée de diverses solutions modernes.

Les principaux avantages de Python sont les suivants :

  • Courbe d'apprentissage plate. Il fait appel à des utilisateurs ayant peu d'expérience technique, comme les universitaires pour la recherche ou les entreprises pour l'automatisation.
  • Il appartient à une fondation indépendante, la Python Software Foundation (PSF), et est guidé par la communauté.
  • Des outils scientifiques puissants (par exemple SciPy).
  • Une bonne documentation et le soutien de la communauté. Cela inclut de nombreux groupes d'utilisateurs locaux et conférences.

2. Qu'est-ce qui est important pour un recruteur informatique de connaître Python ?

Puisque Python a des usages variés. Il est souvent difficile de distinguer les candidats des universitaires, de la programmation en réseau et des applications web au simple script. Pourtant, il est souvent plus facile pour un développeur d'apprendre un nouveau Python que de changer de domaine (par exemple, de la science des données aux applications web).

En 2007, Python 3.0 est sorti. Il a été rejeté par la communauté en raison d'une incompatibilité rétroactive. Cela pose encore aujourd'hui un défi à la communauté, car les parts de Python 2 et 3 sont presque égales.

Python est typographié dynamiquement, ce qui facilite la création de scripts et l'écriture de petites applications. On dit souvent qu'il apporte des difficultés dans la construction de grandes applications durables.

3. Comment vérifier les compétences des développeurs Python lors de la phase de sélection ?

Le dépistage est fatiguant, ardu et long. En général, les recruteurs en informatique se tournent vers le filtrage des CV, le filtrage technique (tests de codage) et les entretiens pour évaluer les compétences en Python.

Vous trouverez ci-dessous quelques conseils utiles et pratiques pour le recrutement, qui vous permettront de vérifier les compétences en Python à l'aide de chaque méthode.

3.1. Examen technique des compétences de développeur Python sur la base du CV.

Heureusement (pour le recrutement), Python a moins de bibliothèques et de technologies à examiner que, par exemple, Java. Pourtant, un certain nombre de choses peuvent être déroutantes.

Le langage Python Version populaire 2.6, 2.7, 3.4, 3.5
Cadres web en Python Django, Flacon, Bouteille, Tornade, web2py
ORM SQLAchimie, Django ORM
Construire des outils Outils de préparation, pépins, toxines
Cadres d'essai UnitTest, py.test, nez
Asyncio Python 3.5, Tornade, Torsadé
Outils d'analyse des données NumPy, SciPy, Pandas

Points forts :

  • Python 2 et 3 sont très différents. Python 2.7 est la dernière (et dernière) version de Python 2. La version de Python 3 évolue et la dernière version est la 3.6.
  • Asyncio n'est rencontré que dans Python 3.
  • Tornado, Twisted, Gevent sont toutes des bibliothèques pour la programmation asynchrone.
  • Django est de loin le cadre web le plus populaire.
  • La bibliothèque des tests unitaires est intégrée à la langue, et est donc rarement mentionnée séparément.

Certification

La communauté Python ne fournit aucun programme de certification. Il est donc rare de rencontrer des certificats (indépendants) pour le langage ou les bibliothèques Python.

Développeurs en série

Fullstack signifie souvent qu'un développeur Python peut également créer des pages HTML avec CSS et JavaScript. Les compétences frontales sont les bienvenues et la plupart des Connaissances en matière de filtrage JavaScript s'applique ici.

3.2. Examen des compétences techniques de Python lors d'un entretien téléphonique/vidéo

Comme il est assez difficile de tirer des conclusions fiables sur les compétences en programmation des candidats à partir du curriculum vitae lui-même, les recruteurs en informatique procèdent souvent à un entretien téléphonique ou vidéo. Un tel entretien donne l'occasion de poser des questions concernant leurs compétences en Python. Dans de nombreuses entreprises, un tel entretien technique par téléphone ou par vidéo permet de décider d'inviter ou non quelqu'un pour un entretien technique sur site avec l'équipe informatique.

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 Python du candidat :

A. Question d'entretien Python 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 Python. Ainsi, vous apprenez à mieux connaître votre candidat.

B. Question d'entretien Python concernant les connaissances et les opinions des développeurs

  • Q2 : Quelles sont les bibliothèques open source Python 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 Python. De plus, le candidat peut indiquer ce qu'il prend en compte lors du choix d'une certaine technologie. Comme 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 Python concernant la prise de décision du développeur concernant la technologie Python

  • 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 recherchez une personne expérimentée.

D. Question comportementale pour un développeur python

  • 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. Contrôle technique des compétences en Python avec un test de codage en ligne

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

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

Certaines entreprises utilisent le test de programmation comme complément à la sélection des candidats après l'analyse du CV et l'entretien téléphonique ou vidéo. Mais de plus en plus d'entreprises se tournent vers les tests de codage comme première méthode de sélection des programmeurs. De nos jours, les entreprises ont tendance à inviter tous les candidats qui postulent à un certain poste à passer un test. De cette façon, les recruteurs ne passent leur temps qu'avec les candidats qui ont réussi l'examen, prouvant ainsi qu'ils ont des compétences en programmation Python. D'autre part, les candidats ne sont pas invités à consacrer trop de temps au processus de recrutement dès le début - au contraire, ils passent rapidement le test (généralement en moins d'une heure) à leur convenance, tant en termes de temps que de lieu.

Test de codage en ligne Python - lequel choisir ?

Il existe de nombreux tests de codage en ligne en Python sur le marché, mais ils permettent généralement de vérifier 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 sont donc les caractéristiques d'un bon test de codage ? Vous trouverez ci-dessous mon top 5 des caractéristiques que vous devriez rechercher :

  1. Les tests de programmation en Python devraient vérifier non seulement les compétences en Python en ce qui concerne la technologie en général, mais aussi les cadres et les bibliothèques ;
  2. Les tests de codage Python 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 les tâches de programmation en Python soient préparées 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 créer un environnement similaire à celui qu'il aurait au travail, un examen à livre ouvert est donc beaucoup plus approprié. De plus, le candidat doit pouvoir utiliser son EDI préféré, comme il le fait au quotidien.
  5. Les tests de codage peuvent également inclure une tâche avec des défis de révision de code pour tester les compétences en Python. Cela 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 seniors Python.

Note de l'éditeur : Ce billet a été publié initialement le 28 février 2016. Il a été largement mis à jour pour représenter les dernières informations techniques et les meilleures pratiques.

Auteur - Wojtek Erbetowski

Wojtek_Erbetowski Compétences techniques du développeur Pyhton

Wojtek est un leader pratique avec ~10 ans d'expérience en API / applications web en Python et Java. Il a travaillé en tant que responsable de l'ingénierie chez Polidea, directeur technique chez GrowBots et participe activement en tant que responsable de la communauté du groupe d'utilisateurs Java de Varsovie et de Varsovie mobile et organisateur de la conférence MCE. Contributeur à la bibliothèque open source, développeur de logiciels, défenseur de l'agilité. Il a travaillé dans plusieurs domaines d'activité, par exemple la vente, la publicité à l'ancienne et aux nouveaux médias, le marketing par courrier électronique, l'industrie pharmaceutique, les portails financés par l'UE, la librairie en gros et bien d'autres) et a transformé les besoins des entreprises en applications spécialisées.

DevSkiller : des tests d'évaluation en ligne du codage Python prêts à l'emploi

DevSkiller aide les entreprises dans leur processus de recrutement en leur fournissant une infrastructure qui leur permet de tester les compétences en programmation des candidats dans un environnement qui imite l'expérience du premier jour de travail. Nous permettons aux entreprises d'utiliser leur propre base de code, des projets informatiques entiers utilisant des cadres et des bibliothèques, pour tester les programmeurs en ligne. Toutefois, nous disposons également de tests de codage Python prêts à l'emploi que vous pouvez utiliser dans votre campagne de recrutement technique.

Python
MIDDLE
Des compétences éprouvées
Durée
70 minutes max.
Évaluation
Automatique
Aperçu des tests

Questions sur le choix

l'évaluation de la connaissance des Python, Spark

Tâche de programmation - Niveau : Moyen :

Python | PySpark | Modèle de préférence des clients - Mettre en œuvre une application d'ingénierie des données pour le prétraitement des données marketing.

Python
MIDDLE
Des compétences éprouvées
Durée
104 minutes max.
Évaluation
Automatique
Aperçu des tests

Questions sur le choix

l'évaluation de la connaissance des Keras, Apprentissage automatique, Python

Tâche de programmation - Niveau : Moyen :

Python | NLP, Keras | Analyse des sentiments des critiques des clients - Effectuez une analyse des sentiments et un étiquetage des critiques des clients de films et de compagnies aériennes, en utilisant un modèle de réseau neuronal à sorties multiples.

Python
MIDDLE
Des compétences éprouvées
Durée
72 minutes max.
Évaluation
Automatique
Aperçu des tests

Questions sur le choix

l'évaluation de la connaissance des Apprentissage automatique, Renforcement de l'apprentissage

Tâche de programmation - Niveau : Moyen :

Python | PyTorch | Reinforcement Learning | Deep Q-Network - Achever l'implémentation de l'algorithme DQN.

Python
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 Python

Tâche de programmation - Niveau : Facile

Python | NumPy | Sur/sous échantillonnage - En donnant une séquence A, créez une séquence B telle que B ait des éléments de A et une distribution donnée dans des bacs de taille égale.

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

Questions sur le choix

l'évaluation de la connaissance des Python

Tâche de programmation - Niveau : Facile

Python | PySpark | ML Logs Transformer - Terminer la mise en œuvre du pipeline de transformation des logs.

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

Tâche DevOps - Niveau : Difficile

DevOps | Ubuntu | plugin Ansible Dynamic Inventory - Le but de cette tâche est de vérifier les compétences d'écriture du plugin Ansible (compétence Ansible avancée). Pour accomplir cette tâche, le candidat doit connaître un langage de programmation.

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

Tâche DevOps - Niveau : Difficile

Plugin DevOps | CentOs | Ansible Dynamic Inventory - Le but de cette tâche est de vérifier les compétences d'écriture du plugin Ansible (compétence Ansible avancée). Pour accomplir cette tâche, le candidat doit connaître un langage de programmation.

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

Tâche - Niveau : Facile

SQL | Catalogue de timbres | Les trois prix les plus élevés - Sélectionnez les trois timbres (prix et nom) ayant le prix le plus élevé.

Tâche de programmation - Niveau : Facile

Python | Pandas | Analyseur de tables HTML - Implémente une fonction pour convertir une table HTML en un fichier au format CSV.

Python
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 Python

Tâche de programmation - Niveau : Facile

Python | Pandas | Analyseur de tables HTML - Implémente une fonction pour convertir une table HTML en un fichier au format CSV.

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

Questions sur le choix

l'évaluation de la connaissance des Apprentissage automatique, PyTorch

Tâche de programmation - Niveau : Facile

Python | PyTorch, Computer Vision | Model Builder - Achever la mise en place d'un pipeline de formation de modèles.

Partager le poste

En savoir plus sur le recrutement dans le secteur des technologies

Abonnez-vous à notre Learning Hub pour recevoir des informations utiles directement dans votre boîte aux lettres électronique.

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.

Logo DevSkiller Logo TalentBoost Logo TalentScore