Wie man die Fähigkeiten von Python-Entwicklern überprüft

Veröffentlicht: Zuletzt aktualisiert:
Python: Interviewfragen für Software-Ingenieure

Wenn Sie auf der Suche nach einer Person mit Python-Entwickler Fähigkeiten, wissen, dass sie zu finden ist nur die Hälfte der Reise. Selbst wenn Sie sie finden können, kann es einige zusätzliche Anstrengungen erfordern, um wirklich zu verstehen, was Python-Fähigkeiten wirklich sind. Die wirklichen Python-Fähigkeiten sind eine komplexe Sache zu verstehen, aber hier stellen wir einen Experten auf dem Gebiet vor, Wojtek Erbetowski, um das Thema ans Licht zu bringen.

1. Was ist Python?

Python ist eine der beliebtesten Programmiersprachen (an zweiter Stelle nach der TIOBE-Index (Stand: September 2021). Es wurde erstmals 1991 veröffentlicht und erlangte seine Popularität, weil es einfach zu erlernen und dennoch leistungsstark bei der Lösung von Problemen ist. Die Syntax ähnelt der C++-Familie, ist jedoch mit einer Vielzahl moderner Lösungen ausgestattet.

Die wichtigsten Vorteile von Python sind:

  • Flache Lernkurve. Es bringt Benutzer mit wenig technischer Erfahrung, wie Akademiker für die Forschung, oder Unternehmen für die Automatisierung.
  • Sie ist im Besitz der unabhängigen Python Software Foundation (PSF) und wird von der Community geleitet.
  • Leistungsstarke wissenschaftliche Werkzeuge (z. B. SciPy).
  • Gute Dokumentation und Unterstützung durch die Community. Dazu gehören viele lokale Benutzergruppen und Konferenzen.

2. Was ist für einen IT-Recruiter wichtig, um über Python zu wissen?

Da Python sehr vielseitig einsetzbar ist. Es ist oft schwierig, Kandidaten von Akademikern, über Netzwerkprogrammierung und Webanwendungen bis hin zu einfachem Scripting zu unterscheiden. Dennoch ist es für einen Entwickler oft einfacher, neues Python zu lernen, als die Domäne zu wechseln (z.B. von Data Science zu Webanwendungen).

Im Jahr 2007 wurde Python 3.0 veröffentlicht. Es wurde von der Gemeinschaft aufgrund von Abwärtsinkompatibilität abgelehnt. Das heißt, im Jahr 2020, 94% der Python-Benutzer wechselten zu Python 3.

Python ist dynamisch typisiert, was das Skripting und das Schreiben kleiner Anwendungen erleichtert. Es wird oft gesagt, dass es Schwierigkeiten bei der Erstellung großer und langlebiger Anwendungen mit sich bringt.

3. Wie kann man die Fähigkeiten von Python-Entwicklern in der Screening-Phase überprüfen?

Screening ist anstrengend, mühsam und zeitaufwändig. In der Regel wenden sich IT-Recruiter an Lebenslauf-Screening, technisches Screening (Codierungstests) und Interviews, um die Python-Fähigkeiten zu beurteilen.

Nachfolgend finden Sie einige nützliche und praktische Recruiting-Tipps, wie Sie die Python-Kenntnisse mit den einzelnen Methoden überprüfen können.

3.1. Technisches Screening der Python-Entwickler-Kenntnisse auf Basis des Lebenslaufs

Zum Glück (für das Recruiting) gibt es in Python weniger Bibliotheken und Technologien, die man abfragen muss, als z.B. in Java. Dennoch könnte eine Reihe von Dingen verwirrend sein.

Python-Sprache Beliebte Versionen 3.7, 3.8, 3.9, 3.10
Python-Web-Frameworks Django, Flask, Flasche, Tornado, web2py, FastAPI
ORM SQLAlchemy, Django ORM, peewee
Build-Tools Setup-Tools, pip, tox
Test-Frameworks UnitTest, py.test
Asyncio Python 3.5, Tornado, Twisted
Werkzeuge zur Datenanalyse NumPy, SciPy, Pandas, PySpark

Highlights:

  • Python 2 und 3 sind sehr unterschiedlich. Python 2.7 ist die neueste (und letzte) Version von Python 2. Die Version von Python 3 entwickelt sich weiter und die neueste Version ist 3.10
  • Asyncio ist nur in Python 3 vorhanden.
  • Tornado, Twisted, Gevent sind alles Bibliotheken für die asynchrone Programmierung.
  • Django ist das mit Abstand beliebteste Web-Framework.
  • Die Unit-Test-Bibliothek ist in die Sprache integriert und wird daher selten separat erwähnt.

Zertifizierung

Die Python-Community bietet kein Zertifizierungsprogramm an. Daher ist es selten, irgendwelche (unabhängigen) Zertifikate für die Sprache Python oder Bibliotheken zu finden.

Full-Stack-Entwickler

Fullstack bedeutet oft, dass ein Python-Entwickler auch HTML-Seiten mit CSS und JavaScript erstellen kann. Frontend-Kenntnisse sind willkommen und die meisten JavaScript-Screening-Kenntnisse gilt hier.

3.2. Technische Überprüfung der technischen Fähigkeiten von Python während eines Telefon-/Videointerviews

Da es ziemlich schwierig ist, aus dem Lebenslauf selbst verlässliche Rückschlüsse auf die Programmierkenntnisse des Bewerbers zu ziehen, führen IT-Recruiter oft ein Telefon- oder Videointerview durch. Ein solches Interview bietet die Möglichkeit, Fragen zu den Python-Kenntnissen zu stellen. In vielen Unternehmen ist ein solches technisches Telefon- oder Videointerview eine Grundlage für die Entscheidung, ob jemand zu einem technischen Vorstellungsgespräch mit dem IT-Team vor Ort eingeladen wird oder nicht. Es lohnt sich also, die richtigen technischen Fragen auszuwählen und zu stellen.

Da die Fragen selbst je nach der Position, für die Sie rekrutieren, und den spezifischen Fähigkeiten, die Sie überprüfen möchten, variieren können, würde ich aus meiner Erfahrung heraus folgende allgemeine Fragen empfehlen, um mehr über die Python-Fähigkeiten des Kandidaten herauszufinden:

A. Python-Interviewfrage zur Erfahrung des Entwicklers

  • Q1: Mit welchen Technologien, die in Ihrem Lebenslauf aufgeführt sind, haben Sie in den letzten 2 Jahren kommerzielle Erfahrungen gesammelt? Was waren Ihre Aufgaben? Was war Ihr größter Erfolg?
  • Warum fragen Sie Q1: Durch diese Frage können Sie mehr über die aktuellen Erfahrungen, Verantwortlichkeiten und Leistungen des Kandidaten in Python herausfinden. So lernen Sie Ihren Kandidaten besser kennen.

B. Python-Interview-Frage zu Wissen und Meinungen von Entwicklern

  • Q2: Welche Python Open-Source-Bibliotheken halten Sie für wertvoll und warum?
  • Warum fragen Sie Q2: Mit dieser Frage kann der Kandidat sein Wissen über das Ökosystem von Python unter Beweis stellen. Außerdem kann der Kandidat aufzeigen, worauf er bei der Wahl einer bestimmten Technologie achtet. Als Folgefrage können Sie auch fragen, was seiner Meinung nach die Vorteile von kommerziellen Lösungen gegenüber Open Source und umgekehrt sind. Dies zeigt, wie der Kandidat denkt.
  • Q3: Ich habe bemerkt, dass Sie Framework X in Ihrem Lebenslauf aufgeführt haben. Was ist Ihre Meinung dazu? Ist es eine gute Wahl?
  • Warum fragen Sie Q3: Eine solche offene Frage ermöglicht es einem Kandidaten, sein Wissen zu demonstrieren, wenn er es hat. Sie können auch anhand seiner Antworten "Aber warum nicht Framework Y dafür verwenden?" den Teufel spielen. So können Sie sehen, wie der Kandidat eine Technologie auswählt, seine Wahl begründet und ob seine Meinung mit der Ihres IT-Teams übereinstimmt.

C. Python-Interviewfrage zur Entscheidungsfindung von Entwicklern in Bezug auf die Python-Technologie

  • Q4: In welcher Phase sind Sie in die letzten Projekte eingestiegen? Waren Sie an der Auswahl der Technologie oder dem Projektaufbau beteiligt? Wenn ja, welche Technologie haben Sie für das Projekt gewählt oder empfohlen und warum?
  • Warum fragen Sie Q4: Eine solche Frage zeigt nicht nur, wie ein Kandidat Entscheidungen in Bezug auf Technologie trifft, sondern auch, ob er in die Entscheidungsfindung einbezogen wurde. Besonders wichtig, wenn Sie jemanden mit Erfahrung suchen.

D. Verhaltensfrage für Python-Entwickler

  • Q5: Denken Sie an eine Entscheidung in einem Programmierprojekt, die Sie getroffen haben und die ein Fehlschlag war. Warum denken Sie, dass es ein Fehler war? Warum ist es passiert? Könnte man etwas anders machen, um es in einen Erfolg zu verwandeln? Welche Schritte haben Sie unternommen, um die Situation zu verbessern? Was haben Sie aus dieser Erfahrung gelernt?
  • Warum fragen Sie Q5: Mit dieser Art von Fragen können Sie herausfinden, wie der Kandidat seine Entscheidungen wahrnimmt, Schlüsse zieht und wie viel er aus seinen bisherigen Erfahrungen lernt.

3.3. Technische Überprüfung der Python-Kenntnisse mit Online-Codierungstest

Online-Codierungstests können eine gute Möglichkeit sein, um Python-Fähigkeiten zu überprüfen. Im Folgenden finden Sie Informationen, wie Sie Programmiertests verwenden können und welche Sie auswählen sollten.

Online-Python-Codierungstests - die primäre oder zusätzliche Methode für das Screening

Einige Unternehmen verwenden Programmiertests als Zusatz zum Screening von Kandidaten, nachdem der Lebenslauf analysiert und ein Telefon- oder Videointerview durchgeführt wurde. Aber immer mehr Unternehmen wenden sich Codierungstests als erste Methode zum Screening von Programmierern zu. Unternehmen neigen heutzutage dazu, alle Kandidaten, die sich auf eine bestimmte Stelle bewerben, zu einem Test einzuladen. Auf diese Weise verbringen die Personalverantwortlichen ihre Zeit nur mit den Kandidaten, die den Test bestanden haben und damit beweisen, dass sie über Python-Programmierkenntnisse verfügen. Auf der anderen Seite werden die Kandidaten nicht gebeten, zu früh zu viel Zeit in den Einstellungsprozess zu investieren - stattdessen absolvieren sie den Test schnell (normalerweise innerhalb einer Stunde), wenn es ihnen zeitlich und örtlich passt.

Python-Online-Codierungstest - welchen soll ich wählen?

Es gibt eine Menge Python-Online-Codierungstests auf dem Markt, aber in der Regel überprüfen sie eher das Wissen der Kandidaten als die Programmierfähigkeiten und Fähigkeiten, reale Programmierprobleme zu lösen. Das ist der Grund, warum viele erfahrene Programmierer diese Art der Bewertung nicht mögen und, was noch wichtiger ist, sie sind nicht in der Lage, eine gute Punktzahl zu bekommen, da sie ihre Erfahrung und Fähigkeiten bei der Lösung von realen Programmierproblemen nicht zeigen können.

Welche Eigenschaften sollte also ein guter Codierungstest haben? Unten finden Sie meine Top 5 Merkmale, nach denen Sie suchen sollten:

  1. Python-Programmiertests sollen nicht nur die Python-Kenntnisse im Allgemeinen, sondern auch Frameworks und Bibliotheken überprüfen;
  2. Python-Codierungstests sollten aus einer Reihe von Aufgaben bestehen, nicht nur aus Multiple-Choice-Tests, sondern vor allem aus Programmieraufgaben, deren Schwierigkeitsgrad mit den Aufgaben übereinstimmen sollte, die die Kandidaten haben werden, wenn sie den Job bekommen (Tests sollten nicht auf algorithmischen Aufgaben basieren, da Sie so nicht überprüfen können, ob ein Kandidat reale Codierungsaufgaben lösen kann);
  3. Vorzugsweise sollten die Aufgaben zur Python-Programmierung auf der firmeneigenen Code-Basis vorbereitet werden, da so die Herausforderungen, die der Kandidat haben wird, wenn er den Job bekommt, am besten nachgeahmt werden können;
  4. Es macht keinen Sinn, dem Programmierer zu verbieten, externe Quellen zu verwenden. Der beste Weg ist es, eine Umgebung zu schaffen, die derjenigen ähnelt, die sie bei der Arbeit haben würden, daher ist eine Open-Book-Prüfung viel angemessener. Außerdem sollte der Kandidat seine bevorzugte IDE verwenden können, so wie er es auch im Alltag tut.
  5. Coding-Tests können auch eine Aufgabe mit Code-Review-Herausforderungen enthalten, um Python-Fähigkeiten zu testen. Dies gibt sehr genaue Informationen über die Erfahrung des Kandidaten, seine Herangehensweise an die Codequalität und die Effizienz beim Debuggen und Finden von Fallen. Eine solche Bewertung sollte bei der Rekrutierung von Python-Senior-Entwicklern obligatorisch sein.

Hinweis der Redaktion: Dieser Beitrag wurde ursprünglich am 28. Februar 2016 veröffentlicht. Er wurde umfassend aktualisiert, um die neuesten technischen Informationen und Best Practices darzustellen.

Autor - Wojtek Erbetowski

Wojtek_Erbetowski Pyhton-Entwickler technische Fähigkeiten

Wojtek ist eine praktische Führungskraft mit ~10 Jahren Erfahrung mit APIs / Web-Apps in Python und Java. Arbeitete als Head of Engineering bei Polidea, CTO bei GrowBots und ist aktiv als Community Leader bei der Warschauer Java User Group und Mobile Warsaw sowie als Organisator der MCE Conference. Er trägt zu Open-Source-Bibliotheken bei, ist Softwareentwickler und Verfechter von agilem Vorgehen. Er war in verschiedenen Geschäftsbereichen tätig (z.B. Vertrieb, Werbung in alten und neuen Medien, E-Mail-Marketing, Pharmaunternehmen, EU-finanzierte Portale, Großbuchhandlung und mehr) und hat Geschäftsanforderungen in spezialisierte Apps umgesetzt.

DevSkiller ist einsatzbereit für Online-Tests zur Bewertung der Python-Programmierung

DevSkiller hilft Unternehmen im IT-Rekrutierungsprozess, indem wir ihnen eine Infrastruktur zur Verfügung stellen, mit der sie die Programmierfähigkeiten von Kandidaten in einer Umgebung testen können, die den ersten Arbeitstag imitiert. Wir erlauben Unternehmen, ihre eigene Code-Basis, ganze IT-Projekte mit Frameworks und Bibliotheken zu verwenden, um Programmierer online zu testen. Wir haben aber auch einige gebrauchsfertige Python-Codierungstests, die Sie in Ihrer technischen Rekrutierungskampagne verwenden können.

Beitrag teilen

Erfahren Sie mehr über die Einstellung von Technikern

Abonnieren Sie unseren Learning Hub, um nützliche Einblicke direkt in Ihren Posteingang zu erhalten.

Kodierfähigkeiten nahtlos verifizieren & entwickeln.

Sehen Sie DevSkiller-Produkte in Aktion.

Sicherheitszertifizierungen & Konformität. Wir sorgen dafür, dass Ihre Daten sicher und geschützt sind.

DevSkiller-Logo TalentBoost-Logo TalentScore Logo