
Vandaag feliciteren we de mensen die dagelijks zorgen voor een beetje meer ordening in de wereld - testers. Op deze dag opent GeekUniversity van Mail.ru Group voor degenen die zich willen voegen bij de strijders tegen de entropie van het universum. Het cursusprogramma is zo opgebouwd dat je het beroep 'Software Tester' vanuit het niets kunt leren, zelfs als je eerder in een heel andere sector hebt gewerkt.
We publiceren ook het verhaal van GeekBrains studente Maria Lupandina (). Maria is een kandidaat in technische wetenschappen op het gebied van 'Acoustics'. Momenteel werkt ze als software tester bij een groot ingenieursbedrijf dat software ontwikkelt voor medische instellingen.
In mijn artikel wil ik de mogelijkheid laten zien van een vrij ingrijpende carrièreverandering. Voordat ik tester werd, had ik niet veel contact met informatietechnologie, behalve de aspecten die nodig waren voor mijn vorige werk. Maar onder druk van verschillende factoren, die hieronder gedetailleerd worden uitgelegd, besloot ik de wetenschappelijke wereld te verlaten voor puur IT. Het is gelukt, en nu kan ik mijn ervaring delen.
Hoe het allemaal begon: technologie plus wetenschap
Na het afronden van de universiteit in 'biomedische technologie' begon ik als laborant bij een industriebedrijf. Dit was een behoorlijk interessante baan, waarbij mijn verantwoordelijkheden het meten en controleren van de parameters van de producten van het bedrijf omvatten, evenals de grondstoffen op verschillende productieprocessen.
Ik wilde een goede specialist worden, dus dook ik geleidelijk in de productietechnologieën en leerde verwante specialiteiten. Toen dat nodig was, bestudeerde ik de methode voor chemische analyses voor kwaliteitscontrole van water, gebruikmakend van nationale normen en sectorale reglementen als bronnen. Later heb ik andere laboranten in deze methode opgeleid.
Tegelijkertijd was ik bezig met mijn promotieonderzoek, dat ik succesvol verdedigde. Als kandidate kreeg ik een grote subsidie van de Russische Fond voor Fundamenteel Onderzoek (RFBR). Tegelijkertijd werd ik uitgenodigd als docent aan de universiteit voor 0,3 fte. Ik voerde het project uit, ontwikkelde lesplannen en methodische materialen voor de vakken aan de universiteit, publiceerde wetenschappelijke artikelen, gaf lezingen, leidde practica en ontwikkelde toetsen en testen voor het elektronische onderwijssysteem. Ik vond lesgeven zeer leuk, maar helaas eindigde het contract en daarmee ook mijn carrière als universitair medewerker.
Waarom? Enerzijds wilde ik mijn weg in de wetenschap voortzetten, bijvoorbeeld als hoofddocent. Het probleem was dat het contract tijdelijk was en ik me niet kon vestigen aan de universiteit – helaas werd er geen nieuw contract aangeboden.
Toen ben ik ontslagen bij het bedrijf, omdat ik besloot dat er iets moest veranderen; ik wilde niet mijn hele leven als laboratoriumingenieur werken. Ik zag gewoon geen mogelijkheden om professioneel te groeien, er was geen mogelijkheid tot ontwikkeling. Het bedrijf is klein, dus over een loopbaan was niet te spreken. Bij gebrek aan carrièreperspectieven kwam daar nog eens een laag salaris, een ongunstige locatie van het bedrijf en een verhoogd risico op letsel bij de productie bij. Dit resulteerde in een hele reeks problemen die ik simpelweg moest doorkappen, als de Gordiaanse knoop, dat wil zeggen – ontslag nemen.
Na mijn ontslag ging ik freelancen. Zo ontwikkelde ik op bestelling projecten op het gebied van radiotechniek, elektrotechniek en acoustics. In het bijzonder ontwierp ik parabolische microgolfantennes en ontwikkelde ik een gedempte akoestische kamer voor het onderzoeken van de parameters van microfoons. Er waren veel opdrachten, maar ik wilde iets anders. Op een bepaald moment wilde ik mijn geluk als programmeur beproeven.
Nieuwe studie en freelance werk
Op een dag zag ik een advertentie voor de cursussen van GeekBrains en besloot het te proberen. Eerst volgde ik de cursus 'Basis van programmeren'. Ik wilde meer, dus volgde ik ook de cursussen 'Webontwikkeling', en dat was pas het begin: ik leerde HTML/CSS, HTML5/CSS3, JavaScript, waarna ik begon met het bestuderen van Java op de cursussen.Het leren was een grote uitdaging voor mijn capaciteiten - niet omdat de cursus moeilijk was, maar omdat ik vaak moest leren met een kind in mijn armen.
Waarom precies Java? Ik heb vaak gelezen en gehoord dat het een universele taal is die je bijvoorbeeld in webontwikkeling kunt gebruiken. Bovendien heb ik gelezen dat als je Java kent, je gemakkelijk kunt overstappen naar een andere taal als dat nodig is. Dit bleek waar te zijn: ik schreef code in C++ en het werkte, ook al had ik me niet te diep in de basis van de syntax verdiept. Het lukte ook met Python, waarmee ik een kleine webpagina-parser schreef.

Soms moest ik zo werken - het kind in een ergonomische draagzak zetten, een speeltje geven en hopen dat dit genoeg was om de volgende opdracht te voltooien.
Zodra ik een bepaalde bagage aan kennis en programmeerervaring had, begon ik opdrachten als freelancer uit te voeren. Zo schreef ik een applicatie voor persoonlijke financiën en een tekstverwerker op aanvraag. Wat betreft de tekstverwerker, deze is eenvoudig, met een paar basisfuncties voor tekstopmaak, maar hij doet zijn werk goed. Daarnaast loste ik problemen op met tekstverwerking en deed ik aan het opmaken van webpagina's.
Ik moet opmerken dat het leren van programmeren mijn mogelijkheden en mijn visie in het algemeen heeft verbreed: ik kan niet alleen op aanvraag programma's schrijven, maar ook projecten voor mezelf doen. Bijvoorbeeld, ik schreef een kleine, maar nuttige applicatie die laat weten of iemand je artikelen op Wikipedia aanpast. De applicatie parseert de pagina met het artikel, vindt de datum van de laatste wijziging en als deze datum niet overeenkomt met de datum waarop je je artikel voor het laatst bewerkte, ontvang je een melding. Ook schreef ik een programma voor het automatisch berekenen van de kosten van zo'n specifieke dienst als arbeidskracht. De grafische interface van het programma is geschreven met behulp van de JavaFX-bibliotheek. Natuurlijk gebruikte ik een handleiding, maar het algoritme heb ik zelf ontwikkeld, en voor de implementatie werden OOP-principes en het ontwerp patroon mvc gebruikt.
Freelancen is goed, maar een kantoor is beter.
Over het algemeen vond ik het leuk om freelancer te zijn – je kunt geld verdienen zonder je huis te verlaten. Maar hier is het probleem met het aantal opdrachten. Als er veel zijn, is alles goed met het geld, maar er zijn ook dringende projecten die me soms tot laat in de nacht in een spoedmodus moesten laten zitten. Als er weinig klanten zijn, voel je de behoefte aan geld. De belangrijkste nadelen van freelancen zijn het onregelmatige schema en onsamenhangend inkomen. Dit had natuurlijk invloed op de kwaliteit van leven en de algemene psychologische toestand.
Ik kwam tot het inzicht dat officiële tewerkstelling het beste zou helpen om de genoemde problemen op te lossen. Ik begon vacatures te zoeken op gespecialiseerde websites, werkte aan een goed cv (waarvoor dank aan mijn docenten – met hen heb ik vaak overlegd wat ik in mijn cv moest opnemen en wat ik beter pas tijdens een persoonlijk gesprek met potentiële werkgevers kon vermelden). Tijdens mijn zoektocht voltooide ik enkele testopdrachten, waarvan sommige behoorlijk moeilijk waren. De resultaten voegde ik toe aan mijn portfolio, dat uiteindelijk behoorlijk omvangrijk werd.
Uiteindelijk slaagde ik erin om als tester aan de slag te gaan bij een bedrijf dat medische informatiesystemen ontwikkelt voor de automatisering van documentstromen in zorginstellingen. Het vinden van een baan werd vergemakkelijkt door mijn universitaire opleiding in biomedische technologie, plus kennis en ervaring in softwareontwikkeling. Ik werd uitgenodigd voor een sollicitatiegesprek en kreeg uiteindelijk de baan.
Mijn belangrijkste taak nu is het testen van applicaties die door onze programmeurs zijn geschreven op hun betrouwbaarheid. Als de software de test niet doorstaat, moet deze worden aangepast. Daarnaast controleer ik berichten van gebruikers van ons systeem. Aan het oplossen van verschillende problemen werkt een heel team, en ik maak daar deel van uit. Het softwareplatform dat door ons bedrijf is ontwikkeld, is geïmplementeerd in ziekenhuizen en klinieken; als er problemen zijn, sturen gebruikers een verzoek om deze op te lossen. Deze verzoeken behandelen wij. Soms kies ik zelf de taak waar ik aan ga werken, en soms overleg ik met meer ervaren collega’s over welke taken ik moet kiezen.
Zodra de taak is vastgelegd, begint het werk. Om het probleem op te lossen, onderzoek ik de oorsprong van de fout (er is immers altijd een kans dat de oorzaak een menselijke factor is). Nadat ik alle details van de klant heb verzameld, stel ik een technisch verzoek op voor de programmeur. Zodra het component of de module klaar is, test ik deze en implementeer ik het in het systeem van de klant.
Helaas moeten de meeste tests handmatig worden uitgevoerd, omdat de implementatie van automatisering een complex bedrijfsproces is dat een serieuze onderbouwing en zorgvuldige voorbereiding vereist. Desondanks ben ik bekend geraakt met enkele automatiseringsinstrumenten. Bijvoorbeeld de Junit-bibliotheek voor het testen van een bepaalde module via API. Daarnaast is er het twin-framework van ebayopensource, waarmee scripts kunnen worden geschreven die de acties van een gebruiker nabootsen, dat lijkt sterk op Selenium, dat in het web wordt gebruikt. Bovendien heb ik het Cucumber-framework onder de knie gekregen.
Mijn inkomen op de nieuwe werkplek is in vergelijking met freelancen verdubbeld — vooral omdat ik fulltime werk. Volgens statistieken van hh.ru en andere bronnen bedraagt het salaris van een ontwikkelaar in Taganrog 40-70 duizend roebel. Over het algemeen komen deze gegevens overeen met de werkelijkheid.
De werkplek is uitgerust met alles wat nodig is, het kantoor is ruim, met veel ramen en altijd frisse lucht. Daarnaast is er een keuken, een koffiemachine, en natuurlijk koekjes! Het team is ook geweldig, er zijn geen negatieve punten op dat vlak. Goede werkplek, collega's; wat heeft een softwaretester nog meer nodig voor geluk?
Ik wil er apart op wijzen dat het kantoor van het bedrijf in Taganrog is, mijn geboortestad. Er zijn hier veel IT-bedrijven, dus er is genoeg ruimte om je te ontwikkelen. Als je wilt, kun je naar Rostov verhuizen — daar zijn meer mogelijkheden, maar voor nu heb ik geen verhuisplannen.
Wat nu?
Tot nu toe ben ik tevreden met wat ik heb. Maar ik ben niet van plan om te stoppen — daarom blijf ik leren. Ik heb een cursus "JavaScript. Niveau 2" op de planning staan en zodra ik meer vrije tijd heb, zal ik er zeker mee beginnen. Ik herhaal regelmatig het materiaal dat ik al heb behandeld en kijk ook naar lezingen en webinars. Daarnaast neem ik deel aan het mentorschapsprogramma van GeekBrains. Voor studenten die hun cursussen succesvol hebben afgerond en hun huiswerk hebben ingeleverd, is er de mogelijkheid om mentor te worden voor andere leerlingen. De mentor beantwoordt vragen en helpt met huiswerk. Voor mij is dit ook een manier om het behandelde materiaal te herhalen en te versterken. In mijn vrije tijd, wanneer ik kan, los ik vragen op van bronnen zoals ,,.
Ik volg ook een cursus Android-ontwikkeling, gegeven door docenten van ITMO. Deze cursussen zijn gratis, en als je wilt, kun je een betaalde examen afleggen. Het is vermeldenswaard dat het ITMO-team de wereldwijde leiding behoudt in programmeerwedstrijden.
Een paar tips voor degenen die geïnteresseerd zijn in programmeren
Met wat ervaring in ontwikkeling wil ik degenen die overwegen om IT in te gaan aanraden om niet kopje onder te duiken. Om een goede specialist te worden, moet je echt voor je vak branden. En daarvoor moet je die richting kiezen die je echt leuk vindt. Gelukkig is het niet moeilijk — er zijn tegenwoordig veel reviews en beschrijvingen op internet over elk gebied van ontwikkeling, programmeertaal of framework.
En je moet bereid zijn tot een continu leerproces. Een programmeur mag niet stoppen — dat is vergelijkbaar met de dood, al is het in ons geval niet fysiek, maar professioneel. Als je hier klaar voor bent — ga ervoor, waarom niet?
Bron: habr.com
