
Cadru din filmul „Harry Potter și prizonierul din Azkaban”
Problema acestei lumi este că oamenii educați sunt plini de îndoieli, iar idioții sunt plini de încredere
Charles Bukowski
Recent am desfășurat o sesiune individuală de programare. Spre deosebire de cursurile obișnuite, tema nu a fost structurarea limbajului și nici problemele în rezolvarea sarcinilor. Studentul și-a exprimat îngrijorarea cu privire la viitorul angajării. Elevul era destul de inteligent. Unul dintre acei elevi care vin la cursuri, urmează programul más repede ca oricine altcineva și cu soluții originale, dar se subestimă constant. În opinia mea, aceste îndoieli apar doar din lipsa de informație. Am încercat să umplu acest gol improvizând în timpul sesiunii.
Întrebările au fost cam așa:
- În fiecare an, multe universități absolvesc numeroși studenți, iar ei toți merg să caute un loc de muncă. Acesta este un număr foarte mare de oameni. Cu siguranță îi vor angaja pe cei mai buni, iar eu nu voi avea un loc.
- Ce se întâmplă dacă greșesc și sunt imediat concediat?
- Ce se întâmplă dacă, în timpul muncii, îș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. Ele apar la mulți, și de obicei trebuie să explic fără pregătire. De data aceasta am decis să îmi notez monologul într-un notebook. Credeam că vor ieși câteva paragrafe, dar am ajuns să scriu un articol întreg.
Articolul prezintă o perspectivă din punctul meu de vedere, bazată pe experiența mea. Totuși, lumea noastră este foarte diversă și se întâmplă lucruri surprinzătoare. Dacă aveți o părere diferită sau experiența voastră este cumva diferită, vă rog să lăsați un comentariu.
Articolul a fost scris de un dezvoltator pentru dezvoltatori. Totuși, dacă planificați să vă ocupați cu testarea, administrarea sau altceva în IT, atunci o parte din sfaturi vă vor fi utile și vouă.
Nu mă angajează deloc
Când îți imaginezi că anual numeroase universități absolvă sute de studenți, devine neliniștitor. Cum să concurezi cu o astfel de mulțime imensă?
Din păcate, nu toți absolvenții au o pregătire tehnică suficientă. Încercați să întrebați un student cunoscut de la universitate: cum obțin colegii săi acces la examenele la discipline precum „baze de date” sau „fundamentele algoritmizării și programării”? Într-un grup de 30 de persoane, în cel mai bun caz, se găsesc 3-5 „avansați” care chiar au realizat totul singuri. Ceilalți doar copiază de la ei, memorează răspunsuri la întrebări și promovează.
Așa a fost când am studiat eu. Cu toate acestea, experiența mea ar putea să nu fie reprezentativă. De aceea, am adresat această întrebare mai multor studenți diferiți. Răspunsul a fost cam același. Cei care au răspuns erau din diferite universități și colegii. Analizele motivelor le voi lăsa în afara acestui articol. Nu am suficient timp pentru o cercetare completă, așa că voi trasa concluzii pe baza faptelor existente.
Printre sute de absolvenți, doar câteva zeci reprezintă un interes pentru angajatori.
Puțini absolvenți pot reprezenta o competiție reală pentru un student capabil cu o pregătire bună. Totuși, chiar dacă ați studiat cu seriozitate, după prima interviu, este foarte probabil să nu fiți angajat. Probabil nici după al doilea. Totul se poate desfășura bine, dar mai bine să vă pregătiți nu pentru un asalt, ci pentru o asediere. O încercare nereușită de a obține un loc de muncă este doar un motiv pentru a reflecta asupra greșelilor ș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 parcurgerea interviurilor pentru care, în programul vostru de învățământ, este puțin probabil să fi fost alocat timp. Căutați aceste informații singuri, ele pot reduce numărul de încercări.
Nebunia este repetarea exactă a aceleași acțiuni. De fiecare dată, în speranța unei schimbări.
Albert Einstein
Pentru ca parcurgerea interviurilor să nu devină o nebunie, după fiecare nouă încercare trebuie să deveniți mai bun. Rețineți sau notați întrebările care v-au fost adresate în timpul interviului. La întoarcerea acasă, revizuitați această listă și verificați-vă cu ajutorul internetului. Așa veți înțelege unde ați greșit, unde a greșit intervievatorul. Așa ceva se poate întâmpla. Repetați sau studiați subiectele la care ați răspuns slab și încercați din nou.
În plus, există o sezonitate pronunțată pe piața muncii. Companiile competente planifică angajările având în vedere datele de absolvire ale instituțiilor de învățământ. Primăvara, sunt mai multe oferte de muncă pentru începători decât în alte perioade. Cu toate acestea, și concurența este mai mare în această perioadă.
Necompetent - vor fi concediați
Când angajează o persoană fără experiență, există așteptări corespunzătoare față de aceasta.
Se așteaptă de la un începător la locul de muncă:
- Cunoștințe de bază tehnică generală
- Studii asupra particularităților domeniului de activitate al companiei
- Stăpânirea instrumentelor și practicilor utilizate
În unele organizații, pentru începători se organizează cursuri de formare pe tehnologiile, instrumentele și regulile locale utilizate. De exemplu, regulile de bună conduită în utilizarea e-mailului corporativ, modul de modificare a documentelor în wiki, particularități locale de lucru cu VCS și sistemul de urmărire a erorilor.
Există, de asemenea, cursuri tehnice introductive, dar utilitatea lor este discutabilă. Dacă s-a ajuns la angajare, înseamnă că angajatorii s-au convins că aveți un anumit nivel de cunoștințe. Cel mai bine este să parcurgeți aceste cursuri cu seriozitate, ca pe o formalitate minoră. Poate că vor exista cu adevărat lucruri utile.
Când începeți să lucrați, amintiți-vă că unui începător cu siguranță nu i se va încredința soluționarea unei sarcini urgente, complexe și în același timp importante. Cel mai probabil, se va ivi doar una dintre aceste proprietăți. Fie una simplă, dar urgentă: corectarea unei pagini, trimiterea unui fișier cuiva, reproducerea unei probleme. Fie una complexă, dar fără nicio speranță de finalizare - doar pentru a aduna mai multe dificultăți. Fie una importantă, dar experimentală. De exemplu, un proiect pe care toți îl doresc de mult, dar nu pot aloca timp pentru implementare.
Sarcinile de stăpânire a instrumentelor vor fi «complicate» și artificiale. Cel mai probabil, va fi o variantă simplificată a sistemului principal. În aceste sarcini se folosește același set de tehnologii și aceleași termeni din domeniu, ca și în întregul proiect. În plus, rezultatul nu va fi livrat utilizatorului final. Acest lucru poate fi demotivant, dar este mai bine să rezistați acestei stări de spirit. O sarcină artificială trebuie executată cu seriozitate, ca și cum soarta proiectului depinde de ea.
Rezultatul soluționării primei tale sarcini va crea prima impresie despre tine în fața colegilor care nu au fost la interviu.
O altă variantă a sarcinii de a stăpâni instrumentele este «a rula un proiect pe mașina locală/sistemul de testare». Uneori, acest proces este descris în instrucțiuni. Totuși, acestea sunt, în general, vechi și parțial neactualizate. Poți aduce o contribuție reală proiectului dacă scrii o nouă instrucțiune cu detalii despre problemele apărute. Probabil că în universitate a trebuit să scrii un raport pentru diverse discipline. Aici este aproape la fel. Documentul trebuie să reflecte acțiunile necesare pentru a realiza lansarea.
De obicei, acțiunile pentru lansarea produsului într-un mediu de testare sunt aproximativ următoarele:
- clonarea repository-ului, schimbarea pe o ramură sau etichetă anume
- crearea unui fișier de configurare
- pregătirea structurii bazei de date
- umplerea acesteia cu date de testare
- efectuarea compilării sau construirii proiectului,
- rularea unui set de scripturi de consolă într-o anumită ordine
În procesul de lansare a sistemului local, inevitabil vor apărea probleme neprevăzute.
Soluțiile găsite pentru probleme trebuie să fie adăugate în instrucțiunea de desfășurare. Astfel, data viitoare când urmezi instrucțiunea, aceste probleme nu vor mai apărea. Atunci când completezi fișierele de configurare și execuți scripturile, trebuie să acorzi atenție la ce valoare este folosită și cu ce trebuie să se potrivească. De exemplu, dacă proiectul este construit folosind un sistem CI și apoi este rulat de un script, este important să înțelegi unde să scrii numele ramurii sau numărul commit-ului. Se poate întâmpla ca scriptul să implice transmiterea adrese IP sau numelui DNS al bazei de date, al login-ului și parolei acesteia. În acest caz, trebuie să știi ce adresă să folosești pentru mediu de testare, ce login-uri sunt disponibile și ce parole trebuie să fie specificate.
Unele sarcini pot părea simple pentru dezvoltatorii experimentați și pot crea dificultăți pentru stagiari. Acesta este un fenomen normal.
Dezvoltatorii se confruntă zilnic cu probleme tehnice. Angajații experimentați au rezolvat deja multe dintre aceste probleme, în timp ce novicii trebuie să le abordeze pentru prima dată. Cea mai bună tactică este să înregistrați toate erorile întâlnite într-un document numit „soluții pentru ${numele task-ului}”. Pentru fiecare problemă, trebuie să formulați o ipoteză despre cauză, să căutați pe Internet soluții posibile și să le încercați pe rând. Rezultatul fiecărei încercări trebuie de asemenea înregistrat.
Întocmirea cercetărilor dumneavoastră sub formă de document va permite:
- să descărcați din minte detalii mărunte. De exemplu, parametrii de configurare, adresele DNS/IP, comenzile din consolă și interogările SQL.
- să vă amintiți „ce am făcut ieri” atunci când o sarcină se întinde pe parcursul mai multor zile.
- să nu bântuiți în cerc. Veți putea oricând să citiți ce ați făcut mai devreme și să înțelegeți că ați revenit la problema de bază.
- să răspundeți clar la întrebarea: „ce ai realizat astăzi?” chiar dacă nu aveți încă o soluție finală.
Trebuie să știți să comunicați starea sarcinilor dumneavoastră colegilor.
Din când în când, colegii vor fi interesați de succesele dumneavoastră și se vor împărtăși de ale lor. Aceasta necesită alocarea de timp zilnic sau săptămânal.
Dacă nu urmăriți problemele întâmpinate și rezolvate, descrierea succeselor dumneavoastră va suna astfel: „Am încercat să fac această sarcină, dar nu reușesc. În prezent, caut o soluție.” Din acest raport nu este clar dacă stagiarul a făcut ceva sau doar a citit pe Habr. Are nevoie de ajutor? S-a schimbat situația de ieri?
Dacă țineți un document cu soluții căutate, atunci puteți spune „încerc să fac această sarcină. Am întâmpinat astfel de erori. Acestea le-am rezolvat în acest mod. Aceasta nu am reușit încă. Am aceste ipoteze și opțiuni de soluționare. Acum le verific.”
Dacă sarcina poate fi măsurată într-un fel, atunci în starea trebuie să apară cifre. De exemplu, pentru sarcina „a scris teste unitare pentru modul”, puteți spune „plănuiesc să fac 20 de teste, acum am scris 10”.
Cu cât furnizați mai multe detalii, cu atât colegii dumneavoastră vor înțelege mai bine ce ați făcut. Aceasta va crea o atitudine pozitivă în rândul colegilor și le va permite să înțeleagă dacă aveți nevoie de ajutor sau nu.
Nu ezitați să cereți ajutor.
Mai sus am menționat că, atunci când apare o problemă, trebuie să formulați o ipoteză despre cauzele acesteia și variantele de soluționare. Totuși, este posibil ca ipotezele să nu se confirme, iar soluțiile găsite pe cont propriu să nu funcționeze. În acest caz, cel mai bine este să cereți ajutor. Pentru a nu abuza de atenția colegilor, trebuie să analizați singuri fiecare problemă. Dacă după câteva ore nu ați reușit să găsiți o soluție, este vremea să căutați sfaturi de la colegi mai experimentați.
Cel mai bine este să începeți cu întrebarea: „A mai întâmpinat cineva această problemă înainte?” cu o descriere succintă a problemei. Este recomandat să atașați un mesaj de eroare sau un screenshot. Acest mesaj este mai bine să fie trimis prima dată într-un chat comun de lucru. Astfel, nu îi distrageți de la muncă pe cei care sunt într-adevăr ocupați. Colegii liberi vor vedea mesajul dvs. și vor putea ajuta.
Dacă după mesajul din chat-ul comun nu a ajutat nimeni, încercați să prindeți un coleg experimentat în timpul unei pauze: la prânz, când mergeți după ceai/cafea, la o partidă de tenis sau în timpul unei pauze de țigară. Dacă nu a fost posibil, atunci comunicați dificultățile dvs. la o întâlnire sau stand-up.
În cazul rezolvării problemelor cunoscute, aici se poate încheia totul. Dacă problema este nouă, va începe o investigație, unde va trebui să acționați în funcție de circumstanțe.
Sarcinile „importante” pentru începători, care sunt necesare utilizatorului final, vor fi plictisitoare și mici. De exemplu, „adăugați o coloană suplimentară în raport” sau „corectați o greșeală tipografică în formularul tipărit” sau „implementați o metodă a modelului pentru a încărca atributele clientului din SGBD”. Scopul acestor sarcini este de a familiariza începătorul cu domeniul de activitate și de a-l integra în munca zilnică.
Este important nu doar să rezolvați tehnic sarcina, ci și să extindeți cunoștințele despre domeniul de activitate.
În descrierea sarcinii, în chat-uri și discuții vor apărea termeni. Aceștia pot părea substantive cunoscute de multă vreme. Totuși, în cadrul sistemului informațional, aceștia dobândesc un sens special, mai precis. Semnificația termenilor identificați este cel mai bine să fie înregistrată într-un document special — dicționar de termeni. La adăugarea în dicționar, este suficient să scrieți înțelegerea dumneavoastră a cuvântului, iar pentru o adevărată explicație, mai bine să apelați la analist. Dacă acesta nu este disponibil, atunci la veteranii proiectului. Menținerea unui dicționar de termeni este una dintre cele mai simple metode de a te familiariza cu domeniul de activitate al proiectului.
Odată ce veți găsi un limbaj comun cu colegii, aceștia vor începe să vă vadă nu ca pe un novice stagiar, ci ca pe un specialist de egală valoare.
Există sarcini speciale, de exemplu, „scrierea de teste unitare pentru modul”. Este puțin probabil să rămâneți blocat mult timp în căutarea soluțiilor pentru aceasta. Totuși, este o sarcină serioasă, menită nu doar pentru formarea stagiarului. Testele scrise cresc stabilitatea proiectului prin reducerea erorilor în aplicație și reducerea timpului de testare de către oameni. Într-o lume ideală, testele unitare sunt scrise în timp ce se dezvoltă, dar realitatea este diferită. Uneori, dezvoltatorul modulului păstrează totul în minte și nu vede necesitatea de a le scrie. „E evident că nu este nevoie de teste aici?” Uneori, modulele sunt scrise într-o stare de urgență și nu rămâne timp pentru teste unitare. Așadar, în lumea reală, pot să nu existe teste unitare. De aceea, sarcina de a scrie teste unitare este încredințată novicei. Astfel, stagiul se va adapta mai repede la proiect, iar proiectul va putea economisi timp de la specialiștii mai bine plătiți.
Se întâmplă ca stagiarii și novicii să fie încredințați rolul de testeri full-time. De obicei, înainte de aceasta, trebuie să desfășurați produsul local și să citiți cerințele. Ca rezultat, de la noul angajat se așteaptă:
- întrebări de genul „dacă facem așa, atunci va ieși așa. Aceasta nu este în cerințe. Cum ar trebui să fie?”
- sarcini în bug-tracker „în cerințe este scris așa, iar în realitate altfel”.
Testarea este un domeniu excesiv de vast pentru acest articol. Dacă vi s-a dat o astfel de sarcină, căutați pe internet cum să o îndepliniți cel mai bine.
Dacă greșești — te vor da afară.
Într-o organizație normală, dacă se întâmplă ca un angajat nepregătit să primească acces la ceva critic și să strice ceva, vinovat va fi cel care a permis acest lucru. Deoarece, în mod implicit, un nou venit nu are acces la infrastructura critică. Cu o conducere adecvată, nu se vor învinovăți toți pe un stagiar nepregătit.
Dacă se întâmplă ceva, nu te vor concedia pentru un singur incident. Oamenii învață din greșeli. Stagiarul care a făcut o greșeală a primit o lecție valoroasă și astfel se distingue semnificativ de ceilalți stagiari. Dacă se concediază pe cel care a greșit, un altul va veni la locul său și va greși la fel.
Cel mai important este să înveți din greșeli și să nu le repeți.
Dacă o persoană nu învață din greșelile sale, atunci vor încerca să se despartă de ea. Cu toate acestea, lumea este diversificată. Într-o organizație de tip mafiot, te-ar putea arunca pe fereastră pentru o primă greșeală. Dar este mai bine să eviți astfel de companii, motiv pentru care ar fi bine să te informezi sau să afli mai multe în timpul interviului.
Incidentele ar fi mai bine să fie evitate.
Chiar dacă nu ești concediat personal pentru o greșeală, un astfel de incident va crea probleme nedorite echipei tale și proiectului în ansamblu. Prin urmare, fii deosebit de atent cu operațiile de ștergere sau crearea de tabele în baza de date, fișiere, instanțe de servicii și documente în baza de cunoștințe a proiectului. Dacă întâlnești o adresă de nouă conexiune, verifică cel puțin cu două persoane diferite ce este permis acolo. Verifică-ți drepturile asupra mediilor nu prin încercări și erori, ci folosind comenzi corespunzătoare. De exemplu, drepturile de ștergere a fișierelor folosind comanda `ls`, drepturile de lucru cu tabelele în mysql folosind comanda `SHOW GRANTS FOR ‘user’@’host’;` și așa mai departe. Practic, în orice instrument, vei avea o astfel de posibilitate.
Atunci când editezi fișiere, păstrează o copie a versiunii originale, doar pentru siguranță.
Între stagiar și consumatorul final se creează mai multe bariere.
Dacă ai putea să-ți livrez produsul direct consumatorului, ai putea să nu te angajezi, ci să te aventurezi în «liber».. Dar, până nu ai această posibilitate (împreună cu responsabilitatea aferentă), trebuie să treci prin mai multe etape de control în proiect.
Primul este controlul de mentor. El evaluează soluția novicelui din punct de vedere tehnic. Dacă nu a fost desemnat un mentor, atunci trebuie găsit unul. Pentru aceasta, trebuie să selectezi pe cineva din rândul vechilor membri ai proiectului și, în timpul unei pauze, să-i ceri să verifice soluția: este problema rezolvată corect? Dacă acesta începe să se uite și să răspundă, atunci mentorul a fost găsit. Dacă te ignoră, atunci merită să întrebi pe altcineva.
Următoarea etapă este Asigurarea Calității. În rusă — testerii. În sovietic — controlul calității și OTK. Ei trebuie să se asigure că rezultatul muncii stagiului corespunde sarcinii stabilite pentru el. Rareori se vor uita în cod. Cel mai adesea, testerii vor verifica proiectul compilat, pe care developerul îl salvează în sistemul de control al versiunilor.
A treia etapă este managerul de lansare. Este posibil să nu existe o persoană separată pentru această sarcină, dar totuși cineva îndeplinește rolul. El verifică dacă testerii au confirmat că proiectul poate fi lansat. După aceasta, el efectuează acțiunile necesare pentru livrarea produsului către utilizatorii finali.
În organizațiile mici, aceste bariere pot lipsi din diferite motive. Cu toate acestea, nu va fi dată niciodată unui novic sarcina de a schimba ceva important. Pentru că acest risc nu este necesar nimănui.
Trebuie mai întâi să te arunci în luptă și apoi se va vedea.
Napoleon Bonaparte
Sper că articolul va ajuta să-ți depășești nesiguranța și să îți trimiți primul CV. Desigur, trebuie să te pregătești în prealabil. Dar nu trebuie să întârzii prea mult. Cel mai probabil, ai studiat deja câțiva ani la universitate sau colegiu. Ce rost mai are să mai tragi? În cele din urmă, mai bine să auzi o dată un „nu” de la un specialist și să faci o analiză a greșelilor, decât să spui în fiecare zi „nu” singur ție și să te oprești din creșterea profesională.
După angajare, trebuie să te concentrezi pe a deveni un membru cu drepturi depline al echipei. O astfel de creștere este de obicei însoțită de o creștere a salariului tău.
Îți doresc răbdare și perseverență.
Numai utilizatorii înregistrați pot participa la sondaj. , vă rugăm.
Cum au fost primele tale sarcini la prima muncă în IT?
Complicate
Importante
Urgente
Niciuna din cele de mai sus
75 de utilizatori au votat. 20 de utilizatori s-au abținut.
Ce trebuia să faci aproximativ, la început, la prima muncă?
Instalarea produsului local
Testarea produsului existent
Executarea unei sarcini de învățare, neautentice
Realizarea unui proiect experimental, real pentru client
Au votat 63 de utilizatori. S-au abținut 25 de utilizatori.
Câți studenți din grupul vostru, în timpul studiilor, au putut să finalizeze singuri sarcinile la materiile tehnice?
1 din 10
1 din 5
Fiecare al doilea
Toți, cu câteva excepții
Au votat 70 de utilizatori. S-au abținut 19 utilizatori.
Sursa: habr.com
