Als Teil des Interviewprozesses bitten wir die Kandidaten zunächst, 'FizzBuzz' zu machen. Heutzutage ist der Prozentsatz der Kandidaten, die FizzBuzz richtig beantworten können, dramatisch gestiegen - dies kann an seiner Popularität im Web liegen.
Vor ungefähr einem Jahr haben wir als zweite Frage begonnen, eine Frage zu stellen, die der ursprünglichen FizzBuzz sehr ähnlich ist. Die Frage sollte so einfach wie das ursprüngliche FizzBuzz sein und auch eine bestimmte Fähigkeit des Kandidaten bewerten, insbesondere die Fähigkeit, eine Reihe von "Geschäftsregeln", die in einigen bereitgestellt wurden, auf sinnvolle und logische Weise zu ordnen und zu priorisieren beliebige Reihenfolge. Der Wortlaut der Frage erscheint zunächst etwas mehrdeutig, was es für nicht englischsprachige Personen schwierig machen kann, aber wenn er durchdacht ist, kann er sie richtig lösen. Außerdem hat der Kandidat die Möglichkeit, Fragen zur Klärung zu stellen, was immer eine gute Sache ist .
Wir sind der Ansicht, dass dies eine sehr wichtige Fähigkeit für Entwickler ist, da die Softwareentwicklung in der Regel auf funktionalen Anforderungen basiert, die im Laufe der Zeit in keiner bestimmten Reihenfolge festgelegt werden und möglicherweise Einschränkungen und Bedingungen für andere Bereiche der Software mit sich bringen, ohne dies ausdrücklich anzugeben die Aufgabe des erfahrenen Entwicklers, zumindest potenzielle Probleme und Konflikte im Hinblick auf die Implementierung zu untersuchen.
Wir haben festgestellt, dass etwas mehr als 65% der Kandidaten (Stichprobengröße 38), die FizzBuzz bestanden haben, FizzBuzz v2.0 komplett nicht bestanden haben. Normalerweise werden diese Kandidaten später im Prozess erkannt, aber es scheint eine gute Möglichkeit zu sein, dies zu erkennen sie früh.
Meine Frage ist nicht, ob FizzBuzz veraltet ist oder nicht, sondern welche Faktoren dazu beitragen könnten, dass so viele Kandidaten die FizzBuzz v2-Frage nicht bestehen.
- Ist die Frage zu vieldeutig?
- Verringert der Stress in einer Interviewumgebung die Fähigkeit, kritisch zu denken, bis es nicht mehr möglich ist, eine so einfache Aufgabe zu erfüllen?
Frage:
Schreiben Sie eine Routine in Ihrer bevorzugten Programmiersprache, die eine Liste von Zeichenfolgen als Eingabe verwendet und für jede Zeichenfolge in der Liste eine der folgenden Aktionen ausführt:
- Drucken Sie nur Fizz aus, wenn die Zeichenfolge den Buchstaben A enthält
- Nur Buzz drucken, wenn der String den Buchstaben B enthält
- Gib nur BuzzBuzz aus, wenn der String sowohl A als auch B enthält
- Drucken Sie nur FizzFizz, wenn die Zeichenfolge nicht sowohl A als auch B enthält
- Drucken Sie nur FizzBuzz aus, wenn die Zeichenfolge nur ein A und nur ein B enthält
Einige typische Fragen der Kandidaten sind:
- Sollte die Groß- und Kleinschreibung beachtet werden?
- Bedeutet "enthält A und B", dass A vor B kommen sollte
- Was soll gedruckt werden, wenn keiner der Punkte erfüllt ist?
- Was soll passieren, wenn mehr als eine Bedingung erfüllt werden kann?
Wir haben festgestellt, dass die überwiegende Mehrheit der Kandidaten, die die Frage erfolgreich beantwortet haben, überhaupt nichts gefragt hat. Sie haben es einfach so gemacht, wie sie es mit FizzBuzz gemacht haben.