Ich habe mich kürzlich für eine Entwicklerposition beworben und der dortige Direktor hat mich gebeten, einige Code-Beispiele zu schicken.
Wie soll ich das angehen? Einmal schickte ich ein Beispiel Code, den ich für mich selbst geschrieben hatte, an eine Firma und sie kamen nicht zurück. Diesmal möchte ich vorbereitet sein und entsprechende Muster schicken. Ich möchte wissen, was ich ihnen schicken soll, eine Beispielwebsite erstellen / sie codieren und einen Link zusammen mit Codedateien senden oder ein Beispielprojekt oder einen anderen Ansatz erstellen. Ich kann keinen Code senden, den ich für meinen früheren und aktuellen Arbeitgeber geschrieben habe, daher bin ich mir nicht sicher, was ich senden soll. Sie fragten nach C #, HTML, CSS, JS, SProcs, Triggern von Samples, also dachte ich mir: Wäre es schön, wenn ich ein Projekt erstellen würde, das all die oben genannten enthält und es an sie sendet, oder sollte ich einzelne Samples senden?
Sie haben Ihre eigene Frage ziemlich gut beantwortet. Warum nicht ein Projekt erstellen, das alle oben genannten Elemente enthält? Es macht Spaß, kleine Spiele zu schreiben, und Sie können viel Wissen nachweisen, indem Sie eines erstellen. Websites sind auch gut, wenn Sie Dinge wie gutes UI-Design und dynamisches HTML- und Skriptwissen demonstrieren möchten.
Es ist im Wesentlichen Ihr Portfolio, um zu zeigen, wozu Sie in der Lage sind, also wenden Sie all Ihr Wissen an. Dies beinhaltet nicht nur, was das Programm tut sondern auch wie es es tut - eine gute Auswahl an Algorithmen, Codearchitektur, korrekte Benennung von Variablen und entsprechende Kommentare, etc.
Sie können Code schreiben, der genauso hochwertig ist wie das, was Sie für einen Arbeitgeber erstellen würden - in der Tat, da Sie die vollständige Kontrolle über die verwendeten Methoden und Standards haben. Installieren Sie eines der kostenlosen Revisionskontrollsysteme (git, mercurial, subversion usw.), verwenden Sie bugzilla, um Ihre Bugs und Todo-Liste zu verfolgen, und schreiben Sie eine vollständige Suite von Komponententests. Erstellen Sie professionelle Dokumentation und Demo-Screenshots.
Ja, das ist eine Menge Arbeit. Aber ich kann Ihnen garantieren, dass wenn Sie ein solches Projekt über meinen Einstellungsschalter führen, ich Sie in einer heißen Minute zu einem Gespräch einladen würde.
Ich war schon einmal in dieser Situation und normalerweise weigere ich mich, ihnen die Code-Beispiele zu schicken.
Der Grund ist folgender: Wenn ich für einen Arbeitgeber arbeite, arbeite ich beruflich, und der Arbeitgeber hat die ausschließlichen Rechte an dem gesamten Code. Wenn ich versuche, den Code zu kopieren und an einen anderen potentiellen Arbeitgeber zu senden, droht mir der Diebstahl von geistigem Eigentum. Auf der anderen Seite, wenn ich Code für meinen eigenen Gebrauch erstelle, ist es definitionsgemäß Amateur-Code (selbst wenn er von einem Profi produziert wird), und hat nicht das gleiche Level an Projektmanagement-Stricture, Test-Stricture, etc., und ist daher überhaupt nicht repräsentativ für meine professionellen Programmierkenntnisse.
Unternehmen, die danach fragen, fordern effektiv das Unmögliche. Ich finde es am besten, dies ihnen zu zeigen.
Ich würde etwas nehmen, an dem ich bereits gearbeitet habe - am besten dreistufig, einschließlich Sprocs usw., und alles Feinfühlige herausfiltern. Wenn es etwas ist, was du selbst geschrieben hast, dann wirst du es bequemer diskutieren und in der Lage sein, die Breite deines Wissens zu zeigen - das wird dir den Job bringen. Ein komplettes Projekt zeigt, dass man weiß, wie alles zusammenpasst. Eine weitere Sache: Wenn sie Sie fragen, wo Sie gute Code-Beispiele finden, sagen Sie nicht sofort Google: Sagen Sie ihnen, dass Sie in ihrer Codebasis suchen würden ;-)
Neben dem, was Sie ihnen schicken (ein Projekt, eine Website), schlage ich vor, dass Sie auch darüber nachdenken, was Sie damit vermitteln wollen, und geben Sie eine schriftliche Einführung in das Sample: Warum denken Sie, dass es ein interessantes Stück ist Code? Was zeigt es? Auf welche Stücke bist du stolz? Was waren die Herausforderungen? Sie sollten in der Lage sein, das selbst herauszufinden, aber es ist nicht schaden Leuten zu helfen zu sehen, was sie sehen sollen ...
Wenn ich Leute intervoie, bitte ich sie oft, mir einen Code zu geben. Normalerweise habe ich sie gebeten, vor mir zu kodieren, aber ich denke, mein Punkt wäre der gleiche, wenn er mir das schickt. Ich schaue nicht, was sie getan haben (die Funktionalität), sondern wie sie es gemacht haben. Welche Designprinzipien leiten ihre Arbeit? Wie ordentlich ist der Code? Was ist ihre Teststrategie? Haben sie irgendwelche Muster verwendet und wenn ja, werden sie in einer gut durchdachten Weise verwendet. Abhängig von der Sprache würde ich nach bestimmten Aspekten der Sprache suchen. In C ++ würde ich gerne sehen, dass sie in der Lage sind, die Template-Spezialisierung elegant zu verwenden (zB für Traits / Policies). In c # 3.0 würde ich nach der richtigen Verwendung von Lambda-Ausdrücken, Generics, LINQ suchen sowie über die Verwendung.
Ich hoffe, es gab Ihnen eine Vorstellung davon, welche Art von Prüfung Sie durchführen könnten