Beängstigende Dystopie von Interviews für Programmierer

Experimente



Mein Telefon klingelte.



„Hallo, das ist Jared.



- Guten Tag. Ich rufe Sie wegen eines Telefoninterviews bei der Giant Search and Advertising Company an [offensichtlich ist dies Google - ca. Fahrbahn].



- Ja! Ich freute mich auf Ihren Anruf!



- Okay. Können Sie einen Algorithmus schreiben, um den K-ten größten Wert in einem Binärbaum zu finden?



Ich halte den Mund. Trennen Sie die Verbindung vollständig. Ich bin nie in eine solche Situation geraten. Ein leeres Google-Dokument starrt mich an und der Cursor blinkt in Zeitlupe. Ich skizziere etwas als ersten Durchgang.



- Können Sie einen Testfall für diesen Algorithmus schreiben?



Sicher. Ich könnte, wenn ich nicht vollständig unter Drogen gesetzt wäre und mein inneres Ego nicht unter der brennenden Wut eines Traums schmilzt, der vor meinen Augen stirbt. Ist es das, worauf sich all meine harte Arbeit in den letzten Monaten beschränkt hat? Um den Januar 2019 herum entschied ich, dass es Zeit war, einen neuen Job zu finden. Als hätten die Götter der Softwareentwicklung genau diesen Gedanken gesegnet, und ein Personalvermittler der Giant Search and Advertising Company kontaktierte mich auf LinkedIn für ein Telefoninterview. Das war hervorragend!



Dies ist nicht das erste Mal, dass dies passiert ist. Als brillanter junger Ingenieur, der gerade die High School abgeschlossen hatte, habe ich kürzlich meinen ersten Job angefangen und war ziemlich gut darin. Aber dann stellte sich meine Welt auf den Kopf. Ich habe an einem besonders bösen Fehler gearbeitet und das getan, was jeder Softwareentwickler mit Selbstachtung tun würde, bevor ich versuchte, ihn selbst zu lösen: google it. Sobald ich mit meiner entsprechenden dummen Abfrage im Suchfeld die Eingabetaste drückte, wurde der Bildschirm schwarz und ich wurde in die Konsole geworfen.



Sie sprechen unsere Sprache ... Möchten Sie ein Problem lösen?

1. Ja

2. Nein, danke


Ich verschluckte mich fast an dem lauwarmen Costco-Kaffee. Ich wollte aufspringen und schreien, dass meine Kollegen kommen und zuschauen. Aber dann machte ich mir plötzlich Sorgen, dass ich Pannen hatte. In diesem Fall würde ich mich in einer sehr heiklen Situation befinden. Aus Angst, dass mein Geist aus meinem Körper fliegen würde, drückte ich 1.



Sie erhalten Array-Nummern mit n + 1 Ganzzahlen, wobei jede Ganzzahl zwischen 1 und n (einschließlich) liegt. Beweisen Sie, dass mindestens eine Zahl wiederholt wird. Nehmen wir an, es gibt nur ein Duplikat. Finde es.



Sie haben 24 Stunden!


Ich hatte einen leichten Herzinfarkt. Als ich mich mit einem weiteren Schuss Costco-Kaffee wiederbeleben konnte, wurde mir klar, dass ich das Problem durchaus lösen konnte. Ich hatte schon einen Plan. So tat ich. Sobald ich den "Senden" -Button drückte, gaben sie mir eine andere Lösung. Dies wurde fünfmal wiederholt und jedes Mal wurde es schwieriger. Als ich die letzte Antwort gepostet habe, habe ich eine andere Nachricht gesehen:



Herzliche Glückwünsche! Dieser Code ist sehr gut! Möchten Sie die Giant Search and Advertising Company interviewen?


Das ist alles. Meine gesamte Berufswelt hat sich verändert. Eine der mächtigsten Organisationen der Welt hat mein 22-jähriges Gehirn infiltriert und das Register neu geschrieben. Keines der bisherigen Karriereziele war mehr von Bedeutung. Vorher war mir glücklicherweise nicht bewusst, dass eine solche Top-Firma mich einstellen könnte. Aber es ist offensichtlich, dass ich irgendwie Aufmerksamkeit verdient habe.



Das Telefoninterview war wie ein Albtraum. Ich wurde gebeten, Conways Life-Spiel in 45 Minuten zu programmieren. Eigentlich habe ich es ziemlich gut gemacht. Ich habe das ganze Programm geschrieben und getestet. Am nächsten Tag wurde ich abgelehnt. Innerlich war ich depressiv und verwirrt. Was genau habe ich falsch gemacht? Bedeuteten nicht alle Tests etwas? Warum musste ich in so kurzer Zeit einen so komplexen Algorithmus schreiben?



Nach meiner ersten Erfahrung mit Problemlösungen auf diesem Niveau entschied ich mich, meine Fähigkeiten zu verbessern. Das Interview fand im April dieses Jahres statt. Ich erstellte einen dreimonatigen Lehrplan und machte mich an die Arbeit. Jeden Morgen habe ich drei praktische Aufgaben erledigt, bevor ich zur Arbeit ging. Abends, nach dem Joggen und einem Snack, arbeitete ich immer noch. In drei Monaten habe ich insgesamt 114 praktische Probleme gelöst. Arrays, Backtracking, binäre Suche, binäre Bäume, Breitensuche, DFS, dynamische Programmierung, Diagramme, gierige Algorithmen, Hashing, verknüpfte Listen, Wahrscheinlichkeiten, Sortieren, Stapel und Präfixbäume sind einige der Themen, die ich untersucht habe. ... Wie könnte ich mit einer solchen Vorbereitung scheitern?



Fehler



Ein Interview mit der Giant Search and Advertising Company ging in Flammen auf. Ich konnte das Problem nicht lösen. Aber das war nur der Anfang des Wahnsinns. Anfangs habe ich mich sehr strategisch an die zu kontaktierenden Unternehmen gewandt. Ich brauchte nicht nur „gute“, sondern auch „richtige“ Arbeit.



Der nächste war eine selbstfahrende Autofirma. Ich erhielt fast sofort eine Antwort, nachdem ich den Antrag eingereicht und einen Code-Editor eingerichtet hatte. Der Interviewer, genervt und mit einem sehr starken Akzent, bat mich, einen sehr komplexen Bildfilteralgorithmus zu codieren. Ich schrieb es. "Sieht sehr gut aus!" - er sagte. Am nächsten Tag erhielt ich ein formelhaftes Ablehnungsschreiben.



Dann gab es eine Forschungsfirma, die um eine Hausaufgabe mit drei Sätzen bat. Ich habe mein Bestes gegeben und ein sehr komplexes Multithread-Bildverarbeitungssystem geschrieben. Und ich bekam ein höfliches "Nein" vom Personalvermittler, und als ich gebeten wurde zu erklären, wurde mir gesagt, dass meine Implementierung "zu ineffektiv" sei.



Danach gab es eine Zahlungsverarbeitungsfirma. Ich hatte ein großartiges Telefongespräch mit der Personalvermittlerin und sie bewunderte, wie gut mein Lebenslauf mit der Stellenbeschreibung übereinstimmte. Am nächsten Tag erhielt ich eine E-Mail von ihr, dass sie keinen Job für meine Fähigkeiten finden konnten.



Ein weiteres Beispiel war die Giant Social Media Platform Company: „Jared! Vielen Dank für Ihre Bewerbung! Wir denken, Sie sind perfekt für die Arbeit in unserem Unternehmen! Ich habe Ihre Bewerbung direkt an den Personalchef in Ihrem Regionalbüro geschickt! " Acht Minuten später erhielt ich ein stereotypes Ablehnungsschreiben, in dem festgestellt wurde, dass meine Fähigkeiten für die Position nicht geeignet waren.



Unzählige externe Personalvermittler haben mich kontaktiert. Alle Gespräche endeten mit nichts. Vielleicht hat mir am besten eine Tonverarbeitungsfirma gefallen. Die Personalvermittlerin kontaktierte mich und sagte, dass das Team nach Durchsicht meines Lebenslaufs sehr aufgeregt und bereit ist, mit mir zu sprechen, sodass sie sich an den Personalmanager wenden wird. Eine Woche verging, ich fragte sie, wie es ihr gehe. Die Personalvermittlerin sagte, sie habe den Personalmanager kontaktiert - und er glaube nicht, dass meine Fähigkeiten für den Job richtig sind. Ich habe es akzeptiert ... aber als Test habe ich meinen Lebenslauf an einen anderen Job geschickt - und wurde sofort von einem anderen Personalvermittler kontaktiert. Ich war erstaunt, dass sie sofort anriefen. Ich muss zugeben, diesmal habe ich es nicht gut gemacht. Am nächsten Tag erhielt ich eine formelhafte Ablehnung per Post.



Schließlich erreichte ich die Interviewphase im Büro der Giant Social Media Company. Ich beantwortete eine Reihe von Codierungsfragen mit mehreren Personen in vier verschiedenen Interviews - alle korrekt und zufriedenstellend. Unterwegs wurden mir einige verwirrende und schwierige Fragen gestellt wie "Erzählen Sie uns von der Zeit, als ...". Es war erfrischend, als ich zum ersten Mal auf der Suche nach einem Job nach meinen Erfahrungen und Einsichten als Ingenieur im Allgemeinen gefragt wurde. Es folgte ein abschließendes Interview zum Systemdesign. Der Interviewer gab mir schnell ein kleines System zur Entwicklung. Ich fing an, über meine Entscheidung zu sprechen, und auf dem Weg wurden mir Fragen gestellt. Schließlich kamen wir zu dem Punkt, an dem er sagte: "Okay, nehmen wir an, wir haben eine Microservice-Architektur ... können Sie sie entwerfen ...?" Ich sagte sofortdass ich keine Erfahrung mit Microservices habe. Er sah mich fragend an und fragte: "Keine Erfahrung?" Ich bestätige. Ich habe versucht, meine Fähigkeiten und Erfahrungen in den Bereichen PC, Embedded und Mobile Development klar zu artikulieren. Er verstummte wie ein Mann, der versteht, dass er einen Fehler gemacht hat. Ausgezeichnet! Ich verbrachte vier Monate damit, mich auf dieses Interview vorzubereiten, verbrachte fast meine gesamte arbeitsfreie Zeit damit, mich vorzubereiten, praktische Probleme zu lösen und zu proben, wie ich meine Erfahrungen mit Kommunikationsfähigkeiten präsentieren kann, und er machte sich nicht die Mühe, 10 Minuten damit zu verbringen, meinen Lebenslauf zu lesen.Ich verbrachte vier Monate damit, mich auf dieses Interview vorzubereiten, verbrachte fast meine gesamte arbeitsfreie Zeit damit, mich vorzubereiten, praktische Probleme zu lösen und zu proben, wie ich meine Erfahrungen mit Kommunikationsfähigkeiten präsentieren kann, und er machte sich nicht die Mühe, 10 Minuten damit zu verbringen, meinen Lebenslauf zu lesen.Ich verbrachte vier Monate damit, mich auf dieses Interview vorzubereiten, verbrachte fast meine gesamte arbeitsfreie Zeit damit, mich vorzubereiten, praktische Probleme zu lösen und zu proben, wie ich meine Erfahrungen mit Kommunikationsfähigkeiten präsentieren kann, und er machte sich nicht die Mühe, 10 Minuten damit zu verbringen, meinen Lebenslauf zu lesen.





Ich könnte weiterhin um die vielen Enttäuschungen trauern, die ich bei dieser schwierigen Jobsuche erlebt habe. Dort war viel. Ich habe mich immer bemüht, mir und anderen gegenüber absolut ehrlich zu sein. Ich bewarb mich nicht für einen Job, der jahrelange Erfahrung erforderte, die ich nicht hatte, oder fehlende Fähigkeiten. Natürlich wollte ich von der eingebetteten Programmierung ins Web zurückkehren, aber ich hatte zwei Jahre Erfahrung als Webingenieur zusätzlich zu meiner anderen Erfahrung als Entwickler mobiler Apps und Forscher für Algorithmen für maschinelles Lernen. Ich erkenne voll und ganz an, dass ich unzählige Möglichkeiten für Wachstum und Selbstverbesserung habe. Andererseits bin ich ziemlich zuversichtlich, dass ich über die Fähigkeiten verfüge, die es mir ermöglichen, sehr schnell einen neuen Job zu beginnen. Meiner Meinung nach,Programmieren ist eine destillierte Kunstform, die durch Lernen und neue Erfahrungen definiert wird. Kein Softwareentwickler wird für den Rest seiner Karriere aufhören, sich weiterzuentwickeln. Zumindest hoffe ich nicht: Wer das tut, bleibt sehr schnell auf der Strecke. Also, was ist hier wirklich los? Nachdem ich diesen düsteren Prozess so lange durchlaufen hatte, beschloss ich, meine Beobachtungen zu zerlegen und zu analysieren und sie dann zu überdenken, um ein klareres Bild zu erhalten.Ich beschloss, meine Beobachtungen zu zerlegen und zu analysieren und sie dann zu überdenken, um ein klareres Bild zu erhalten.Ich beschloss, meine Beobachtungen zu zerlegen und zu analysieren und sie dann zu überdenken, um ein klareres Bild zu erhalten.



  1. . , , -, . - — , . , , -. , , . , . .  — .



    • :

    • — , .

    • — , .

    • — . , : , .

    • — , . , . . . . - , -, .


    , , - . , , - .
  2. , — , , .



    • ? . , , , , . , . , ? . , .

    • ? , , . , . « ». . , , .  — , , . , , , , , . , , ?

    • . , . , . LinkedIn . , . , . , , , , «» .

    • , . . , . , . . .  — () , . . : « . ? : «, ». « ? ?» : « . ». . ,  — ?

    • , . , . , . , A. . ! ! . , . . ! ! - , , . : , , A : , - .

    • . 45 . . , . «», 50 , , . , 15 , . . , , . . 45 ?

    • . , Google. , . : « » « ». . , . , , , . , , « , , ». , , , . , «» , , , «» . , . - , . , . , . , , , , . ! ?
  3. , ? , . , , « ». ?! , ? , , . ? , ? . , , . , . , , , , . , .


Ich bin mir ziemlich sicher, dass ich im gleichen Sinne hätte weitermachen können. Ich habe noch ungefähr acht Punkte in meinen Notizen. Aber im Moment sieht der Artikel eher wie eine Schande als wie ein Blog-Beitrag aus. Ich hoffe, ich konnte einige der Schwierigkeiten teilen, die ich in den letzten sieben Monaten durchgemacht habe. Am Ende habe ich ambivalente Gefühle. Mein jetziger Arbeitgeber hat gerade mein gesamtes Büro entlassen und mich arbeitslos und allein gelassen, um darüber zu schreiben, wie ich das alles hasse. Ich bin mir nicht sicher, ob ich diesen Prozess noch einmal durchlaufen möchte. Ich habe viel über meine Erfahrungen nachgedacht und bin zu einigen einfachen Schlussfolgerungen gekommen:



  • , — 85 000 Java- , , . Python, . embedded C C++ , . Flutter . Clojure, . C#. , -. .

  • Ich verstehe nicht, warum ich keine Software schreiben darf - es gibt eine grundlegende Inkonsistenz zwischen den öffentlichen Behauptungen, dass Unternehmen verzweifelt nach Software-Ingenieuren suchen, und der brutalen Realität, Kandidaten auszusondern. Diese Kodierungsherausforderungen unter starkem Do-or-Die-Druck scheinen eher ein Trübungsmechanismus als ein wertvolles Bewertungsinstrument zu sein. Sie zu benutzen ist wie Polizeikandidaten zu erschießen, bevor man sie fragt, was sie über das Gesetz wissen.

  • Ich weiß nicht, wie es von der anderen Seite aussieht  - Tatsache ist, dass der kritisierte Prozess möglicherweise die einzige Möglichkeit ist, wie Unternehmen gute und schlechte Kandidaten aussortieren können. Ich war noch nie in einem Einstellungsteam und ich bin mir sicher, dass ich nicht viel weiß.


Abschließend habe ich ein paar Gedanken:



  •  — , . , , . . , , ( ) , . , . , . , . , . , , , — , .

  •  — -. , : -. , . , . ? , ? , ? . , . , Agile. , . , . Java Python, Python, ? , , , . , - , .

  • — . , . . , -, . , , , :



    .



    . :






All Articles