Ich bin derzeit auf der Suche nach einem neuen Job als Entwickler. Es gibt zwei Dinge, die Unternehmen normalerweise verlangen, die mich sehr stören: lange Programmieraufträge und Referenzprüfungen. Es gibt viele Fragen zu beiden Dingen auf dieser Seite.
Es gibt andere Dinge, die mich noch mehr stören: Nach einem solchen Prozess herauszufinden, dass der Code oder das System, mit dem ich arbeiten werde, oder das Unternehmen selbst eine Katastrophe ist.
Also habe ich angefangen, ohne Erfolg (und ohne Überraschung) zu versuchen, die Unternehmen im Gegenzug zu fragen:
Eines der Unternehmen sagte, dass meine Frage (Kontaktinformationen von 2-3 Personen, sie hatten nach 6 gefragt) unvernünftig sei. Ist es? Ich erkenne an, dass sie das Recht haben, alles zu tun, was sie für notwendig halten, um die besten Leute an Bord zu holen. Kann ich das nicht auch?
Ich habe gefragt: "Könnten Sie mir einige Minuten lang einige Ihrer besten und schlechtesten Codes zeigen?" Die letzten beiden Male ging ich auf Jobsuche, meistens am Ende, wo die Leute fragen "Haben Sie Fragen an uns?" Bisher wurde dies allgemein positiv aufgenommen. Möglicherweise sind nicht alle Unternehmen dazu bereit/fähig – vieles hängt von Unternehmenskultur, Größe, Branche usw. ab.
Der Grund, warum ich nach dem besten und schlechtesten Code frage, ist, dass ich eine vage Vorstellung davon bekommen kann, was sie als "guten Code" betrachten, und auch eine vage Vorstellung davon bekomme, was sie für Probleme in ihrer Codebasis halten. Beachten Sie, dass dies keine Codeüberprüfung ist, sondern eher eine Gelegenheit, eine Diskussion über den Stand ihres Codes, zukünftige Pläne zur Verbesserung der Codebasis und vor allem über ihre allgemeine Herangehensweise an die Softwareentwicklung zu beginnen. Auch wenn sie nicht in der Lage/willens sind, Ihnen Code zu zeigen, kann dies dennoch ein guter Gesprächseinstieg sein; Beispielsweise können sie verbal beschreiben, warum sie ihren guten Code für gut oder ihren schlechten Code für schlecht halten.
Manche Organisationen haben dazu überraschend witzige Ideen. Um ein Beispiel zu geben, zeigte mir eine Organisation, was eindeutig ein riesiges Spaghetti-Durcheinander war, und die größten Probleme, auf die sie dabei hinwiesen, waren „ public
und private
Schlüsselwörter werden oft nicht hinzugefügt“ und „Variablennamen sind nicht immer beschreibend“. Obwohl dies berechtigte Bedenken sind, waren dies bei weitem nicht die dringendsten Bedenken in Bezug auf diesen Kodex. Sie wussten offensichtlich nicht, was sie taten. Ich habe schließlich dort gearbeitet, weil eine Freundin von mir dort gearbeitet hat und ich ihr vertraut habe, aber das hat sich als großer Fehler und ärgerliche Erfahrung für beide Seiten herausgestellt.
Nachtrag : OP kam zurück und postete folgendes in den Kommentaren:
Obwohl ich das für eine gute Idee hielt und es mehrmals ausprobiert habe, waren die Ergebnisse ziemlich schlecht: Große Unternehmen können das nicht, da sie einen Prozess benötigen würden, den sie nicht implementiert haben, aber das ist in Ordnung, weil große Unternehmen dies normalerweise tun. Ich gebe Ihnen keine Hausaufgaben. Andere Firmen, auch solche, die Ihnen Hausaufgaben geben, lehnen mit besseren oder schlechteren Ausreden ab, versprechen, es zu tun und schicken es dann nie, oder verstehen nicht, warum/was Sie wollen. Ein paar von ihnen schickten mir ihre gesamten Repositories mit mehreren tausend Codezeilen, was zumindest insofern ehrlich war, als ich wüsste, was mich erwartet. – Antonro
Es sieht also so aus, als ob Ihre Laufleistung variieren kann; Ich kann nur aus meiner eigenen begrenzten persönlichen Erfahrung sprechen. Ich habe fast ausschließlich Bewerbungsgespräche bei kleineren Unternehmen geführt, die keine Unternehmen sind, und vielleicht hängt es auch ein wenig von Ihrem Standort ab (ich bin in Europa). Es ist wichtig zu betonen, dass ich nie jemanden gebeten habe, mir etwas zu schicken , sondern einfach während des Interviews für ein paar Minuten den Code ein wenig mit ihm durchgehe. Nur Code zu senden scheint mir ziemlich nutzlos, weil es keine Konversation gibt: Der Wert liegt meistens in der Konversation, nicht unbedingt im Code als solchem, der in diesem Zusammenhang meistens von einem MacGuffin stammt.
Das Abfragen der Kontaktinformationen eines Mitarbeiters erscheint mir ziemlich seltsam. Ich verstehe, woher Sie kommen, aber abgesehen von den Datenschutzbedenken kann es auch normale Mitarbeiter in eine ziemlich schwierige Lage bringen.
Verwenden Sie stattdessen Websites wie Glassdoor, auf denen aktuelle und ehemalige Mitarbeiter Bewertungen hinterlassen können, wenn sie dies wünschen. Für mittlere bis große Unternehmen sollte Ihnen dies einen vernünftigen Hinweis geben, obwohl ich dringend empfehlen würde, einige der Bewertungen zu lesen, anstatt blind der Bewertung von 4,4 (oder was auch immer) zu vertrauen.
Ich bin Arbeitgeber mehrerer Entwickler.
Screening-Tests: Wir bitten Kandidaten, einen 20-30-minütigen Multiple-Choice-Test zu beantworten, der versucht, Kandidaten zu screenen, die in einem Programmierinterview niemals erfolgreich sein würden. Dies ist sowohl im Interesse des Bewerbers als auch des Arbeitgebers, da es den Zeitaufwand für alle Parteien reduziert.
Wenn Ihr potenzieller Arbeitgeber Sie bittet, mehrere Stunden zu programmieren, bevor er überhaupt ein Gespräch mit Ihnen führt, ist er NICHT effizient und respektiert Ihre Zeit nicht, und das ist ein großes Warnzeichen . Die richtige Antwort ist jedoch, höflich abzulehnen und zu gehen (wenn Sie dazu in der Lage sind), und den Arbeitgeber nicht zu bitten, viel Zeit mit Ihnen zu verbringen, bevor er überhaupt weiß, ob Sie kompetent sind.
Kodierung von Vorstellungsgesprächen: Was Sie verstehen müssen, ist, dass die Einstellung auch für den Arbeitgeber kein Spaßprozess ist. Sie müssen sich durch eine Fülle von Kandidaten kämpfen, die sich auf eine Stelle beworben haben, die sie nicht ausüben können. Deshalb sind Kodierungsinterviews so nützlich.
Ich bitte potenzielle Mitarbeiter, in ihren Vorstellungsgesprächen zu codieren, um Folgendes zu sehen:
Ist es fair zu fragen, etwas von unserer Codebasis zu sehen? Ja, und ich würde diese Frage erwägen, wenn ich bereits von den Fähigkeiten des potenziellen Mitarbeiters zum Programmieren überzeugt wäre und wenn der potenzielle Mitarbeiter über genügend Erfahrung verfügt, um zu verstehen, was er sieht.
Umgekehrte Referenzprüfungen: Ich führe generell keine Referenzprüfungen durch. Ich denke, es ist sinnlos, da ich persönlich ehemaligen Mitarbeitern positive Referenzprüfungen gegeben habe, die ich nicht wieder einstellen würde. Wieso den? Weil ich ehrliche positive Dinge über alle meine Mitarbeiter sagen kann und ich keine Haut im Spiel habe. Es gibt nur einen ehemaligen Mitarbeiter, für den ich das nicht tun würde, und für diese Person würde ich sagen, dass es gegen die Unternehmenspolitik verstößt, Referenzprüfungen durchzuführen.
Wenn ich jedoch im Vorstellungsgespräch gebeten würde, die Kontaktdaten mehrerer ehemaliger Mitarbeiter anzugeben, würde ich antworten: „Danke für Ihre Zeit. Leider sind Sie eindeutig nicht der richtige Kandidat für diese Position.“
Wenn ich hingegen bereits in Verhandlungen wäre, einen Mitarbeiter einzustellen, den ich wirklich wirklich haben möchte, ja , ich würde ehemalige Mitarbeiter fragen, ob sie bereit wären, uns einen Referenzcheck zu geben.
Hier gibt es bereits einige gute Antworten, aber um meinen eigenen Gedanken hinzuzufügen. Ist Ihnen in den Sinn gekommen, dass ihre Einschätzung von Ihnen Ihre Gelegenheit ist, sie zu beurteilen?
Lassen Sie mich Ihnen zwei verschiedene Beispiele geben, die alle auf realen Erfahrungen basieren, die ich gemacht habe:
Ratet mal, für welches Unternehmen ich arbeiten wollte?
Während Sie in einem Interview sind, ist es SEHR wichtig, die Interviewer zu beeindrucken, aber suchen Sie nach Hinweisen. Hören Sie sich ihr Feedback zu diesen Herausforderungen an, wenn es kooperativ ist und Sie ein freundliches Gespräch führen, dann funktioniert das Unternehmen so. Wenn es ein "nicht gut genug" ist, dann passen Sie wahrscheinlich nicht in ihr Schema.
Sie WOLLEN, dass Sie der Kandidat sind (glauben Sie mir, sie haben schon genug schlechte gesehen). Aber Unternehmen vergessen oft, dass sie das Unternehmen sein sollen. Suchen Sie nach Hinweisen darauf, wie das Unternehmen im Bewerbungsprozess selbst ist!
Für die Code-Beispielseite, wenn sie Sie bitten, eine Programmieraufgabe zu erledigen, fragen Sie nach ihren Codierungsstandards, damit Sie wissen, wie sie den Code erwarten würden, und geben Sie auch einen Hinweis darauf, was sie als gute Codierungspraktiken ansehen.
Das bedeutet nicht, dass ihr Code so sein wird. Einige Orte verwalten möglicherweise ältere Anwendungen oder Versionen, die schreckliche Codebasen haben. Überall dort, wo es keine Codierungsstandards gibt (oder nicht auf allgemeine wie PSR-2 verweisen kann), gibt es wahrscheinlich Probleme mit der Codequalität.
Ein kleines Stück Code ist möglicherweise nicht der beste Hinweis, da sie eine kleine Anwendung schreiben könnten, die äußerst ordentlich ist, aber nicht ihre Hauptcodeplattform darstellt.
Was die Mitarbeiterbefragung betrifft, fragen Sie die Leute im Vorstellungsgespräch nach den besten und schlechtesten Aspekten der Arbeit dort. Sie sind in der Lage, darüber zu diskutieren, und es ist etwas, das viele Leute auf die Palme bringt, also nicht immer einstudiert wird.
Ich verstehe deinen Frust. Sie möchten genügend Daten haben, um eine fundierte Entscheidung treffen zu können. Aber Sie gehen ein großes Risiko ein.
Sofern Sie den anderen Kandidaten in Bezug auf die Anforderungen nicht weit überlegen sind und das Unternehmen vom Interviewmodus auf den Versuch umgeschaltet hat, Sie von der Annahme seines Angebots zu überzeugen, werden Ihre Anfragen wahrscheinlich dazu führen, dass es sich nicht lohnt, Ihnen ein Angebot zu unterbreiten.
Konfrontiert mit einem Kandidaten, der möchte, dass ich Expose-Code finde, und aktuelle und ehemalige Mitarbeiter interviewen möchte; Im Vergleich zu 9 anderen, die nicht nach diesen Dingen fragen, würde ich mich auf die 9 konzentrieren.
Unabhängig davon, wo sich Ihre Bewerbung im Prozess befindet, besteht meines Erachtens das Risiko, dass Ihre Bewerbung nicht zum nächsten Schritt gelangt. Solange das Unternehmen mehr qualifizierte Kandidaten als offene Stellen hat, kann es schnell entscheiden, Bewerbungen auszuschließen.
Als Mitarbeiter bin ich mir nicht sicher, ob ich von einem Kandidaten interviewt werden möchte, es sei denn, es wäre Teil des Prozesses für alle Kandidaten. Und als Teil dieses Prozesses würde ich Kandidaten bewerten.
your requests will probably make them decide that it isn't worth making an offer to you
. Ehrlich gesagt, wenn ein Unternehmen einfache Anfragen als Grund für die Beendigung des Vorstellungsprozesses interpretiert, würde ich dort nicht arbeiten wollen. Warum würden sie nicht einfach "Nein, Entschuldigung" sagen?Bitte verzeihen Sie eine weitere Antwort in einer langen Reihe von Antworten, aber mein Vorschlag enthält ausdrücklich einige Dinge, die andere Antworten implizieren:
Wenn Sie interviewt werden, wird das Unternehmen Sie nach den Dingen fragen, die ihm wichtig sind, und das kann Ihnen viel sagen, wenn Sie darauf achten. Code-Reviews, Unit-/Integrationstests, Coding-Standards: Das sind die Werkzeuge, die Unternehmen dabei helfen, guten Code zu schreiben. Unternehmen, denen guter Code wichtig ist, verwenden diese Tools und fragen Sie daher nach Ihrer Vertrautheit mit ihnen. Wenn der Interviewprozess selbst nicht ausschlaggebend dafür ist, ob sie Best Practices befolgen oder nicht, sind dies die Arten von Fragen, die ich als Interviewpartner stellen würde, um zu versuchen, es herauszufinden:
Diese Dinge können Ihnen viel über ein Unternehmen verraten, ohne dass Sie etwas anderes benötigen. Sie können sie auch so formulieren, dass sie nicht wie ein Verhör klingen und den Interviewer engagieren: „In der Vergangenheit habe ich in Teams gearbeitet, die Bitbucket verwenden, um Code-Reviews zu verwalten. Welche Tools verwenden Sie, um sie zu verwalten? " oder "In der Debatte "Tabs vs. Leerzeichen" hat sich unser Team für X entschieden. Es ist verrückt, wie viele Kontroversen das ausgelöst hat! Wo landen Sie in dieser Debatte, und wie entscheiden Sie als Team, welche Standards befolgt werden sollen?".
Fragen wie diese bewirken einiges:
Wenn Sie sie nach „Tabs vs. Leerzeichen“ fragen und ihre Antwort so etwas wie „Ich weiß nicht, was die Leute wollen, denke ich“ lautet, dann führen Sie offensichtlich ein Vorstellungsgespräch mit einem Unternehmen, das die Dinge nicht ernst nimmt. Wenn Sie ein freundliches Gespräch über kontinuierliche Integration beginnen und die anderen nicht wissen, wovon Sie sprechen, dann sind Sie offensichtlich an der falschen Stelle.
Unternehmen, die guten Code schreiben, tun dies im Wesentlichen, weil sich die Entwickler um gute Programmierpraktiken kümmern. Infolgedessen sollten Sie in der Lage sein, während eines technischen Interviews ein kohärentes Gespräch mit Ihrem Gesprächspartner über die besten Codierungspraktiken zu führen. Zugegeben, wenn Sie reinkommen, werden Sie vielleicht einige Bereiche finden, in denen ihre Standards nicht so praktiziert werden, wie sie während des Interviews behauptet haben - schließlich ist niemand perfekt. Wenn sich die Mitarbeiter jedoch um Standards kümmern, dann müssen Sie sich in diesem Bereich aller Voraussicht nach nicht viel Sorgen machen.
Wie Sie bereits gesehen haben, ist dies keine großartige Interviewtechnik. Wenn es so wäre, wäre es alltäglich.
Indem Sie darum bitten, Codebeispiele Ihres potenziellen Arbeitgebers zu sehen, verwandeln Sie das Vorstellungsgespräch in eine Codierungsüberprüfung, bei der Sie der Richter sind. Es ist auch geistiges Eigentum, und es besteht die Möglichkeit, dass sicherheitsrelevantes Material Dritten (Sie, dem Kandidaten) offengelegt wird.
Das wird nicht passieren.
Sie fragen auch nach vertraulichen Kontaktdaten früherer Mitarbeiter. Dies wird auch nicht passieren (aus offensichtlichen Gründen).
Sie können die Eignung des Unternehmens am besten beurteilen, indem Sie recherchieren und Fragen stellen, das tun alle anderen.
Es ist zum Beispiel völlig in Ordnung, wenn Sie nach Herausforderungen bei Rollouts oder Projekten fragen und sich nach aktuellen Entwicklungsprozessen erkundigen. Denken Sie jedoch daran, dass das Stellen dieser Art von Fragen zu einer negativen Reaktion führen kann (niemand gibt wirklich gerne zu, dass er (oder sein Unternehmen) schuld ist).
Nun, ich habe das Bedürfnis, meine 2 Cent einzusetzen.
Ich werde keinen Vertrag unterschreiben, bis ich:
Der beste Weg, dies zu erreichen, ist, mit Ihren zukünftigen Kollegen für ein paar Stunden Paarprogrammierung zu machen.
Normalerweise informiere ich meine potenziellen Arbeitgeber frühzeitig im Bewerbungsprozess über diese Anforderung, im Allgemeinen, wenn sie mich fragen, ob ich Fragen habe. An diesem Punkt sage ich etwas in der Art von „Nun, das klingt großartig, und ich bin daran interessiert, mit dem Einstellungsprozess fortzufahren. Ich sollte Sie vorher wissen lassen, dass ich (hier Ihre Prozesszusammenfassung ausfüllen) möchte Eigentlich unterschreibe ich einen Vertrag, aber ich bin bereit zu warten, bis Sie sicher sind, dass Sie mich einstellen wollen.
Normalerweise erwähne ich etwas wie „Ich denke, es ist in unserem beider Interesse, wenn wir sicherstellen, dass wir wirklich gut zueinander passen“. Die meisten Unternehmen stimmen zu.
Wenn ich auf der Einstellungsseite des Zauns bin, würde ich das vernünftig finden. Meine Erfahrung ist, dass meine Gesprächspartner dies zu schätzen wissen. Diejenigen, die dies nicht tun, arbeiten wahrscheinlich in einer Umgebung, die ich vermeiden möchte. Wenn Sie einen Kandidaten, den Sie einstellen möchten, ein paar Stunden damit verbringen, sicherzustellen, dass er sich gut in Ihr Unternehmen integriert, bevor Sie ihn einstellen, ist dies eine hohe Kapitalrendite , und ich arbeite nicht gerne für Unternehmen, die nicht so wenig in die Schaffung eines guten Teams investieren .
Ich denke nicht, dass die Mitarbeiter, die das Unternehmen Ihnen zur Verfügung stellen könnte, von großem Wert wären. Da sie Ihnen nicht jeden einzelnen Mitarbeiterkontakt geben, haben sie eine Auswahl zufriedener und freundlicher Mitarbeiter ausgewählt, die Ihnen genau das gleiche Feedback geben, das Sie von den Personalvermittlern erhalten haben. Vertrauen Sie in dieser Frage besser dem Personalvermittler, da es zu einfach ist, diese Frage zu "spielen".
Nach dem Prozess und einigen unkritischen Codebeispielen zu fragen, die von der Firma produziert oder gepflegt werden, ist andererseits eine durchaus vernünftige Anfrage, solange Sie nicht darum bitten, dass sie sie an Sie weiterleiten oder damit fortgehen. Ich sehe, dass diese Frage am Ende des Vorstellungsgesprächs gestellt wird, wenn der Personalvermittler Sie fragt, ob Sie Fragen haben.
Ich wollte mir immer den Code ansehen, bevor ich anfing. Aber an Ort und Stelle können Sie konkret fragen, woran Sie arbeiten werden, wie die Entwicklungsumgebung eingerichtet ist und an welchem unmittelbaren Modul Sie arbeiten werden und welche Abhängigkeiten, Technologien und wo im SDLC das aktuelle Projekt ist und ob was die n-Tier-Architektur ist, welche Module , fragen Sie, worauf Sie keinen Zugriff haben, wo die Dokumentation ist usw.
Was Referenzen bei der Anstellung angeht, habe ich das kostenlos mit verlinktem gemacht, Sie können Leute finden, die woanders arbeiten, aber früher für das betreffende Unternehmen gearbeitet haben. Nach meiner Erfahrung, meinem Feedback zu Linked In, sagten die Leute, sie wünschten, sie hätten es getan (fragen Sie ehemalige Arbeitgeber auf Linked In) und gaben mir viele Informationen, die ich auf Glassdoor oder in der Tat nicht bekommen würde
Ich glaube, dass in jedem Bewerbungsgespräch deutlich wird, wer die potenzielle Transaktion anstößt. Sind Sie das knappe Gut oder sind Sie ehrgeizig? Die Fähigkeit, kommerziellen Code zu schreiben, ist sehr selten, da es ein Konzentrationsniveau erfordert, das viele spielbegeisterte jüngere Leute nicht haben. Daher sollte sich das Unternehmen in den meisten Fällen selbst an Sie verkaufen. Ich würde Ihre Anfrage dahingehend ändern, dass Sie dem Interviewer Sondierungsfragen stellen, um seine oder ihre Fähigkeiten zum Codieren zu beurteilen, anstatt darum zu bitten, einen Teil des Codes des Unternehmens einzusehen. Wenn Sie darum bitten, Ausschnitte zu sehen, deutet dies darauf hin, dass Sie möglicherweise nach einer Anleitung für Ihre eigenen Antworten suchen, während die Bitte an den Interviewer, für Sie zu codieren, darauf hindeutet, dass Sie nicht für Dummköpfe arbeiten wollen, eine angemessene Einstellung.
Unternehmen, die sich auf die Herstellung von Open-Source- Software spezialisiert haben, sind dafür in der Regel offener.
Solche Open-Source-zentrierten Unternehmen haben mir angeboten, mit Mitgliedern des Teams zu telefonieren, um zu besprechen, was sie über den Job denken. Dies ist meine begrenzte Erfahrung, aber es scheint, dass Offenheit eine Kultur ist, und es bedeutet normalerweise, dass das Unternehmen keine Angst davor hat, dass seine Mitarbeiter offen über den Arbeitsplatz sprechen.
Als jemand, der (über koff-koff ... mehrere Jahrzehnte ...) "viele 'Codierer' interviewt hat", möchte ich Ihnen jetzt ganz klar sagen:
"Mir ist 'dein Quellcode' scheißegal! "
Wenn Sie es tatsächlich zu meinem Vorstellungsgespräch geschafft haben, dann gehe ich bereits davon aus, dass „Sie fachlich kompetent sind“. (Deshalb erwarte ich von Ihnen, dass Sie irgendwie „mit den vier Pfoten nach unten landen“.) Was will ich also? Eine Sache:
"Als Sie mit einer technischen Anforderung konfrontiert wurden (die Ihren puristischen Geist natürlich zum Kotzen brachte ...), was haben Sie getan?"
Ich konzentriere mich sehr auf soziale Dinge. Werden Sie sich gut in eines meiner bestehenden Teams integrieren oder nur Probleme verursachen? Werden Sie "in die Gräben graben und uns helfen", ohne sich zu beschweren (viel ...), oder werden Sie einfach "schneiden und rennen"?
"Ja, ich muss Sie aus geschäftlichen Gründen einstellen!" Aber – „sind Sie die Person, die ich einstellen möchte?“ 🤷♂️
Jonas Präm
Maskierter Mann