Fragen in Vorstellungsgesprächen bei Python [geschlossen]

25

Ich werde innerhalb von zwei Wochen ein Interview für ein Praktikum führen, bei dem es um Python-Programmierung geht.

Kann jemand vorschlagen, welche möglichen Bereiche ich polieren soll? Ich suche nach häufig gestellten Fragen in Interviews für Python-Eröffnungen. Abgesehen von der Tatsache, dass ich die Sprache bereits seit über einem Jahr beherrsche, verstehe ich nicht, was sie mich fragen können.

Wie bei einem C- oder C ++ - Interview gibt es viele Fragen, von der Umkehrung von Zeichenfolgen bis zur Erstellung verknüpfter Listen. Bei einem Python-Interview bin ich jedoch ratlos.

Persönliche Erfahrungen und / oder Vorschläge sind willkommen.


quelle
Wenn es sich um ein Praktikum handelt und Sie bereits seit einem Jahr in Python programmieren, ist alles in Ordnung. Ich denke, dass die allgemeinen Fragen für Python die gleichen sind, die Sie für c ++ erwähnt haben.
Robert Harvey
Robert, das Programmieren ohne Aufsicht und Anleitung stört mich. Vielleicht fehlt mir in einigen Bereichen.
1
Wenn es ein Praktikum ist, warum hast du dann keine Anleitung? Das ist genau die Definition eines Praktikums. Die Praktikanten, in denen ich arbeite, erhalten zwar keinen Programmierunterricht, aber klare Arbeitsanweisungen und Erwartungen. Als Praktikant sollten sie damit rechnen, dass Sie am Arbeitsplatz lernen und dass die Arbeit etwas länger dauert, als es vielleicht der Fall ist, wenn jemand mit Erfahrung dies tut.
Robert Harvey
Du machst einen Fehler, den viele Leute machen, wenn sie die Schule verlassen - ein Interview ist kein Test, es ist eher wie ein erstes Date. Ein guter Interviewer wird nicht Ihre Eier sprengen und versuchen herauszufinden, ob Sie dunkle Ecken einer Sprache kennen, sondern im Allgemeinen festzustellen, ob Sie sie tatsächlich kennen. Ein guter Interviewer wird sich auf allgemeine Programmierkenntnisse, Problemlösungsfähigkeiten, zwischenmenschliche Fähigkeiten und Erfahrung konzentrieren. Wenn jemand nach den Einzelheiten fragt, wie Python die Zeichenfolgen verarbeitet, bedeutet dies, dass er verloren ist und nicht weiß, wie er ein Interview führen soll.
Sean McSomething

Antworten:

8

Hier sind einige einfache:

  1. Was sind Python-Dekoratoren und wie würden Sie sie verwenden?
  2. Wie debuggen Sie Ihren Python-Code?
  3. Wie würden Sie viele Projekte einrichten, in denen beide unterschiedliche Versionen von Python und Bibliotheken von Drittanbietern verwenden?
  4. Folgen Sie PEP8 beim Schreiben Ihres Codes?
Thierry Lam
quelle
7

Wie wäre es mit etwas mit Python- Listenverständnissen ? Für mich war dies eines der großen Verkaufsargumente für C ++, nachdem ich in Dive into Python darüber gelesen hatte .

Msgstr "Schreiben Sie ein Listenverständnis, das eine Liste der geraden Zahlen von 1 bis 10 (einschließlich) erstellt".
Wenn die Antwort ungefähr so ​​lautet (beachten Sie, dass die Entfernungswerte einen Zaunpfostenfehler vermeiden):

foo = [x for x in range(1, 11) if (x % 2) == 0]
print foo
[2, 4, 6, 8, 10]

Wenn Sie alle in Dive into Python aufgelisteten Konzepte verstehen, sollte dies die meisten wichtigen Funktionen abdecken.

Zyklop
quelle
13
Das ist unpythonisch. In Python 2.x, tun Sie einfach range(2,11,2)und in Python 3.x list(range(2,11,2)).
Chinmay Kanchi
@ Cyclops, hört sich so an, als müssten Sie für Ihren eigenen Job bei INNOTECH ein Interview führen.
Job
5
@Chinmay Kanchi Ich halte es zwar nicht für eine gute Interviewfrage, aber die meisten Einführungen in erweiterte Funktionen tun das Einfachste, was sie können (um den Leser nicht zu verwirren). Es gibt zwar eine einfachere Lösung für dieses spezielle Problem, aber es ging nicht darum, dieses spezielle Problem zu beantworten. Es ging darum, ein Listenverständnis zu verwenden (das sehr effektiv ist und eine bemerkenswerte Möglichkeit darstellt, Dinge in Python zu optimieren).
Sternberg
6

Ist Python als Referenz oder als Wert zu übergeben, ist dies ebenfalls eine sehr gute Frage.

ismail
quelle
1
Eine gute Folgefrage wäre zu fragen, wie sie es zeigen können und warum es wichtig ist
mcotton
@Ismail - Sorry, aber warum ist das eine gute Frage?
Theodor
7
@ Cervo: Wenn ich das richtig verstehe, ist Python ein Pass-by-Value, genauso wie C #, Java, Schema usw. ein Pass-by-Value sind. Die einzige Pass-by-Reference-Sprache, die ich gesehen habe, ist VB6. Wenn nicht anders angegeben, wird alles als Referenz übergeben. Die Tatsache , dass Sie die Objekte mutieren kann , macht es nicht pass-by-reference in irgendeiner Weise, und die Tatsache , dass Sie unveränderliche Objekte haben kann , bedeutet nicht , dass sie von Wert übergeben wir Sie entweder ... so zu sagen " die antwort ist weder noch " ist völlig falsch . Es tut mir sehr leid für den Kandidaten, dessen Interviewer die Antwort als "weder"
ansieht
1
@ Cervo: FYI, sogar die Antwort mit mehr als 100 Stimmen in Ihrem Link widerspricht Ihrem Argument: Es heißt eindeutig, dass "Parameter als Wert übergeben werden".
Mehrdad
11
Ich glaube, die richtige Antwort lautet: "Parameter sind Referenzen, die als Wert übergeben werden."
user16764
6

Fragen, die mir gestellt wurden:

  • Beschreiben von zwei Methoden zur Metaprogrammierung in Python.
  • Was ist die GIL?
  • Warum ist die GIL wichtig?
  • Warum gibt es eine alternative Implementierung von Python namens Unladen Swallow ?
  • Django, Pylone oder Zope? Verteidige deine Position.
Scant Roger
quelle
5

Ich habe keine solchen Erfahrungen, aber hier sind einige Vermutungen:

  1. (Unveränderlichkeit
  2. Erstklassige Funktionen / Klassen
  3. Verschlüsse

Das sollten Python-Programmierer wissen, ansonsten können Sie auch C-Programmierer für die Position einstellen.

Kugel
quelle
3

Ich würde die Liste in dieser Antwort durchgehen . Versuchen Sie, das, was Sie wissen, anhand dieser Liste so weit wie möglich zu aktualisieren. Mach dir keine Sorgen, wenn du es nicht bis zum Ende schaffen kannst.

Benjamin Bannier
quelle
2

Neben anderen Links haben die Leute zur Verfügung gestellt. Ich empfehle auch Hidden Features von Python . Nur für den Fall, dass sie Ihnen knifflige Fragen stellen.

grokus
quelle
2

Was ist Ihr Sinn, werden sie versuchen zu testen, ob Sie Python kennen, ob Sie Dinge in Python erledigen können oder ob Sie programmieren können (in Python)?

Das sind sehr unterschiedliche Dinge.

Wenn sie möchten, dass Sie zeigen, dass Sie Python kennen, können sie Sie zwingen, Dinge wie das Erstellen eines Generators zu tun, und dies dann ohne Verwendung von yield. Erklären Sie, wie der Unterricht funktioniert. Erläutern Sie die Auflösungsreihenfolge der C3-Methode. Und so weiter.

Wenn Sie damit zeigen möchten, dass Sie in Python arbeiten können, müssen Sie mit den grundlegenden Datenstrukturen vertraut sein und über eine Liste von Bibliotheken verfügen, die Sie für verschiedene Aufgaben benötigen. Sie müssen sich also mit Wörterbüchern, Mengen und Arrays auskennen. Ebenso müssen Sie über Dinge wie wissenBeautifulSoup Parsen von HTML auskennen, in der Lage sein, über ein Framework zu sprechen, das für die Webentwicklung verwendet werden kann usw. Sie müssen nicht unbedingt wissen, wie man diese Dinge gut verwendet, aber Sie sollten wissen, wohin Finden Sie heraus, wie Sie mehr herausfinden und sie tatsächlich verwenden können, wenn der Interviewer Ihnen Dinge gegeben hat, die dokumentiert sind.

Wenn Sie zeigen möchten, dass Sie (in Python) programmieren können, müssen Sie die grundlegenden Datenstrukturen kennen und Ihre Algorithmen kennen. Dies ist viel näher an den C / C ++ - Fragen, die Ihnen gestellt werden, mit der Ausnahme, dass Sie native Datenstrukturen verwenden müssen, die Ihnen das Leben erleichtern.

Um sicher zu gehen, sollten Sie sich einigermaßen auf alle drei vorbereiten. Lesen Sie zum Beispiel http://docs.python.org/tutorial/ und machen Sie sich Notizen. Hoffentlich wissen Sie bereits, wie man programmiert. Probieren Sie dann einige zufällige Aufgaben aus und zwingen Sie sich, Bibliotheken zu verwenden, die Sie möglicherweise verpasst haben. Lesen Sie beispielsweise eine CSV-Datei, extrahieren Sie Informationen programmgesteuert aus einer Webseite, erstellen Sie eine kleine Website mit einem Framework usw.

btilly
quelle