Salut. În această postare vă voi arăta progresul meu de până acum. Fac acest lucru că să mă mențin motivat să continui să muncesc la fel de mult și de asemenea, să va ajut și pe voi să progresați cât mai mult.

Partea 1:

În primul rând, vreau să încep cu a vă spune ce am realizat în cele 136 de zile de mentorat.


Cea mai mare îmbunătățire pe care am acumulat-o este în gândire și nu mă refer doar la gândirea logică. Am devenit mult mai înțelept pe toate planurile aș putea spune. Am învățat cât de importantă este organizarea cu cap a timpului, am învățat cum să iau decizii sub presiune, am învățat o tonă de lucruri despre mindset, cum ar fi de unde vine motivația, cum rămâi concentrat pe perioade mai lungi de timp, sisteme de reward-uri, cum ajungi un om de succes, cum înveți mai eficient, importanța obstacolelor în viață, importanța unei alimentații sănătoase, iar aceste lucruri reprezintă mai puțin de 10% din toate lucrurile pe care le-am acumulat în aceste 4 luni.


Cât despre partea de gândire logică și programare, am ajuns să scriu cod la un nivel foarte înalt. Aș putea spune că vorbesc mai bine c++ decât română. Am învățat să folosesc și am ajuns să stăpânesc multe structuri de date, precum vectori, matrici, queue, deque, stack, set, map, multiset, multimap și multe altele. Îmi aduc aminte că înainte să întru în program îmi doream foarte mult să ajung să pot să folosesc map, deoarece mă gândeam că în momentul în care ajungi stăpânești structuri de date de genul este un indice de cunoștințe foarte ridicat. În momentul de față folosesc map și orice altă structură de date cu lejeritate, deoarece mi-a devenit extrem de intuitiv să le folosesc și să învăț structuri noi. De exemplu, structura deque am dedus-o singur în timpul unui concurs și nici nu a fost nevoie să citesc documentația ca să folosesc funcțiile predefinite din interiorul ei. Am ajuns să pot să citesc documentația limbajului cu o foarte mare ușurință și să o înțeleg. De asemenea am ajuns să înțeleg informațiile și demonstrațiile din cartea de matematică mult mai ușor decât o făceam înainte.


Pe partea de algoritmică m-am dezvoltat cel puțin la fel de mult. Am ajuns să pot să duc la capăt majoritatea problemelor de algoritmică fără să întâmpin dificultăți. Îmi aduc aminte că înainte să intru în program îmi doream să știu cum se stabilește complexitatea de timp și spațiu a programelor și cum le pot optimiza. Exact ca la partea de structuri de date, stabilirea complexităților a devenit o normalitate. Am ajuns să îmi calculez complexitățile în fracțiuni de secundă chiar înainte de a începe să implementez soluția propriu-zisă și am ajuns să mă gândesc la optimizări ale problemelor instant cum înțeleg problema și uneori mă gândesc chiar cum ai putea complica problemele. Am înțeles cât de mult te poate ajuta algoritmica. Eu când am intrat în program aș fi preferat să încep să fac aplicații în loc de aprofundarea cunoștințelor prin rezolvarea de probleme. Nu înțelegeam rostul, adică în mintea mea mă gândeam că la job o să lucrez la aplicații și mă întrebam de ce ar trebui să rezolv probleme de algoritmică. Între timp am aflat că dacă poți să rezolvi problemele de olimpiadă, o să poți să rezolvi orice problema reală a angajatorului. Am înțeles că de fapt un angajator caută gândirea de programator și nu abilitatea de a coda ceva.


Cu ajutorul review-urilor am ajuns să scriu un cod extrem de curat, organizat și ușor de înțeles. Am învățat să dau nume extrem de sugestive și să folosesc comentarii acolo unde este nevoie.


Partea a 2-a:

Cum am ajuns la toate lucrurile acestea? Păi răspunsul simplu este prin muncă.


Poate v-ați întrebat de unde știu că au trecut 136 de zile de când am intrat în program. Știu deoarece totodată sunt 136 zile de când muncesc zi de zi fără nicio pauză. Am ajuns să lucrez cel puțin 5 ore zilnic, deci peste 35 de ore pe săptămână. Am refuzat multe invitații la mare și la “distracție” vara asta. Primeam invitații pe motivul că “e vacanță te poți relaxa”. Pentru mine munca această zilnică a devenit vacanță. Mă simt în vacanță în fiecare zi cu toate că îmi folosesc fiecare minut din zi să fac ceva productiv. Într-o zi normală de vacanță eu lucrez 5 ore la informatică, citesc o oră, fac sport de două ori pe zi, mă uit și la un episod dintr-un serial, petrec timp și cu prietenii și cu familia, dorm 8 ore și nu mă simt obosit deloc. Ba chiar în fiecare dimineață mă trezesc cu un chef de viață enorm în care vreau să devin cât mai bun la ceea ce fac.


Un alt motiv esențial pentru care am progresat este faptul că am făcut 100% din ce mi-au spus mentorii, nu am neglijat niciun aspect. Așadar am cerut code review la toate problemele rezolvate, am dormit în fiecare zi 8 ore, îmi contorizez timpul doar când fac deep working, am participat la rundele de pe codeforces, am făcut upsolving la rundele de pe codeforces și am primit cu brațele deschise orice sfat pe care l-am primit.


Toate lucrurile pe care le-am obținut au venit cu timpul. Nu se poate învăța programare într-o zi / săptămână / lună sau în 8 ore ca în tutorialele de pe Youtube. Toate lucrurile pe care le-am scris reprezintă o parte extrem de mică din tot ce am făcut și am realizat. Am pus poate majoritatea lucrurilor “notabile” cu speranța că o să vă ambiționez și pe voi să faceți ce am făcut eu. Dacă semănați puțin cu mine (adică extrem de competitiv) probabil v-am făcut să vreți să mă întreceți și chiar vă provoc să o faceți 😉.


Nu vreau să închid postarea această cu o concluzie, deoarece simt că abia am început și sunt curios ce urmează 😊