Entrevues

Mes trois questions d’entrevue Python préférées

Posted by admin

J’ai récemment interviewé un certain nombre de développeurs Python pour un poste vacant. Et je pensais partager mes méthodes peu orthodoxes pour évaluer les compétences de quelqu’un en tant que développeur avec Python.

C’est différent de “à quel point ils connaissent Python”. Parce que je ne me soucie vraiment pas de la façon dont ils peuvent déceler des détails mystérieux de la langue.

Au lieu de cela, je veux comprendre s’ils peuvent trouver un équilibre entre faire les choses et bien faire les choses, dans des situations qui ne sont pas très différentes de ce pour quoi je pourrais les payer.

Donc, au lieu de leur demander de dessiner des bulles sur un tableau blanc ou quelque chose du genre, voici quelques choses que je pourrais faire:

1) Traiter les données CSV

Je leur dis d’apporter leur ordinateur portable à l’entrevue et de m’assurer qu’il est configuré pour le développement Python.

Je leur donne un fichier CSV avec des données intéressantes. Informations nutritionnelles pour différents aliments, par exemple quelque chose comme ça. Et je leur demanderai d’écrire un programme pour enregistrer et répondre aux questions sur ces données.

Pour commencer par le simple, “Quelle est la valeur moyenne de la colonne” calories “?”

Je sais donc qu’ils peuvent au moins ouvrir le fichier et insérer les données.

Puis quelque chose de plus intéressant, comme “Trier les aliments en fonction de leur rapport protéines / calories”.

Et ainsi de suite.

Je m’en fiche s’ils utilisent Pandas, ou le module csv, ou une bibliothèque dont je n’ai jamais entendu parler. Je m’en fiche s’ils utilisent PyCharm, Vim ou Nano. À moins que ce ne soit quelque chose de basique, je m’en fiche même s’ils recherchent en ligne pendant l’entrevue pour le savoir.

Je me soucie juste qu’ils puissent le comprendre.

2) Parlez JSON sur HTTP

J’ai écrit un petit service Web avec une liste de tâches, que vous pouvez OBTENIR sur le réseau et PUT et POST. Et je leur donne l’adresse et un court document qui spécifie pleinement l’API …

Comment créer de nouvelles tâches; liste des tâches incomplètes; marquer les tâches comme terminées; et ainsi de suite.

Et je les guide en écrivant du code qui le pratique. Parce que dans le monde moderne, nous devons écrire beaucoup de code glue avec des services Web comme celui-ci.

S’ils n’ont jamais fait ce genre de choses – peut-être qu’ils ont juste eu des emplois où ils n’avaient jamais été nécessaires jusqu’à présent, par exemple – c’est encore mieux d’une certaine manière.

Parce que je peux leur donner un petit guide sur la façon d’utiliser le module “demandes”, et voir s’ils peuvent l’utiliser tout de suite pour créer des interactions simples avec l’API.

Et cela me permet d’évaluer leur capacité à apprendre rapidement une bibliothèque et à l’utiliser en vrai code … UNE AUTRE compétence importante dans le monde moderne.

3) Gestion des versions pilotée par les tests

Je leur demanderai de développer une bibliothèque simple en utilisant un développement piloté par les tests.

Accent sur «simple». Je ne vais pas leur demander d’implémenter un compilateur JIT pour un langage de type C.

Plus comme: générer des entiers. Légèrement trivial car je teste autre chose à ce stade. Et nous n’avons pas toute la journée pour faire l’interview.

Alors je leur dis la première exigence. Et dites-leur d’écrire du code qui répond à cette exigence, en utilisant le développement et le contrôle de version pilotés par les tests.

(Encore une fois, je m’en fiche s’ils utilisent unittest ou pytest ou nose; git ou mercurial ou fossile ou autre. S’ils peuvent le faire avec l’un de ces derniers, ils peuvent rapidement apprendre à le faire dans celui que je veux.)

Une fois qu’ils auront fait cela, je leur donnerai la nouvelle exigence. Et ils doivent écrire de nouveaux tests unitaires, peut-être peaufiner certains des tests qu’ils viennent d’écrire, puis implémenter le code d’application pour que les tests réussissent.

Et je le répète encore une ou deux fois.

Cela me dit beaucoup sur la façon dont ils développent des logiciels, leurs forces et leurs faiblesses.

Il y a plus que cela dans le processus d’entrevue. Ce que j’ai écrit ci-dessus ne sont que quelques morceaux que je pourrais utiliser dans une interview.

Et si vous prévoyez bientôt une entrevue, pensez d’abord à vous entraîner avec ces questions. Peut-être que cela vous aidera à vous préparer à réussir avec brio.

Leave A Comment