Ich suche nach kleinen Programmierprojekten, mit denen ich potenziellen Mitarbeitern die Möglichkeit geben kann, ihre Programmierfähigkeiten einzuschätzen. Dies werden Programmierer sein, die gerade das College verlassen haben. Ich bin auf der Suche nach Projekten, die einige Stunden in Anspruch nehmen und deren Antworten nach dem Interview per E-Mail zurückgesendet werden.
Ein Beispiel wäre, diesen Textabschnitt zu nehmen und eine Liste von alphabetisch eindeutigen Wörtern zurückzugeben. Sagen Sie mir nach jedem Wort, wie oft das Wort vorkam und in welcher (n) Stimmung (en) es vorkam.
Hat jemand gute Vorschläge?
Antworten:
Ich bin längst zu dem Schluss gekommen, dass nichts, was jemand in kurzer Zeit tun kann, mir irgendetwas 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 "Geben Sie mir einen Code, auf den Sie stolz sind und auf den Sie gerne Ihren Namen stempeln" ersetzt.
Ihre Wahl des Projekts sagt Ihnen mehr als jede stundenlange Aufgabe. Und dann können Sie eine Stunde lang darüber diskutieren, um noch mehr zu erfahren.
quelle
Ich werde so müde von diesem verrückten Mist. Ich war an Orten, an denen ich nach Codebeispielen gefragt, sie zerrissen und dann gebeten wurde, Beispielcode von ihren Systemen zu erklären , der aussah, als wäre er von herausgebrochenen Zweijährigen geschrieben worden. Ich wurde gebeten, obskure Sortieralgorithmen, Netzwerkdienste, GUIS, Datenstrukturen (immer entweder einen Baum oder eine verknüpfte Liste) zu implementieren. Jede nervige Frage, was immer der Interviewer denkt, ist der wichtigste Teil der Programmierung.
Am Ende ist alles so ziemlich nutzlos. Die beste Möglichkeit, einen Mitarbeiter zu bewerten, besteht darin, ihn für 30 Tage einzustellen und zu prüfen, wie gut er die Arbeit erledigt. Verbringen Sie die ganze Zeit damit, Tests zu entwickeln, und es sagt Ihnen nichts darüber aus, wie jemand im Alltag arbeitet.
quelle
Jemandem zu erlauben, ein praktisches Projekt in seiner Freizeit durchzuführen, bedeutet nicht unbedingt, dass er es tut.
Jeder kommt früh zu einem Vorstellungsgespräch (sollte es zumindest sein). Wir haben eine Warteschleife, damit sie arbeiten können, bis wir bereit sind, sie zu sehen. Es enthält acht (8) Fragen, mit denen die Kenntnisse des Bewerbers in der von uns hauptsächlich verwendeten Sprache überprüft werden.
Wir suchen nicht nach den richtigen Antworten für alle, da jeder sie mit einem Computer vor sich richtig stellen kann. Wir suchen nach Prozessen, versuchen sie sogar die Frage, wie sie zu ihren Antworten kommen.
Wenn wir in das Interview kommen, gehen wir es mit ihnen durch und beantworten alle Fragen, die sie möglicherweise haben. Dies kann sie auch dazu bringen, die richtige Antwort zu erhalten. Es erlaubt uns auch zu fragen, wie sie zu den Antworten gekommen sind, die sie gefunden haben.
In Kombination mit früheren Arbeiten sind dies die besten Möglichkeiten, Kandidaten herauszufiltern.
UPDATE 15.06.2016
Wir haben unseren Prozess bei der Einstellung von Entwicklern erheblich geändert.
Phase 1: Ein 15-minütiges Telefoninterview mit 7 Fragen. Die ersten beiden sind "Woran hast du am meisten Spaß gemacht?" (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 beobachten, wie sie es durcharbeiten und zum Laufen bringen.
Phase 3: Persönliches Interview.
Dieser Prozess ermöglicht es uns, die richtige Kultur zu finden (Phase 1). Wenn sie die Arbeit machen und ihr Gespräch tatsächlich führen können (Phase 2). Stellen Sie schließlich sicher, dass ihre Werte mit dem übereinstimmen, wonach wir suchen (Phase 3).
quelle
Vielleicht möchten Sie sich Jon Jaggers fantastisches Cyber-Dojo ansehen .
Es ist eine Web - basierte integrierte Umgebung entwickelte dafür bewusste Praxis von Test Driven Development und das Lernen über Teamdynamik. Es hat viele kleine Programmieraufgaben (Kata's) 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 Codevervollständigung, Syntaxhervorhebung oder automatische Umgestaltung, sodass Sie sehen können, was Ihr Befragter ohne diese tun kann.
Das Beste ist, nach dem Ausführen einer Kata können Sie zurückgehen und den rot / grünen Verlauf (oder vielleicht auch nicht, wenn sie keine TDD * 8 'ausführen) jeder Kata betrachten. Jede Kompilierung / jeder Test schreibt die Änderungen zusammen mit den Testergebnissen in ein Git-Repository.
Ich denke, dass die Verwendung dieser Methode für Interview-Codierungstests nicht nur Aufschluss über die Fähigkeit eines Kandidaten zur Lösung eines Problems geben kann, sondern auch über seinen Lösungsansatz und den Prozess, den er anwendet, wenn er nicht durch externe Faktoren eingeschränkt ist. Wählen Sie einfach eine der entsprechenden Kata aus Zeit, die der Kandidat dafür aufwenden soll.
Wenn Sie Ihren eigenen CyberDojo-Server haben möchten, finden Sie das gesamte Projekt bei github. Von dort aus ist sogar eine virtuelle Turnkey-Linux-Appliance verknüpft. Wenn Sie also bereits VMware Player oder VirtualBox installiert haben, können Sie innerhalb dieser Appliance arbeiten Ein paar Minuten nach dem Herunterladen der Appliance!
quelle
Ich habe nur einmal mit einem Unternehmen gesprochen, das dies getan hat. Sie gaben ein Fragebogen 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önnen 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 ersten Fragen auf der Project Euler- Site 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 Code aus einem endgültigen Projekt zuzusenden.
quelle
Um die Teilnehmer zum Abschluss eines Projekts aufzufordern, sollten Sie über bestimmte Fähigkeiten verfügen, die Sie bewerten möchten, und das Projekt so gestalten, dass diese Fähigkeiten getestet werden.
Was suchst du mit dieser Frage? Wie viele Möglichkeiten gibt es, um es zu lösen, und was sagt Ihnen jeder Ansatz über die Person aus, die die Antwort geschrieben hat? Stimmen die Fähigkeiten, die eine effektive Antwort auf diese Frage zeigt, mit den Fähigkeiten überein, 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 nachdenken, 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 einer anderen Person verwenden, ohne genau zu verstehen, wofür sie entwickelt wurde (wenn überhaupt), täuschen Sie sich wirklich nur und verschwenden die Zeit aller.
quelle
In welcher Sprache würden sie das schreiben? Wenn sie von einer Schule kommen, die sich stark auf C konzentriert, wäre dies nicht so schnell zu schreiben wie eine, die Python / Perl / Ruby usw. lehrt ... 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 dabei. Geben Sie ihnen ein paar Funktionen, die grundlegende Aufgaben erledigen, und fragen Sie, was sie tun (Lesen des Codes anderer Leute). Geben Sie ihnen dann ein paar grundlegende Aufgaben (<20 Zeilen), um in einer Sprache ihrer Wahl zu schreiben. Dies sollte ausreichen, damit ein Einsteiger wissen kann, ob er codieren kann oder nicht (an einer Einsteigerposition). Dies sollte Ihnen zusammen mit dem Interview und der GPA eine gute Vorstellung davon geben, was Sie wissen müssen.
quelle
Lassen Sie sie Conways Game of Life für jede Sprache implementieren, in der Sie sich gerade befinden. Verwenden Sie dabei die Designparadigmen dieser Sprache.
Das Spiel des Lebens von Java oder C # Conway sollte objektorientiert sein, LISP oder F # sollten funktionieren usw.
quelle