La începutul carierei de dezvoltator, este adesea intimidant: probleme necunoscute apar, trebuie să înveți multe și faci alegeri dificile. Și în unele cazuri, greșim în aceste alegeri. Este complet normal și nu merită să te critici pentru asta. Dar ceea ce merită să faci este să îți amintești experiența pentru viitor. Eu sunt un dezvoltator senior care, la vremea lui, a făcut o mulțime de greșeli. Mai jos voi povesti despre cele mai grave opt greșeli pe care le-am făcut când eram încă începător în dezvoltare și voi explica cum le-aș fi putut evita.

Am luat prima ofertă care mi-a fost făcută
Când înveți să scrii cod singur sau termini studiile universitare, obținerea primului loc de muncă devine unul dintre cele mai importante obiective. Este ca un far la capătul unui tunel lung.
Însă, găsirea unui loc de muncă nu este simplă. Numărul de persoane care aplică pentru posturi de juniori crește tot mai mult. Ești nevoit , să treci printr-o serie întreagă de interviuri, iar de multe ori acest proces se prelungește considerabil. Având în vedere toate acestea, nu este de mirare că orice ofertă de muncă creează o dorință puternică de a te agăța de ea cu ambele mâini.
Și totuși, aceasta poate fi o idee proastă. Prima mea slujbă era departe de ideal, atât din punctul de vedere al dezvoltării profesionale, cât și al plăcerii de a lucra. Dezvoltatorii urmau deviza „lasă că merge și așa” și nu era acceptat un efort suplimentar. Toți încercau să arunce vina unul pe altul, iar eu eram adesea nevoit să tai colțuri pentru a respecta termenele foarte strânse. Dar cel mai rău era că nu învățam nimic.
La interviuri, întrebările de avertizare îmi scăpau complet, atât de fascinantă era perspectiva de a obține un loc de muncă. Dacă apăreau îndoieli, toate dispăreau din mintea mea imediat ce auzeam că mă angajează! Și încă la un salariu bun!
Și asta a fost o mare greșeală.
Prima muncă are o importanță enormă. Ea oferă o idee generală despre cum este să fii un programator adevărat, iar experiența și învățarea pe care le vei dobândi de la aceasta pot pune bazele pentru întreaga ta carieră viitoare. De aceea, este esențial să te informezi temeinic despre ofertă și angajator înainte de a accepta. O experiență grea, mentori slabi — asta cu siguranță nu ai nevoie.
- Caută informații despre companie. Parcurge site-uri cu recenzii, vizitează site-ul oficial, pur și simplu răsfoiește Internetul și adună opinii. Astfel, vei înțelege mai bine dacă compania corespunde nevoilor și obiectivelor tale.
- Întreabă cunoștințele. Dacă cineva din cercul tău a lucrat pentru acest angajator sau cunoaște pe cineva din echipă, discută personal cu ei. Află ce le-a plăcut, ce nu le-a plăcut și cum evaluează în general experiența.
Nu am pus întrebările necesare la interviuri.
Interviul este cea mai bună oportunitate de a te apropia de companie, așa că pregătește întrebări despre ceea ce vrei să afli de la angajați. Iată câteva exemple:
- Întreabă despre procesul de dezvoltare (ce metodologii urmează? se face inspecția codului? ce strategii de ramificare sunt aplicate?)
- Întreabă despre testare (ce teste sunt efectuate? există persoane speciale care se ocupă doar cu testarea?)
- Întreabă despre cultura organizațională (cât de informală este atmosfera? există vreo asistență pentru juniori?)
Nu m-am decis asupra traiectoriei de dezvoltare.
Cu siguranță, drumul spre a deveni un dezvoltator experimentat este foarte sinuos. Acum există posibilitatea de a alege dintr-o multitudine de limbaje, framework-uri și instrumente. Greșeala mea la începutul carierei a fost că am încercat să învăț totul. Fie că pare amuzant, acest lucru a dus doar la faptul că nu am avansat în mod semnificativ în niciun domeniu. Mai întâi m-am apucat de Java, apoi de jQuery, apoi am trecut la C#, de la care — la C++ ... În loc să aleg un singur limbaj și să îmi concentrez toate eforturile asupra lui, am sărit de la una la alta, pur și simplu în funcție de dispoziție. Te asigur, aceasta este o schemă de învățare extrem de ineficientă.
Aș fi obținut rezultate mai bune și aș fi avansat mai repede în carieră dacă aș fi decis din timp asupra unei traiectorii, adică un set specific de tehnologii, și m-aș fi concentrat asupra acestora. De exemplu, dacă ești frontender, stăpânește JavaScript, CSS/HTML și un framework la alegerea ta. Dacă te ocupi de backend, din nou, ia un limbaj și studiază-l temeinic. Nu trebuie să cunoști atât Python, cât și Java, și C#.
Așa că concentrează-te, stabilește-ți direcția și elaborează un plan care să te ajute să devii profesionist pe drumul ales (iată , care te poate ajuta în asta).
Îmi făceam viața mai complicată cu codul
Așadar, pregătești un test pentru a-ți arăta abilitățile angajatorului sau deja te-ai apucat de prima ta sarcină la prima ta muncă. Te străduiești să impresionezi. Cum poți obține cele mai bune rezultate? Probabil că cea mai bună abordare este să demonstrezi prin execuție tehnica avansată pe care ai învățat-o recent, nu-i așa?
Nu. Aceasta este o greșeală serioasă pe care am făcut-o și eu, și o observ în munca altor juniori mai des decât mi-aș dori. Este foarte comun pentru ei să reinventeze roata sau să caute soluții complicate în încercarea de a-și etala cunoștințele.
Cea mai bună abordare în scrierea codului este exprimată . Căutând simplitate, vei obține un cod clar, cu care va fi ușor de lucrat în viitor (dezvoltatorul care va veni după tine va aprecia acest lucru).
Am uitat că există viață în afara codului
A nu te «deconecta» niciodată — este un obicei prost pe care l-am dezvoltat foarte devreme. Când mă întorceam acasă la sfârșitul zilei, luam regulat laptopul de muncă cu mine și petreceam ore întregi în fața lui pentru a încheia o sarcină sau a rezolva un bug, deși ambele ar fi putut foarte bine să aștepte până dimineața. Așa cum era de așteptat, acest regim genera stres și m-am epuizat repede.
Motivul pentru acest comportament era, parțial, dorința mea de a face totul cât mai repede. Cu toate acestea, în realitate, ar fi trebuit să înțeleg că muncile sunt un proces pe termen lung, iar, cu rare excepții, astăzi nerealizările pot fi amânate cu ușurință pentru mâine. Este foarte important să vă schimbați periodic perspectiva și să vă amintiți că viața nu se rezumă doar la muncă — există prieteni, familie, hobby-uri și distracții. Desigur, dacă vă face plăcere să stați până la răsărit lucrând la cod, faceți-o! Dar când aceasta nu mai aduce bucurie, opriți-vă și gândiți-vă dacă nu ar trebui să faceți altceva. Nu lucrăm chiar în ultima zi!
Am evitat să spun: „Nu știu”
A rămâne blocat în procesul de soluționare a unei probleme sau de îndeplinire a unei sarcini este un lucru obișnuit, chiar și cei mai seniori dintre seniori se confruntă cu asta. Când eram junior, spuneam „Nu știu” mai rar decât ar fi trebuit și aceasta era o greșeală. Dacă cineva din conducere îmi punea o întrebare și eu nu știam răspunsul, încercam să produc un fel de confuzie, în loc să recunosc pur și simplu.
Mi se părea că dacă spun „Nu știu”, oamenii ar avea impresia că nu mă pricep la ceea ce fac. În realitate, nu este deloc așa; nu există oameni care să știe tot. Așadar, dacă cineva vă întreabă despre ceva ce nu știți, spuneți-i. Această abordare are mai multe avantaje:
- Este cinstit — nu induceți în eroare persoana care întreabă.
- Există șansa ca cineva să vă explice și astfel să învățați ceva nou.
- Este un act de respect — nu oricine poate recunoaște că nu știe ceva.
M-am grăbit să avansez.
Probabil ați auzit zicala: „Înainte de a alerga, învață să mergi”. Niciunde nu este mai adevărată decât în domeniul programării web. Când te angajezi prima dată ca junior, te face să vrei să iei taurul de coarne și să te apuci de un proiect mare și complicat. Îți trec chiar prin minte gânduri despre cum să câștigi mai repede o promovare la următorul nivel!
Ambițiile sunt, desigur, importante, dar în realitate, nimeni nu îi va oferi unui junior ceva similar de la prima întâlnire. La începutul carierei, cel mai probabil, vei primi sarcini simple și bug-uri de corectat. Nu este cea mai interesantă activitate din lume, dar nu ai de ales. Acest lucru îți va permite să te familiarizezi treptat cu codul și să înveți toate procesele. În același timp, superiorii tăi au oportunitatea de a observa cum te integrezi în echipă și ce faci cel mai bine.
Greșeala mea a fost că mă enervam pe aceste sarcini minore și asta mă distrăgea de la muncă. Fii răbdător, fă tot ce ți se cere cu seriozitate și în curând vei avea parte de ceva mai interesant.
Nu m-am implicat în comunitate și nu mi-am făcut legături.
Dezvoltatorii au o comunitate excelentă: sunt mereu gata să ajute, să ofere feedback și chiar să încurajeze. Programarea este un domeniu complex și uneori foarte epuizant. Pentru mine, perioada de junior ar fi fost mai ușoară dacă aș fi început să comunic activ cu colegii de la bun început.
Contactele cu comunitatea sunt, de asemenea, foarte utile pentru autoeducație. Poți contribui la proiecte open-source, studia codul altora, observa cum programatorii colaborează în proiecte. Toate acestea sunt abilități pe care le poți folosi la locul de muncă principal și care, în timp, te vor face un specialist bun.
Alege comunități care te interesează — printre opțiuni aș putea menționa freeCodeCamp, CodeNewbies, 100DaysOfCode — și implică-te! De asemenea, poți participa la întâlniri locale în orașul tău (caută pe meetup.com).
În cele din urmă, în acest fel vei putea dezvolta relații profesionale. Practic, relațiile sunt pur și simplu acei oameni din domeniul tău cu care comunici. De ce sunt acestea importante? Ei bine, să spunem că într-o zi vrei să schimbi locul de muncă. Dacă te adresezi relațiilor tale, cineva s-ar putea să îți recomande un loc de muncă potrivit sau chiar să te recomande angajatorului. Aceasta îți va oferi un avantaj considerabil la interviu — cineva a vorbit deja în favoarea ta, nu mai ești „încă un CV dintr-un teanc”.
Asta e tot, mulțumesc pentru atenție!
Sursă: habr.com
