
Fotografie din filmul „Harry Potter și prizonierul din Azkaban”
Problema cu lumea asta este că oamenii educați sunt plini de îndoieli, dar idioții sunt plini de încredere.
Charles bukowski
Am predat recent o altă lecție de programare individuală. Spre deosebire de orele obișnuite, subiectul nu era construcția limbii sau rezolvarea problemelor. Studentul și-a împărtășit preocupările cu privire la viitoarea angajare. Studentul însuși era destul de deștept. Unul dintre cei care vine la curs finalizează întregul program mai repede decât oricine altcineva și cu soluții originale, dar tot timpul se subestimează sincer. După părerea mea, astfel de îndoieli apar doar din lipsa de informare. Am încercat să umplu acest gol improvizat în timpul lecției.
Întrebările erau cam așa:
- În fiecare an, mulți studenți absolvă universitățile și toți pleacă în căutarea de muncă. Sunt mulți oameni. Probabil că îi vor angaja pe cei mai buni, dar nu voi obține un loc.
- Ce se întâmplă dacă încurc și sunt concediat imediat?
- Dacă în timpul lucrului își dau seama că sunt prost și mă dau afară?
Acest student nu a fost prima persoană căreia i-am răspuns la astfel de întrebări. Mulți oameni le au și, de obicei, trebuie să li se spună fără pregătire. De data aceasta am decis să-mi notez monologul într-un caiet. Am crezut că vor fi câteva paragrafe, dar a ajuns să fie suficient pentru un articol întreg.
Articolul descrie punctul de vedere din punctul meu de vedere și pe baza experienței mele. Cu toate acestea, lumea noastră este foarte diversă și în ea se întâmplă lucruri uimitoare. Dacă nu sunteți de acord cu ceva sau experiența dvs. este diferită, vă rugăm să scrieți un comentariu.
Articolul a fost scris de un dezvoltator pentru dezvoltatori. Cu toate acestea, dacă intenționați să faceți testare, administrare sau orice altceva în IT, atunci unele sfaturi vă vor fi de asemenea utile.
Nu te vor angaja deloc
Când îți imaginezi că multe universități absolvă sute de studenți în fiecare an, devine incomod. Cum să concurezi cu o mulțime atât de mare?
Din păcate, nu toți absolvenții au suficientă pregătire tehnică. Încercați să întrebați un student universitar pe care îl cunoașteți: cum obțin oamenii din grupul său admiterea la examene la discipline precum „baze de date” sau „fundamente ale algoritmizării și programării”? Într-un grup de 30 de persoane, în cel mai bun caz, vor fi 3-5 tipi „avansați” care de fapt au făcut totul ei înșiși. Restul pur și simplu copiați de pe ele, înghesuiți răspunsurile la întrebări și trimiteți.
Așa era când am studiat pe cont propriu. Cu toate acestea, experiența mea poate să nu fie reprezentativă. Așa că am pus această întrebare mai multor studenți diferiți. Răspunsul a fost cam același. Respondenții proveneau din diferite universități și colegii. Voi lăsa discuții despre motivele din afara domeniului acestui articol. Nu am suficient timp pentru un studiu cu drepturi depline, așa că voi trage o concluzie din faptele disponibile.
Dintre sutele de absolvenți, doar câteva zeci sunt de interes pentru angajatori
Puțini absolvenți pot oferi o competiție reală pentru un student capabil și cu o bună pregătire. Totuși, chiar dacă ai studiat conștiincios, după primul interviu cel mai probabil nu vei fi angajat. După al doilea, probabil și. Totul poate să iasă bine, dar este mai bine să te pregătești nu pentru un asalt, ci pentru un asediu. O încercare nereușită de a obține un loc de muncă este doar un motiv pentru a lucra la greșelile tale și a încerca din nou. Nu voi vorbi despre pregătirea pentru interviuri. Pe internet s-au scris deja multe despre acest subiect. Voi spune doar că există nuanțe în interviu pe care probabil că programul tău de formare nu va lua timp să le explice. Căutați singuri aceste informații, se poate reduce numărul de încercări.
Nebunia este repetarea exactă a aceleiași acțiuni. Din când în când, în speranța unei schimbări
Albert Einstein
Pentru a împiedica interviurile să se transforme în nebunie, trebuie să vă îmbunătățiți după fiecare nouă încercare. Memorează sau notează întrebările care ți-au fost adresate în timpul interviului. Când vă întoarceți acasă, uitați-vă prin această listă și verificați-vă folosind internetul. Astfel vei înțelege unde ai greșit tu și intervievatorul. Se întâmplă și asta. Examinați sau studiați subiectele la care ați avut rezultate slabe și încercați din nou.
În plus, există o sezonalitate pronunțată a pieței muncii. Companiile inteligente planifică angajarea în funcție de datele de absolvire. În primăvară sunt mai multe locuri libere pentru nou-veniți decât în alte perioade. Cu toate acestea, concurența este mai mare în acest moment.
Prost - fii concediat
Când este angajată o persoană fără experiență, există așteptări corespunzătoare pentru el.
Un nou venit la post este de așteptat să:
- Cunoașterea bazei tehnice generale
- Studierea specificului domeniului subiect al companiei
- Stăpânirea instrumentelor și practicilor utilizate
Unele organizații oferă cursuri de formare pentru noii veniți cu privire la tehnologiile utilizate, instrumentele și procedurile locale. De exemplu, bunele maniere atunci când utilizați e-mailul corporativ, procedura de modificare a documentelor într-un wiki, caracteristicile locale de lucru cu VCS și un instrument de urmărire a erorilor.
Există și cursuri de inițiere tehnică, dar utilitatea lor este discutabilă. Daca vine vorba de angajare, atunci angajatorii sunt convinsi ca ai un nivel suficient de cunostinte. Cel mai bine este să urmați pur și simplu astfel de cursuri cu bună-credință, ca o mică formalitate. Poate că va fi de fapt ceva util în ele.
Când începeți să lucrați, amintiți-vă că unui începător nu i se va încredința cu siguranță rezolvarea unei sarcini urgente, complexe și în același timp importantă. Cel mai probabil va exista doar una dintre aceste proprietăți. Sau simplu, dar urgent: remediați aspectul, trimiteți cuiva un fișier, reproduceți problema. Sau dificil, dar fără nicio speranță de finalizare - astfel încât începătorul să colecteze mai mult greblă. Sau important, dar experimental. De exemplu, un proiect pe care toată lumea și-l dorește de mult, dar nu găsește timp să-l implementeze.
Sarcinile pentru stăpânirea instrumentelor vor fi „dificile” și artificiale. Cel mai probabil aceasta va fi o versiune simplificată a sistemului principal. Astfel de sarcini folosesc aceeași stivă de tehnologie și aceiași termeni de domeniu ca întregul proiect. În acest caz, rezultatul execuției nu va fi dat utilizatorului final. Acest lucru poate fi demotivant, dar este mai bine să rezistați acestui sentiment. O sarcină artificială trebuie făcută cu conștiință, de parcă de ea depinde soarta proiectului.
Rezultatul rezolvării primei probleme va forma prima impresie despre tine în rândul colegilor care nu au fost prezenți la interviu.
O altă opțiune pentru sarcina de stăpânire a instrumentului este „rulați proiectul pe o mașină locală/mediu de testare”. Uneori, acest proces este descris în instrucțiuni. Dar sunt de obicei vechi și în unele locuri depășite. Puteți aduce beneficii reale proiectului dacă scrieți instrucțiuni noi cu clarificări asupra problemelor apărute. Cu siguranță la universitate trebuia să scrii un RGR pentru un raport pe niște discipline. Aici este aproape la fel. Documentul ar trebui să reflecte acțiunile care trebuie efectuate pentru lansare.
De obicei, pașii pentru a rula un produs într-un mediu de testare sunt cam așa:
- clonează un depozit, comută la o ramură sau etichetă
- creați un fișier de configurare
- pregătiți structura bazei de date
- umple-l cu date de testare
- construiți sau compilați proiectul,
- rulați un set de scripturi de consolă într-o anumită secvență
În timpul procesului de rulare locală a unui sistem, vor apărea inevitabil probleme neașteptate.
Găsirea soluțiilor la probleme ar trebui adăugată la instrucțiunile de implementare. Apoi, data viitoare când urmați instrucțiunile, aceste probleme nu vor mai apărea. Când completați fișiere de configurare și apelați scripturi, acordați atenție la ce valoare este utilizată unde și cu ce ar trebui să se potrivească. De exemplu, dacă un proiect este construit folosind un sistem CI și apoi rulat de un script, este important să înțelegeți unde să introduceți numele ramurii sau numărul commit-ului. Uneori, scriptul necesită transmiterea... adrese IP sau numele DNS al bazei de date, datele de autentificare și parola acesteia. În acest caz, trebuie să cunoașteți adresa specifică de utilizat pentru mediul de testare, ce date de autentificare conține și ce parole să specificați pentru acestea.
Unele sarcini pot părea simple pentru dezvoltatorii experimentați, dar provocatoare pentru stagiari. Asta este normal.
Dezvoltatorii trebuie să rezolve probleme tehnice în fiecare zi. Angajații cu experiență au rezolvat deja multe probleme înainte, în timp ce noii veniți încă nu le-au făcut față. Cea mai bună tactică este să înregistrați toate erorile întâlnite în documentul „rezolvarea problemelor cu ${numele sarcinii}”. Pentru fiecare problemă, trebuie să formulați o ipoteză despre cauză, să găsiți soluții pe Internet și să le încercați una câte una. Rezultatul fiecărei încercări trebuie de asemenea înregistrat.
Înregistrarea cercetării dumneavoastră sub forma unui document vă va permite să:
- descarcă mici detalii din capul tău. De exemplu, parametrii de configurare, adresele DNS/IP, comenzile consolei și interogările SQL.
- amintiți-vă „ce am făcut ieri” când sarcina durează câteva zile
- nu rătăci în cercuri. Puteți oricând să citiți ceea ce ați făcut înainte și să înțelegeți că ați revenit la problema inițială
- răspunde clar la întrebarea: „ce ai făcut astăzi?” chiar dacă nu există încă o soluție gata făcută.
Trebuie să fiți capabil să comunicați colegilor starea sarcinilor dvs
Din când în când, colegii vor fi interesați de succesele tale și le vor împărtăși pe ale lor. Alocați ceva timp pentru asta zilnic sau săptămânal.
Dacă nu ține evidența problemelor întâlnite și rezolvate, atunci descrierea succeselor tale va arăta astfel: „Am încercat să fac sarcina, dar nu o pot face. Încă mai caut o soluție.” Din această poveste nu este clar dacă stagiarul făcea ceva sau doar stătea și citea. Are nevoie de ajutor? S-a schimbat situația de ieri?
Dacă păstrați un document în căutarea soluțiilor, puteți spune „Încerc să fac această sarcină. Am avut astfel de erori. Așa m-am hotărât. Nu m-am ocupat încă de asta. Există aceste ipoteze și soluții. Le verific acum.”
Dacă sarcina poate fi măsurată în orice fel, atunci starea ar trebui să conțină numere. De exemplu, pentru sarcina „scrieți teste unitare pentru un modul”, puteți spune „Plănuiesc să fac 20 de teste, acum am scris 10”.
Cu cât oferiți mai multe detalii, cu atât colegii dvs. vor înțelege mai bine ce ați făcut. Acest lucru va crea o atitudine pozitivă față de tine în rândul colegilor tăi și le va permite să înțeleagă dacă ai nevoie de ajutor sau nu.
Nu ezitați să cereți ajutor
Am scris mai sus că atunci când apare o problemă, trebuie să formulați o ipoteză despre cauzele acesteia și posibilele soluții. Cu toate acestea, se întâmplă ca ipotezele să nu fie justificate, iar soluțiile găsite în mod independent la problemă să nu funcționeze. În acest caz, este mai bine să ceri ajutor. Pentru a nu abuza de atenția colegilor tăi, trebuie să te așezi singur la fiecare problemă. Dacă nu ați reușit să găsiți o soluție în câteva ore, este timpul să cereți sfaturi de la camarazi mai experimentați.
Un loc bun pentru a începe este prin a întreba: „A mai întâlnit cineva această problemă?” cu o scurtă descriere a problemei. Este recomandabil să atașați o parte din mesajul de eroare sau o captură de ecran. Este mai bine să trimiteți acest mesaj pentru prima dată la un chat de lucru general. În acest fel, nu îi distrageți atenția celor care sunt cu adevărat ocupați de la serviciu. Colegii liberi vă vor vedea mesajul și vă vor putea ajuta.
Dacă după un mesaj din chatul general nu a ajutat nimeni, încercați să prindeți un coleg cu experiență în timpul unei pauze: prânz, mers la ceai/cafea, un joc de tenis sau o pauză de fum. Dacă acest lucru nu funcționează, atunci raportează dificultățile tale la întâlnire sau stand-up.
Dacă problemele cunoscute sunt rezolvate, totul se poate termina aici. Dacă problema este nouă, atunci va începe o anchetă, unde va fi necesar să se acționeze în funcție de circumstanțe.
Sarcinile „importante” pentru începători de care are nevoie utilizatorul final vor fi plictisitoare și mici. De exemplu, „adăugați o coloană suplimentară la raport” sau „corectați o greșeală de tipărire în forma tipărită” sau „implementați o metodă de model pentru încărcarea atributelor clientului din DBMS”. Scopul unor astfel de sarcini este ca începătorul să se familiarizeze cu tematica și să se integreze în munca de zi cu zi.
Este important nu numai rezolvarea tehnică a problemei, ci și extinderea cunoștințelor în materie.
Termenii vor apărea în descrierea sarcinii, în chat-uri și conversații. Ele pot arăta ca substantive familiare. Cu toate acestea, în cadrul sistemului informațional, ele au o semnificație specială, mai precisă. Semnificația termenilor descoperiți este cel mai bine înregistrată într-un document special - un dicționar de termeni. Când adăugați în dicționar, este suficient să scrieți înțelegerea cuvântului, dar pentru o decodare reală este mai bine să contactați un analist. Dacă lipsește, atunci mergeți la cei mai vechi ai proiectului. Menținerea unui dicționar de termeni este una dintre cele mai simple modalități de a vă familiariza cu tema unui proiect.
Odată ce ai găsit un limbaj comun cu colegii tăi, aceștia vor începe să te vadă nu ca pe un nou stagiar, ci ca pe un specialist egal.
Există sarcini speciale, de exemplu, „scrieți teste unitare pentru un modul”. Cu greu poți rămâne blocat pe ea mult timp în căutarea soluțiilor. În același timp, este destul de grav și este dat nu numai pentru formarea stagiarului. Testele scrise cresc stabilitatea proiectului prin reducerea erorilor din aplicație și reducerea timpului pentru testarea umană. Într-o lume ideală, testele unitare sunt scrise imediat în timpul dezvoltării, dar realitatea este întotdeauna diferită. Se întâmplă ca dezvoltatorul unui modul să îl țină complet în cap și să nu vadă nevoia să le scrie. „Totul este evident, ce este de testat?” Uneori modulele sunt scrise în modul rush și nu mai rămâne timp pentru testele unitare. Deci, în lumea reală, este posibil să nu existe teste unitare. Prin urmare, sarcina de a scrie teste unitare este încredințată unui începător. Astfel, stagiarul se va putea obișnui mai repede cu proiectul, iar proiectul va putea economisi timpul specialiștilor mai bine plătiți.
Se întâmplă ca stagiarilor și noilor veniți să li se atribuie rolul de testatori cu drepturi depline. De obicei, înainte de a face acest lucru, trebuie să implementați produsul local și să citiți cerințele. Ca urmare, noul angajat este de așteptat să:
- întrebări de genul „dacă o faci așa, se va dovedi așa. Acest lucru nu este în cerințe. Ar trebui să fie?"
- sarcinile din instrumentul de urmărire a erorilor „cerințele spun asta, dar în realitate este scris diferit”.
Testarea este o zonă prea largă pentru acest articol. Dacă vi se oferă o sarcină similară, căutați pe Internet cea mai bună modalitate de a o finaliza.
Dacă dai peste cap, vei fi concediat
Într-o organizație normală, dacă se întâmplă brusc ca un angajat fără experiență să aibă acces la ceva critic și să strice ceva, atunci cel care a permis să se întâmple asta va fi de vină. Pentru că un începător, implicit, nu are acces la infrastructura critică. Cu îndrumări adecvate, ei nu vor lăsa toți câinii să se irosească pe un stagiar fără experiență.
Dacă se întâmplă ceva, nu te vor concedia din cauza unui incident. Oamenii învață din greșeli. Stagiarul care a încurcat a învățat o lecție valoroasă și este foarte diferit de alți stagiari. Dacă concediezi pe cineva care încurcă, va veni altcineva în locul lui și va da peste cap în același mod.
Principalul lucru este să înveți din greșeli și să nu le mai repeți.
Dacă o persoană nu trage concluzii din greșelile sale, atunci va încerca să-și ia rămas bun de la el. Cu toate acestea, lumea este diversă. Într-o organizație de gangsteri te pot arunca imediat pe fereastră pentru prima greșeală. Dar este mai bine să eviți astfel de companii făcând mai întâi întrebări sau aflând mai multe în timpul interviului.
Este mai bine să evitați incidentele
Chiar dacă personal nu ești concediat pentru o greșeală, un astfel de incident va cauza probleme nedorite echipei tale și proiectului în ansamblu. Prin urmare, fiți deosebit de atenți la operațiunile de ștergere sau creare de tabele din baza de date, fișiere, instanțe de serviciu și documente din baza de cunoștințe a proiectului. Dacă întâlniți adresa unei noi conexiuni, verificați cu cel puțin două persoane diferite ce se poate face acolo. Verificați-vă drepturile în medii nu prin încercare și eroare, ci folosind comenzile adecvate. De exemplu, drepturi de a șterge fișiere folosind comanda `ls`, drepturi de a lucra cu tabele în mysql folosind comanda `SHOW GRANTS FOR 'user'@'host';` și altele asemenea. În aproape orice instrument veți avea o oportunitate similară.
Când editați fișiere, păstrați o copie a originalului pentru dvs., pentru orice eventualitate.
Se construiesc mai multe bariere între cursant și utilizatorul final.
Dacă ai putea oferi imediat produsul tău consumatorului, ai putea nu să obții un loc de muncă, ci să pornești la o „înot liberă”. Dar deși nu aveți o astfel de oportunitate (și, în același timp, responsabilitate), trebuie să treceți prin mai multe etape de control asupra proiectului.
Prima dintre acestea este verificarea de către un mentor. El evaluează decizia începătorului din punct de vedere tehnic. Dacă nu a fost desemnat un mentor, atunci trebuie să găsiți unul. Pentru a face acest lucru, trebuie să alegeți unul dintre cei mai vechi ai proiectului și, în timpul unei pauze, să-l cereți să se uite la soluție: problema a fost rezolvată corect? Dacă începe să caute și să răspundă, atunci a fost găsit un mentor. Dacă o ignoră, atunci merită să întrebi pe altcineva.
Următoarea etapă este asigurarea calității. În rusă - testeri. În stil sovietic - control standard și departament de control al calității. Ei trebuie să se asigure că performanța stagiarului este în concordanță cu sarcina care i-a fost atribuită. Ei vor citi foarte rar codul. Cel mai adesea, testerii vor verifica proiectul construit, pe care dezvoltatorul îl stochează în sistemul de control al versiunilor.
A treia etapă este managerul de lansare. Poate că nu există o persoană separată pentru această sarcină, dar cineva joacă totuși rolul. El verifică dacă testerii au confirmat că proiectul poate fi lansat. După aceasta, efectuează activitățile de livrare a produsului către utilizatorii finali.
În organizațiile mici, aceste bariere pot să nu existe din diverse motive. Cu toate acestea, ei nu vor da unui începător sarcina de a schimba ceva important. Pentru că nimeni nu are nevoie de acest risc.
Mai întâi trebuie să te implici în luptă și apoi vom vedea.
Napoleon Bonaparte
Sper că acest articol vă va ajuta să vă depășiți incertitudinea și să vă trimiteți primul CV. Desigur, trebuie să vă pregătiți mai întâi. Dar nu este nevoie să te extinzi prea mult. Cel mai probabil ați studiat deja la o universitate sau colegiu de câțiva ani. Unde să merg mai departe? În cele din urmă, este mai bine să auzi „nu” o dată de la un specialist și să lucrezi la greșeli decât să-ți spui „nu” în fiecare zi și să încetezi să crești profesional.
Odată angajat, trebuie să vă concentrați pe creșterea de la un stagiar la un membru cu drepturi depline al echipei. Acest tip de creștere vine de obicei cu o creștere a salariului.
Vă doresc răbdare și perseverență.
Numai utilizatorii înregistrați pot participa la sondaj. , Vă rog.
Care au fost primele tale sarcini în primul tău job în IT?
Complex
Important
Urgent
Nici una dintre cele de mai sus
Au votat 75 utilizatori. 20 utilizatori s-au abținut.
Ce a trebuit să faci la început la primul tău loc de muncă?
Instalați produsul local
Testați un produs existent
Efectuați un antrenament, sarcină falsă
Faceți un proiect experimental, real pentru un client
Au votat 63 de utilizatori. 25 utilizatori s-au abținut.
Câți studenți din grupul dvs. au reușit să finalizeze în mod independent sarcinile la discipline tehnice în timpul instruirii?
1 de 10
1 de 5
Fiecare secunda
Totul, cu rare excepții
Au votat 70 utilizatori. 19 utilizatori s-au abținut.
Sursa: www.habr.com
