Alle Olimpiadi degli algoritmi, un russo continua a vincere l'oro

Se Vladimir Putin lancia un'occhiata fuori dalla finestra del Cremlino al momento giusto, ha la possibilità di intravedere il miglior programmatore di computer del mondo nell'ufficio di Google a Mosca dall'altra parte del fiume.





Cablato in: Il programmatore di alto livello Petr Mitrichev risolve un problema durante una competizione di codifica del 2010.

Lui è Petr Mitrichev, un russo di 27 anni che lavora sul motore di ricerca di Google e si è guadagnato il titolo di campione nella programmazione competitiva, uno sport in cui gli hacker scrivono codice per computer alla ricerca di premi in denaro, opportunità di viaggio e un profondo appagamento irraggiungibile da nessun'altra parte .

Hai una sensazione di soddisfazione in un concorso quando risolvi un problema, dice Mitrichev, affabile e un po' pallido in una maglietta di Google durante un'intervista sul prato della sede dell'azienda a Mountain View, in California.



Dal 2005, Mitrichev, laureato all'Università statale di Mosca, ha guidato il mondo nella programmazione algoritmica. Questo è il Gran Premio delle categorie di codifica competitive, in cui gli enigmi che coinvolgono infiniti tabelloni di gioco o il livello di decibel di n + 1 mucche richiedono intuizioni matematiche istantanee e dita veloci sulla tastiera. Mitrichev è noto per la sua breve pausa, ovvero inizia a rispondere alle domande non appena le vede.

Per Mitrichev, la programmazione competitiva offre una rara isola di assoluti in un mondo soggettivo. L'aspetto bello è che è totalmente automatico e non c'è alcun giudizio umano coinvolto, dice. È una delle competizioni più leali che abbia mai visto.

Non solo i creatori di algoritmi come Mitrichev vedono la bellezza in questo. Le aziende tecnologiche utilizzano la scena della programmazione sportiva come luogo per scoprire i programmatori più intelligenti e veloci del mondo. Giganti come Facebook e Google sponsorizzano le migliori competizioni, intonacando i loro loghi intorno a sale eventi come Rolex a Wimbledon (vedi Letting Hackers Compete, Facebook Eyes New Talent).



L'ascesa di Mitrichev è iniziata quando aveva 10 anni, dopo aver preso in mano un libro appartenente a suo fratello maggiore sul linguaggio informatico Pascal. Sebbene non ci fosse un computer nella sua casa di Mosca, l'anno successivo si è classificato 60esimo su 100 nella competizione nazionale di programmazione russa per studenti delle scuole superiori. Da quando aveva solo 11 anni, i giudici hanno assegnato al giovane un computer. A 15 anni ha vinto la competizione a titolo definitivo. Poco dopo è entrato nel circuito internazionale, debuttando alle Olimpiadi Internazionali di Informatica a Pechino.

Mitrichev ha guadagnato la sua attuale classifica mondiale solo dopo essersi unito alle leghe principali della programmazione competitiva, una serie di concorsi settimanali e annuali gestiti dalla società del Connecticut TopCoder che attraggono più di 400.000 programmatori da tutto il mondo. Passando ai linguaggi di programmazione da Pascal a C#, ha scalato la classifica fino a conquistare il primo posto nel 2005, posizione che ricopre ancora oggi.

Tale maestria e un contegno sportivo hanno reso Mitrichev un eroe geek. I post del forum analizzano ogni sua esibizione, che pubblica come video online . Al più grande concorso annuale che riunisce centinaia di programmatori nella sala da ballo di un hotel, i grandi schermi trasmettono i feed in diretta dai monitor dei concorrenti. Le sedie vengono preparate con 20 minuti di anticipo per avere una buona visuale di Mitrichev al lavoro.



I mormorii attraversano la folla quando vedono che ha un bug, e di nuovo quando vedono che lo ha risolto, dice Mike Lydon, CTO di TopCoder. Per il laico non c'è niente da vedere. Ma per questi ragazzi questo è affascinante.

I problemi in queste competizioni spesso delineano situazioni fisiche che devono essere descritte matematicamente. Per farlo è necessario scrivere un algoritmo, una sequenza di operazioni da eseguire sui dati. Uno dei problemi nell'ultima competizione di Mitrichev, il 21 luglio, è stato quello di prevedere la posizione dei pezzi in una partita a dama giocata su una scacchiera infinita. I concorrenti guadagnano punti quando i loro programmi gestiscono correttamente i dati dei test. Alcuni concorsi includono una fase di sfida, in cui l'obiettivo è inviare dati che influiscano sul programma di un concorrente.

Ci sono molti soldi in gioco nello sport. I primi premi possono valere $ 25.000 (Mitrichev ne ha vinti diversi) e poiché gli algoritmi guidano attività redditizie nella Silicon Valley e a Wall Street, molti top coder vengono reclutati in lavori ben pagati. (Un rappresentante di Google PR non permetterebbe a Mitrichev di discutere del suo compenso.)



Mitrichev è insolito perché ha continuato a competere, ea vincere, anche dopo aver ottenuto un lavoro del genere: ha iniziato a lavorare in Google nel 2007. Dice che continua a competere perché scrivere codice è rilassante. Le competizioni online settimanali di TopCoder richiedono circa 90 minuti. Puoi guardare un programma televisivo o puoi entrare, dice.

Anche nel tempo libero, Mitrichev è una forza da non sottovalutare. Nel 2011 ha vinto il primo concorso di programmazione di Facebook, l'ormai annuale Coppa hacker . Si è presentato per la finale presso la sede di Facebook e ha raccolto il suo trofeo con il badge di dipendente di Google attaccato ai suoi jeans. Alcuni lo hanno visto come una sfacciata provocazione nella rivalità delle aziende per la supremazia degli hacker. L'avevo lasciato acceso dal giorno prima, dice Mitrichev. Non stavo cercando di fare alcun punto.

Il lavoro di Mitrichev in Google è migliorare il suo strumento di ricerca, costruito forse con gli algoritmi più raffinati e preziosi della storia, che registra quasi cinque miliardi di richieste al giorno. È difficile, dice, perché la maggior parte delle semplici tecniche sono già state implementate, incluso in PageRank, l'iconico algoritmo originariamente scritto dai fondatori di Google. Il miglioramento dei risultati di ricerca ora comporta modifiche più sottili, come la ricerca di sinonimi o altri trucchi linguistici per aiutare a estrarre un significato extra dai termini di ricerca di un utente.

Quando hai un'idea, la implementi come un algoritmo e poi esegui un esperimento, spiega. Se le classifiche di ricerca risultano migliori, se le persone fanno clic sui risultati migliori più spesso nei test dal vivo, il nuovo algoritmo rimane.

La prossima volta che una ricerca su Google restituisce esattamente il risultato che volevi, puoi giudicare tu stesso.

nascondere