it-swarm.dev

Gute Interviewprogrammierungsprojekte

Ich suche nach kleinen Programmierprojekten, die ich potenziellen Mitarbeitern geben kann, um ihre Programmierfähigkeiten einzuschätzen. Dies werden Programmierer sein, die gerade das College abgeschlossen haben. Ich suche nach Projekten, die ein paar Stunden dauern und die ihre Antworten nach dem Interview per E-Mail zurücksenden.

Ein Beispiel wäre, diesen Textabschnitt zu nehmen und eine Liste alphabetischer eindeutiger Wörter zurückzugeben. Sagen Sie mir nach jedem Wort, wie oft das Wort erschienen ist und in welchen Empfindungen das Wort aufgetaucht ist.

Hat jemand gute Vorschläge?

26
bigtang

Ich bin längst zu dem Schluss gekommen, dass nichts, was jemand in kurzer Zeit tun kann, mir etwas Nützliches über diese Person sagen kann. Aber jeder gute Kandidat hat bereits persönliche Projekte geschrieben, die Ihnen viel sagen können. Deshalb habe ich bestimmte Herausforderungen durch "Gib mir einen Code, auf den du stolz bist und dem du gerne deinen Namen stempelst" ersetzt.

Ihre Auswahl des Projekts sagt Ihnen mehr als jede einstündige Aufgabe. Und dann können Sie eine Stunde damit verbringen, darüber zu diskutieren, um noch mehr zu lernen.

43
pdr

Ich werde so müde von diesem verrückten Mist. Ich war an Orten, an denen ich nach Codebeispielen gefragt, sie auseinandergerissen und dann gebeten wurde, Beispielcode von ihren Systemen zu erklären, die aussahen, als ob er von ausgebrochenen 2-Jährigen geschrieben wurde. Ich wurde gebeten, obskure Sortieralgorithmen, Netzwerkdienste, Guis und Datenstrukturen zu implementieren (immer entweder ein Baum oder eine verknüpfte Liste). Jede Art von nerviger Frage, was der Interviewer denkt, ist der wichtigste Teil der Programmierung.

Am Ende ist alles so ziemlich nutzlos. Der beste Weg, einen Mitarbeiter zu bewerten, besteht darin, ihn für 30 Tage einzustellen und zu sehen, wie gut er die Arbeit macht. Verbringen Sie die ganze Zeit damit, Tests zu entwickeln, und es sagt Ihnen nichts darüber aus, wie jemand im Alltag arbeitet.

28
Satanicpuppy

Jemandem zu erlauben, ein praktisches Projekt in seiner eigenen Zeit zu machen, bedeutet nicht unbedingt, dass er es ist, der es tut.

Jeder kommt früh zu einem Interview (sollte es zumindest sein). Wir haben ein Blatt, während Sie warten, bis sie bearbeitet sind, bis wir bereit sind, sie zu sehen. Es enthält acht (8) Fragen, die die Kenntnisse eines Bewerbers in der Sprache testen, die wir hauptsächlich verwenden.

Wir suchen nicht nach den richtigen Antworten, da jeder sie mit einem Computer vor sich richtig machen kann. Wir suchen nach Prozessen, versuchen sie überhaupt die Frage, wie kommen sie zu ihren Antworten?.

Wenn wir in das Interview kommen, gehen wir es mit ihnen durch und beantworten alle Fragen, die sie möglicherweise haben, was sie auch dazu führen kann, die richtige Antwort zu erhalten. Es erlaubt uns auch zu fragen, wie sie die Antworten bekommen haben, die sie gefunden haben.

Wir finden, dass dies in Kombination mit früheren Arbeiten die besten Möglichkeiten sind, Kandidaten herauszufiltern.

PDATE 15.06.2016

Wir haben unseren Prozess bei der Einstellung von Entwicklern erheblich geändert.

Phase 1: Ein 15-minütiges Telefoninterview, in dem wir 7 Fragen stellen. Die ersten beiden sind "Was macht dir am meisten Spaß?" (muss nicht programmierbezogen sein) und "Was codierst du zum Spaß in deiner Freizeit?".

Phase 2: Ein Mini-Projekt, das sie in ihrer eigenen Zeit abschließen. Wir machen dann eine Bildschirmfreigabe mit ihnen und sie zeigen uns, was sie gebaut haben. Während der Bildschirmfreigabe veranlassen wir sie außerdem, zwei Änderungen an ihrem Projekt vorzunehmen und dann zu beobachten, wie sie es durcharbeiten und zum Laufen bringen.

Phase 3: Persönliches Interview.

Dieser Prozess ermöglicht es uns, sofort herauszufinden, ob die Kultur passt (Phase 1). Wenn sie die Arbeit erledigen und tatsächlich sprechen können (Phase 2). Stellen Sie schließlich sicher, dass ihre Werte mit dem übereinstimmen, was wir suchen (Phase 3).

12
RDL

Vielleicht möchten Sie sich Jon Jagger 's fantastisch Cyber-Dojo ansehen.

Es ist eine webbasierte integrierte Umgebung, die dafür ausgelegt ist, absichtliches Üben von Test Driven Development und etwas über Teamdynamik zu lernen. Es hat viele kleine Programmieraufgaben (Kata) und unterstützt eine Reihe von Sprachen, von Python und Ruby bis Java)) und C++.

Im Gegensatz zu IDEs, die auf Produktivität ausgelegt sind, gibt es keine Code-Vervollständigung, Syntax-Hervorhebung oder automatische Umgestaltung, sodass Sie sehen können, was Ihr Befragter ohne diese tun kann.

Das Beste ist, nachdem Sie eine Kata gemacht haben, können Sie zurückgehen und sich die rot/grüne Progression (oder vielleicht auch nicht, wenn sie nicht TDD * 8 'machen) jeder Kata ansehen. Jede Kompilierung/jeder Test schreibt die Änderungen zusammen mit den Testergebnissen in ein Git-Repository.

Ich denke, wenn Sie dies für Interview-Codierungstests verwenden, können Sie nicht nur viel über die Fähigkeit eines Kandidaten zur Lösung eines Problems erfahren, sondern auch über seinen Ansatz zur Problemlösung und Wählen Sie einfach eine Kata aus, die der Zeit entspricht, die der Kandidat dafür aufwenden soll, wenn sie nicht durch externe Faktoren eingeschränkt wird.

Wenn Sie einen eigenen CyberDojo-Server möchten, finden Sie das gesamtes Projekt bei github, und von dort aus ist sogar eine virtuelle Maschine der schlüsselfertigen Linux-Appliance verbunden. Dies bedeutet, dass Sie bereits VMware-Player) haben oder VirtualBox installiert, können Sie innerhalb weniger Minuten nach dem Herunterladen der Appliance betriebsbereit sein!

4
Mark Booth

Ich habe nur einmal mit einer Firma gesprochen, die dies getan hat. Sie gaben ein Fragenblatt mit 6 oder 7 Problemen. Die Anweisungen lauteten, eine Methode zur Lösung jedes Problems zu entwickeln.

Ein Teil der Aufgabe bestand darin, zu erkennen, dass Sie Code wiederverwenden können. Probleme könnten Code aus anderen Lösungen verwenden. Es war auch nicht sequentiell. Zum Beispiel könnte Frage 3 mit der für Frage 5 verwendeten Methode geschrieben werden.

Ich würde vorschlagen, so etwas zu versuchen.

Was die Fragen betrifft? Einige der Startfragen auf der Website Project Euler sind gut.

Sie können auch ein einfaches Spiel ausprobieren, wenn Sie sehen möchten, wie sie ein Projekt zusammenstellen können.

Wenn Sie sich nichts einfallen lassen möchten, bitten Sie sie, Ihnen einen Code aus einem endgültigen Projekt zu senden.

3
Tyanna

Um die Leute zu bitten, ein Projekt abzuschließen, sollten Sie über bestimmte Fähigkeiten verfügen, die Sie bewerten möchten, und das Projekt so gestalten, dass diese Fähigkeiten getestet werden.

Ein Beispiel wäre, diesen Textabschnitt zu nehmen und eine Liste alphabetischer eindeutiger Wörter zurückzugeben. Sagen Sie mir nach jedem Wort, wie oft das Wort erschienen ist und in welchen Empfindungen das Wort aufgetaucht ist.

Was suchen Sie mit dieser Frage? Wie viele Möglichkeiten gibt es, um es zu lösen, und was sagt Ihnen jeder Ansatz über die Person, die die Antwort geschrieben hat? Sind die Fähigkeiten, die eine effektive Antwort auf diese Frage zeigt, die gleichen Fähigkeiten, die für Ihr Unternehmen am wichtigsten sind?

Ich möchte keine Antworten auf diese Fragen. Ich möchte nur, dass Sie über die Antworten nachgedacht haben, bevor Sie eine Gruppe von Kandidaten Ihrem Prozess unterziehen. Wenn Sie wissen, nach welchen Fähigkeiten Sie suchen, ist es nicht schwer, eine Frage zu erstellen, um nach diesen Fähigkeiten zu suchen. Wenn Sie die Frage eines anderen verwenden, ohne genau zu verstehen, was bewertet werden soll (wenn überhaupt), täuschen Sie sich wirklich nur und verschwenden die Zeit aller.

3
Caleb

Ein Beispiel wäre, diesen Textabschnitt zu nehmen und eine Liste alphabetischer eindeutiger Wörter zurückzugeben. Sagen Sie mir nach jedem Wort, wie oft das Wort erschienen ist und in welchen Empfindungen das Wort aufgetaucht ist.

In welcher Sprache würden sie das schreiben? Wenn sie aus einer Schule kommen, die sich stark auf C konzentriert, ist dies nicht so schnell zu schreiben wie eine, die Python/Perl/Ruby usw. unterrichtet. Oder sogar Java oder C #. Trotzdem ist es ein guter kleiner Test.

Ich schlage einige einfachere während des Interviews vor. Keine Trickfragen. Ich bin mit TMN in diesem Fall. Geben Sie ihnen einige Funktionen, die grundlegende Aufgaben ausführen, und fragen Sie, was sie tun (Lesen des Codes anderer Personen). Geben Sie ihnen dann einige grundlegende Aufgaben (<20 Zeilen), um in einer Sprache ihrer Wahl zu schreiben. Dies sollte für einen Einsteiger ausreichen, um zu wissen, ob er codieren kann oder nicht (an einer Einstiegsposition). Dies sollte Ihnen zusammen mit dem Interview und dem GPA eine gute Vorstellung davon geben, was Sie wissen müssen.

0
Awaken