
Dnes gratulujeme všem, kteří se každý den starají o to, aby bylo na světě o něco více pořádku - testovatelům. V tento den GeekUniversity od Mail.ru Group pro ty, kteří chtějí připojit své síly v boji proti entropii vesmíru. Program kurzu je navržen tak, aby profesi "Tester softwaru" bylo možné osvojit od nuly, dokonce i pokud jste dříve pracovali v úplně jiném oboru.
Také zveřejňujeme příběh studentky GeekBrains Marie Lupandinové (). Marie je kandidátka technických věd se zaměřením na "Akustiku". V současnosti pracuje jako testovatel softwaru ve velké inženýrské společnosti, která vyvíjí software pro zdravotnická zařízení.
Ve svém článku chci ukázat možnost poměrně radikální změny kariéry. Než jsem se stala testovatelkou, neměla jsem příliš blízko k informačním technologiím, kromě situací nezbytných pro předchozí práci. Ale pod tlakem řady faktorů, o kterých se podrobně zmiňuji níže, jsem se rozhodla opustit vědeckou sféru a vstoupit do čistého IT. Vše vyšlo a nyní se mohu podělit o své zkušenosti.
Jak to všechno začalo: technologie plus věda
Po ukončení univerzity se specializací "biomedicínské inženýrství" jsem nastoupila do průmyslového podniku jako laborantka. Byla to celkem zajímavá práce; moje povinnosti zahrnovaly měření a kontrolu parametrů výrobků podniku, jakož i surovin v různých fázích výroby.
Chtěla jsem se stát dobrým specialistou, a proto jsem se postupně ponořila do technologií výroby a ovládala jsem příbuzné specializace. Například, když se objevila taková potřeba, naučila jsem se metodiku provádění chemických analýz pro kontrolu kvality vody, využívajíc k tomu státní normy a oborové předpisy. Později jsem tuto metodiku vyučovala i ostatním laborantům.
Zároveň jsem připravovala kandidátskou disertaci, kterou jsem úspěšně obhájila. Jakožto nová kandidátka jsem získala významný grant od Ruského fondu základního výzkumu (RFBR). V této době mě také pozvali do univerzity jako učitelku na 0,3 úvazku. Realizovala jsem práce v rámci grantu, vypracovala studijní plány a metodické materiály k předmětům pro univerzitu, publikovala vědecké články, přednášela, vedla praktika a vyvíjela kontrolní a testy pro systém elektronického vzdělávání. Učení mě velmi bavilo, ale bohužel skončila smlouva a má kariéra na univerzitě taktéž.
Proč? Na jedné straně jsem chtěla pokračovat ve své cestě ve vědě, třeba jako docentka. Problém je, že smlouva byla dočasná a nepodařilo se mi na univerzitě zakotvit — novou smlouvu mi bohužel nenabídli.
Tehdy jsem také odešla z podniku, protože jsem se rozhodla, že je třeba něco změnit, nechtěla jsem strávit celý život jako laborantka. Skoro nebylo kam se profesně posunout, možnost rozvoje chyběla. Podnik byl malý, takže se o kariérním postupu mluvit nedalo. K těmto chybějícím kariérním perspektivám se přidávala malá mzda, nepohodlná lokalita podniku a zvýšené riziko úrazu v průmyslu. Vznikl tak komplex problémů, který jsem musela prostě rozseknout, jako gordický uzel, tedy — odejít.
Po odchodu jsem přešla na volnou nohu. Tak jsem vyvíjela na zakázku projekty v oblasti rádiotechniky, elektrotechniky a akustiky. Konkrétně jsem projektovala parabolické mikrovlnné antény a vyvíjela tlumenou akustickou komoru pro zkoumání parametrů mikrofonů. Zakázek bylo hodně, ale přesto jsem toužila po něčem jiném. V jednom krásném okamžiku jsem chtěla vyzkoušet své síly jako programátorka.
Nové studium a freelancing
Nedávno jsem narazila na reklamu na kurzy GeekBrains a rozhodla jsem se vyzkoušet to. Nejdříve jsem absolvovala kurz "Základy programování". Chtěla jsem víc, a proto jsem absolvovala i kurzy "Webový vývoj", což byl teprve začátek: osvojila jsem si HTML/CSS, HTML5/CSS3, JavaScript, po čemž jsem začala studovat Javu na kurzech "Vzdělávání bylo velkou výzvou pro mé síly — ne proto, že by byl kurz složitý, ale protože bylo často nutné se učit s dítětem na rukou.
Proč právě Java? Opakovaně jsem slýchala, že je to univerzální jazyk, který lze využít například ve webovém vývoji. Navíc jsem četla, že pokud znáte Javu, můžete přejít na jakýkoli jiný jazyk, pokud to bude potřeba. To se ukázalo jako pravda: psala jsem kód v C++ a fungovalo to, i když jsem se do základů syntaxe příliš nezapojovala. Stejně tak jsem to zvládla s Pythonem, na němž jsem napsala malý parser webové stránky.

Někdy jsem musela pracovat takto — posadit dítě do ergonomického nosiče, dát mu hračku a doufat, že to bude stačit k dokončení další zakázky.
Jakmile jsem získala jistý základ znalostí a zkušeností s programováním, začala jsem plnit zakázky na freelancing. Tak jsem napsala aplikaci pro správu osobních financí, textový editor na zakázku. Co se týče editoru, je jednoduchý, má několik základních funkcí pro formátování textu, ale svou úlohu plní. Dále jsem řešila úkoly na zpracování textu a také jsem se věnovala návrhu webových stránek.
Ráda bych podotkla, že studium programování rozšířilo mé možnosti a obzory celkově: nejenže mohu psát programy na zakázku, ale také pracuji na projektech pro sebe. Například jsem napsala malý, ale užitečný program, který umožňuje zjistit, zda někdo mění vaše články na Wikipedii. Program parsuje stránku s článkem, najde datum poslední změny a pokud se datum neshoduje s tím, kdy jste naposledy upravili svůj článek, dostanete upozornění. Dále jsem vytvořila program pro automatický výpočet ceny tak specifického zboží, jako je pracovní síla. Grafické rozhraní programu je napsáno pomocí knihovny JavaFX. Samozřejmě jsem používala učebnici, ale algoritmus jsem vyvinula sama a pro jeho realizaci jsem použila principy OOP a návrhový vzor MVC.
Freelancing je dobrý, ale kancelář je lepší.
Celkově se mi líbilo být freelancerem — mohu vydělávat, aniž bych musel vycházet z domu. Ale zde je problém v množství zakázek. Pokud jich je mnoho, financí je dost, ale občas se objeví urgentní projekty, na kterých je třeba pracovat dlouho do noci v režimu nouze. Když je objednatelů málo, cítím potřebu peněz. Hlavní nevýhody freelancingu jsou neregulovaný pracovní čas a nestabilní úroveň příjmu. To všechno se samozřejmě odráží na kvalitě života a na celkovém psychickém stavu.
Pochopila jsem, že oficiální zaměstnání je to, co mi pomůže zbavit se výše uvedených problémů. Začala jsem hledat pracovní nabídky na specializovaných webech, vytvořila jsem dobrý životopis (za což děkuji svým učitelům — často jsem se s nimi radila, co zahrnout do životopisu a co je lepší zmínit až při osobním jednání s potenciálním zaměstnavatelem). Během hledání jsem plnila testovací úkoly, některé byly docela složité. Výsledky jsem přidávala do portfolia, které nakonec bylo dost obsáhlé.
Nakonec jsem se podařilo dostat se na pozici testera ve společnosti, která se zabývá vývojem lékařských informačních systémů pro automatizaci dokumentace ve zdravotnických zařízeních. Pomohlo mi k tomu vysokoškolské vzdělání v oboru "biomedicinská inženýrství" a navíc znalosti a zkušenosti v oblasti vývoje softwaru. Byla jsem pozvána na pohovor a nakonec jsem tuto práci získala.
Moje hlavní úloha nyní je testování aplikací, které napsali naši programátoři, na odolnost. Pokud software tímto testem neprojde, musí se upravit. Dále kontroluji zprávy od uživatelů systému naší společnosti. Na řešení různých problémů máme celý tým, a já jsem jeho součástí. Softwarová platforma, kterou vytvořila naše společnost, je implementována v nemocnicích a poliklinikách, a pokud nastanou problémy, uživatelé posílají žádosti o jejich řešení. Tyto žádosti pak zpracováváme. Někdy si sama vybírám úkol, na kterém budu pracovat, a jindy se radím s zkušenějšími kolegy o výběru úkolů.
Poté, co je úkol přidělen, začíná práce. Abyste vyřešili problém, zjišťuji původ chyby (vždy existuje pravděpodobnost, že příčinou je lidský faktor). Po vyjasnění všech podrobností se zákazníkem vytvářím technickou specifikaci pro programátora. Jakmile je komponenta nebo modul připraven, testuji je a implementuji do systému zákazníka.
Bohužel většinu testů je nutné provádět ručně, protože zavedení automatizace je složitý obchodní proces, který vyžaduje důkladné odůvodnění a pečlivou přípravu. Přesto jsem se seznámila s některými nástroji automatizace. Například s knihovnou Junit pro testování určitého bloku prostřednictvím API. Dále existuje rámec twin od ebayopensource, který umožňuje psát skripty imitující chování uživatele, což je velmi podobné Selenium, které se používá na webu. Plus jsem zvládla rámec Cucumber.
Můj příjem na novém místě vzrostl ve srovnání s freelancem dvakrát — pravda, v mnoha ohledech díky tomu, že pracuji na plný úvazek. Mimochodem, podle statistik hh.ru a dalších zdrojů se výška platu vývojáře v Taganrogu pohybuje mezi 40-70 tisíci rubly. Celkově tyto údaje odpovídají realitě.
Pracovní místo je vybaveno vším potřebným, kancelář je prostorná, má mnoho oken, vždy čerstvý vzduch. Navíc je zde kuchyň, kávovar a samozřejmě sušenky! Kolektiv je také skvělý, v této věci vůbec žádné negativní momenty. Dobrá práce, kolegové, co jiného by potřeboval programátor-testovač pro štěstí?
Zvlášť chci zmínit, že kancelář společnosti se nachází v Taganrogu, což je moje rodné město. Je zde mnoho IT společností, takže je kde se rozvíjet. Při přání se lze přesunout do Rostova — tam je více příležitostí, ale zatím se k přestěhování nechystám.
Co dál?
Zatím jsem spokojený s tím, co mám. Ale nehodlám se zastavit — proto se stále učím. Mám v plánu kurz „JavaScript. Úroveň 2“, jakmile budu mít více volného času, určitě ho začnu studovat. Pravidelně si opakuji již prostudované materiály, a navíc sleduji přednášky a webináře. Kromě toho se účastním mentoringového programu na GeekBrains. Pro studenty, kteří úspěšně zakončili kurzy a během nichž odevzdávali domácí úkoly, je k dispozici možnost být mentorem pro další studenty. Mentor odpovídá na dotazy a pomáhá s domácími úkoly. Pro mě je to také opakování a upevnění prošlého materiálu. Ve volném čase, kdy mám možnost, řeším úlohy na takových zdrojích, jako jsou ,,.
Také se učím kurz o vývoji aplikací pro Android, který vedou učitelé z ITMO. Tyto kurzy jsou zdarma, pokud máte zájem, můžete si udělat placenou zkoušku. Rád bych poznamenal, že tým ITMO drží světové prvenství v programovacích soutěžích.
Několik rad pro ty, kteří mají zájem o programování
Již s určitou zkušeností ve vývoji chci doporučit těm, kteří plánují jít do IT, aby neskákali do vody po hlavě. Aby se člověk stal dobrým odborníkem, musí ho to, co dělá, opravdu bavit. A k tomu je třeba vybrat si takový směr, který vás opravdu zajímá. Naštěstí, v tom není nic složitého — dnes je na internetu spousta recenzí a popisů jakékoli oblasti vývoje, jazyka nebo frameworku.
A také je dobré být připraven na neustálý proces učení. Programátor se nesmí zastavit — to by bylo smrtelné, ovšem v našem případě ne fyzicky, ale profesně. Pokud jste na to připraveni — tak vpřed, proč ne?
Zdroj: habr.com
