Meine Geschichte eines Interviews bei IB IT (Java-Entwickler, Investmentbank) in London mit Beispielen typischer Aufgaben

    Zufällig wollte ich Programmierer werden, während ich noch an einer Universität in Moskau studierte, aber ich war schon außerhalb von Russland und nicht sofort - der Weg war lang und dornig. Ich ging zu vielen Interviews (zuerst habe ich gesucht, dann haben sie mich schon gesucht), habe mich mit den Feinheiten der Arbeit beschäftigt und über das Thema nachgedacht, wie man ein guter Programmierer wird.


    Ein Aspekt, der während der gesamten Karriere relevant ist, ist die Jobsuche und die Passage des Interviews. Ich selbst habe sehr wenige Interviews geführt (4-5), aber viele davon besucht (> 100). Ich hatte in den letzten 7 Jahren eine 3-4-Jobsuche, als ich für ein oder zwei Monate zu einem Vorstellungsgespräch ging, manchmal 1-2-3-mal pro Tag.


    In diesem Artikel möchte ich die Erfahrung des Interviews mitteilen, eine Art Systematisierung geben, wie es aussieht und wie es aussieht, worauf man sich vorbereitet.


    Was ich an den Kommentaren interessiert wäre - wie bei anderen, besonders in Moskau / Russland, gibt es durchaus Unterschiede zu Europa.


    Aufgrund meiner persönlichen Erfahrungen, Gespräche mit Kollegen, Lesen von Foren, Büchern usw. Ich würde das sagen - dies ist meine subjektive Meinung über die Situation als Ganzes, dieser Beitrag behauptet, vollständige Informationen zu sein, und er deckt die meisten, wenn nicht alle Aspekte ab. Wo meine Meinung ich schreibe, meiner Meinung nach. Im Übrigen behaupte ich Objektivität.


    Nahezu alle meine Erfahrungen sind Interviews mit IT-Mitarbeitern bei europäischen Finanzunternehmen für eine Java (Senior) Entwicklerposition, hauptsächlich in London. Es gibt kein Web (in irgendeiner Form, Front / End-Backend), keine Integration, keine Arbeit für den Kunden (durch den Typ - es gibt CRM und das Unternehmen implementiert es in Banken), Amazon, Facebook, Google sind ebenfalls nicht vertreten - ich weiß nicht wie dort und nicht wirklich bemühen, denke ich. Meine Erfahrung fängt bei einem einfachen Programmierer an und endet beim Senior Developer. Team / Techlead / Manager - nein.


    Über das Interview im Allgemeinen


    Der Interviewprozess ist statistisch, d.h. - wir gehen dorthin, wo es interessant ist, etwas wird nicht klappen, nur weil wir kein Glück haben, wir bereits eingestellt haben, einige andere Überlegungen zu Momentum oder Erfahrung reichen nicht aus oder es wurde einfach ein besserer Kandidat gefunden. Ie Es ist sehr schwierig, ein Vorstellungsgespräch zu bestehen, wenn es sich nur um eine Unternehmensposition handelt. In diesem Sinne denke ich, dass Google problematisch ist - er ist so allein. Es gibt viele Banken, die an ähnlichen Dingen beteiligt sind, nicht an einer, weil in der anderen ein interessantes Projekt ist, der Tag erfolgreich sein wird usw.


    Ein Interview ist ein Spiel nach seinen eigenen Regeln, das üblicherweise beachtet wird. Das Wissen um diese Regeln hilft, die Erwartungen und den Prozess der Vorbereitung und des Passierens herauszustellen. Am Ende zeigt es, dass Sie wissen, wie man sich an die Regeln hält und sie akzeptiert, wie man die Gepflogenheiten des Teams berücksichtigt. Niemand schreibt die Sortierung manuell, und es ist unwahrscheinlich, dass selbst synchronisiert geschrieben wird, geschweige denn notify / notifyAll. Es sind nicht weniger Kenntnisse über die interne Struktur der Hashmap erforderlich - dies ist jedoch eine der häufigsten Fragen. 70 Prozent der Interviews können nicht darauf verzichten. Bei dieser Frage kann nur ein Vertrag zwischen Gleichgestellten und Hashcode argumentieren. Zum anderen geht es um die Gesamtvorbereitung des Kandidaten, wie gut er sich der Arbeitsaufgabe nähert (und die Arbeitssuche ist auch eine Art kleines Projekt).


    Von administrativen Fragen


    Vergiss das Warten auf eine Antwort. Keine Antwort - die Antwort ist negativ.
    Manchmal schien es mir ihre Regel des guten Tonus zu sein - sie reagierten nicht, wenn sie nicht interessiert waren. Dies ist ein Beispiel für Personalvermittler - wenn Sie ihm geantwortet haben, dass jetzt keine Arbeit benötigt wird, ist dies eine Art Schwächling. Denn selbst kennzeichnen sie nicht, wenn sie keine Logik brauchen - welche Zeit sie ausgeben. In der Regel, Recruiter, sind das erstaunliche Leute, als mir schien, als wären sie Sirenen - es lohnt sich zu antworten und das ist alles, Sie waren schon in einem Interview, das Sie nicht hätten. Die Fähigkeit, eindeutig Nein zu sagen oder zu artikulieren, was ich brauche, ist eine gute Fähigkeit. Ich vertraue Agenten, aber niemals. Ich nehme nur die Fakten und diejenigen, die aus der Kategorie "Dies ist ein neues Projekt, alles ist sehr gut dort" bewiesen werden kann - das ist Luftzittern. Und wenn "sie bereit sind, das Gehalt um 10.000 zu erhöhen"


    Einige kuriose Informationen - der Agent (Agentur) erhält einen guten Teil des Jahresgehalts eines erfolgreichen Kandidaten (und nach einer Probezeit). Es scheint, dass das Unternehmen ein separates Budget für Agenten hat, d.h. Wenn Sie den gleichen Job ohne Agenten finden, können Sie höchstwahrscheinlich kaum mit einem hohen Gehalt rechnen. Ich verstehe nicht ganz, warum dies in kleinen Unternehmen anders sein kann.


    Von Agenten gibt es natürlich einen Sinn, manchmal sind sie nützlich und gut. Tatsache ist, dass einige sehr interessante Stellen nur durch Agenten zu mir kamen. Aber das Gegenteil ist der Fall, trotz der weit verbreiteten Meinung kann und sollte Arbeit ohne Agenten gefunden werden. Besonders wenn Sie Interesse haben, in einem weniger verständlichen Bereich zu arbeiten - wir nehmen die 20 weltweit führenden Unternehmen dieser Branche mit und besuchen deren Standorte. So fand ich meinen ersten Job in London, mit dem ich sehr zufrieden war.


    Es ist auch erwähnenswert, dass es notwendig ist, sich auf das Interview vorzubereiten. Die Form zu Beginn des Rennens unterscheidet sich nach einem Monat der Interviews erheblich. Fragen werden wiederholt, einfache Puzzles werden einfach, sofort und schnell geschrieben. Die Geschichte seiner Erfahrungen, Stärken, Projekte und Pläne für die Zukunft prallt von den Zähnen ab. Irgendwann wollte ich ein Poster mit der Architektur unseres Systems mitnehmen, so dass es bequemer war zu sagen, was ich tat.


    Im Allgemeinen immer und überall - das Durchschnittsniveau interessiert nicht, es ist notwendig, über dem Durchschnitt zu liegen, einschließlich und über ihren Fähigkeiten, in dem Sinne, dass es notwendig ist, alles in vollen Zügen zu geben.
    Finanzielle IT ist eine riesige Bürokratie, und wir müssen in der Lage sein, darin zu existieren, ja, es werden Ressourcen dafür ausgegeben und alles ist ineffizient, aber dies sind die Regeln und manchmal gibt es einfach keine bessere Option. Von den Vorteilen - es gibt interessante, sehr interessante Projekte, die Bürokratie und Business Analysten nicht wirklich bekommen und sehr gutes Geld bekommen.


    Ich werde die Vorbereitung auf das Interview überhaupt nicht berücksichtigen. Wir glauben, dass dies eine vergangene Phase ist, das notwendige Wissen vorhanden ist und es gibt Einladungen für ein Interview.


    Interviewstufen


    Die Vorstufe ist ein Telefoninterview.


    Häufig fragen sie bei einem Agenten grundlegende Informationen aus einem Lebenslauf an, ob sie jetzt wirklich dort arbeiten, wo Sie arbeiten, Gehaltsvorstellungen und das aktuelle Gehalt (dies ist ein separates Thema - ich erzähle es Ihnen weiter unten), den Visastatus und wie schnell Sie zur Arbeit gelangen können. Der Agent wird in der Regel über das Unternehmen und die Vakanz berichten (aber leider nur allgemeine Informationen) und fragen, ob ich daran interessiert bin und im Allgemeinen, wonach ich suche. Sie fragen ernsthaft nach Motivation, warum Sie suchen und Ihren Job wechseln.


    Wenn das Gespräch direkt mit einem Unternehmensrepräsentanten stattfindet, kann das erste Telefongespräch mit der Personalabteilung oder sofort mit einem Teamrepräsentanten geführt werden, in dem sie in der Regel einen Personalchef einstellen, d. H. Jemand ist ziemlich blau, der die richtigen Kandidaten ermittelt und herausfiltert und ob es sich lohnt, Energie für ein technisches Interview auszugeben.


    Der Vorteil ist, dass Sie sofort weitere Informationen über das Projekt erfahren und ablehnen können, weil nicht interessiert oder umgekehrt noch mehr daran interessiert zu verstehen, dass es sehr interessant ist.


    Es gab ein paar Fälle (aber sie waren stabil), in denen alles schon beim ersten Interview hart anfängt - hallo, hallo, na gut, lassen Sie uns JVA, Algorithmen usw. durchgehen. Nur 40-50 Minuten dieser Fragen im Sinne der Informatikprüfung.


    Über das Geld


    Ich hatte schon lange ein Tabu zu diesem Thema - ich wollte nicht wissen, wie viel meine Kollegen bekamen - es würde mich demotivieren und mein Selbstwertgefühl herabsetzen. Dann wechselte er seinen Standpunkt auf das Gegenteil - das versteckte Gehalt ist für den Arbeitgeber gut, daher möchte ich unter Kollegen nichts dagegen haben, Zahlen zu teilen, aber nicht nur Bekannte. Für London - Sie können die Glastür betrachten und mit 1,5 multiplizieren. Aus irgendeinem Grund ist der obere Teil der Gehälter dort nicht vertreten, obwohl dies der süßeste Teil ist und, was wichtig ist, durchaus erreichbar ist. In jedem Fall ist ein Programmierer in London bei der Bank ein sehr, sehr gutes Geld und der Lebensstandard ist höher als in Moskau (dies ist meine persönliche Meinung, basierend auf meinen Vorstellungen über den Lebensstandard und die Bedürfnisse, da die Städte selbst in Moskau Beschränkungen auferlegen) es scheint, ich hätte nicht an eine Hypothek gedacht, in London, Europa, 2% pro Jahr - Normen,


    Zurück zum Interview verstehe ich, dass der Arbeitgeber einen Kandidaten mit einem bestimmten Betrag sehen möchte. Ich würde sagen, dass es besser ist, in bestimmten Abständen zu antworten, aber wir müssen es vernünftig formulieren, damit es später nicht ausfällt, alles ist gut, aber ich möchte mehr Geld. Im Allgemeinen würde ich sagen, dass + 10-15% des aktuellen Gehalts die durchschnittliche Option ist. Eine fast verdoppelte Gehaltserhöhung ist ebenfalls möglich, und eine jährliche Erhöhung um 10% am aktuellen Platz ist unabhängig von den Agenten. Lassen Sie mich erklären, einerseits, je teurer der Agent verkauft, desto mehr wird er erhalten, aber die Priorität ist es, Sie überhaupt zu verkaufen, und für wie viel 5-10% des Gehaltsunterschieds für einen Agenten darin nicht so groß sind Der Agent selbst wird seine Hände bekommen (diese Annahme).


    Interviewformate


    Org Fragen


    Ich hatte eine interessante Beobachtung, wie das Interview selbst organisiert wurde, wo es stattfand, das Büro selbst und der Besprechungsraum. Bestätigung von Datum, Uhrzeit, Ort - selten wenn nur telefonisch, aber so war es. In der Regel - der Brief. Oft von einem Agenten mit einem Minimum an Informationen. Am angenehmsten ist ein gut formatierter Brief mit Namen und Positionen, mit dem die Besprechung stattfindet und was interessant ist - mit einem Hinweis auf den Verhandlungsraum (was bedeutet, dass sie im Voraus planen können, anstatt fünf Minuten vor dem Interview nach einem kostenlosen Gespräch zu suchen) - die Agenten schicken oft auch ein Interview - außer mir Zeit, weil ich immer auf das Profil der Person schaue, mit der ich möglicherweise arbeiten muss. Wenn es seine Artikel gibt, lese ich sie.
    Übrigens, wenn mehrere Personen angekündigt werden, ist es normal zu erwarten, dass nicht alle von ihnen kommen werden, wenn die wichtigsten von ihnen dies an jemanden übertragen. Aber meiner Meinung nach, es ist schön, wenn alle erklärten Gäste kommen.


    Dann ist alles Standard, er kam herein, meldete sich an der Rezeption, folgte Ihnen nach unten oder schickte einen in den Besprechungsraum. In der Regel kommt ein Mitarbeiter hinter Ihnen her und führt Sie selbst. Die Zeit im Aufzug und auf der Straße kann auch für Verhandlungen genutzt werden.


    Übrigens - auch wie das Unternehmen wie die Anwerbung von Kandidaten aussieht, ist ein Indikator. Ein Interview ist ein wechselseitiger Prozess. Als Unternehmen gehen einige Leute an diesen Prozess heran, wie qualitativ sie interviewt werden sollen. Dies ist auch ein Merkmal des Unternehmens / Teams. Dies ist natürlich subjektiv, es scheint mir, dass es nicht die beste Wahl ist, alle Collections-Interfaces auf der Ebene zu fragen. Sie wissen / wissen es nicht, es ist viel interessanter, ein Thema auszuwählen und weiterzuentwickeln kartieren Sie im Speicher, fragen Sie nach der Zugriffszeit, was beim Aufwärmen passiert, und entwickeln Sie das Thema, wie Elemente in Kollisionslisten (Liste, Baum, welcher Baum usw.) gespeichert werden.


    Wenn das Interview nicht erfolgreich war, lehnten sie es ab, aber Sie haben anscheinend gute Ergebnisse erzielt. Dies ist auch kein Grund, wütend zu sein. Wenn Sie nicht auftauchen und es keinen Funken gibt, ist es besser, nicht zu beginnen. In diesem Sinne gefällt mir die Idee, dass ich, wenn es nicht klappt, vielleicht nicht dorthin gehen muss. Ich mag auch den Ansatz (google übrigens) - es ist besser, keinen guten Mitarbeiter als einen schlechten einzustellen. Das gleiche gilt für den Kandidaten - es ist besser, nicht in ein gutes Unternehmen zu kommen als in ein schlechtes.


    Ich war neugierig auf zwei Dinge - die tatsächliche Startzeit des Interviews (ich kam immer 10 Minuten vor dem Start) und welche Bilder an den Wänden lasten, die Gestaltung von Besprechungsräumen - in der Regel handelt es sich um Besprechungsräume für Bankkunden, die viel Geld in ihre Gestaltung investieren.


    Es gibt einen solchen Moment - ein 2-stündiges Interview mit 4 Personen wird angekündigt, und nach einer Stunde wird Ihnen gedankt. Es ist klar, dass Sie nicht bestanden haben. Ich weiß nicht, wie ich damit umgehen soll, es ist nicht so - ich bin beleidigt, ich habe mich fertig gemacht, lass sie zuhören (oder selbst wenn ich die Interviewpraxis bekomme) - alles ist klar und ja, hart; Es ist eher wahrscheinlich, dass es eine schlechte Leistung war, und wenn Sie fortfahren, wird alles besser. Aber auch hier bedeutet Logik, dass es besser ist, das Gute nicht als das Schlechte einzustellen.


    Telefon


    Das grundlegendste Telefon, wie ich es beschrieben habe. Technische Fragen können sein, aber etwas sehr Schwieriges oder Komplexes ist offensichtlich schwer zu stellen. Implementierungsdetails an Orten, die beim schnellen Sortieren nicht gefragt werden, und wenn dies der Fall ist, müssen sie ausgeführt werden, da dies meiner Meinung nach unzureichend ist.


    Online


    Mein Favorit vor kurzem (es war nicht vor 5-7 Jahren oder war weniger) - Online-Programmierung wie Hackerrank oder Online-Tests.


    Tests mit einer Auswahl der Antwort aus der Liste sind selten und meiner Meinung nach spiegelt der Test die Vorbereitung des Bewerbers nur unzureichend wider, obwohl ich auf eine nur wundervolle, 12 Minuten und 12 recht verständliche Fragen stieß. Daher denke ich, dass dies ein so grober Filter ist.


    Die Online-Programmierung mit dem Interviewer sieht folgendermaßen aus: Gehen Sie zur Website, melden Sie sich an, und Sie haben eine Online-IDE vor sich, die für Sie und den Interviewer sichtbar ist. Er gibt Ihnen Aufgaben, und Sie schreiben sofort Code, führen ihn aus usw. Erst als ich mich traf, als es nur ein Google-Dokument war, ist alles andere eine einfache Online-IDE.


    Hausaufgaben


    Alte und gute Tests, wenn einfach eine Beschreibung des Problems gegeben wird und Sie eine Lösung senden müssen - manchmal für eine Weile, manchmal einfach innerhalb von 1-2-3-4 Tagen.


    Entsprechend dem Format der Aufgaben - Hausaufgaben, in der Regel sehr verständlich und sinnvoll. Dies ist entweder algorithmisch etwas (etwas wie das Finden eines Pfads in einem Labyrinth oder ein kleines System gemäß Berechnungen des Durchschnittswerts aus dem Preisstrom und der Speicherung des neuesten, es ist wenig erforderlich, Klassen zu entwerfen und alles mit einem Schwerpunkt auf niedriger Latenz zu schreiben) oder als ich Ich nenne es auf der OOP - es gibt eine einfache Domäne, Sie müssen nur ein Programm schreiben, das die Aufgabe anzeigt. Zum Beispiel haben wir ein Krankenhaus, Patienten sind darin, jeder Patient erhält eine bestimmte Liste von Medikamenten, Drogen interagieren nach bestimmten Regeln, die zu unterschiedlichen Wirkungen führen (wenn Sie A und B einnehmen, wird der Patient krank X, falls Patienten mit D-Krankheit nicht gegeben wurden Droge und er wird sterben). Wir müssen ein Programm schreiben die nach einer bestimmten Liste von Medikamenten das Ergebnis ihrer Anwendung auf die Liste der Patienten (von denen jeder seine eigene ursprüngliche Krankheit hat) ergibt. Ein anderes Beispiel ist das Schreiben eines Geldautomaten (Aufmerksamkeit auf die atomare Natur von Transaktionen). Ein anderes ist, ein Spiel der Steinpapierschere zu schreiben.


    Online-Programmierung für eine Weile (ohne menschliches Eingreifen von der anderen Seite) - in der Regel ist dies etwas Algorithmisches, wenn man einen Baum durchquert und mit Arrays arbeitet - alles, was Geelforgeeks hat, ist oft subtiler. Leider hängt die Lösung vieler Probleme davon ab, ob sie sich zuvor getroffen hat oder nicht. Oft sind die Aufgaben komplex und werden in Open-Source-Quellen aufgenommen (und formuliert). Es scheint mir, dass dies keine sehr gute Auswahl von Aufgaben ist.


    Die Online-Programmierung mit dem Interviewer ist auch interessant, die Aufgaben sind viel einfacher, aber der Stress und die ungewöhnliche Natur der IDE kommen hinzu. Die Hauptsache ist hier nicht zu schweigen, zu denken und nicht zu eilen, um die Lösung sofort zu schreiben. Nachdenken und schätzen. Ein Beispiel für eine Aufgabe, die sein kann - eine Menge von Werten wird gegeben, und jedem Wert wird eine Wahrscheinlichkeit gegeben. Es ist notwendig, ein Programm zu schreiben, das diese Werte mit einer bestimmten Wahrscheinlichkeit angibt. Meiner Meinung nach kompliziert, aber machbar.
    Ein anderes Beispiel - Es gibt eine lange Operation, die ein Argument als Eingabe verwendet. Es gibt viele Threads, die diese Operation aufrufen und ausführen. Schreiben Sie einen Wrapper, der Aufrufe optimieren würde (Caching sollte mit Schwerpunkt auf Multithreading erfolgen. Wenn der zweite Thread eine Operation mit demselben Wert und derselben Operation im Berechnungsprozess aufruft, müssen Sie die Berechnung nicht erneut ausführen, sondern müssen nur warten). Der Teufel ist bekanntermaßen im Detail und in extremen Fällen.


    Mehr über Agenten - manchmal wissen die Agenten sozusagen, dass sie fragen und sie irgendwie beschreiben können. Dies ist eine graue Fläche, zum einen ist es gut zu wissen, ob das Interview rein technischer Natur ist oder nur ein Gespräch ist, was von Ihnen erwartet wird usw. Es ist ok Aber um bestimmte Aufgaben zu sagen, finde ich das nicht besonders gut, vor allem in Bezug auf das Unternehmen. Der Kandidat sieht sehr schlecht aus, wenn er die Lösung für das Problem magisch schreibt, aber nicht erklären konnte. Daher würde ich es vorziehen, solche Tipps nicht zu verwenden.


    Interview vor Ort


    • Paarprogrammierung, im Wesentlichen die gleiche Online-Programmierung, nur der Interviewer telefoniert nicht, sondern auf einem Stuhl in der Nähe.
    • Hausaufgaben - Aufgabe, Computer, eine Stunde Zeit, Schreibanruf.
    • Code, Design auf Papier / Karton.

    Nur ein Gespräch.


    Durch das Gespräch - 50/50 wird 1 / viele Interviewer sein, im Allgemeinen ist es nicht schlecht, wenn es mehrere gleichzeitig gibt, und es ist interessant, wenn es wie ein Kreuzverhör aussieht - jeder fragt viel.


    Beispiel für typische Aufgaben / Fragen


    Die Kenntnis der Entscheidung garantiert nichts, Ungenauigkeiten, Unvollständigkeit der Entscheidung, die Antwort.
    Die Aufgabe selbst, die Frage ist der Beginn eines Gesprächs zum Thema. So können Sie beispielsweise zwei sortierte Arrays zusammenführen. Dann, wenn wir mehr Arrays als 2 haben. Was ist die Komplexität, wie man optimiert und was, wenn wir dies und das ändern. Meiner Meinung nach ist dies ein sehr guter Ansatz - Sie werden von einem komplexen Algorithmus nicht überrascht, aber es wird etwas einfaches gegeben, und dann beginnt das Gespräch mit einem Thema, einer Komplikation.


    Java-Spezifikation


    • gleich und Hashcode-Vertrag, was passiert, wenn Sie brechen
    • wie hahsmap funktioniert Mit unterschiedlichem Detailgrad? Ausgehend von der Verwendung des Hashcodes (was geschieht, wenn Sie den Kontakt mit Equals unterbrechen) an - CHM, Copy on Write Array, wie innerhalb angeordnet, Lesen / Schreiben blockieren, Sperren von Segmenten, gleichzeitige Ebene.
    • flüchtig (memory barier), passiert vor Semantik
    • Java 7 - chm, atomics, nio (?)
    • Java 8 - Bäche, Lambda
    • GC (Ich denke, ich kann bereits Präsentationen zu diesem Thema machen)
    • Frage nach flüchtigen Arrays, volatile int [] arr; arr [2] = 2; int j = arr [2];
    • Doppelverriegelung (und warum sollte sie nicht verwendet werden)
    • Ich verstand nicht, was Interesse war, aber ich sah es irgendwo als Beispiel für eine interessante Frage:
      Object [] o = new Object [10] (); VS Object b = new Object [10] (); hier kenne ich die Antwort nicht, wenn jemand liest - helfen Sie mit dieser Frage)
    • notify notify All, Producer Consumer und wann Sie Notify nicht anstelle von notifyAll verwenden können

    Algorithmen


    normal schwer


    • Überprüfen des Gleichgewichts der Klammern ({[- Check-for-Balanced-Klammern im Ausdruck)
    • Berechnungsausdruck (bei Angabe einer Zeichenfolge mit Zahlen, + - * / Klammern zur Berechnung des Werts) - Ausdrucksauswertung
    • BFS / DFS - bfs-vs-dfs-binary-tree
    • finde den Pfad im Diagramm vom Scheitelpunkt zu allen, dem kleinsten zwischen zwei Scheitelpunkten - find-if-there-is-a-path-between-two-vertices-in-a-given-graph
    • Sortierstapel - Sortierstapel mit temporärem Stapel
    • Mischen Sie ein Zahlenfeld in zufälliger Reihenfolge

    schwierig


    • Suche nach dem größten identischen Teilstring in zwei Zeichenfolgen - longest-common-substring-java
    • Wenn Sie das kleinste Suffix des Wortes finden und es dem Wort hinzufügen, erhalten Sie ein Palindrom - das längste Palindrom-Präfix
    • Konnektivitätskomponenten in der Grafik finden (Vereinigungsfindung)

    Herausforderungen


    einfach


    • Fibonacci-Zahlen (iterativ, rekursiv, Schwanzrekursion mit Beispielen)
    • Überprüfen Sie die Nummer der Einfachheit halber, drucken Sie alle Primzahlen kleiner als N
    • fuzz buzz (mit 2 Vergleichen ist es interessanter)

    die norm


    • Ringpuffer, Thread (nicht) sicher, (nicht) blockierend.
    • Produzent Verbraucher, anders notify / notifyAll, wenn Sie einen durch einen anderen ersetzen können.
    • Warteschlange erstellen -> Warteschlange durch Wartemeldung blockieren
    • Thread-sichere schwere Funktion führt zum Zwischenspeichern
    • VWAP berechnen (mit Schiebefenster, global)
    • gleitender Mittelwert / Durchschn
    • Finden Sie das größte Dreieck im Zahlenfeld
    • Alle Zahlen sind Zahlen, alle Zahlen sind Zahlen
    • einen gemeinsamen Vorfahren in einem Baum finden (mit unbekannter unbekannter Tiefe)
    • Das Zählen von Bits in einer Zahl ist die durchschnittliche Anzahl von Iterationen, die durchschnittliche Antwort.
    • Berechnet die längste Folge desselben Zeichens in einem String (der String wurde ursprünglich angegeben, der String als Stream).
    • Verschiedene Optionen mit einer Reihe von Aktienkursen und Buy-Sell-Operationen (nur einmal kaufen, N-mal) - Sie müssen den Gewinn maximieren
    • Finde alle gleichen Rotationszeichenketten - check-for-string-rotation-in-java /

    schwierig (aus der Kategorie ist nicht klar, wer sie gemacht hat und für wen)


    • Suche nach einem Ausgang im Labyrinth
    • Ritter auf einem Schachbrett - Ritters Tour, wie viele Züge man braucht, um den Käfig zu erreichen
    • Wortsuche in der Buchstabenmatrix - leetcode-word-search-java
    • dykstra (Berechnen Sie nur die Betroffenen neu, verwenden Sie dazu die Differenz zwischen den aktuellen Schätzungen der Peaks und den neuen Werten).

    Meine Lieblingsaufgaben sind dynamische Programmierung. Sie wurden ein wenig gefragt, aber als sie Pts und Pts in einem steilen Büro nach Pts gefragt hatten, um eine steile Position einzunehmen, schien es mir, dass sie mich genau genommen haben, weil ich dieses Problem gelöst habe, weil dort nichts anderes schwierig war.


    • malen sie hausfarben - leetcode-paint-house-java
    • Es gibt eine Reihe von Decken- und Bodenhöhen. Bei jedem Schritt können wir auf dem Boden oder der Decke bleiben, um einen Balken maximaler Länge zu bauen.
    • Schreiben Sie einen Throthler, um den Preisstrom zu veröffentlichen. Eine einfache Option besteht darin, dass es einen Preisstrom gibt. Wir sollten nur einmal pro Sekunde veröffentlichen. Throttling vs Zusammenbruch.
    • Entwerfen Sie, wie Passwörter brutal erzwungen werden.
    • Es gibt 2 Texte (jeweils mit 1 GB), einen für jeden Benutzer. Benutzer können nur <1000 Bytes austauschen, um zu verstehen, ob ihre Texte in 99% der Fälle gleich sind (es ist wichtig, dass dies nicht bei 99% der Texte funktioniert, sondern in 99% der Fälle beim Vergleich von zwei Texten). Es ist einfach zu reden, weil eine vollständige Formulierung des Problems - wie viele Informationen werden benötigt, damit die Erfolgswahrscheinlichkeit 1 Epsilon ist - dies ist bereits eine große Aufgabe nicht für ein Interview (und nicht nur für den Programmierer, sondern auch für den Mathematiker).

    OOP


    • Schreiben Sie ein Programm, das die Bibliothek emulieren würde
    • ATM (ATM)
    • Krankenhaus - es gibt Patienten mit Krankheiten, es gibt Medikamente, die Krankheiten heilen und bestimmte Nebenwirkungen haben, Beispiel X Medikamente bei vielen Patienten nacheifern.
      um ein Datenspeichersystem für den Navigator zu organisieren (um eine Karte mit Straßen und Häusern zu speichern). Schätze die Anzahl der Indizes, die Anzahl der Kreuzungen.

    Einige interessante Mathematik


    • Maximales quadratisches Dreieck, das in einen Kreis \ Quadrat eingeschrieben ist.
    • Wie groß ist die Wahrscheinlichkeit, dass ein zufälliges Dreieck stumpf wird
    • durchschnittliche Wartezeit für den Bus (der Bus fährt 3-mal pro Stunde nach einem Zeitplan)
    • Züge fahren von der Plattform in östlicher und westlicher Richtung mit der gleichen Frequenz. Ein Mann kommt zum Bahnsteig und steigt in den ersten Zug. Die Frau lebt im Osten, die Herrin im Westen - aus irgendeinem Grund stellt sich heraus, dass er oft zu seiner Frau geht - wie ist das? ..
    • Suchen Sie für ein gegebenes Volumen einen Zylinder mit maximaler / minimaler Fläche
    • Es gibt einen Zufallszahlengenerator, der nur einmal verwendet werden kann. wie man zwei (natürliche) zufallszahlen generiert.

    Allgemeine Designfragen


    • Die Anwendung steht fest - was machen wir jetzt?
    • wie man profiliert, die Erinnerung beobachten
    • Wie testest du deine App?
    • Tdd
    • SOLID
    • Das heute beliebte Thema ist Microservices.

    Ressourcen zur Vorbereitung


    • leetcode
    • Hackerrank
    • Interviewbit
    • Geeksforgeeks
    • und viele, viele andere wie sie (Projekt Euler noch)
    • Glastür
    • google
    • üben üben üben und viel Spaß haben!

    Fühlen Sie sich frei, Ihre Kollegen um ein Interview zu bitten und genießen Sie alles, was Sie tun, einschließlich Interviews und Jobsuche.


    Jetzt auch beliebt: