Ich hatte gerade ein ziemlich gutes Telefoninterview (für eine CakePHP-bezogene Position, nicht dass es für die Frage besonders wichtig wäre). Der Interviewer schien von meinem Lebenslauf und meiner Persönlichkeit beeindruckt zu sein. Am Ende bat er mich jedoch, ihm ein Codebeispiel aus meinem bestehenden Arbeitsprojekt per E-Mail zu senden, "um zu überprüfen, ob Sie nicht heimlich ein schrecklicher Programmierer sind, ha ha!"
Ich bin nicht allzu besorgt , dass mein Code nicht auf eigenen Füßen stehen kann, aber ich bin sehr viel ein Zwischen Programmierer eher als ein Experte. In welche offensichtlichen Fallstricke sollte ich achten, damit mein Codebeispiel nicht hineinfällt, falls sie mich sofort ausschließen? Zweitens, und das ist wahrscheinlich der schwierigere Teil der Antwort auf die Frage, was in einem Codebeispiel verfügt wäre so beeindruckend , dass sie sofort machen würden Sie viel mehr günstig geneigt gegenüber der Programmierer?
Alle Ideen oder Vorschläge sind willkommen!
quelle
Antworten:
Ich würde gerne Clean Code sehen :
Das bedeutet:
i
wenn dies der einzige Inkrementwert ist. Verwenden Sie keine unsinnigen Variablennamen.Sie möchten ihnen etwas schicken, das komplex genug ist, um interessant, aber sauber genug zu sein, damit ein guter Entwickler fast sofort verstehen kann, was es tut.
Einige der obigen Kommentare scheinen besorgt darüber zu sein, wie leicht dies gefälscht werden könnte. * Wenn Sie sich davor schützen möchten, senden Sie möglicherweise eine kurze Beschreibung des Zwecks und des Verlaufs des Codes in der E-Mail.
* Am allerwenigsten , wenn der Interviewer über vergangene Projekte im Vorfeld gefragt, dann fragte man aus diesem Projekt für eine Probe und fragte , was Sie es schreiben benötigt oder wie es sich entwickelt, ich glaube , der Prozess ziemlich Lügner sicher sein würde. Ich denke, die meisten Kandidaten, die lügen würden , werden sowieso Probleme in anderen Bereichen zeigen.
quelle
Auf der Suche nach Arbeit habe ich eine Reihe von Fragen zum ACM-Programmierwettbewerb in verschiedenen Sprachen gelöst und diese seitdem für Codebeispiele verwendet. Ich denke, sie haben gute Codebeispiele gemacht, weil:
Und dann sollte der von Ihnen erstellte Code klar, konsistent, leicht zu lesen und leicht zu verstehen sein.
Und zuletzt:
quelle
quelle
Wenn ich Sie interviewen würde, würde ich gerne Ihren Code sehen.
Sauber ist gut, Problemlösung ist gut, aber wahrer Code ist besser. Ein guter Programmierer weiß, wann er / sie von einem anderen Programmierer betrogen wurde, sodass das Vertrauen sinken kann.
Das Lesen des Codes einer anderen Person ist wie das
Tanzenbeim Sex: Sie wissen, wann es die Realität ist, und wenn die andere Person dies vortäuscht, wird am Ende eine Katastrophe eintreten. (nur realisierte echte Nerds können nicht tanzen)Vertrauen Sie einfach sich selbst und Ihren Codierungsfähigkeiten . Wenn Sie Ihren Interviewer nicht wirklich kennen, können Sie nicht vorhersehen, was er von Ihrem Codierungsstil / Ihren Codierungsfähigkeiten erwartet.
quelle
Seien Sie auch sehr vorsichtig, dass es NICHT der Code Ihres aktuellen Arbeitgebers ist (Sie besitzen ihn und ich garantiere, dass sie ihn nicht gerne teilen.). Nehmen Sie etwas, auf das Sie stolz sind, und überarbeiten Sie es selbst, um nicht arbeitgeberspezifisch zu sein (entfernen Sie alle Verweise auf ihre Datenbanktabellen oder Servernamen usw.). Was auch immer Sie tun, übermitteln Sie keinen Code, der Fehler aufweist oder eine schlechte Technik für die Art des Codes darstellt (ich würde wahrscheinlich jemanden ablehnen, der einen Cursor übermittelte, wenn eine satzbasierte Operation einfacher und leistungsfähiger wäre, wenn Sie SQL-Code überprüfen. Es gibt ähnliche Techniken für andere Sprachen, um ein relativ seltenes Problem zu lösen, das für andere häufigere Probleme verwendet werden kann, aber nicht die beste Wahl für diese anderen Probleme ist. Hat dieser Satz Sinn ergeben?)
quelle
Ich würde den Beitrag von Renesis über sauberen Code unterstützen, ihn aber zur Liste hinzufügen, die dem von Ihnen eingereichten Code Qualität und gut dokumentierte Komponententests liefert. Ein guter Programmierer sollte Unit-Tests für seinen Code schreiben.
quelle
Nach einer Meinung von jemandem, der bei der Bewertung von Kandidaten Codebeispiele anfordert, gibt es einige Funktionen auf hoher Ebene (Inhalt des Codes) und einige Funktionen auf niedriger Ebene (Struktur des Codes). Funktionen auf hohem Niveau:
Die einfachen Aspekte sind einfacher:
Für einen guten Kandidaten erwarte ich, dass eine Stichprobe entweder: A) eine kugelsichere kleine Stichprobe oder B) ein guter Teil eines größeren interessanten Projekts (z. B. ein Modul aus einem persönlichen Github-Repo) ist. Ich erwarte, dass es sich um persönliche oder akademische Projekte handelt. Wenn sie eines von einem bezahlten Projekt senden, erwarte ich eine Nachricht, dass sie die Erlaubnis erhalten haben, es zu verwenden. Wenn ich diese Notiz nicht bekomme, schneide ich sie von den Kandidaten ab (schwacher Kandidat) oder frage sie während des Interviews danach (starker Kandidat). Keine Erlaubnis zu haben, wäre eine große rote Fahne (wahrscheinlich unüberwindbar). Für einen fortgeschrittenen Kandidaten erwarte ich einen Haftungsausschluss, in dem darauf hingewiesen wird, dass einige der besten Quellenbeispiele nicht gezeigt werden können, da dies im Rahmen ihrer Arbeit erfolgt ist. Allerdings erwarte ich dann ein sprudelndes Zeugnis darüber, warum sie stolz auf dieses unshowable Design sind und wie sie es lieben wie ein Kind.
Und so sehr manche Leute sagen, "Oh, jemand könnte nur ein Codebeispiel aus dem Internet bekommen", lautet das Gegenargument, dass die meisten Leute, die einen Code mit guter Produktionsqualität nicht verstehen, ihn auch nicht verstehen, wenn sie ihn sehen . Außerdem kann man bei Google immer eine eindeutige Zeile für den Code überprüfen. Im besten Fall bringt der Diebstahl von Code einen Kandidaten zu einem Interview, bei dem er sich selbst in Verlegenheit bringt ("Warum haben Sie das also so gemacht ...?").
Als letzte Anmerkung zum Code aus früheren Beschäftigungsverhältnissen: Nur nicht. Aus HR-Sicht ist es unangemessen, Code aus früheren Beschäftigungsverhältnissen anzufordern, und es ist eine rote Fahne für das Unternehmen. Sie würden beide rechtlich haftbar sein (dh Sie könnten beide verklagt werden) und es zeigt sich, dass sie keine Ahnung haben, was sie tun. Code, der für einen früheren Arbeitgeber erstellt wurde, sollte niemals angegeben werden, es sei denn, der Code ist bereits öffentlich verfügbar oder Sie haben die ausdrückliche Erlaubnis dieses Arbeitgebers. Schlimmer noch, in einem großen Unternehmen hat Ihr direkter Vorgesetzter möglicherweise nicht die Befugnis, Ihnen die Erlaubnis zu erteilen. Haben Sie in diesem Fall also Spaß mit der Rechtsabteilung? Ich bin sicher, dass sie überglücklich sein werden, ihre IP-Adresse für einen ausscheidenden Mitarbeiter offenzulegen.
quelle