Beste Antwort
Petr ist mein ehemaliger Student im selben Jahr am Institut für Mathematik der Moskauer Staatlichen Universität. Nach seinen beiden ACM ICPC-Finals, als seine ACM-Karriere offiziell endete, war er für mich ein persönlicher Trainer. Wir haben auch 2 Jahre im Moskauer Büro von Google zusammengearbeitet und in diesen 2 Jahren zusammen eine Wohnung gemietet, sodass ich ihn relativ gut kenne.
Ich würde den Punkt der Aditya definitiv unterstützen antworte über seine Demut. Petr ist sehr bescheiden, und er mag eigentlich nicht all diese Super-Popularität mit Facebook-Seiten, die über ihn erstellt wurden usw. Er ist sehr höflich und zeigt sich nie in irgendeiner Weise. Niemand in der Konkurrenzprogrammierung kann ohne diese Trash-Talk-Gespräche wie „(gelber Codierer) – Oh, ich“ ein Dummkopf: Ich musste meine 250-Punkte erneut einreichen. (roter Codierer) – Oh, ich „ein Dummkopf: Ich habe meine Probleme behoben in 30 Sekunden nach dem Ende der Codierungsphase. (Petr) – Oh, ich bin ein Idiot: Ich habe 2 gültige Herausforderungen für das einfache Problem in meinem Zimmer verpasst. Dies wird gesagt, nachdem er alle drei gelöst und ein SRM gewonnen hat oder vielleicht den 2. Platz einnehmen. Dies könnte wie ein Spott von der Seite erscheinen, ist aber eigentlich nur eine aufrichtige Analyse der Fehler während der Runde. Es ist nur so, dass die Fehler für diese Leute derzeit auf sehr unterschiedlichen Ebenen liegen.
Ich kann es definitiv lehne Petr als Gewinner aller erdenklichen Programmierwettbewerbe vielen jeweiligen Gewinnern aller erdenklichen mathematischen Wettbewerbe ab, da er eine viel sozialere Person sein kann, leicht zu kommunizieren ist und definitiv keine super-nerdige Person ist, die man nach einem Treffen erwarten würde „seltsame Mathematiker“, die sich Hollywood-Filme ansehen oder sich nur an Ihren nerdigen Klassenkameraden erinnern. Er ist immer noch kein Sprecher oder so, aber er ist ein ganz normaler Typ für einen Fremden.
Petr ist sehr gut in strategischen Brettspielen. Wir spielten gern Siedler von Catan und spielten wahrscheinlich mehrere hundert Mal, und er war ungefähr zwei bis drei Mal der Gewinner, was bei einem Spiel mit drei bis vier Spielern und bei ziemlich hoch entwickelten Gegnern beeindruckend ist. Wir spielen auch „schwedisches Schach“ (eigentlich „bughouse“ auf Englisch, aber das bughouse hat etwas andere Regeln), „Carcasson“, „Ticket to Ride“ und andere. Es ist viel praktikabler, Petr in einem dieser Wettbewerbe zu schlagen, als ihn in einem Programmierwettbewerb zu schlagen, aber es ist schwer.
Petr ist einer der wettbewerbsfähigen Programmierer mit wirklich starkem mathematischen Denken. Es gibt verschiedene Paradigmen in der ACM-Welt, einschließlich „Es wurde akzeptiert ==> der Algorithmus ist korrekt“, aber es scheint, als würde Petr fast nie eine Lösung vorlegen, ohne einen strengen Beweis zu haben, selbst wenn eine gute mathematische Intuition ausreicht und der Beweis schwierig ist. Was ich tun würde argumentieren ist ein notwendiges Merkmal für einen Top-Konkurrenten, da das Schlimmste, was Sie beim Wettbewerb tun können, darin besteht, eine falsche Lösung zu implementieren.
Petr ist (offensichtlich) sehr gut darin, algorithmische Probleme zu lösen. oder könnte ihn zumindest bei den mathematisch-olympiadenspezifischen Problemen schlagen, es gibt nur wenige Klassen von algorithmischen Problemen, die ich manchmal theoretisch schneller lösen könnte als er, und im allgemeinen Fall ist er viel schneller. Er hat eine superentwickelte Intuition in der Gegend: das gleiche, was unterscheidet Er ist der Gewinner der mathematischen Olympiaden, wurde jedoch auf algorithmische Probleme anstatt auf übliche mathematische Probleme angewendet. Selbst wenn Sie sehr gut im Codieren, Schreiben von fehlerfreiem Code und Debuggen sind, wird er Sie, sobald die Probleme schwer genug sind, wegen der Geschwindigkeit bei der theoretischen Problemlösung immer noch schlagen. Aufgrund seines starken mathematischen Hintergrunds ist er nein eingeschüchtert von nicht standardmäßigen Problemen, die meiner Meinung nach in den Wettbewerben selten sind, aber die komplexesten sind immer nicht standardisiert. Petr mag die Probleme, die in 1-2 einfachen Sätzen ausgedrückt werden können, aber am schwersten zu lösen sind.
Das einzige, was Petr von anderen Konkurrenten unterscheidet, ist das tiefe Verständnis seines Algorithmus und seiner Programme. Es ist schwer zu erklären, aber es ist der Hauptgrund Entweder macht er keinen Fehler oder findet ihn in der Größenordnung schneller als andere Top-Konkurrenten. Er muss nicht wirklich Schritt für Schritt debuggen: Es ist ihm entweder klar, wenn er nur den Code liest, in dem sich der Fehler befindet, oder er kann einen Debugger-Code „In diese Zeile ausführen“ erstellen und sich die Werte ansehen von mehreren vordefinierten Variablen zu diesem Zeitpunkt, einschließlich Arrays, Mengen und Matrizen, und finden Sie den Fehler genau in diesem Moment, ohne weiter zu gehen. Jedes Debuggen darüber hinaus scheint sehr, sehr selten zu sein, und der Schlüssel ist, dass er versteht, welche Invarianten enthalten sein müssen Zu jedem Zeitpunkt im Programm und entdeckt die Störungen, und dann weiß er irgendwie sehr schnell, wo im Code diese Invarianten möglicherweise verletzt werden könnten.
Petr schreibt immer sehr sauberen und verständlichen Code. Er neigte nie dazu zu schreiben kürzerer Code, aber immer lesbar.Übrigens hilft es sehr beim anfänglichen Schreiben von fehlerfreiem Code und beim ultraschnellen Debuggen in der Konkurrenzprogrammierung, was keine so offensichtliche Strategie wie bei der industriellen Programmierung ist.
Offensichtlich ist er sehr gut Konzentriert, sehr aufmerksam und sehr gut darin, alle möglichen Fälle bei den Problemen, bei denen dies erforderlich ist, rigoros aufzuzählen.
Eine Sache, die Sie überraschen könnte, ist, dass er nie zu viel Zeit für die Ausbildung in wettbewerbsfähiger Programmierung aufgewendet hat. Ich meine, offensichtlich hat ein Junge, der angefangen hat, an der Allrussischen Olympiade in Informatik und den Trainingslagern ab der 6. Klasse im Gegensatz zur üblichen 9. Klasse teilzunehmen, viel trainiert. Aber er sagt immer, dass er es vorgezogen hat, immer Zeit zu haben und sich dem Fußballspielen mit seinen Freunden usw. zu widmen. Ich weiß nichts über die Schuljahre, aber er hat tatsächlich nichts anderes trainiert, als an den echten Wettbewerben während seiner ACM-Jahre an der Universität teilzunehmen . Ich und Egor (@ http://www.quora.com/TopCoder/Who-is-Egor-Kulikov/) waren immer im Labor und versuchten, einen neuen Wettbewerb im Internet zu finden und daran teilzunehmen, während er nur manchmal hereinkam und uns ein wenig darüber verspottete: ) Dann „erschien“ TopCoder und nach einiger Zurückhaltung („Warum sollte ich? Tomek wird mich trotzdem schlagen :)“) fand er die regelmäßige Quelle von Wettbewerben, die er bis heute selten verpasst. Es ist für mich nicht einmal mehr überraschend, wenn Petr eine SRM oder eine andere persönliche Runde gewinnt, während er auf das Einsteigen am Flughafen wartet und etwa 40 statt 75 Minuten Zeit hat, um die Codierung abzuschließen. Aber abgesehen von den offiziellen Wettbewerben, die heutzutage zahlreich sind, aber vor 8 bis 10 Jahren noch ziemlich selten waren, habe ich ihn nicht trainieren sehen.
Eine der anderen Besonderheiten ist die besondere Ehrlichkeit, die an ihre Grenzen stößt Im Grunde genommen wird Petr in Bezug auf seine Worte und Taten als Computerprogramm und nicht als Sterblicher wahrgenommen 🙂 Wenn er etwas sagt, wird er sein Wort halten und wie immer alle bestehenden Regeln befolgen, von Gesetzen und Wettbewerbsregeln bis hin zu Überkreuzungen die Ampeln. Man könnte sagen, das sollte jeder tun, aber man kann wirklich selten eine Person finden, die es tatsächlich tut. Und dies ist oft ein Vorbild, das ich für mich selbst benutze, im Gegensatz zu der weit verbreiteten Mentalität von „weichen Gesetzen“ um mich herum. Obwohl nicht immer 🙂 Sie können auch einen gewissen Einfluss auf sich selbst erwarten: Er wird immer auf Englisch mit Ihnen sprechen, wenn es Leute gibt, die kein Russisch verstehen, und Sie müssen immer Ihren Sicherheitsgurt anlegen das Auto 🙂 Auch wenn Sie auf dem Rücksitz sind 🙂 (was eine Regel ist, die jeder befolgen sollte, aber in der realen Welt leider nicht der Fall ist).
Petr besuchte auch die meisten Universitätskurse, was an der MSU überhaupt nicht üblich ist. Wir haben beide mit einem vollen 5,0 GPA abgeschlossen, was eine seltene Gelegenheit ist. Ich kenne seinen Grund dafür nicht, meiner war wie „warum nicht eine 5 (ein A) bekommen, wenn es“ einfach „ist. Sie wären wahrscheinlich nicht überrascht, dass es einfach war, für Petr zu lernen, aber es umfasst auch einige Geistes- und Sportarten und sagt immer noch etwas Wichtiges über die Person aus.
Petr hat oft eine kontroverse Meinung zu einem bestimmten Thema. Was mir auffällt, ist nicht nur diese Tatsache, sondern dass er oft diese entgegengesetzte Meinung zu einem Thema hat, das Sie für alle als so offensichtlich und für immer gelöst angesehen haben, und es ist nicht nur eine Meinung, sondern eine sehr starke Argumentation dafür 🙂 Es ist buchstäblich Sie überdenken zumindest Ihre Einstellung zu einigen alltäglichen Dingen, an die Sie niemals denken würden.
Es scheint auch, dass wir etwas an unserer Einstellung zur Wissenschaft geteilt haben. Wir haben beide meistens noch nicht promoviert Weil sich herausstellte, dass die Arbeit an praktischen komplexen Problemen bei Google und Yandex (für mich) uns viel mehr ansprach als ungelöste mathematische Probleme, die wir versucht haben, und die wissenschaftlichen Studien eine niedrige Priorität hatten. Freunde „springen herum“ und fragen, warum nicht „t wir promovieren, aber für mich und ich gehe ich davon aus, dass das Zertifikat selbst für Petr nichts wert ist, wenn ich etwas wirklich Wichtiges nicht löse.“ Ich bin immer noch auf der Suche nach „meinem“ Thema, ich bin mir bei Petr nicht sicher, aber ich glaube, wir werden wahrscheinlich beide in Zukunft versehentlich einige interessante publizierbare Themen finden.
Antwort
Eines Abends, als ich bei Google Billard übte, fragte mich ein Typ, ob er sich mir anschließen könne. Wir spielten 3-4 Spiele und er spielte makellos und schlug mich jedes Mal mit großem Vorsprung. Ich hatte nur angefangen zu spielen vor kurzem, und so fühlte sich nicht sehr schlecht bei diesen vernichtenden Niederlagen. Die ganze Zeit sprach er nicht viel und stellte sich auf Nachfrage als Petr vor und erwähnte, dass er vom Moskauer Büro aus zu Besuch war.
Danach trafen wir uns ein paar Mal zum Spielen und einmal beim Abendessen. Er erwähnte nie etwas über Programmierung oder Algorithmen. Er war wie jeder andere Googler, den ich getroffen hatte, außer dass er selten sprach und wenn er es tat, ging es nicht um die schwierigen Probleme, die er bei der Arbeit löst.
Wenige Tage später stieß ich auf diesen Artikel http://www.technologyreview.com/news/428610/in-the-olympics-of-algorithms-a-russian-keeps/ und war überwältigt, als ich wusste, wer dieser „Petr“ war! Ich war total überwältigt von seiner Demut.Und plötzlich fühlte ich mich nicht mehr so schlecht darin, am Pool zu verlieren, weil ich wusste, dass es andere Dinge gibt, bei denen er mich noch größer schlagen kann :).