Studenția programatorului la FMI


Când am intrat la facultate în 2011, aveam multe întrebări despre... tot - spre disperarea unora :D (aplicațiile diverselor tehnologii în industrie, cercetarea în informatică, ce însemna să fii programator, care sunt alternativele după absolvire, la ce să țintim, de ce oportunități să ne folosim pe parcursul facultății ș.a.m.d.) Nu toate răspunsurile erau în Ghidul Bobocului. Era o senzație tare neplăcută să încerci să pui întrebări despre ce nu știi că nu știi însă prioritatea mea era să explorez și să aflu cât mai multe despre noua etapă în viață - studenția programatorului. În continuare, voi încerca să fac trecerea de la liceu la studenție mai clară și mai lină.

Dedic această postare studenților care își încep acum peripețiile în tehnologie la Facultatea de Matematică și Informatică, Universitatea din București. Success!


Trei șocuri ale vieții de student


Șocul #1. Libertatea
La facultate, ai parte de mai multă libertate față de liceu. Libertatea este o sabie cu două tăișuri - pe de-o parte îți oferă timpul de a te concentra pe proiectele tale personale mai bine ca în liceu, pe de altă parte te poate dezorienta din moment ce nimeni nu te mai obligă să înveți ceva anume.

Aici, tu îți decizi strategia și ritmul de învățare.

Șocul #2. Disciplina de sine
Sunt mai multe resurse la îndemână: biblioteca centrală, cercetătorii, profesorii, comunitățile focusate pe o tehnologie anume, platformele de cursuri online. Acestea sunt accesibile încă din timpul liceului doar că, în general, nu eram conștienți de existența lor. Folosește-te de ele că te vor ajuta atât la examene cât și la propriile tale proiecte. Ca să nu te pierzi în marea de resurse, mai ales dacă nu știi încă ce vrei să faci în viață, începe prin a explora fiecare subdomeniu, pe rând.

Se va apela tot mai mult la abilitățile tale de gestionare a timpului și a priorităților pentru a ține pasul cu materia predată, temele, viața studențească și propriile tale planuri.

Șocul #3. Exercițiu
Pregătește-te să lucrezi cum n-ai mai lucrat până acum. Sunt multe lucruri interesante de învățat și încă pe atâtea care or să îți placă dar nu vor fi incluse în materie. Dacă vrei să fii întradevăr bună la ceva trebuie să exersezi. Un articol ce surprinde punctele cheie ale acestui subiect este: 15 sfaturi despre cum poți deveni un programator bun venite de la specialiști români.

Talentul nu este suficient pe cont propriu - este nevoie să îl antrenezi și să îl îmblânzești ca să te ajute în loc să te încurce.

Cartea cea mai bună pentru trecerea de la liceu la facultate este The Young Entrepreneur's Guide to Life de Steven Elliot Wolf. (o puteți asculta gratis pe Audible via Amazon dacă vă luați un free trial)


Internship-uri


Un internship este o perioadă de 3 luni, pe care un student o petrece ca angajat la o companie, de obicei în vacanța de vară, în țară sau peste hotare. Pe durata internship-ului, vei lucra la unul sau mai multe proiecte ale echipei de care aparții (un site, o aplicație mobilă, o librărie etc.) și vei vedea cum este viața în compania respectivă și ce înseamnă să ai impact asupra produsului la care lucrezi. Un internship este întotdeauna plătit. Companiile iau studenți în internship-uri pentru a aduce idei noi și entuziasm printre echipele lor și pentru a vedea potențialul studenților. La final, le pot face o ofertă de a deveni angajați pe perioadă nedeterminată după ce își termină licența.

În fiecare toamnă, la FMI vin câteva companii din străinătate care își prezintă internshipurile: Microsoft, Google, Facebook, Twitter etc. Unele companii se prezintă numai la Politehnică - mergi și acolo că poți participa. Nu merită să irosești oportunități de a vorbi cu recruiterii, de a-ți face contacte și de a asculta inginerii veniți pentru a răspunde la întrebările studenților (potențiali colegi de birou). Timiditatea este de acum înainte un impediement.

Dacă ai un profil atrăgător de linkedin, te poți trezi cu diverse oferte pentru interviu de la diverse companii.

Sezonul pentru internship-urile din România este primăvara și se găsesc pe http://stagiipebune.ro/ dar și la târgul de Cariere organizat în fiecare primăvara în FMI.

Aplicarea pentru internship se face trimițând un resume bine făcut unui recruiter pe e-mail sau pe site-ul companiei la secția cariere sau university. (exemplu: https://careers.microsoft.com/students) Dacă resume-ul tău este ales, vei primi un e-mail care te invită să îți alegi data și ora petru primul interviu (față în față (se mai numește și on site) sau telefonic). Dacă treci primul interviu, te mai cheamă la alte câteva. De exemplu, în 2012, la Microsoft, primul interviu a fost în București, iar al doilea a fost în Varșovia (cazarea, transportul și mâncarea au fost acoperite de companie) și a constat în patru interviuri, unul cu câte o altă echipă (Azure, Bing, Research și SQL). Într-o companie cu mai multe produse cum e Microsoft, fiecare produs are divizia sa, în general tehnologiile folosite și scopurile lor fiind diferite așa că au loc interviuri diferite deoarece caută abilități diferite în candidații lor.

Interviul durează 45 de minute și este compus din: problemele pe care intervievatorul ți le dă de rezolvat și întrebările tale după ce ai terminat de rezolvat problemele. Pentru internship, se dau numai algoritmi și ocazional probleme de testare. Vor doar să vadă cum găsești corner cases și cât de atentă și de organizată ești în atacarea problemei. Nu este obligatoriu să rezolvi până la final problema dar nu te baza pe asta; prioritatea intervievatorului este să îți vadă atitudinea și cum gândești. Vezi cartea Cracking the Coding Interview.


Voluntariat, concursuri și evenimente


Studenția este perioada propice pentru voluntariat deoarece experiențele minunate pe care le vei trăi oferindu-ți ajutorul la diverse proiecte or să-ți aducă exercițiu prețios, contacte și amintiri frumoase în schimb. Nu sunt de acord cu "voluntariatul" în cadrul companiilor pentru a dobândi experiență. Codul de calitate se scrie cu mult efort, iar tu, ca și programator, îți vinzi serviciile, nu ți le oferi degeaba. Experiența pe care o dobândești din voluntariatul în cadrul asociațiilor studențești este mai mult pe partea de soft skills și de management. De exemplu, ai ocazia să participi la multe training-uri ce acoperă o gamă largă de abilități cum ar fi vorbitul în public, dezvoltarea personala, scrierea de proiecte, comunicare, Neuro Linguistic Programming etc. Ai ocazia de a ține training-uri dacă te interesează. Îți poți implementa ideile dacă vezi o problemă și vii cu o soluție fezabilă și atunci tu vei fi responsabilă de gestionarea proiectului respectiv. Tutorial System din FMI, Standul ASMI la admitere, Cariere și Laboratorul de robotică s-au născut astfel - la inițiativa unor studenți. Aceste proiecte s-au reimplementat în fiecare an datorită succesului pe care l-au avut.

Sunt multe concursuri de informatică ce variază de la algoritmi și idei de business la sumo robotic și the next big thing în tehnologie. Concursurile acestea au loc atât în România cât și în străinătate sau online. Este bine de știut ce îți oferă paleta de concursui pentru a-ți alege unul (sau câteva) pe care să te concentrezi.

  • Algoritmi
    • ACM (București)
    • Infoarena (online)
    • Facebook Hacker Cup (online)
  • Business
    • Innovation Labs (București)
    • EF (accelerator în Londra)
    • Imagine with Orange (Paris)
  • Robotică
    • Robo AI Code Challenge (FMI)
    • http://www.robotchallenge.org/competition/
  • The Next Big Thing
    • Microsoft's Imagine Cup (București)
    • Infomatrix (București)
  • Hackathons (cele mai faine dintre concursuri)
    • diferă în fiecare an
  • Gaming
    • http://csgames.org/corpo/
  • Altele (google: computer science competitions 2016)
    • http://studentcompetitions.com/competitions

Este important să mergi la evenimente ce au legătura cu industria tehnologiei și la bootcamp-uri. Așa cunoști oameni cu diverse experiențe, însă cu toți ai în comun interesul pentru tehnologie. Așa se întâlnesc recruiteri, specialiști, cercetători, ingineri, programatori, vorbitori în public, gamer-i, investitori, oameni de afaceri și pasionați de informatică. Contează să ai o rețea socială solid ancorată în lumea informaticii. Până la urmă, faci parte din ea acum. La conferințele cu plată, aplică pentru bursele lor către studenți ca să intrii gratis (uneori ai și transportul acoperit).

  • Girls In Tech Romania (București)
  • How To Web (București)
  • Internet and Mobile World (București)
  • Tech Hub Bucharest (București)
  • Softbinator Talks (București)
  • Microsoft Summit (București)
  • Amazon Summit (USA)
  • Apple Conference (USA)
  • Google I/O (USA) (au mai multe evenimente peste tot prin lume și oferă și burse)
  • Leaders School (România)
  • AI-MAS (târg de Inteligență Artificială la Politehnică)


Cum să scrii un resume util (atât pentru tine cât și pentru recruiter)


Resume-ul este o pagină care te prezintă în 8 secunde. El te recomandă ca potențial angajat la o companie IT. Modul în care este structurat și formulat comunică multe despre tine așa că asigură-te că spune ce vrei tu despre tine.

Un resume începe cu numele, e-mailul și site-ul sau link-ul către contul tău de github (dacă ai acolo proiecte pe care vrei să le arăți). Apoi urmează un paragraf scurt în care te descrii pe tine și visul tău (scopul tău în viață). Poți include și un citat care te reprezintă dacă ai unul.

La secțiunea educație, enumeri instituțiile de învățământ la care ai studiat până în prezent. Enumerarea se face descrescător începând cu cea mai recentă, adică facultatea. Menționează luna și anul începerii și terminării activității la o instituție.

În zona experienței, pune proiectele personale la care ai mai lucrat (care au legătură cu tehnologia sau cu voluntariatul). Poți adăuga o propoziție pentru fiecare proiect care descrie succint cel mai palpitant lucru din cadrul său. Pe viitor, în zona aceasta de resume, îți vei etala internship-urile și pozițiile pe care le vei ocupa pe la diverse companii, startup-uri, asociații studențești și ONG-uri. 

La partea de competiții și certificate, menționează concursurile la care ai participat, din nou, în ordinea descrescatoare a datei. Certificatele se referă la diplome obținute în urma cursurilor din afara facultății sau liceului. Coursera este platforma ideală pentru a învăța lucruri noi în tehnologie. Toate cursurile sunt gratuite, iar la final poți lua un Certificate of Accomplishment dacă ai un punctaj de trecere. Cursurile cele mai populare pentru programatori sunt Algorithms: Design and Analysis și Machine Learning, însă sunt cursuri pe multe alte arii cum ar fi Cyber Security, Natural Language Processing, Game Design, Software Development, Data Mining, Cloud Computing etc.

Zona de abilități va conține limbajele de programare și limbile străine pe care le cunoști și câteva soft skills pe care te simți stăpână, de exemplu teamwork sau time management. Fiecare limbaj și limbă străină este însoțit de nivelul de competență (începător, mediu sau avansat). La final, mai poți adăuga ce îți place să faci în timpul liber, de exemplu ciclismul sau mersul pe munte (recruiter-ii angajează oameni, nu roboți).

Dacă te pasionează design-ul, dă-i frâu liber imaginației și aranjează-ți informația cum vrei în pagină. Totuși, trebuie să se vadă clar detaliile. Dacă resume-ul arată neglijent, nu te va pune în cea mai bună lumină. Aici sunt câteva exemple pentru a stimula creativitatea, însă nu exagerați.

În final, pentru a vedea mai multe exemple de computer science resumes (hint: google it) te mai poți uita pe profiluri de linkedin din lumea tehnologiei.

Un bagaj imens de cunoștințe nu-ți va fi util dacă nu știi să le aplici astfel încât să aduci valoare în lume. Va fi ca un bolid frumos fără benzină. Mergi la concursuri, mergi și cunoaște lume nouă la evenimente, fă voluntariat și fă proiecte care îți stârnesc curiozitatea deși te intimidează la început - vei găsi soluția (uneori este o funcție sau o ecuație mai pretențioasă care îți ajută codul :D). Vei aduna, chiar și după primul an de facultate, experiență valoroasă care o să-i dea greutate resume-ului.



În următorii trei ani, tehnologia va face parte din drumul tău - o să fie o cursă faină cu peripeții cât să umpli un volum. Informatica este o garnitură care merge la orice domeniu. Ține de creativitatea ta să îi găsești întrebuințări și să îi dai valoare. Nu-ți fie frică să gândești la scară mare - îndrăznește și joacă-te cu imaginația ta. Implementarea este ultima grijă de pe listă și ține minte că orice problemă are o soluție de un fel sau altul.

Ce ți-am scris până acum sunt doar sfaturi orientative - nu sunt reguli stricte si nici formule matematice care trebuiesc aplicate cu strictețe pentru un anumit efect. Consultă-le ca pe o hartă la un popas și apoi bucură-te de drum. Nu lăsa harta să înlocuiască drumul - nu merge cu harta întinsă pe parbriz. Bucuria unei călătorii nu este în urmărirea hărții ci în explorarea necunoscutului.

Mantra: Dacă nu știi ceva, google it.

Postarea aceasta doar ți-a arătat câteva căi de acces. De acum înainte explorezi singură.
Nu te opri niciodată din învățat, oriunde ai fi.
Have fun! ;)