Interviu: Cosmin Gheorghe

S7012MY
Petru Trimbitas
16 iulie 2012

Cosmin Gheorghe este unul dintre starurile olimpiadei de informatica avand rezultate impresionante (2 medalii de aur si una de argint la olimpiada internationala). Este student al prestigioasei universitati Massachusetts Institute of Technology. Cosmin face pe durata verii un internship la Twitter dupa ce anul trecut a facut unul la Google. El contribuie activ la educarea urmatoarei generatii de olimpici propunand probleme frumoase si fiind implicat in echipa infoarena.

Cum ai inceput cu informatica? Dar cu concursurile?

Cu informatica am inceput din clasa a 5-a. Atunci tocmai incepusem gimnaziul la Tudor Vianu si aveam si ore de informatica la clasa. La inceput eram total pierdut in clasa si nu intelegeam nimic din ce se intampla. Era o materie foarte diferita de celelalte si nu eram deloc obisnuit cu modul de gandire. Din acest motiv am decis ca trebuie sa lucrez singur o perioada macar sa pot intelege cat de cat ceva. Aveam o culegere cu probleme de gimnaziu care ne-a fost recomandata de profesor. Mai intai am inceput sa ma uit peste problemele rezolvate si am incercat sa inteleg rezolvarile. In timp am ajuns sa rezolv singur probleme noi si a inceput sa imi placa modul de gandire.

La concursuri am ajuns pentru ca profesorul a observat ca devenisem oarecum bun la rezolvat probleme si mi-a spus ca poate ar fi bine sa particip la olimpiada. In clasa a 5-a am participat doar la olimpiada dar din clasa a 6-a am ajuns sa particip la tot felul de concursuri prin Bucuresti.

Cum te antrenai pentru olimpiade? Aveai un program fix/sanatos? Ce te motiva sa lucrezi?

Trebuie sa recunosc ca in gimnaziu nu m-am antrenat niciodata serios pentru olimpiade. Era mai mult ca un hobby. Pur si simplu imi placea sa rezolv probleme si sa invat lucruri noi si faceam asta in timpul liber. Cu toate acestea am fost la niste cluburi de informatica care m-au ajutat foarte mult pentru ca aveam pe cine sa intreb. In orice caz in gimnaziu nu consider ca am avut rezultate extraordinare, mai ales ca singurul premiu la nationala am reusit sa il obtin abia in clasa a 8-a si atunci am iesit al treilea.

Am inceput serios sa ma antrenez pentru olimpiade dupa ONI-ul din clasa a 8-a cand am fost destul de dezamagit ca nici atunci nu am reusit sa iau premiul I. Imi doream foarte tare sa reusesc si eu sa ies primul la nationala, dar ce-i drept, nu am lucrat niciodata serios pentru asta. Lucrul asta m-a motivat foarte tare si dupa testarea nationala mi-am dedicat aproape intreg timpul pentru antrenament. Pana la ONI-ul din clasa a 9-a am avut un program foarte serios: ma culcam aproape in fiecare seara la 10-11 seara si ma trezeam la 6-7. Pe langa iesit in oras cam la doua zile cu prieteni si niste activitati fizice (mers la sala, alergat, etc.) imi petreceam tot timpul rezolvand probleme pe infoarena si participand la concursuri. Nu prea imi dau seama cum am reusit sa fiu atat de motivat in perioada aceea, dar dupa clasa a 9-a nu am mai reusit vreodata sa revin la un asemenea program. In clasele care au urmat am lucrat mai putin si mult mai neregulat, dar cred ca in medie 4-5 ore pe zi tot lucram.

Conteaza mai mult antrenamentul pe cont propriu sau ajutorul unui profesor? Care e ponderea ? Ce persoane au avut o influenta in formarea ta?

Ambele conteaza destul de mult. Nu pot sa spun un raport exact. Personal consider ca e mai important antrenamentul pe cont propriu dar ajuta extraordinar de mult sa ai ajutorul unei persoane care sa te indrume. Cu materialele care sunt astazi pe net de unul singur poti invata destul de multe daca te antrenezi serios, dar daca nu lucrezi singur suficient nu conteaza cati profesori ai si cat de buni sunt. Personal eu am avut cam doua faze. Pana sa ajung la ICHB in al doilea semestru al clasei a 9-a, am lucrat foarte mult singur (cel mai mult de pe infoarena). La ICHB am dat de oameni cu multa experienta in domeniul concursurilor si problemele pe care le lucram la pregatiri erau de multe ori suficiente sa ma tina ocupat tot timpul. Eu consider ca rolul cel mai important al unui profesor este sa iti arate ce trebuie invatat, care sunt problemele bune care merita lucrate si sa iti explice lucrurile pe care nu le intelegi de unul singur. In mare parte profesorul iti optimizeaza antrenamentul sa fii cat mai eficient posibil. In rest totul depinde de tine sa depui efortul necesar sa lucrezi si sa intelegi cat mai multe.

Persoanele care au avut cea mai mare influenta in formarea mea sunt: Dan Grigoriu - profesul din clasa a 5-a pentru ca a reusit sa insufle entuziasmul lui pentru informatica mie (calitate mai rar intalnita intre profesori), Mariana Kisch - profesoara de la clubul la care am fost in clasele 7,8,9, si apoi profesorii pe care i-am avut la ICHB: Mircea Pasoi, Silviu Ganceanu, Mugurel Ionut Andreica, Mosoi Alexandru, Sorin Stancu Mara... (sper ca nu am uitat pe nimeni; imi cer scuze daca am omis pe cineva).

Pe langa totate astea e foarte important si grupul de prieteni cu care poti vorbi. Prietenii cu care am putut discuta despre probleme si concursuri m-au ajutat foarte mult pe parcursul timpului. Un grup de prieteni motivati poate usor tine locul unui profesor, odata pentru experientele impartasite in cadrul grupului din care toata lumea poate invata si pentru competia amicala interna ce se formeaza.

Cum iti stapaneai emotiile in timpul concursurilor? Cat conteaza psihicul la olimpiade?

Interesanta intrebare. Au fost multe cazuri cand am pierdut mult timp in concursuri sau am fost neatent la unele lucruri pentru ca eram prea agitat, enervat, grabit, ingrijorat sau stresat ca nu ma prindeam la vreo problema sau nu gaseam bugul intr-o sursa, etc. E destul de greu sa te stapanesti cateodata si nu stiu exact cum este cel mai bine de procedat in cazurile astea. Cred ca cel mai important e sa ramai calm tot timpul si sa te concentrezi cati poti de bine la ce ai de facut, indiferent de cate probleme ai rezolvat si cat timp mai e. Pana la urma daca te agiti sau te ingrijorezi cel mai probabil o sa iti fie si mai greu sa rezolvi ce ai de rezolvat si mai mult timpi o sa pierzi. Eu inainte sa inceapa concursile, ma calmam si ma linisteam incercand sa dorm pe masa pana veneau subiectele (mereu speram ca poate chiar reusesc sa prind cateva minute de somn inainte de proba :). Dupa aceea, incercam sa raman concentrat pe ce am de facut si sa nu ma ingrijorez prea tare de timpul ramas sau de faptul ca nu iese cine stie ce problema (bineinteles, era mult mai simplu de facut asta cand ieseau probleme decat atunci cand nu ieseau :)).

Ce faci/ce faceai in timpul liber ?

Ieseam in oras cu prietenii, incercam sa ma mentin activ (mergeam la sala, mai alergam, jucam ping-pong din cand in cand, etc.), mergeam la filme, jocuri pe calculator din cand in cand, etc. Nimic interesant sau special aici :)

Cum ai ajuns la MIT? De ce n-ai ales o alta facultate? Cum e viata acolo?

De prin gimnaziu visam eu la MIT, apoi pe la sfarsitul liceului am zis ca nu mai aplic in afara ca e prea mare bataia de cap (cu saturile si aplicatiile si toate cele), dar m-am razgandit din nou si am zis ca nu prea e nimic de facut in tara la facultate si cu siguranta ar fi mai bine sa plec afara. Nu stiu exact de ce am ales MIT-ul si nu alta facultate. Doar ca stiam eu din auzite ca e cea mai tare pe engineering asa ca de ce nu? Parea locul ideal pentru o persoana careia ii plac stiintele in general. In plus, MIT a fost singura facultate care m-a aceptat :)) (am aplicat si la Brown si Stanford). Oricum, un sfat pentru toti cei care sunt in dubii sa aplice in afara sau nu si motivul pentru care nu vor sa aplice sunt SAT-urile si aplicatiile: SAT-urile sunt foarte simple. Eu am dat matematica si fizica si a fost foarte simplu. Daca inveti la fizica o saptamana e de ajuns (si eu nu am invatat cine stie ce fizica in scoala), si la matematica doar trebuie sa te antrenezi pe niste examene ca sa intelegi cum merge. Mai greu putin o sa fie la engleza dar nici aia nu e prea grea (cu cateva saptamani de antrenament ar trebui sa fie destul de usor de luat 700+). Cu aplicatiile e putin mai complicat dar si ele pot fi facute destul de usor. Conteaza totusi sa va ganditi serios la ce scrieti acolo pentru ca e important. Pentru aplicatia de MIT cred ca m-am tot gandit 2 luni care ar fi cele mai bune povesti de scris (o sa fie cateva intrebari despre voi si trebuie raspuns in 300-500 cuvinte) si in care ar fi cel mai bun mod in care sa le prezint. La celalalte doua am stat cateva zile si am scris ceva acolo; probabil de aia m-au acceptat doar la MIT.

Despre viata la MIT nu stiu exact ce sa spun. In mare parte e mult de lucru pentru teme si examene. Daca e sa mai faci si altceva pe langa scoala e si mai mult de lucru :). Dar in rest sunt o multime de oameni de treaba si prietenosi cu care sa iti petreci timpul si sa discuti tot felul de lucruri. Ai foarte multe posibilitati sa faci orice (de la tras cu arcul la roboti) si ai sansa sa comunici cu profesori foarte renumiti. Depinde doar de tine sa iti dai interesul sa faci ceva.

Am vazut multe probleme misto propuse de tine. Urmezi niste pasi sau pur si simplu iti vine ideea ?

Nu e foarte simplu sa scoti probleme. De obicei incep sa ma gandesc la ce as vrea o problema sa ceara oarecum luand in calcul cum as vrea sa fie rezolvata (daca sa fie dinamica, ceva cu grafuri, geometrie, etc.). Apoi pur si simplu dau random cat de bine pot pe cerinte pana iese ceva care merita rezolvat. Cateodata iese repede, cateodata deloc :). Astea sunt problemele facute de la 0 de mine. Cateodata mai modific probleme vazute deja intr-un mod in care mi se pare interesant.

Ce planuri de viitor ai?

Ar fi super daca as putea sa iti raspund cu certitudine la intrebarea asta :)). Deocamdata trebuie sa termin facultatea. Inca ma mai gandesc la ce urmeaza dupa.

Ce crezi ca ar trebui facut pentru a crea si alte centre in tara in afara de Bucuresti?

E o discutie serioasa aici. Probabil s-ar putea face un intreg thread pe forum despre asta. Personal, consider ca sunt doua lucruri importante aici: facultatile si fondurile. Bucurestiul este un loc unde gasesti oameni care pot pregati elevi pentru olimpiada pentru ca majoritatea studentilor buni vin la Bucuresti la facultate. Daca in schimb studentii ar prefera sa mearga la facultati din Iasi sau din Cluj ar fi si acolo centre de pregatire (si se intampla asta dar nu la fel ca in Bucuresti).

Apoi sunt importante fondurile. Este necesar sa ai licee care sunt dispuse sa plateasca oameni care sa antreneze elevii. Trebuie sa fim realisti totusi si sa intelegem ca trebuie sa oferi ceva unui student sa prefere sa vina sa iti pregateasca elevii in loc sa iasa in oras cu prietenii; ar fi frumos din partea lui daca ar face totul voluntar dar pana la urma fiecare trebuie sa isi vada si de lucrurile lui. Ar mai intra in discutie si profesorii de la scoala aici, dar din pacate sunt foarte putini capabili sa antreneze elevi la nivel de olimpiada. Aici e o problema intreaga cu sistemul de invatamant si nu vreau sa incep o disputa, dar cred ca si aici sunt importante fondurile (multi prefera sa lucreze la companii in tara sau afara decat sa fie profesori). Nu e usor de rezolvat problema fondurilor, dar e consider ca atat timp cat liceele nu prioritizeaza cat de cat pentru a obtine fonduri pentru a antrena elevi, nu se vor forma organic centre puternice in alte parti ale Romaniei, mai ales in situatia financiara curenta.

Ce sansa le dai celor care nu sunt din Bucuresti sa ajunga ca si tine?

Sunt o multime de resurse online in ziua de astazi de unde se poate invata foarte usor. Singura problema e ca poate sunt prea multe si nu sti exact de unde si ce sa lucrezi sau sa inveti. Pentru asta e foarte util sa gasesti pe cineva care sa iti spuna cam ce e important de facut. E mai greu sa gasesti o astfel de persoana depinzand de unde te afli, dar prin email si pe infoarena sigur se pot rezolva lucruri. Apoi daca ai parte de un grup de prieteni pasionati, puteti incerca sa va ajutati reciproc: de exemplu fiecare poate rezolva anumite probleme si apoi fiecare explica solutiile celorlati; in felul acesta se poate acoperi un numar de probleme mult mai mare decat se poate individual. Daca esti serios si lucrezi poti sa ajungi sa faci bine la olimpiade oriunde te-ai afla.

Povesteste despre internshipurile pe care le-ai facut. Cum au fost experientele si ce cunostinte invatate la concursuri sau in facultate s-au dovedit utile?

Vara trecuta am fost la internship la Google si vara asta fac un internship la Twitter. La intershipuri propriu-zis lucrezi la un proiect. Trebuie sa citesti cod deja existent si sa il intelegi si ori sa modifici codul deja existent ori sa creezi ceva nou care sa se lege cu codul deja scris. Nu prea o sa folosesti vreun algoritm de olimpiada la internship din pacate. Poate o sa mai faci un bf sau ceva dar nu cred ca o sa codezi vreodata un arbore de intervale. Cu toate astea, toate concursurile de algoritmi la care ai participat te ajuta foarte mult la interviuri. Eu unul nu sunt genul de software engineer care sa stie tot ce se intampla cu tehnologiile web si alte lucruri de genu. In afara de c++, nu stiu bine vreun alt limbaj si nici la OOP nu pot sa zic ca stralucesc. Cu toate astea am reusit sa trec de toate interviurile pe care le-am dat pana acum pentru ca am rezolvat aproape toate problemele de algoritmi pe care le-am primit la interviuri. Au fost chiar cazuri cand, dupa ce am rezolvat o problema, am fost intrebat cum as face un server care sa serveasca raspunsurile si am spus ca nu stiu pentru ca nu am facut niciodata un server (cu toate astea am trecut interviul :). Majoritatea problemelor primite la interviuri sunt cam de nivel de clasa a 10 de ONI (foarte rar ceva mai complicat). Structuri de date complicate nu o sa folosesti mai niciodata (hashurile sunt de baza). Pe langa asta niste probleme mai deschise unde trebuie sa iti dai cu parerea la ce ar putea merge si ce nu prea ar merge. In general experienta din timpul concursurilor ajuta foarte mult pentru ca trebuie sa gasesti o solutie cat mai aproape de cea optima in timp limitat. Pe langa asta daca mai sti si altceva pe langa algoritmi, e foarte bine.

Multumim pentru interviu! Daca aveti intrebari, Cosmin va va raspunde in sectiunea de comentarii.

Categorii:
remote content