Faule Trails
Wenn Sie Softwareentwickler bitten, eine bestimmte Aufgabe zu erledigen, z. B. einen Algorithmus zur faktoriellen Generierung (sehr häufig) zu schreiben oder eine einfach oder doppelt verknüpfte Liste zu sortieren, an die Sie sich leicht erinnern können, erhalten Sie keine Vorstellung von den Fähigkeiten des Kandidaten, außer der Fähigkeit, sich zu stopfen. Sie können auch den ASCII-Code des Zeichens 'A' erfragen .
Detaillierte Lösungen für viele Probleme sind in einer Vielzahl von Referenzmaterialien leicht zu finden, häufig in Büchern, die algorithmische und spezifische Lösungen für alle in einem Programmierinterview häufig auftretenden Probleme beschreiben.
Ich habe für ein Unternehmen gearbeitet und dort mit einem Kollegen ausführlich darüber gesprochen, wie das Interview mit einem großen Hedgefonds aussah. Er merkte sich sorgfältig alle technischen Fragen aus dem weit verbreiteten Buch mit Interviewfragen und -antworten, die der damalige Mitarbeiter als Quelle für alle Interviewfragen weitergab.
Glücklicherweise ist mein Kollege ein erfahrener Ingenieur, aber er stimmte zu, diese offensichtlich eintönige und weltliche Übung zu absolvieren, um seinen Job zu behalten. Er musste dies nicht tun - das Interview war nicht nur eine Verschwendung seiner kostbaren Zeit, es tat nichts für die Vermietungsfirma, um seine Fähigkeiten zu bestimmen. Ein Kollege verließ das Unternehmen nach einem Jahr, müde vom niedrigen technischen Niveau in Bezug auf Einstellung und ineffektives Management ...
Erinnerung
Die gleichen Argumente funktionieren, wenn Sie einen Algorithmus in einer bestimmten Sprache schreiben. In einem realen Projekt würde kein Softwareentwickler einen Codeabschnitt ohne eine Art Syntaxprüfungswerkzeug (z. B. integrierte Code-Vervollständigung im Editor) schreiben, ohne auf eine technische Dokumentation zu verweisen oder einfach ohne die fertige Lösung zu kopieren, wo sie sich befindet vielleicht. Es macht keinen Sinn, das Rad neu zu erfinden.
Ich wette, der größte Teil des Codes, der heute auf Weltsystemen ausgeführt wird, stammt aus dem Stack Overflow.
Bei aller Praktikabilität beginnt das Arbeiten mit der Syntax einer bestimmten Programmiersprache mit Vertrautheit und Anwendung. Die Person, die Sie interviewt, könnte denken, dass das Testen Ihres Wissens über die Nuancen einer bestimmten Sprache Ihr Verständnis der Sprache testet. Zum Beispiel kann ich kategorisch sagen, dass ich, obwohl ich seit fast 30 Jahren in C schreibe, die Syntax ständig vermisse.
Tatsächlich war ich im Laufe meiner Karriere und der besseren Kenntnis der für mich interessanten Sprachen ständig verwirrt über die Nuancen der Syntax, beispielsweise C, C ++ und Objective-C. Nicht weil ich ein schrecklicher Softwareentwickler bin (obwohl einige anderer Meinung sein mögen ...), sondern weil nur das Wissen, das Sie jederzeit im Kopf behalten und abrufen können, in Ihrem Gedächtnis gespeichert ist.
Ein guter Ingenieur weiß oft nicht sofort die Antwort auf eine bestimmte Frage, aber er weiß definitiv, wo er danach suchen muss. Vielleicht möchten Sie fragen, wo Sie am besten Informationen zu Interviewfragen finden?
Allgemeine Aufgaben
Etwas, das ich bereits angesprochen habe: Dies ist eine Maxime - erfinden Sie das Rad nicht neu. Wenn Sie beispielsweise in C arbeiten und eine Routine für die serielle Schnittstelle benötigen, schreiben Sie diese nicht von Grund auf neu, es sei denn, die Situation schreibt dies vor. Möglicherweise benötigen Sie einen JSON-Parser, eine sehr häufige Anforderung - es sei denn, Sie schreiben Code auf eine eingebettete Karte mit einer begrenzten Ressource für einen Satelliten im geostationären Orbit oder in Malbolg . dann solltest du vielleicht einfach das herausziehen, was du bereits aus der Bibliothek geschrieben hast. Der Code wurde höchstwahrscheinlich schon lange verwendet, ist vollständig getestet und verfügt über eine detaillierte (und korrekte) Dokumentation. Es ist zuverlässig.
Es ist unwahrscheinlich, dass es in der modernen Softwareentwicklung eine gemeinsame Aufgabe gibt, die in der Bibliothek noch nicht automatisiert wurde oder deren Algorithmus schwer zu finden ist.
Wenn Sie wie ich sind und vor allem aus Liebe zum Thema arbeiten, werden Sie aktiv nach Positionen suchen, in denen Sie das umsetzen, was Sie bereits geschrieben haben: auf der Suche nach fremden, neuen Welten, neuem Leben, neuen Zivilisationen ...
Tatsächlich wurde das Konzept der Softwareentwickler in ferner Zukunft mehr als einmal mit Code-Archäologen verglichen, bei denen Ingenieure im Wesentlichen vorhandenen Code wiederverwenden und relativ wenig Zeit damit verbringen, neue und neue Algorithmen zu entwickeln und zu programmieren.
Diskussion. Diskussion. Diskussion
Ich unterstütze es herauszufinden, dass die Person, die Sie einstellen, ihr Geschäft kennt. Aber die oben genannten Methoden sind meiner Meinung nach völlig nutzlos. Ich möchte niemanden beleidigen, ich sage es so wie es ist.
Zum Beispiel einfach über Programmierparadigmen in der modernen Softwareentwicklung zu sprechen, ob eine Sprache eine gute Wahl für eine bestimmte Implementierung wäre oder ob eine bestimmte Methodik der Softwareentwicklung (Agile, ich sehe Sie an) ein viel nützlicheres und relevanteres Diskussionsthema ist.
Führen Sie eine Diskussion, um Gemeinsamkeiten hervorzuheben, herauszufinden, wie der Kandidat neue Probleme versteht und möglicherweise neue alternative Wege zur Lösung alter Probleme. Wie Kandidaten die Entwicklung der Dinge sehen, wie sie anfangen würden, etwas zu lösen. Bleiben Sie offen, halten Sie sich von Details und Kleinigkeiten fern.
Der Schlüssel hier ist die Diskussion. Ich bin immer wieder erstaunt, dass viele der Unternehmen, die als „vielversprechend“ und „führend auf ihrem Gebiet“ gelten, immer noch auf veraltete, eintönige und vollständig vorhersehbare Einstellungsmethoden zurückgreifen, weil sie die wirkliche technische Ader kaum schätzen.
Es wird oft gesagt, dass ein Arbeitssuchender ein Unternehmen genauso interviewen sollte, wie ein Unternehmen ihn interviewt. Ich bin total dafür.
Jemanden mit einer Liste präziser technischer Fragen zu interviewen, ist immer eine rote Fahne, besonders wenn die Leute keine Diskussion über ein Thema herausziehen wollen. Dies zeigt oft, dass der Befragte möglicherweise nicht vollständig versteht, worüber er fragt, und jede Antwort, die nicht genau mit der im Skript geschriebenen übereinstimmt, wird als falsch angesehen.
Fassen wir zusammen
Einige Unternehmen haben sich für bessere Einstellungsmethoden entschieden, andere - nun, sie sind unzureichend. Hier fordere ich Ihre Programmierkollegen auf, sich nicht auf Unternehmen einzulassen, die den alten Weg einschlagen und auf Tests und Codierungsübungen bestehen. Besonders für lange!
Ich habe Geschichten von Unternehmen gehört, die darum gebeten haben, Projekte zum Stichtag eines Kandidaten abzuschließen, was oft Tage dauert.
Andere haben generische „Eignungstests“ für bestimmte Sprachen, Multiple-Choice-Tests, bei denen in einer begrenzten Zeit ein Hinweis auf einen Nebel in Ihrem Kopf bedeutet, dass Sie das Interview nicht bestanden haben!
Wenn Sie ein Anfänger sind, sind Sie möglicherweise nicht in der Lage, ein Interview zu überspringen, und ich verstehe Sie vollkommen, aber ich betrachte es als Lernerfahrung. Machen Sie weiter, sammeln Sie Erfahrung, lernen Sie so viel wie möglich, und wenn der Job Sie enttäuscht, fahren Sie einfach fort. In Zukunft gewinnen Sie mehr Selbstvertrauen, Wissen und Erfahrung. Schließlich profitiert das Unternehmen von Ihnen, daher sollten Sie gleichermaßen vom Unternehmen profitieren.
Wenn Sie wie ich älter und erfahrener sind, lassen Sie einfach die Vermietungsfirma mit Ihnen sprechen. Wir haben viel Erfahrung, wir haben viel gesehen und getan, die Qualifikationen sind im Lebenslauf und Lebenslauf deutlich sichtbar. Und ich bin empört darüber, dass ich durch die allgemeine Rekrutierungspipeline geführt und meine Fähigkeiten mehrmals getestet werde.
Wenn Sie der Meinung sind, dass Sie ein würdiger Arbeitgeber sind und nicht herausfinden können, warum scheinbar großartige Kandidaten gehen und gehen, schauen Sie sich genau an, wie Sie Mitarbeiter einstellen.
<>
Andere Berufe und Kurse
BERUF
KURSE
- Frontend-Entwicklerberuf
- Beruf Webentwickler
- Beruf Ethischer Hacker
- C ++ Entwicklerberuf
- Java-Entwicklerberuf
- Profession Unity Spieleentwickler
- Der Beruf des iOS-Entwicklers von Grund auf neu
- Professioneller Android-Entwickler von Grund auf neu
KURSE
- JavaScript-Kurs
- Kurs für maschinelles Lernen
- Kurs "Mathematik und maschinelles Lernen für Data Science"
- Kurs "Algorithmen und Datenstrukturen"
- Python für Webentwicklungskurs
- DevOps
</>