Fermer

janvier 30, 2020

Comment aborder une interview Python –


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 être utile.

Dans la première section, nous aborderons quelques questions sur la philosophie de Python – celles qui vous aident à prendre des décisions sur l'architecture de un projet. Dans la section suivante, nous couvrons 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 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 dans les différents types d'entreprises.

Vous voulez améliorer vos compétences en Python et vous démarquer sur un marché en croissance rapide? 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 in 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.

Premièrement, 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 tire son nom de l’humoriste britannique Monty Python’s Flying Circus . La prochaine fois que vous verrez un livre Python avec un serpent sur la couverture, vous voudrez peut-être vous en éloigner.

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, c'est aussi 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 package: Django vs Flask

En plus des capacités et des limitations de Python, une catégorie de questions populaires dans les entrevues portent sur le choix entre des forfaits 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 devrait résider dans une fusion 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 le des applications similaires utilisant l'un ou l'autre cadre. 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 – prise en charge de base de données, fonctionnalité d'administration étendue 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.

Pythonic Way of Programming

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

Boucle zip et énumération

La ​​façon dont vous créez des boucles dans Python est différente des autres langages de programmation . Les fonctions intégrées de Python zip et énumèrent vous aident à 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']
fabricants = ['Honda', 'GM', 'Ford']

pour i dans la gamme (len (voitures)):
  impression (voitures [i]fabricants [i])

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

 pour la voiture, fabricant en zip (voitures, fabricants):
  impression (voiture, constructeur)

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 énumérer fonctionne. 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)):
  impression (i, voitures [i])

Cependant, la fonction énumérer fait la même tâche:

 pour i, voiture dans énumérer (voitures):
  imprimer (i, voiture)

L'utilisation de zip et énumération non seulement rend votre code condensé, mais le fait également fonctionner plus rapidement.

Opérations de liste sur une seule ligne

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

 nombres = [1, 2, 3, 4, 5]

def carré (num):
  return num ** 2

carrés = carte (carré, nombres)

Cependant, Python autorise des opérations de liste sur une seule ligne pour réaliser de telles tâches. Deux façons de réaliser la même tâche sont indiquées ci-dessous:

 squares = [squared(x) for x in numbers]
carrés = [x**2 for x in numbers]

De plus, vous pouvez utiliser une seule ligne si ... sinon instructions dans une telle opération aussi:

 square_only_evens = [x**2 if x%2 == 0 else x for x in numbers]

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

Débogage avec pdb

Bien que vous puissiez utiliser des instructions d'impression pour déboguer votre code dans d'autres programmes langages, 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 que vous puissiez inspecter et 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 au courant des diverses situations dans lesquelles ces structures de données peuvent être utilisées.

Réflexions finales

Avec cela, nous arrivons à la fin de nos considérations 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!




Source link