Wenn man Hochschulstudenten / Praktikanten oder jüngere Absolventen interviewt, hilft es, eine Java-Programmierfrage zu haben, die sie in 15 Minuten auf einem Whiteboard machen können. Hat jemand Beispiele für gute Fragen wie diese? Eine C ++ - Frage, die ich einmal in einem Interview gestellt habe, war, eine Zeichenkette in Integer-Funktion zu schreiben, die auf der Ebene der Frage steht, nach der ich nach Beispielen suche.
Einige Sachen, die auf SO aufgetaucht sind:
Andere Dinge, die einem einfallen:
echo
(ja, ein einfacher Klon des Unix-Tools) cat
(15 min sollte genug sein, sollte die ahnungslosen ausmerzen) int
s. Wie ArrayList
. Bonusfrage : Generic? Gibt es einen Grund, warum es auf einem Whiteboard sein muss? Persönlich würde ich sie lieber vor eine Tastatur setzen und sie Code schreiben lassen. Unser Test war ein einfacher 100 (IIRC) Zeilen-Swing-Texteditor. Wir haben es dann ein paar einfache Wege gebrochen, einige machen den Code nicht kompilieren und einige ein wenig subtiler, und gaben den Kandidaten eine halbe Stunde und eine Liste von Problemen zu beheben.
Auch wenn Sie sie nicht in die Hand nehmen können, stellen Sie sicher, dass Sie ihnen einige technische Fragen stellen. In einer anderen Runde von Interviews gab es eine überraschende Anzahl von kürzlich Absolventen, die nur Schlagwort-speiende IDE-Jockeys waren, so dass sie OKish winkend mit ihren Händen vor einem Whiteboard über Enterprise sprechen konnten - dies und SOA - das, aber wenn gegeben Eine simple Java-Grundlagen-Multiple-Choice-Prüfung mit der Frage, was final
und protected
bedeutet, war erschreckend schlimm.
Ich habe immer gedacht, dass algorithmische Fragen sprachunabhängig sein sollten. Wenn Sie das Java-Niveau eines Studenten testen möchten, konzentrieren Sie sich auf die Sprache: ihre Schlüsselwörter (von gewöhnlichen wie statische zu exotischen, wie flüchtig), Generika, Überladen, Boxen / Unboxing von Variablen, Standard-Bibliotheken.
Wenn Sie nicht wissen, welche Fragen Sie stellen sollen, sind Sie möglicherweise nicht in der Lage, sie in Java zu interviewen. Bei allem Respekt, ich hasse es, wenn Leute mir Fragen in Interviews stellen, für die sie selbst keine Antworten wissen. Antworten auf die meisten Fragen finden Sie online, indem Sie in wenigen Sekunden googeln. Wenn jemand Erfahrung in Java hat, wird er auf jeden Fall die abstrakte Klasse, Schnittstelle usw. kennen, da sie die Kernbausteine sind. Wenn er / sie kein 'volatiles' Keyword kennt - große Sache.
Ich stimme Nicolas in Bezug auf die Trennung der algorithmischen Fragen von den eigentlichen Sprachfragen.
Eine Sache, die Sie vielleicht in Erwägung ziehen sollten, ist, ihnen ein paar einfache Algorithmusfragen zu geben, mit denen sie den Pseudo-Code auf der Tafel aufschreiben können (zB "Erklären Sie mir die Bubble sort und zeige mir den Pseudocode dafür."
Sobald Sie ihr algorithmisches Wissen demonstriert haben, können Sie zu den Java-Fragen übergehen. Da einige Leute besser vor einem Computer als vor dem Whiteboard arbeiten, würde ich ihnen etwas Einfaches geben, aber ihre Java-Kenntnisse nutzen, die sie in etwa 30 Minuten implementieren können, wenn sie dieselbe IDE verwenden, mit der Sie arbeiten das Unternehmen. Auf diese Weise können Sie, wenn Sie behaupten, die IDE zu kennen, auch eine Vorstellung davon bekommen, wie gut sie es kennen.
Schreiben Sie eine Funktion, die zwei sortierte Listen zusammenfasst - Anhalten bei Limit. Suchen Sie nach den einfachen Optimierungen und korrigieren Sie die Grenzüberprüfungen / Unterlistenaufrufe. Sagen Sie ihnen T implementiert compareTo.
öffentliche Liste & lt; T & gt; Zusammenführen (Liste & lt; T & gt; eins, Liste & lt; T & gt; zwei, int-Grenze)
Schreiben Sie eine Funktion, die true zurückgibt, wenn zwei Ganzzahlen im Array die Summe ergeben. Haben sie versucht, besser als n im Quadrat mit einer Art von Satz oder Datenstruktur zu tun.
public boolean containsSum (int [] num, int sum)
Ich würde vermeiden, ihnen Fragen zu stellen, die in ihren Anfängerklassen abgedeckt wären. Ich wäre neugierig auf ihre Fähigkeit, alles anzuwenden, was sie gelernt haben, um komplexe technische Probleme zu lösen. Wenn Ihr Unternehmen einen bestimmten Bedarf an einer IT-Lösung hat, können Sie dies als Ausgangspunkt verwenden. Sie könnten den Kandidaten fragen, welche Technologien sie verwenden würden und welche Vor- und Nachteile diese Technologien gegenüber alternativen Technologien haben. Im Laufe der Diskussion können Sie ein Gefühl für ihre technischen Fähigkeiten, Problemlösungsfähigkeiten, zwischenmenschlichen Fähigkeiten usw. bekommen. Ich denke, es ist wichtig, sie zu vermeiden, selbst in schwierigen Momenten. Dies ist wichtig, um die BSer auszublenden.
Tags und Links java