Cel mai bun răspuns
Petr este fostul meu student în același an la Departamentul de matematică al Universității de Stat din Moscova. El a fost oarecum ca un antrenor personal pentru mine după cele două finale ale sale ACM ICPC, când sa încheiat în mod oficial cariera lui ACM. De asemenea, am lucrat împreună timp de 2 ani în biroul Google din Moscova și am închiriat un apartament împreună în acești 2 ani, așa că îl cunosc relativ bine.
Cu siguranță aș susține ideea Aditya Răspundeți despre umilința lui. Petr este foarte modest și de fapt nu-i place toată această super-popularitate cu pagina de Facebook creată despre el, etc. Este foarte politicos și nu se arată niciodată în vreun fel. programarea competitivă poate trece fără aceste conversații de tip „gunoi”, cum ar fi „(coder galben) – Oh, eu sunt un prost: a trebuit să-mi trimit din nou cele 250 de puncte. (Coder roșu) – Oh, eu sunt„ un prost: mi-am remediat greu în 30 de secunde după încheierea fazei de codificare. (Petr) – Oh, sunt „un prost: am ratat 2 provocări valide cu privire la problema ușoară din camera mea” – acest lucru fiind spus după ce a rezolvat toate cele trei și a câștigat un SRM sau poate ocupând locul 2. Acest lucru ar putea părea batjocoritor, dar de fapt este doar o analiză sinceră a greșelilor de sine în timpul rundei. Este doar faptul că greșelile sunt în prezent la niveluri foarte diferite pentru acei oameni.
Pot cu siguranță opune-l pe Petr ca câștigător al tuturor competițiilor de programare imaginabile multor câștigători respectivi ai tuturor competițiilor matematice imaginabile prin faptul că poate fi o persoană mult mai socială, este ușor de comunicat și cu siguranță nu este o persoană super-tâmpită la care te-ai aștepta după întâlnire „matematicieni ciudati”, vizionarea unor filme de la Hollywood sau doar amintirea colegului tau de tocilar. Încă nu este un purtător de cuvânt sau ceva de genul acesta, dar este un tip complet obișnuit pentru un străin.
Petr este foarte bun în jocurile de societate strategice. Ne-a plăcut să jucăm Settlers of Catan și am jucat probabil de câteva sute de ori, iar el a fost câștigătorul în jur de 2/3 ori, ceea ce este impresionant, având în vedere un joc de 3-4 jucători și având adversari destul de sofisticați. De asemenea, jucăm „șah suedez” (de fapt „bughouse” în engleză, dar bughouse are reguli ușor diferite), „Carcasson”, „Ticket to Ride” și altele. Este mult mai posibil să-l învingi pe Petr într-unul dintre aceștia decât să-l învingi într-un concurs de programare, dar „e greu”.
Petr este unul dintre programatorii competitivi cu o gândire matematică puternică. Există diferite paradigme în lumea ACM, inclusiv „S-a acceptat ==> algoritmul este corect”, dar se pare că Petr nu transmite aproape niciodată nicio soluție fără a avea o dovadă riguroasă chiar și atunci când o intuiție matematică bună este suficientă și dovada este grea. argumentul este o trăsătură necesară pentru un concurent de top, deoarece cel mai rău lucru pe care l-ai putea face la concurs este să implementezi o soluție greșită.
Petr este (evident) foarte bun în rezolvarea algoritmică a problemelor. În timp ce eu pot ( sau cel puțin ar putea) să-l bată la problemele specifice matematic-olimpiade, există doar câteva clase de probleme algoritmice pe care uneori le-aș putea rezolva teoretic mai repede decât el și, în general, el este mult mai rapid. intuiție în zonă: același lucru care disting Este câștigătorul olimpiadelor matematice, dar s-a aplicat problemelor algoritmice în loc de problemele matematice obișnuite. Deci, chiar dacă sunteți foarte priceput la codificare, scrierea codului fără erori și depanare, de îndată ce problemele sunt suficient de grele, el vă va bate încă din cauza vitezei în rezolvarea teoretică a problemelor. Datorită experienței sale matematice puternice, el nu este intimidat de probleme non-standard, care sunt rare în competițiile IMHO, dar cele mai complexe sunt întotdeauna non-standard. Lui Petr îi plac problemele care pot fi exprimate în 1-2 propoziții simple, dar sunt foarte greu de rezolvat.
Singurul lucru în afară de rezolvarea foarte rapidă a problemelor la nivel de matematică care deosebește cu adevărat Petr de alți concurenți este profunzimea înțelegerii algoritmului său și a programelor sale. Este greu de explicat, dar este motivul principal fie nu face o eroare, fie o găsește în ordinea mărimii mai repede decât alți concurenți de top. El nu trebuie să facă deloc depanare pas cu pas: fie este evident pentru el doar citind codul în care se află bug-ul, sau poate face un cod de depanare „Run to this line”, uită-te la valori a mai multor variabile predefinite în acel moment, inclusiv matrici, seturi și matrici, și găsesc eroarea chiar în acel moment, fără a mai merge. Orice depanare mai mult decât atât pare foarte-foarte rară, iar cheia este că el înțelege care invarianți trebuie să dețină în orice moment al programului și detectează tulburările și apoi știe cumva foarte repede unde în cod ar putea fi încălcați acești invarianți.
Petr scrie întotdeauna un cod foarte curat și ușor de înțeles. El nu a avut niciodată tendința de a scrie cod mai scurt, dar întotdeauna lizibil.Apropo, ajută foarte mult la scrierea codului fără erori inițial și la depanarea ultra-rapidă în programarea competitivă, ceea ce nu este o strategie atât de evidentă ca și pentru programarea industrială.
Evident, el este foarte bun la concentrare, foarte atent și foarte bun la enumerarea tuturor cazurilor posibile riguros în problemele în care este necesar.
Un lucru care te-ar putea surprinde este că nu a dedicat niciodată prea mult timp antrenamentului în programare competitivă. Adică, evident, un băiat care a început să participe la olimpiada All-Russian în informatică și la taberele de pregătire începând cu clasa a VI-a, spre deosebire de clasa a IX-a obișnuită, a primit multă pregătire. Dar el spune întotdeauna că a preferat să aibă mereu și să dedice timp jucării de fotbal cu prietenii săi etc. Nu știu despre anii de școală, dar de fapt nu s-a antrenat decât să participe la concursurile reale în anii ACM la universitate. . Eu și Egor (@ http://www.quora.com/TopCoder/Who-is-Egor-Kulikov/) am fost mereu în laborator încercând să găsim un nou concurs pe internet și să participăm, în timp ce el tocmai venea uneori și ne batjocorea un pic despre asta: ) Apoi TopCoder „a apărut” și, după o anumită reticență în a se alătura („De ce aș face-o? Tomek mă va bate oricum :)”) a găsit sursa regulată de concursuri pe care rareori le lipsește până în zilele noastre. Nici măcar nu mai este surprinzător pentru mine când Petr câștigă un SRM sau o altă rundă personală în timp ce așteaptă îmbarcarea în aeroport și mai are 40 de minute în loc de 75 pentru a finaliza codarea. Dar, în afară de acele concursuri oficiale care sunt numeroase în zilele noastre, dar care erau destul de rare acum 8-10 ani, nu l-am văzut antrenându-se.
Una dintre celelalte particularități este onestitatea deosebită împinsă la limite. Puteți Practic îl percep pe Petr ca pe un program de computer în loc de un simplu muritor în ceea ce privește cuvintele și faptele sale 🙂 Dacă spune ceva, își va ține cuvântul și, ca și cum, se supune oricăror reguli existente de la legi și reguli de concurență la trecere semafoarele. S-ar putea spune că asta ar trebui să facă toată lumea, dar cu adevărat rareori se poate găsi o persoană care să o facă. Și acesta este adesea un model pe care îl folosesc pentru mine, spre deosebire de mentalitatea larg răspândită a „legilor moi” din jurul meu. Deși nu întotdeauna 🙂 Vă puteți aștepta, de asemenea, la o anumită influență asupra dvs., din cauza asta: el vă va vorbi întotdeauna în engleză dacă există oameni care nu înțeleg rusa în jur și va trebui întotdeauna să vă fixați centura de siguranță în mașina 🙂 Chiar dacă te afli pe bancheta din spate 🙂 (ceea ce este o regulă pe care ar trebui să o respecte toată lumea, dar din păcate nu este cazul în lumea reală).
Petr a participat, de asemenea, la majoritatea cursurilor universitare, ceea ce nu este deloc un lucru obișnuit la MSU. Amândoi am absolvit un 5.0 GPA complet, care este o ocazie rară. Nu știu motivul său, al meu a fost de genul „de ce să nu primesc un 5 (un A) dacă este” ușor „. Probabil nu v-ar fi surprins că a fost ușor de studiat pentru Petr, dar include și unele științe umaniste și sport și încă spune ceva important despre persoana respectivă.
Petr are adesea o opinie controversată cu privire la un subiect. Ceea ce mă frapează nu este acest fapt singur, ci este că el are adesea această opinie opusă asupra unui subiect pe care l-ați considerat atât de evident și rezolvat pentru totdeauna pentru toată lumea și este „nu doar o opinie, ci o argumentare foarte puternică pentru ea 🙂 Este literalmente vă face cel puțin să vă reconsiderați atitudinea față de unele lucruri obișnuite la care nici măcar nu v-ați gândi.
De asemenea, se pare că avem ceva împărtășit în atitudinea noastră față de știință. Amândoi nu am obținut încă un doctorat, mai ales deoarece s-a dovedit că lucrul la probleme practice complexe de la Google și Yandex (pentru mine) ne-a atras mult mai mult decât problemele matematice nerezolvate pe care le-am încercat, iar studiile științifice au primit o prioritate redusă. Prietenii „săritură” întrebând de ce nu „Nu ne facem doctoratele, dar pentru mine și presupun pentru Petr că certificatul în sine nu merită nimic dacă nu rezolv ceva cu adevărat important. Sunt încă în căutarea subiectului „meu”, nu sunt sigur despre Petr, dar cred că vom găsi probabil ambele subiecte interesante publicabile accidental în viitor.
Răspuns
Într-o seară, când practicam biliard la Google, un tip m-a întrebat dacă se poate alătura mea. Am jucat 3-4 jocuri și a jucat imaculat, bătându-mă de fiecare dată cu o marjă mare. Am început să joc doar recent și așa nu m-am simțit foarte rău la aceste înfrângeri zdrobitoare. Tot timpul, el nu a vorbit prea mult și, când a fost întrebat, s-a prezentat ca Petr și a menționat că vizitează biroul din Moscova.
După aceea ne-am întâlnit de câteva ori pentru jocuri și o dată în timpul cinei. Nu a menționat niciodată nimic despre programare sau algoritmi. Era la fel ca orice alt Googler pe care l-am întâlnit, cu excepția faptului că vorbea rar și când vorbea, nu era vorba despre problemele grele pe care le rezolvă la locul de muncă.
Câteva zile mai târziu, am dat peste acest articol http://www.technologyreview.com/news/428610/in-the-olympics-of-algorithms-a-russian-keeps/ și am fost uimit să știu cine este acest „Petr”! Am fost total copleșit de smerenia lui.Și dintr-o dată, nu m-am simțit atât de rău când am pierdut la biliard, știind că există și alte lucruri la care el mă poate învinge chiar și cu o marjă mai mare :).