
I dag fejrer vi dagen for dem, der hver dag sørger for, at verden er lidt mere ordentlig - testere. Denne dag åbner GeekUniversity fra Mail.ru Group for dem, der ønsker at slutte sig til kampen mod universets entropi. Kursusprogrammet er opbygget på en måde, der gør det muligt at lære faget "Softwaretester" fra bunden, selv hvis man tidligere har arbejdet i en helt anden sektor.
Vi offentliggør også historien om GeekBrains-studenten Maria Lupandina (). Maria er ph.d. i teknisk videnskab med speciale i "Akustik". Hun arbejder nu som softwaretester i et stort ingeniørfirma, der udvikler software til sundhedssektoren.
I denne artikel vil jeg vise muligheden for en ret drastisk karriereskift. Før jeg blev tester, havde jeg ikke meget berøring med informationsteknologi, bortset fra det, der var nødvendigt for mit tidligere arbejde. Men under indflydelse af flere faktorer, som jeg detaljeret vil beskrive nedenfor, besluttede jeg at forlade den videnskabelige sfære og gå ind i ren IT. Det lykkedes, og nu kan jeg dele min erfaring.
Hvordan det hele begyndte: teknologi plus videnskab
Efter at have afsluttet universitetet med speciale i "biomedicinsk ingeniørvidenskab" fik jeg jobbet som ingeniørlaborant på en fabrik. Det er et ganske interessant job, hvor mine opgaver inkluderede måling og kontrol af produktparametre samt råmaterialer på forskellige stadier af produktionen.
Jeg ønskede at blive en god specialist, så jeg dykkede langsomt ned i produktionsmetoderne og lærte relaterede fag. For eksempel, da der opstod behov, studerede jeg metoden til at udføre kemiske analyser til kvalitetskontrol af vand ved at bruge statslige standarder og brancheforskrifter som kilder. Senere underviste jeg andre laboratorieteknikere i denne metode.
Samtidig arbejdede jeg på min ph.d.-afhandling, som jeg med succes forsvarede. Da jeg allerede havde opnået kandidatgraden, lykkedes det mig at få et stort legat fra det Russiske fond for grundforskning (RFBR). På samme tid blev jeg inviteret til at undervise på universitetet med en deltidsstilling på 0,3. Jeg udførte arbejdet relateret til legatet, udviklede studieplaner og undervisningsmaterialer til fag for universitetet, publicerede videnskabelige artikler, holdt forelæsninger, ledede praktiske øvelser og udviklede kontrolopgaver og tests til det elektroniske uddannelsessystem. Jeg nød virkelig at undervise, men desværre udløb kontrakten og min karriere som universitetsmedarbejder sluttede også.
Hvorfor? På den ene side ønskede jeg at fortsætte min vej inden for videnskaben, for eksempel ved at blive lektor. Problemet var, at kontrakten var midlertidig, og jeg kunne ikke slå mig fast på universitetet - desværre fik jeg ikke tilbudt en ny kontrakt.
På det tidspunkt sagde jeg også mit job op i virksomheden, fordi jeg besluttede, at jeg skulle ændre noget; jeg ønskede ikke at bruge hele mit liv på at arbejde som laboratorietekniker. Jeg havde simpelthen ikke noget sted at vokse professionelt, da muligheden for udvikling ikke eksisterede. Virksomheden var lille, så vi kunne ikke tale om nogen karrieremuligheder. Når vi tilføjer til de manglende karrieremuligheder en lav løn, en upraktisk beliggenhed for virksomheden og en høj risiko for arbejdsulykker, får vi et helt kompleks af problemer, som jeg måtte skære over som en gordisk knude, altså - sige op.
Efter at have sagt op gik jeg freelance. Jeg udviklede projekter efter ordre inden for radioteknik, elektroteknik og akustik. Blandt andet designede jeg paraboliske mikrobølgeantenner og udviklede et dæmpet akustisk kammer til undersøgelse af mikrofoners parametre. Der var mange ordrer, men jeg ønskede stadig noget andet. På et tidspunkt fik jeg lyst til at prøve kræfter som programmør.
Ny uddannelse og freelance
En dag faldt jeg over en annonce for GeekBrains kurser og besluttede at prøve. Først tog jeg kurset "Grundlæggende programmering". Jeg ønskede mere, så jeg tog også kurserne "Webudvikling", og det var kun begyndelsen: jeg lærte HTML/CSS, HTML5/CSS3, JavaScript, hvorefter jeg begyndte at studere Java på kurserne "» Uddannelsen var en stor udfordring for mine evner - ikke fordi kurset var svært, men fordi jeg ofte måtte studere med et barn på armen.
Hvorfor Java? Jeg har gang på gang læst og hørt, at det er et alsidigt sprog, der kan bruges, for eksempel inden for webudvikling. Desuden har jeg læst, at hvis man kan Java, kan man skifte til ethvert andet sprog, hvis behov opstår. Det viste sig at være sandt: jeg skrev kode i C++, og det fungerede, selvom jeg ikke gik for dybt ind i syntaksens grundlæggende elementer. Det samme gælder for Python, hvor jeg skrev en lille parser til en webside.

Nogle gange måtte arbejdet gøres på denne måde - sætte barnet i en bæresele, give en legetøj og håbe, at det var nok til at udføre den næste opgave.
Så snart jeg havde en vis mængde viden og programmeringserfaring, begyndte jeg at tage freelanceopgaver. Så jeg skrev en applikation til personlig økonomistyring og en tekstredigerer på bestilling. Hvad angår redigereren, så er den enkel med nogle grundlæggende funktioner til tekstformatering, men den klarer sin opgave. Derudover løste jeg opgaver relateret til tekstbehandling og arbejdede også med layout af websider.
Jeg vil bemærke, at studiet af programmering har udvidet mine muligheder og mit perspektiv generelt: jeg kan ikke kun skrive programmer på bestilling, men arbejder også på projekter for mig selv. For eksempel skrev jeg et lille, men nyttigt program, der gør det muligt at finde ud af, om nogen forstyrrer dine artikler på Wikipedia. Programmet parser en side med en artikel, finder datoen for den seneste ændring, og hvis datoen ikke stemmer overens med den dato, hvor du sidst redigerede din artikel, får du en notifikation. Jeg har også skrevet et program til automatisk beregning af omkostningerne for en specifik vare som arbejdskraft. Programmets grafiske grænseflade er lavet ved hjælp af JavaFX-biblioteket. Jeg brugte selvfølgelig en lærebog, men jeg udviklede algoritmen selv, og der blev anvendt OOP-principper og designmønsteret MVC.
Freelance er godt, men et kontor er bedre.
Generelt har det været en fornøjelse at være freelancer, da man kan tjene penge uden at forlade huset. Men her er problemet antallet af opgaver. Hvis der er mange, er der gode penge at hente, men der kommer også presserende projekter, der kræver, at man arbejder sent i en hektisk periode. Hvis der er få kunder, føler man behovet for penge. De største ulemper ved freelancing er den uregelmæssige arbejdstid og den usikre indkomst. Alt dette har selvfølgelig indflydelse på livskvaliteten og den generelle psykiske tilstand.
Jeg kom til at forstå, at officiel ansættelse ville hjælpe med at løse de nævnte problemer. Jeg begyndte at søge stillinger på specialiserede websider og lavede et godt CV (tak til mine lærere, som jeg ofte rådede med om, hvad jeg skulle inkludere i CV'et, og hvad der bedre skulle nævnes under personlig kommunikation med potentielle arbejdsgivere). Under min søgning lavede jeg testopgaver, nogle af dem var ret svære. Resultaterne tilføjede jeg til mit portfolio, som til sidst blev ganske omfattende.
Til sidst lykkedes det mig at få en stilling som tester i et firma, der udvikler medicinske informationssystemer til automatisering af dokumenthåndtering i sundhedsinstitutioner. At finde arbejde blev hjulpet af min videregående uddannelse inden for 'biomedicinsk ingeniørvidenskab', plus viden og erfaring i softwareudvikling. Jeg blev indkaldt til samtale, og i sidste ende fik jeg jobbet.
Min primære opgave nu er at teste apps skrevet af vores programmører for deres robusthed. Hvis softwaren ikke klarer testen, skal den forbedres. Derudover tjekker jeg henvendelser fra brugere af vores systems virksomhed. Et helt afsnit arbejder på at løse forskellige problemer, og jeg er en del af det. Den softwareplatform, som vores virksomhed har udviklet, er implementeret på hospitaler og klinikker; hvis der opstår problemer, sender brugerne forespørgsler om løsningen. Disse forespørgsler behandler vi. Nogle gange vælger jeg selv den opgave, jeg vil arbejde på, og nogle gange drøfter jeg valg af opgaver med mere erfarne kolleger.
Når opgaven er fastlagt, begynder arbejdet. For at løse problemet undersøger jeg fejlkilden (der er altid en mulighed for, at årsagen er menneskelig). Efter at have afklaret alle detaljerne med kunden, udarbejder jeg en teknisk specifikation til programmøren. Når komponenten eller modulet er klar, tester jeg dem og implementerer dem i kundens system.
Desværre skal de fleste tests udføres manuelt, da implementeringen af automatisering er en kompleks forretningsproces, der kræver en seriøs begrundelse og omhyggelig forberedelse. Ikke desto mindre har jeg fået kendskab til nogle automatiseringsværktøjer. For eksempel Junit-biblioteket til at teste et bestemt modul via API. Der er også frameworket twin fra ebayopensource, som gør det muligt at skrive scripts, der simulerer brugerens handlinger, meget lig Selenium, som bruges på webben. Jeg har også lært frameworket Cucumber at kende.
Min indkomst på den nye arbejdsplads er steget i forhold til freelancing med det dobbelte — dog hovedsageligt fordi jeg arbejder fuldtid. Ifølge statistikker fra hh.ru og andre ressourcer ligger lønniveauet for udviklere i Taganrog på 40-70 tusind rubler. Generelt svarer disse data til virkeligheden.
Arbejdspladsen har alt det nødvendige, kontoret er rummeligt, der er mange vinduer, og der er altid frisk luft. Der er også et køkken, en kaffemaskine, og selvfølgelig småkager! Kollegiet er også fantastisk, der er overhovedet ingen negative aspekter på dette punkt. Godt arbejde, kolleger, hvad mere har en programmør-testere brug for for at være glad?
Jeg vil fremhæve, at virksomhedens kontor ligger i Taganrog, min hjemby. Her er der en del IT-virksomheder, så der er muligheder. Hvis man ønsker det, kan man flytte til Rostov — der er flere muligheder, men jeg planlægger ikke at flytte lige nu.
Hvad nu?
Indtil videre kan jeg godt lide det, jeg har. Men jeg har ikke tænkt mig at stoppe — derfor fortsætter jeg med at lære. Jeg har en kursus i "JavaScript. Niveau 2" i baghånden, og så snart jeg får mere fritid, vil jeg helt sikkert begynde at arbejde med det. Jeg gennemgår regelmæssigt det materiale, jeg allerede har lært, plus jeg ser forelæsninger og webinarer. Derudover deltager jeg i mentorprogrammet på GeekBrains. For studerende, der har gennemført kurserne med succes og har afleveret deres opgaver, er der mulighed for at være mentor for andre elever. Mentoren besvarer spørgsmål og hjælper med opgaverne. For mig er det også en gentagelse og konsolidering af det gennemgåede materiale. I min fritid, når muligheden byder sig, løser jeg opgaver fra ressourcer som ,,.
Jeg arbejder også med et kursus i Android-udvikling, som undervises af lærere fra ITMO. Disse kurser er gratis, og hvis man ønsker det, kan man tage en betalt eksamen. Jeg vil gerne nævne, at teamet fra ITMO holder verdensmesterskabet i programmeringskonkurrencer.
Nogle tips til dem, der er interesseret i programmering
Allerede med en vis erfaring inden for udvikling vil jeg råde dem, der planlægger at gå ind i IT, til ikke at kaste sig hovedkulds ud i det. For at blive en god specialist skal man brænde for sit fag. Og for at gøre det bør man vælge den retning, man virkelig godt kan lide. Heldigvis er der ikke noget svært ved det — der er masser af anmeldelser og beskrivelser af enhver udviklingsområde, sprog eller framework på internettet.
Og man bør være forberedt på en konstant læringsproces. En programmør kan ikke stoppe — det er ligesom at dø, men i vores tilfælde ikke fysisk, men professionelt. Hvis du er klar til det — så kom videre, hvorfor ikke?
Kilde: habr.com
