Cum să părăsești știința pentru IT și să devii tester: povestea unei cariere

Cum să părăsești știința pentru IT și să devii tester: povestea unei cariere

Astăzi îi felicităm de sărbătoare pe oamenii care în fiecare zi se asigură că există puțin mai multă ordine în lume - testerii. În această zi, GeekUniversity de la Mail.ru Group deschide facultatea pentru cei care vor să se alăture rândurilor luptătorilor împotriva entropiei Universului. Programul de curs este structurat astfel încât profesia de „Tester de software” să poată fi stăpânită de la zero, chiar dacă ați lucrat anterior într-un domeniu complet diferit.

Publicăm și povestea studentei GeekBrains Maria Lupandina (@mahatimas). Maria este candidată la științe tehnice, specializarea acustică. În prezent lucrează ca tester de software pentru o mare companie de inginerie care dezvoltă software pentru instituții medicale.

În articolul meu vreau să arăt posibilitatea unei schimbări destul de drastice în carieră. Înainte de a deveni tester, nu prea am avut contact cu tehnologia informației, cu excepția momentelor care au fost necesare pentru postul meu anterior. Dar sub presiunea mai multor factori, care sunt descriși în detaliu mai jos, am decis să părăsesc domeniul științific pentru IT pur. Totul a funcționat și acum îmi pot împărtăși experiența.

Cum a început totul: tehnologie plus știință

După ce am absolvit facultatea cu o diplomă în inginerie biomedicală, m-am angajat la o întreprindere industrială ca inginer de laborator. Aceasta este o muncă destul de interesantă; responsabilitățile mele au inclus măsurarea și monitorizarea parametrilor produselor întreprinderii, precum și a materiilor prime în diferite etape de producție.

Mi-am dorit să devin un bun specialist, așa că m-am cufundat treptat în tehnologiile de producție și m-am stăpânit specialități conexe. De exemplu, când a apărut necesitatea, am studiat metodologia de realizare a analizelor chimice pentru controlul calității apei, folosind ca surse standardele guvernamentale și reglementările industriei. Mai târziu am predat această tehnică altor asistenți de laborator.

În același timp, îmi pregăteam teza de doctorat, pe care am susținut-o cu succes. Fiind deja candidat, am reușit să primesc un grant mare de la Fundația Rusă pentru Cercetare de bază (RFBR). Totodată, am fost invitat la universitate ca profesor pentru 0,3 salariu. Am lucrat sub grant, am elaborat programe de învățământ și materiale metodologice în discipline pentru universitate, am publicat articole științifice, am ținut prelegeri, am condus practici, am elaborat chestionare și teste pentru sistemul de e-educație. Mi-a plăcut foarte mult să predau, dar, din păcate, contractul s-a încheiat la fel și cariera mea de angajat universitar.

De ce? Pe de o parte, am vrut să-mi continui drumul în știință, devenind, de exemplu, asistent universitar. Problema este că contractul era pe durată determinată, iar la universitate nu s-a putut pune un punct de sprijin - din păcate, nu li s-a oferit un nou contract.

În același timp, am părăsit compania pentru că am decis că trebuie să se schimbe ceva; nu mi-am dorit cu adevărat să-mi petrec toată viața lucrând ca inginer de laborator. Pur și simplu nu aveam unde să cresc profesional, nu aveam nicio oportunitate de a mă dezvolta. Compania este mică, așa că nu a fost nevoie să vorbim despre o scară de carieră. La lipsa perspectivelor de carieră adăugăm salarii mici, o locație incomodă a întreprinderii în sine și un risc crescut de rănire în producție. Ajungem cu o serie întreagă de probleme pe care pur și simplu a trebuit să le tăiem, ca un nod gordian, adică să renunțăm.

După demitere, am trecut la pâine gratuită. Așadar, am dezvoltat proiecte personalizate în inginerie radio, inginerie electrică și acustică. În special, ea a proiectat antene parabolice cu microunde și a dezvoltat o cameră acustică anecoică pentru a studia parametrii microfoanelor. Au fost o mulțime de comenzi, dar totuși îmi doream ceva diferit. La un moment dat am vrut să-mi încerc mâna să fiu programator.

Studii noi și freelancing

Cumva mi-a atras atenția o reclamă pentru cursurile GeekBrains și am decis să o încerc. În primul rând, am urmat cursul „Noțiuni fundamentale de programare”. Îmi doream mai mult, așa că am urmat și cursurile „Dezvoltare web”, iar acesta a fost doar începutul: am stăpânit HTML/CSS, HTML5/CSS3, JavaScript, după care am început să învăț Java în „Programator Java" Studiul a fost o mare provocare pentru punctele mele forte - nu pentru că cursul în sine a fost dificil, ci pentru că trebuia adesea să studiez cu un copil în brațe.

De ce Java? Am citit și am auzit în mod repetat că acesta este un limbaj universal care poate fi folosit, de exemplu, în dezvoltarea web. În plus, am citit că cunoscând Java, poți trece la orice altă limbă dacă este nevoie. Acest lucru s-a dovedit a fi adevărat: am scris codul în C++ și a funcționat, în ciuda faptului că nu m-am scufundat prea adânc în elementele de bază ale sintaxei. Totul a funcționat cu Python, am scris un mic analizator de pagini web în el.

Cum să părăsești știința pentru IT și să devii tester: povestea unei cariere
Uneori trebuia să lucrez așa - să pun copilul într-un rucsac ergo, să-i dau o jucărie și să sper că asta va fi suficient pentru a finaliza următoarea comandă.

De îndată ce am avut o anumită cunoștințe și experiență de programare, am început să onorez comenzi ca freelancer, așa că am scris o aplicație de contabilitate financiară personală, un editor de text personalizat. În ceea ce privește editorul, este simplu, are câteva funcții de bază pentru formatarea textului, dar își face treaba. În plus, am rezolvat probleme de procesare a textului, plus că am fost implicat în aspectul paginilor web.

Aș dori să remarc că studiul programării mi-a extins capacitățile și orizonturile în general: nu pot doar să scriu programe personalizate, ci și să fac proiecte pentru mine. De exemplu, am scris un program mic, dar util, care vă permite să aflați dacă cineva vă strica articolele Wikipedia. Programul analizează pagina articolului, găsește data ultimei modificări și, dacă data nu se potrivește cu data la care ați editat ultima dată articolul, veți primi o notificare. De asemenea, am scris un program pentru a calcula automat costul unui astfel de produs specific precum forța de muncă. Interfața grafică a programului este scrisă folosind biblioteca JavaFX. Desigur, am folosit manualul, dar am dezvoltat singur algoritmul, iar pentru implementarea acestuia s-au folosit principiile OOP și modelul de proiectare mvc.

Freelancing este bun, dar un birou este mai bine

În general, mi-a plăcut să fiu freelancer – pentru că poți câștiga bani fără să pleci de acasă. Dar problema aici este numărul de comenzi. Dacă sunt mulți, totul este în regulă cu banii, dar sunt proiecte urgente cu care trebuia să stai până târziu în noapte în regim de urgență. Dacă sunt puțini clienți, atunci simți nevoia de bani. Principalele dezavantaje ale freelancing-ului sunt programele neregulate și nivelurile neconsecvente ale veniturilor. Toate acestea, desigur, au afectat calitatea vieții și starea psihologică generală.

S-a înțeles că angajarea oficială este ceea ce va ajuta la eliminarea acestor probleme. Am început să caut posturi vacante pe site-uri de specialitate, am dezvoltat un CV bun (pentru care le mulțumesc profesorilor mei – m-am consultat des cu ei despre ce ar trebui să fie inclus în CV, și ce este mai bine să menționez în comunicarea personală cu un potențial angajator). În timpul căutării, am îndeplinit sarcini de testare, unele dintre ele destul de dificile. Am adăugat rezultatele în portofoliul meu, care în cele din urmă a devenit destul de voluminos.

Drept urmare, am reușit să obțin un loc de muncă ca tester într-o companie care dezvoltă sisteme informaționale medicale pentru automatizarea fluxului de documente în instituțiile medicale. O studii superioare în inginerie biomedicală, plus cunoștințe și experiență în dezvoltarea de software, m-au ajutat să-mi găsesc un loc de muncă. Am fost invitat la un interviu și am ajuns să obțin postul.

Acum sarcina mea principală este să testez puterea aplicațiilor scrise de programatorii noștri. Dacă software-ul nu trece testul, trebuie îmbunătățit. De asemenea, verific mesajele de la utilizatorii sistemului companiei mele. Avem un întreg departament care lucrează la rezolvarea diferitelor probleme și eu fac parte din el. Platforma software dezvoltată de compania noastră a fost implementată în spitale și clinici; dacă apar dificultăți, utilizatorii trimit o solicitare pentru a rezolva problema. Analizăm aceste solicitări. Uneori, eu însumi aleg sarcina la care voi lucra, iar uneori mă consult cu colegi mai experimentați cu privire la alegerea sarcinilor.

După ce sarcina este asigurată, începe munca. Pentru a rezolva problema, aflu originea erorii (la urma urmei, există întotdeauna posibilitatea ca cauza să fie un factor uman). După ce am clarificat toate detaliile cu clientul, formulez o specificație tehnică pentru programator. După ce componenta sau modulul este gata, îl testez și îl implementez în sistemul clientului.

Din păcate, majoritatea testelor trebuie efectuate manual, deoarece implementarea automatizării este un proces complex de afaceri care necesită o justificare serioasă și o pregătire atentă. Cu toate acestea, m-am familiarizat cu unele instrumente de automatizare. De exemplu, biblioteca Junit pentru testarea unui bloc folosind API-ul. Există și framework-ul twin de la ebayopensource, care vă permite să scrieți scripturi care simulează acțiunile utilizatorului, foarte asemănător cu Selenium, care este folosit pe web. Plus că am stăpânit cadrul Castraveților.

Venitul meu din noul meu loc de muncă s-a dublat în comparație cu cel liber profesionist - totuși, în mare parte datorită faptului că lucrez cu normă întreagă. Apropo, conform statisticilor de la hh.ru și alte resurse, salariul unui dezvoltator din Taganrog este de 40-70 de mii de ruble. În general, aceste date sunt adevărate.

Locul de munca este dotat cu tot ce este necesar, biroul este spatios, sunt multe ferestre, este mereu aer curat. În plus, există bucătărie, aparat de cafea și, bineînțeles, prăjituri! Echipa este de asemenea grozavă, nu există deloc aspecte negative în acest sens. Bună treabă, colegi, de ce mai are nevoie un programator de teste pentru a fi fericit?

Separat, aș dori să remarc că biroul companiei este situat în Taganrog, care este orașul meu natal. Există destul de multe companii IT aici, așa că este loc de extindere. Dacă doriți, vă puteți muta la Rostov - există mai multe oportunități acolo, dar deocamdată nu plănuiesc să mă mut.

Ce urmeaza?

Pana acum imi place ce am. Dar nu mă voi opri și de aceea continui să studiez. În stoc - un curs despre JavaScript. Nivelul 2”, de îndată ce voi avea mai mult timp liber, cu siguranță voi începe să-l stăpânesc. Repet în mod regulat materialele pe care le-am abordat deja, plus urmăresc prelegeri și seminarii web. În plus, particip la un program de mentorat la GeekBrains. Astfel, pentru studenții care au absolvit cu succes cursurile și au terminat temele pentru acasă, este disponibilă posibilitatea de a fi mentor pentru alți studenți. Mentorul răspunde la întrebări și ajută la teme. Pentru mine, aceasta este și repetarea și consolidarea materialului acoperit. În timpul liber, atunci când este posibil, rezolv probleme din resurse precum hackerrank.com, codeabbey.com, sql-ex.ru.

De asemenea, urmez un curs despre dezvoltarea Android predat de profesori ITMO. Aceste cursuri sunt gratuite, dar puteți susține un examen plătit dacă doriți. Aș dori să menționez că echipa ITMO deține campionatul mondial la competiții de programare.

Câteva sfaturi pentru cei interesați de programare

Având deja ceva experiență în dezvoltare, aș dori să-i sfătuiesc pe cei care intenționează să intre în IT să nu se grăbească în piscină. Pentru a deveni un bun specialist, trebuie să fii pasionat de munca ta. Și pentru a face acest lucru, ar trebui să alegeți direcția care vă place cu adevărat. Din fericire, nu este nimic complicat în acest sens - acum pe internet există o mulțime de recenzii și descrieri despre orice domeniu de dezvoltare, limbaj sau cadru.

Ei bine, ar trebui să fii pregătit pentru un proces de învățare constant. Un programator nu se poate opri - este ca moartea, deși în cazul nostru nu este fizic, ci profesional. Dacă ești pregătit pentru asta, atunci mergi mai departe, de ce nu?

Sursa: www.habr.com

Adauga un comentariu