Ich muss sehr schnell eine schnelle Beurteilung von Dutzenden von neuen Schülern vornehmen. Ich habe 30 Minuten Besprechung mit jedem von ihnen (in zwei oder drei Tagen). Ich möchte die meiste Zeit nutzen, um nicht-technische Aspekte zu diskutieren. Daher plane ich 10 Minuten für technische Fragen. Die gleichen Fragen für alle.
Sie sind alle bereits angestellt (sie sind Studenten), was ich wissen muss, ist das Durchschnittsniveau, um eine Ausbildung vorzubereiten.
Idealerweise ist die Schwierigkeit must be progressive
, für jeden einen Level festzulegen. Stufe I wird gemittelt, und ich werde auch bei jeder Frage einen Durchschnitt bilden.
Wenn Sie einem Kandidaten nur 10 Minuten und 10 Fragen stellen müssten, welche wären Ihre Top 10?
Antworten:
Drei Fragen, die das Ende von Eric Lipperts Antwort hier erläutern :
Frage 1:
Frage 2:
Frage 3:
Der wichtigste Faktor bei der Entscheidung ist , um zu bestimmen , wo ein Student (realistisch) legt sich , und diese drei Fragen werden Ihnen so schnell bestimmen helfen. Es hilft auch dabei, Personen zu identifizieren, die möglicherweise durch den Mahn-Krüger-Effekt (an beiden Enden) gefährdet sind , aber das ist ein anderes Thema.
Wenn jemand den Verweis auf diese Methode auf SO finden und diesen Beitrag bearbeiten kann, um einen Link aufzunehmen, wäre ich sehr dankbar.
Jedenfalls sollte das deutlich unter zehn Minuten liegen.
quelle
Sie können jederzeit einen Ersatz vorschlagen. Diese Liste bietet viel Raum für Verbesserungen.
quelle
quelle
Meine Erfahrungen mit Studenten Ich würde ziemlich von vorne anfangen - ich habe herausgefunden, was die Leute an der Universität lernen und was nützlich ist, sind zwei ziemlich getrennte Sätze.
Aber da Sie die Chance haben, mit ihnen zu sprechen, wäre es dumm, es nicht zu nehmen.
Ich gehe davon aus, dass ihr Hintergrund wenig Gemeinsamkeiten aufweist, sodass ich sprachspezifische Fragen meide. Die einzige Ausnahme, die ich gemacht habe, ist die Annahme, dass sie etwas im Web gemacht haben, aber diese Frage könnte für etwas Äquivalentes unterdrückt werden, wenn sie eingebettete Spezialisten sind oder was auch immer.
Sie haben darum gebeten, dass sie progressiv sind, was ich versucht habe, aber wenn meine Annahme, dass keine Gemeinsamkeit besteht, richtig ist, sind die richtigen / falschen Fragen relativ knifflig und ein Großteil ihrer Kompetenz wird davon abhängen, wie gut ihre Antworten auf allgemeinere Fragen sind Fragen sind.
Sowieso...
1) Mit welchen Sprachen und Technologien wurden Sie konfrontiert? Wie viele davon (und welche) haben Sie in mehr als 50 Stunden tatsächlich programmiert (dies beinhaltet nicht Vorlesungen, Laborzeiten usw., sondern Projekte und Aufgaben, bei denen Sie solo programmiert haben).
2) Beschreiben Sie das komplexeste Programm, das Sie jemals geschrieben haben. Was hat es komplex gemacht?
3) Was haben Sie an der Universität gelernt (in Bezug auf Programmierung), von dem Sie glauben, dass Sie es nicht richtig verstehen? Wenn Sie der Meinung sind, dass Sie alles verstanden haben (überprüfen Sie die Noten zu diesem Zeitpunkt), dann sprechen Sie über eine Anwendung oder ein Element einer Anwendung, von dem Sie gesehen haben, dass Sie nicht wissen, wie man Code erstellt und wie Sie möglicherweise darüber nachdenken.
4) Was sind die Grundprinzipien der objektorientierten Programmierung?
5) Erzählen Sie mir in einer Minute so viel über relationale Datenbanken wie möglich
6) Beschreiben Sie für eine Webanwendung eine Methode zum Verwalten von Informationen über den Benutzer zwischen den Seiten. Welche Vor- und Nachteile hat der beschriebene Mechanismus?
7) Wählen Sie eine häufig verwendete Funktionalität im Computer aus und erklären Sie kurz, wie sie auf programmatischer Ebene funktioniert (z. B. Verschlüsselung, Komprimierung). Erklären Sie auch, wie Sie diese Funktionalität verwenden mussten, um sie zu implementieren (hier würde ich nach der Tatsache suchen, dass es wahrscheinlich besser ist, sich eine Bibliothek dafür zu schnappen, obwohl Sie vielleicht wissen, wie etwas funktioniert).
BEARBEITEN: Umstrukturiert und einige zusätzliche Fragen hinzugefügt, um den ursprünglichen Fortschritt zu verbessern.
quelle
Wenn es sich um Studenten handelt und Sie versuchen, einschätzen zu können, wo sie sich in ihrem Studium befinden, sollten es wirklich keine Trickfragen oder Fragen geben, die sie zum Nachdenken anregen. Mein Rat wäre, sich nur auf die Grundlagen zu konzentrieren - es macht keinen Sinn, sie zu bitten, zu erklären, wie Reflektion funktioniert, wenn sie Objekte und Vererbung noch nicht vollständig beherrschen.
Hier sind einige Beispielfragen, die verwendet werden könnten, und Sie könnten vielleicht mit etwas aus der Kategorie des Kernwissens beginnen und sich dann auf der Grundlage bewegen, wie sie die Fragen beantworten, ähnlich wie adaptives Testen funktioniert.
Grundlagen
Ader
enum
Schlüsselwort verwendet und wann würden Sie es verwenden?Fortgeschritten
quelle
Ohne eine Antwort auf meinen obigen Kommentar fallen mir diese Dinge im Allgemeinen ein, aber ich bin mir nicht sicher, ob ich diese technischen Aspekte in Betracht ziehen würde.
quelle
Mir ist klar, dass Sie versuchen, das Training auf der Grundlage dessen aufzubauen, was sie nicht wissen, und dass Sie mehrere "Eimer" Training für verschiedene Gruppen von Studenten planen. Da Sie nur zehn Minuten Zeit haben, erstellen Sie eine Liste der Dinge, an die Sie denken, und stellen Sie diese spezifischen Fragen. Sie planen, ihnen C # beizubringen. Fragen Sie, ob sie es gut wissen. Fragen Sie, ob sie neuere Funktionen verwendet haben (LINQ, nullfähige Typen, Generika, ...). Wenn Ihr Training Datenbankinhalte enthält, stellen Sie einige Fragen dazu. Am Ende werden Sie vielleicht feststellen, dass eines der von Ihnen geplanten Themen unnötig ist, da alle es wissen und einige andere Themen von allen benötigt werden und so weiter. Das ist praktischer, als zu versuchen, Fragen zu stellen, die sich nicht auf das beziehen, was Sie haben.
quelle
Stellen Sie ihnen die FizzBuzz- Frage
Wussten sie, wie man es codiert? Welche Sprache haben sie benutzt? Warum haben sie es so programmiert? Haben sie Rekursion verwendet? Schleifen? Andere Methoden / Funktionen? Zeiger?
Sie können die Frage auch als Grundlage für andere Fragen verwenden (z. B. Warum haben Sie Rekursion verwendet / nicht verwendet? Wie würden Sie dies mit Hilfe von Zeigern schreiben?).
Es umfasst nicht alles, aber es kann Ihnen eine Vorstellung von den Codierungsfähigkeiten geben
quelle
Zehn Fragen:
Zeigen Sie eine for-Schleife an, die die Werte eines Arrays summiert. Fragen Sie dann, was der Code macht. [Können sie eine grundlegende Schleife lesen?]
Bitten Sie sie, eine for-Schleife zu schreiben, die die durch Kommas getrennten Zahlen 1 bis 10 ausgibt. [Zusätzlich zu "können sie das tun?" Sie können beurteilen, wie sich ihr Code wiederholt.]
Zeigen Sie einen Code mit zwei Verweisen an
a
undb
zeigen Sie auf zwei verschiedene Objekte, wobei ein ganzzahliges Feld beispielsweisex
auf7
und gesetzt ist5
. Dann zuweisen:a = b;
,b.z = 9;
und dann fragen Sie nach dem Werta.z
. [Verstehen sie Referenzen?]Zeigen Sie zwei verschachtelte for-Schleifen (mit Indizes
i
undj
) an, die Werte aus einem Ausdruck akkumulieren. Führen Sie in der innersten Schleife zwei Berechnungen durch:double x = Math.pow(2.0, i)
unddouble y = x * j
. Bitten Sie sie, den Code effizienter zu gestalten. [Wissen sie über einfache Schleifenabhängigkeit Bescheid?]Fragen Sie sie, was in Codebeispiel A nicht stimmt. (Siehe unten.) [Können sie logisch denken?]
Fragen Sie sie, was in Codebeispiel B nicht stimmt. (Siehe unten.) [Auch zum logischen Denken.]
Bitten Sie sie, diese Bedingung umzukehren:
(s != null && s.Length != 0)
ohne zu verwenden!
. [Kennen sie DeMorgans Gesetz?]Zeigen Sie einen Code, der den alten Lint-Anzeigen in Zeitschriften ähnelt: Bitten Sie sie, den Fehler zu finden. Zum Beispiel Überladen,
equals
anstatt es zu überschreiben. [Sind sie gute Sprachanwälte? Diese Art von Fragen prüft meistens auf Erfahrung: Haben Sie diese schon einmal gesehen?]Können sie beschreiben, wie eine binäre Suche in einem sortierten Array durchgeführt wird?
Können sie beschreiben, wie eine Sortiermethode implementiert werden könnte?
Diese scheinen vielleicht "zu kurz" zu sein, aber ich glaube, für die Einschätzung von Schülern sind die zehn Minuten ziemlich eng. Sie möchten wirklich, dass sie etwas programmieren. (Es klingt so, als würdest du FizzBuzz machen, basierend auf einem Kommentar.)
Wenn Sie von einem stärkeren Schüler ausgehen können, sollten Sie auch einige der Klassiker wie Rekursion, Umkehren einer verknüpften Liste und möglicherweise eine erweiterte Platzhalterliste wie das Erläutern einer XOR-Liste oder die möglichen Intuitionen fragen Warum es einfacher ist, eine Reihe von Zahlen zu sortieren, als sie unsortiert zu komprimieren?
Codebeispiel A:
Codebeispiel B:
quelle
Sicher gehen Sie das falsch an. Identifizieren Sie die Gruppierungen, in die Sie die einzelnen Schüler einordnen möchten
z.B
und so weiter. Wenn Sie die geeigneten Gruppierungen identifiziert haben, die vom Kursmaterial abhängen, ist es trivial, herauszufinden, welche Fragen gestellt werden müssen.
quelle
Die Studenten sind bereits eingestellt und Sie möchten ein Schulungsprogramm einrichten. Daher müssen Sie zum Teil herausfinden, wie schnell sie lernen können (und / oder was sie wissen: wen interessiert das?). Warum nicht ein paar einfache, mittlere und schwierige Fragen auswählen und ihnen vorher geben? Warum sie mit Fragen überhäufen, die sie vielleicht nicht kennen, wenn sie (von manchen) leicht gelernt werden können?
Sie werden feststellen, dass entgegen der Vorstellung der meisten Menschen viele der Schüler auch mit den gestellten Fragen nicht sehr gut abschneiden werden. Auf diese Weise erfahren Sie mehr über Ihre Schüler, ihr Wissen und ihre Lernfähigkeit.
quelle
Erstellen Sie 5 einfache Flussdiagrammkonstrukte und eine separate Liste mit Antworten. Bitten Sie sie, das Bild mit der Phrase abzugleichen.
Zeichne folgendes:
Bitten Sie sie, den Unterschied zwischen 1 und 2
zu erklären . Bitten Sie sie, den Unterschied zwischen 3 und 4 zu erklären.
Fragen Sie sie nach einem Beispiel, wann ein Case Statement Construct anwendbar wäre.
quelle
Ich bin mir nicht sicher, ob dies in 10 Fragen in 10 Minuten möglich ist. Geben Sie ihnen vielleicht 5 Minuten Zeit, um Ihnen mitzuteilen, was sie über .net wissen. Dann haben Sie eine vorbereitete Liste von vielleicht 20 Themen und wählen 2 oder 3 von Dingen, die sie erwähnt haben, und 2 oder 3 von Dingen, die sie nicht haben.
Zum Beispiel könnten Sie beginnen:
Danach:
Dann stell 5 Fragen an die folgenden Personen:
Erklären Sie kurz, wie die Garbage Collection in .Net funktioniert
....
Wie debuggen Sie etwas, wenn Sie ein Problem haben?
quelle
Ich glaube an "Selbsteinschätzung"! Wenn Sie der Person die genaue Situation erklären, in der sie sich befindet, zum Beispiel: "Sie müssen SQL codieren ... mit einer Datenbank von mehr als 100 Tabellen und mehr als 500 KB Datensätzen, die in weniger als 4 Sekunden ausgeführt werden müssen ...". Und wenn du ihn fragst: "Glaubst du, dass du es schaffen kannst?" - Sie erhalten eine korrekte Antwort.
Ich werde 5 Fragen zu den Erwartungen der Studenten und 5 weitere technische Fragen stellen:
Dann können Sie mit einigen technischen Fragen wie gehen (dies sollte je nach Thema sein). für OOP zum Beispiel:
quelle
Ich suche nach Problemlösung, einer starken Lerngewohnheit, beruflicher Entwicklung und umfassenden Kenntnissen über Ansätze.
chicken
als Objekt definieren? In welcher Beziehung steht es zu anderenbirds
? Wie wäre es mitmammals
undanimals
?Ich erwarte von Entwicklern:
quelle
Die Taxonomie von Bloom ist hier nützlich. Sie möchten eine Vielzahl von Wissensstufen erreichen, von Auswendiglernen bis zu analytischen. Dies gibt Ihnen die Möglichkeit, herauszufinden, wo ihre Fähigkeiten liegen. Da das OP nach Fragen suchte, die den Schülern gestellt werden sollten, geht die folgende Liste nicht von mehr Kenntnissen aus, als ein Schüler im 3. oder 4. Jahr (wie ich hoffe) besitzen würde.
Konzeptionelle
Praktisch
quelle
Da sie bereits angeheuert sind, sollte man sie für eine schnelle Beurteilung (zusammen mit Programmierfragen) fragen
Diese Fragen dienen nur dazu, ihr Bewusstsein für das System zu finden, das sie beim Programmieren verwenden.
quelle
Beginnen Sie ab der untersten Ebene des Software-Stacks.
quelle
quelle