Wie viele technische Interviews haben Sie in Ihrem Leben geführt?
In den letzten fünf Jahren habe ich 35 technische Interviews aller erdenklichen Arten und Besonderheiten besucht - von kasachischen Start-ups für den gemeinsamen Einkauf von Fleisch für den Winter bis hin zu deutschen und amerikanischen Fintech-Diensten und Banken; mit Vorurteilen in Programmierung, Vertrieb und Verwaltung; fern und im Büro; zeitlich begrenzt und unbegrenzt; stressig und entspannt, in verschiedenen Sprachen.
Dies, gepaart mit ca. 20 Interviews, die ich selbst als Arbeitgeber geführt habe, reicht aus,
um der König der Interviews zu werden, um die folgende (zunächst völlig unauffällige) Beobachtung zu machen und mich darin zu etablieren: Ich bin davon überzeugt, dass dies hauptsächlich auf die Anzahl der Interviews zurückzuführen ist, die sich zu ähneln beginnen eine marginale Angewohnheit, ich habe meinen Stack professionell studiert und bin Wettkampfspezialist geworden, obwohl ich vorher schon 10 Jahre in der Webentwicklung gearbeitet hatte.
Dieser Artikel richtet sich an Programmierer, die am Anfang des Pfades stehen und die Tiefe des Wissens noch nicht ausgeschöpft haben. Darin möchte ich die These über den enormen pädagogischen Nutzen von Testaufgaben und technischen Fragen, die für Interviews gestellt werden, erweitern - und alle zu meinem frisch geschriebenen Telegramm-Bot
ActualizeBot einladen, wo Sie meiner Meinung nach mindestens jeden Tag ein technisches Interview durchgehen können, bis sie enden. Und damit sie nicht enden, können Sie auch eine interessante technische Aufgabe, eine Frage oder eine nützliche / lustige Situation, die Sie in einem Interview erlebt haben, mit anderen teilen.
Ich werde Ihnen im Folgenden mehr über den Bot erzählen. Lassen Sie uns zunächst verstehen, warum es so wichtig ist, die Antworten auf diese technischen Fragen und Aufgaben zu kennen und zu verstehen, auch wenn Sie seit Jahren erfolgreich freiberufliche Projekte geschnitten haben.
Warum lässt die Qualität unseres Grundwissens zu wünschen übrig?
Technische Interviews, wenn Sie noch nicht der König der Interviews sind, sind eine ernsthafte Belastung für den Körper sowie eine Arbeitssuche im Allgemeinen - ob Sie ein Anfänger, ein Switcher oder ein Entwickler sind, der lange an einem Ort gearbeitet hat (und in unserer Zeit "lange"), wird es ein Jahr sein.
In vielen Interviews hat dieser Stress einen erschwerenden menschlichen Faktor. Ihr Interviewer ist möglicherweise nicht Alena Vladimirskaya, sondern eine gewöhnliche Programmiererin, von der es schwierig ist, auf angemessene Aufgaben und deren Bewertung zu warten, oder ein Hardcore-Teamleiter, der einen Moment wartet, um all Ihre Härte in Ihren Augen zu senken und die Frage zu stellen: Was ist für Sie? agil!?
Einmal, ohne die notwendige, aber, wie Sie wissen, unvorhersehbare Antwort auf diese Frage zu geben, blieb mir ein Angebot, über das ich mich sehr freue.
Um diesen Stress und unnötige Bewegungen im Allgemeinen zu vermeiden, distanzieren wir uns nicht nur von der lauten Enthüllung unserer Unkenntnis einiger grundlegender Merkmale der Sprache, sondern auch davon, diese Unkenntnis ein wenig zu verringern.
Das Problem ist, dass in der Praxis eine solche Klasse von Aufgaben für uns nicht ausreicht.
Jeder Entwickler, der an mehreren Orten arbeiten musste, wird bestätigen, dass die grundlegenden oder kreativen Aufgaben, die im Interview gestellt werden, selten etwas mit dem zu tun haben, was der Programmierer im wirklichen Leben beschäftigt - Sie brauchen keine Rekursionen, Grafiken oder asynchronen Aufzugssteuerungssysteme auf dem Planeten negative Schwerkraft im anderen Arm der Galaxie. Leider.
Was mein natives JavaScript betrifft, gibt es ein gutes Beispiel: Wenn React.JS nicht erschienen wäre, hätten 98% der JavaScript-Programmierer erfolgreich weitergelebt, ohne zu wissen, was Bind ist - mehr als 20 Jahre nach dem Erscheinen - und wären weiterhin ratlos Fragen zu ihm in Interviews zu bekommen und nur diejenigen, die all diese hoch abstrakten Bibliotheken, Frameworks und Module erfinden, würden weiterhin mit ihm zusammenarbeiten. Dank der Reaktion ist diese Zahl heute gefühlsmäßig auf 97% gesunken.
Angesichts der "Isolation von der Realität" dieser Aufgaben ignorieren viele Entwickler diese oder nehmen sich Zeit, um sich mit ihnen zu beschäftigen - und üben weiterhin eine tägliche Routine aus, das heißt, sie laufen nicht nur ohne Minensucher auf dem Minenfeld, sondern auch in der Produktion zu wissen, dass sie in einem Minenfeld sind.
Was mit einem Mangel an Grundkenntnissen der Sprache behaftet ist
Die Antwort auf diese Frage erscheint banal, aber aus irgendeinem Grund in der menschlichen Natur - immer in den Hintergrund gedrängt - und spielt eine traurige Rolle im Leben von Junior- und Middle-Programmierern, die ihren Weg zu den Höhen (und Tiefen) des Sprachwissens um einige wenige erweitern Jahre alt.
Der Anwendungscode, der die Frameworks und Bibliotheken verwendet, mit denen sie jeden Tag arbeiten, kann nicht als zuverlässig angesehen werden, wenn sie ihn schreiben, ohne die verschiedenen Aspekte seiner Ausführung ausreichend zu verstehen. Ein gutes Beispiel dafür aus der Welt von JavaScript ist das Schicksal der JQuery-Bibliothek, die einst ein Motor des Fortschritts war und heute als eigenständiges, vom Rest der Sprache abgetrenntes Wissensgebiet seinen natürlichen Platz auf dem Markt einnimmt - semiprofessionell, hastig geschrieben und funktioniert, als müsste man Skripte als Geschenk verwenden das gleiche schnelle Layout auf Bootstrap von günstigen Freelancern.
Die Zukunft von Projekten, die mit diesem, wenn auch unwissentlich, aber verantwortungslosen Ansatz entwickelt werden, ist prosaisch und kurzlebig: erhebliche Zeitverschwendung, Unterbrechungen, finanzielle Verluste und Reputationsverluste und infolgedessen eine Abnahme der Begeisterung für die fortgesetzte Zusammenarbeit.
Andererseits kann wenig für eine Person, die den Weg eines Programmierers gewählt hat, mit dem Vergnügen verglichen werden, zu verstehen, was er tut. Er verstand, dass er wie Baron Münchhausen auf einem Minenfeld auf einem Pferd tänzelte. Unnötig zu erwähnen, dass ein anständiger Arbeitgeber Menschen, die rücksichtslos durch das Minenfeld laufen, und Menschen, die unentschlossen gefroren sind, klar erkennen kann, um einen Schritt in einer Situation zu machen, in der Sie rennen und springen können, ohne an irgendetwas zu denken?
ActualizeBot
Angesichts der Vorteile von Interviews und des Verständnisses, dass es nicht ganz ethisch ist, Interviews im Leerlauf zu führen, hielt ich es für großartig, einen Bot zu entwickeln, bei dem ein Entwickler, der mit der Arbeit anfängt oder in eine andere Sprache wechselt, pädagogische Arbeit leisten kann, ohne auf echte Interviews in dieser Menge zurückzugreifen in dem ist mir passiert. Und als ich mich daran erinnerte, wie gern Programmierer Aufgaben diskutierten und verglichen, die sie lösen mussten - insbesondere, wenn es sich um etwas Nicht-Triviales handelte -, wurde mir klar, dass alles zusammenpasste, und lehnte alle Zweifel ab.
Im Moment gibt es 3 einfache Funktionen im Bot:
- Abonnieren einer bestimmten Sprache / eines bestimmten Frameworks, um neue Aufgaben zu erhalten. Sie abonnieren und erhalten Aufgaben im täglichen Newsletter
- Veröffentlichen einer Aufgabe oder eines Tests - In meinem Buch heißt es, Teilen ist wichtig
- Ein hervorragender Namensgenerator, mit dem Sie die optimale Signatur für den von Ihnen veröffentlichten Auftragstext auswählen können, einschließlich weiblicher Wörterbücher, die keine feminativen Elemente enthalten
Momentan stehen folgende Sprachen zur Auswahl: JavaScript, Java, Python, PHP, MySQL. Die Auswahl ist aufgrund der Grenzen meines Verständnisses etwas eingeschränkt. Ich hoffe, mit Hilfe der Habrasociety diese Liste aufzufüllen.
Der Bot wird in einem reinen Rock'n'Roll-Format gestartet, eine Bezahlung für alles wird nicht erwartet.
Sie können dazu über den Link
ActualizeBot gehenKurz zur technischen Umsetzung
Dieser Bot ist eines von mehreren kleinen Projekten, bei denen ich die erste öffentliche Version meines Open-Source-Open-Source-Miniframes bringe, um Bots mit einer komplexen Struktur zu entwickeln, die den liebevollen Namen Hobot tragen und in NPM für Hardcore verfügbar sind.
Das Framework basiert auf Telegraf.JS und TypeScript. Die mit einem Anwendungsbeispiel ausgestattete Zero-Zero-First-Version kann auf dem
Github angezeigt und sofort ausprobiert werden. Demnächst werde ich die Version 0.0.2 erweitert und für die Person von der Seite gekämmt und einen eigenen Artikel dazu widmen (Kofferraum). Ich würde mich freuen, wenn es sich für jemanden als so relevant herausstellt, wie es für mich ist.
An wie vielen Interviews mussten Sie teilnehmen?
Ich bin sicher, Sie haben etwas zu erzählen!