Catégories
Astuces et Design

Comment aborder une interview Python – SitePoint

Avez-vous autorisé la première série d'appels avec les RH? Allez-vous pour une interview Python en personne? Si vous vous demandez quelles questions liées à Python peuvent être posées, ce guide devrait vous aider.

Dans la première section, nous aborderons quelques questions sur la philosophie de Python – celles qui vous aident à prendre des décisions concernant l'architecture d'un projet. Dans la section suivante, nous abordons les questions liées à la façon de programmer en Pythonic – qui peuvent se manifester sous la forme d'une révision ou de la recherche de la sortie d'un extrait de code.

Un mot d'avertissement avant de commencer. Ce guide traite principalement des capacités intégrées de Python. Le but de ce guide est de vous aider à vous familiariser avec les fonctionnalités Python inhérentes qui permettent un développement rapide. Nous ne serons donc pas en mesure de répondre à toutes les questions que vous pourriez rencontrer des différents types d'entreprises.

Vous voulez améliorer vos compétences en Python et vous démarquer sur un marché en croissance rapide? Découvrez SitePoint Premium! Vous trouverez des livres pour vous aider à démarrer (comme The Python Apprentice) et développer des compétences prêtes à l'emploi (comme Front-end Testing en Python). Améliorez vos compétences avec The Python Master et accédez à une bibliothèque croissante de plus de 400 livres et cours sur la conception et le développement Web.

Développement en Python: architecture de projet

Qu'est-ce que Python? Pourquoi devriez-vous utiliser Python?

Si vous interviewez pour un rôle Python, vous devriez avoir une idée claire de ce qu'est Python et en quoi il diffère des autres langages de programmation. Voici quelques points clés concernant Python que vous devez connaître.

Tout d'abord, vous ne devriez pas vous tromper sur l'étymologie. Une grande partie des programmeurs Python pensent à tort que Guido van Rossum l'a nommé d'après le serpent! Au contraire, Python doit son nom au Flying Circus de la comédie à sketchs britannique Monty Python.

Ensuite, Python est un langage de programmation interprété orienté objet de haut niveau. Cela signifie que le code Python est exécuté ligne par ligne. Python est également typé dynamiquement, car il ne vous oblige pas à spécifier le type de variables lors de leur déclaration.

Étant donné la facilité d'utilisation de Python, il a trouvé des utilisations pour les tâches d'automatisation courantes. Python est souvent le choix de script incontournable pour les programmeurs qui connaissent plusieurs langues. Avec la popularité croissante des frameworks Web basés sur Python comme Django et Flask, la part du gâteau de Python a considérablement augmenté ces dernières années.

Limitations de Python

Bien qu'il soit bon de connaître les capacités d'un langage de programmation, il est également bon d'être conscient de ses limites pour vraiment comprendre les situations dont vous devez vous méfier.

La première limitation de Python est la vitesse d'exécution. Bien que le développement en Python soit rapide, l'exécution d'un bloc similaire de code Python est souvent plus lente par rapport aux langages compilés tels que C ++. Pour cette raison, les hackathons donnent souvent aux programmes Python un délai supplémentaire pour leur exécution. Il existe cependant des moyens de contourner ce problème. Par exemple, vous pouvez intégrer Python à un langage compilé comme C pour effectuer le traitement de base à travers l'autre langage.

Dans un monde qui devient mobile en premier, Python n'est pas natif du développement mobile. Vous trouverez rarement des applications mobiles développées en Python. Les deux principaux systèmes d'exploitation mobiles, Android et iOS, ne prennent pas en charge Python en tant que langage de programmation officiel.

Détermination du paquet: Django vs Flask

En plus des capacités et des limites de Python, une catégorie de questions populaires dans les interviews se concentre sur le choix entre les packages en fonction de vos besoins. Examinons une approche que vous pouvez adopter pour résoudre ces questions.

Supposons que vous ayez le choix entre Django et Flask pour démarrer une application Web. La réponse à cette question doit résider dans un amalgame des exigences du projet et de la culture de l'organisation.

Au départ, vous devez savoir qu'avec l'utilisation de plugins, il n'y a pas de bonne réponse ici: vous pouvez créer des applications similaires en utilisant l'un ou l'autre des frameworks. Cependant, il existe une nette différence entre les philosophies de conception de chaque framework. Flask vous offre les fonctionnalités minimales nécessaires pour créer une application Web comme le routage d'URL, les modèles, les tests unitaires et un serveur de développement, vous offrant ainsi une grande liberté de conception de votre application. D'un autre côté, Django vous offre un large éventail de fonctionnalités intégrées depuis le début – support de base de données, fonctionnalités d'administration étendues et fonctionnalités de sécurité.

Si vous créez une application qui utilisera des bases de données relationnelles, avec beaucoup de contenu dynamique, vous devriez probablement choisir Django. Cependant, si vous recherchez beaucoup de liberté dans votre projet, vous devriez opter pour Flask.

Méthode de programmation pythonique

Une partie importante d'une interview Python consiste en une programmation pratique. Il peut s'agir de la recherche de la sortie ou de la révision d'extraits de code, ou simplement d'une discussion sur des fonctionnalités Python spécifiques qui pourraient aider dans certains scénarios. Dans cette section, nous examinons diverses fonctionnalités et directives pour le développement Python.

Looping zip et enumerate

La façon dont vous créez des boucles en Python est différente des autres langages de programmation. Fonctions intégrées de Python zip et enumerate vous aider à créer des boucles plus efficaces qui s'exécutent plus rapidement. Voyons la démonstration de ces deux fonctions.

Supposons que vous souhaitiez accéder aux éléments correspondants à partir de deux listes différentes. Vous pouvez parcourir la longueur des listes et accéder à l'élément correspondant à partir de chaque liste. Par exemple, le code suivant imprime la voiture et son fabricant correspondant:

cars = ('CR-V', 'Silverado', 'F-150')
manufacturers = ('Honda', 'GM', 'Ford')

for i in range(len(cars)):
  print(cars(i), manufacturers(i))

Ceci peut être réalisé en utilisant une fonction plus simple en Python, zip:

for car, manufacturer in zip(cars, manufacturers):
  print(car, manufacturer)

Dans cet exemple, zip crée des paires entre les éléments des deux listes. Il peut également être utilisé pour joindre plus de deux listes.

Voyons comment enumerate travaux. Si vous souhaitez accéder à l'index ainsi qu'à la valeur des éléments d'une liste, vous pouvez exécuter l'extrait de code suivant:

for i in range(len(cars)):
  print (i, cars(i))

Cependant, le enumerate fait la même tâche:

for i, car in enumerate(cars):
  print (i, car)

Utilisation de zip et enumerate non seulement votre code se condense, mais il s'exécute également plus rapidement.

Opérations de liste sur une seule ligne

Si vous souhaitez modifier des éléments d'une liste, vous pouvez utiliser une fonction comme map, peut-être comme suit:

numbers = (1, 2, 3, 4, 5)

def squared(num):
  return num**2

squares = map(squared, numbers)

Cependant, Python permet aux opérations de liste sur une seule ligne de réaliser de telles tâches. Voici deux façons de réaliser la même tâche:

squares = (squared(x) for x in numbers)
squares = (x**2 for x in numbers)

De plus, vous pouvez utiliser une seule ligne if ... else déclarations au sein d'une telle opération aussi:

square_only_evens = (x**2 if x%2 == 0 else x for x in numbers)

Vous pouvez également utiliser des expressions lambda dans ces opérations sur une seule ligne.

Débogage avec pdb

Bien que vous puissiez utiliser des instructions print pour déboguer votre code dans d'autres langages de programmation, Python est livré avec un débogueur intégré, pdb. Insérez la ligne de code suivante dans votre programme et l'exécution s'arrête à cette ligne pour que vous puissiez déboguer l'environnement:

import pdb; pdb.set_trace()

Toutes les variables et fonctions disponibles jusqu'à ce point sont disponibles pour vous d'inspecter et de trouver toute erreur.

Structures de données

Pour utiliser toutes les capacités de Python, vous devez être à l'aise avec les structures de données intégrées. Une liste est une collection d'éléments, qui peuvent ne pas être du même type. Un tuple est similaire à une liste, mais est immuable. Un ensemble est une collection d'articles non ordonnée et ne comporte aucun doublon. Un dictionnaire est une collection de paires clé-valeur.

Vous devez être conscient des diverses situations dans lesquelles ces structures de données peuvent être utilisées.

Dernières pensées

Avec cela, nous arrivons à la fin de nos réflexions pour une interview Python. J'espère qu'ils vous ont fourni des lignes directrices utiles sur la façon de préparer votre prochaine entrevue. Bonne chance!


Trouvez votre prochain emploi Python à distance avec SitePoint Remote, où nous sélectionnons les meilleurs emplois à distance pour les développeurs, les concepteurs et les professionnels du numérique.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *