
Dziś składamy życzenia ludziom, którzy codziennie dbają o to, aby na świecie panował nieco większy porządek – testerom. W tym dniu GeekUniversity z Mail.ru Group dla tych, którzy chcą dołączyć do grona bojowników z entropią Wszechświata. Program kursu jest skonstruowany w sposób umożliwiający opanowanie zawodu „Tester Oprogramowania” od podstaw, nawet jeśli wcześniej pracowało się w zupełnie innej dziedzinie.
Publikujemy również historię studentki GeekBrains Marii Lupandiny (). Maria jest kandydatką nauk technicznych w specjalności „Akustyka”. Obecnie pracuje jako tester oprogramowania w dużej firmie inżynieryjnej, która rozwija oprogramowanie dla instytucji medycznych.
W swoim artykule chcę pokazać możliwość dość gwałtownej zmiany kariery. Zanim zostałam testerem, nie miałam zbyt wiele do czynienia z technologiami informacyjnymi, poza aspektami niezbędnymi do mojej poprzedniej pracy. Jednak pod wpływem szeregu czynników, o których szczegółowo opowiadam poniżej, postanowiłam odejść z nauki do czystego IT. Wszystko się udało i teraz mogę podzielić się swoim doświadczeniem.
Jak to się zaczęło: technologia plus nauka
Po ukończeniu studiów na kierunku „inżynieria biomedyczna” znalazłam pracę w przedsiębiorstwie przemysłowym jako inżynier-laborant. To dość interesująca praca, do moich obowiązków należało mierzenie i kontrola parametrów produktów przedsiębiorstwa, a także surowców na różnych etapach produkcji.
Chciałam być dobrym specjalistą, więc stopniowo zagłębiałam się w technologie produkcji i opanowywałam pokrewne specjalności. Na przykład, gdy pojawiła się taka potrzeba, nauczyłam się metody przeprowadzania analiz chemicznych do kontroli jakości wody, korzystając z norm państwowych i regulacji branżowych. Później uczyłam tej metody innych laborantów.
Jednocześnie przygotowywałam pracę doktorską, którą pomyślnie obroniłam. Jako doktor udało mi się uzyskać duży grant od Rosyjskiego Funduszu Badań Podstawowych (RFBR). W tym samym czasie zaproszono mnie do uniwersytetu jako wykładowcę na 0,3 etatu. Realizowałam prace zgodnie z grantem, opracowywałam programy nauczania i materiały dydaktyczne dla dyscyplin na uniwersytecie, publikowałam artykuły naukowe, prowadziłam wykłady, organizowałam praktyki, tworzyłam testy i kontrole do systemu elektronicznego kształcenia. Bardzo lubiłam uczyć, ale niestety, kontrakt się skończył i moja kariera jako pracownika uniwersytetu również.
Dlaczego? Z jednej strony chciałam kontynuować swoją drogę w nauce, np. zyskać tytuł adiunkta. Problem w tym, że kontrakt był terminowy i nie udało mi się związać z uczelnią – nowego kontraktu, niestety, nie zaproponowano.
Wtedy odeszłam z przedsiębiorstwa, ponieważ postanowiłam, że muszę coś zmienić, nie chciałam całego życia spędzić jako inżynier-laborant. Po prostu nie miałam gdzie się rozwijać zawodowo, brakowało możliwości rozwoju. Przedsiębiorstwo było małe, więc nie było mowy o awansie. Do braku perspektyw zawodowych dołączało niskie wynagrodzenie, niewygodna lokalizacja samego przedsiębiorstwa oraz wysoka urazowość produkcji. Otrzymaliśmy cały kompleks problemów, które musiałam po prostu przeciąć, jak gordyjski węzeł, czyli – odejść.
Po odejściu przeszłam na wolne zlecenia. Tak, rozwijałam zlecone projekty związane z radiotechniką, elektroniką, akustyką. Szczególnie projektowałam paraboliczne anteny mikrofalowe, opracowywałam wyciszoną komorę akustyczną do badań parametrów mikrofonów. Było wiele zleceń, ale mimo to chciałam czegoś innego. Pewnego pięknego dnia postanowiłam spróbować swoich sił jako programista.
Nowa nauka i freelancing
W pewnym momencie natknęłam się na reklamę kursów GeekBrains i postanowiłam spróbować. Najpierw przeszłam kurs „Podstawy programowania”. Chciałam więcej, więc zakończyłam też kursy „Tworzenie stron internetowych”, co było tylko początkiem: opanowałam HTML/CSS, HTML5/CSS3, JavaScript, po czym zaczęłam uczyć się Javy na kursach „Szkolenie było dużym wyzwaniem, nie dlatego, że kurs był skomplikowany, ale dlatego, że często musiałam się uczyć z dzieckiem na rękach.
Dlaczego właśnie Java? Wiele razy słyszałam, że to uniwersalny język, który można wykorzystać na przykład w web development. Ponadto czytałam, że znając Javę, można przejść na każdy inny język, jeśli zajdzie taka potrzeba. To okazało się prawdą: pisałam kod w C++ i działał, mimo że nie zagłębiłam się zbyt głęboko w podstawy składni. Udało mi się również z Pythonem, napisałam niewielki parser strony internetowej.

Czasami musiałam pracować tak — wsadzać dziecko do nosidła, dawać mu zabawkę i mieć nadzieję, że to wystarczy, aby zrealizować kolejne zlecenie.
Gdy tylko zdobyłam pewien zasób wiedzy i doświadczenia programistycznego, zaczęłam realizować zlecenia na freelancie. Tak napisałam aplikację do zarządzania osobistymi finansami oraz edytor tekstu na zamówienie. Jeśli chodzi o edytor, jest prosty, ma kilka podstawowych funkcji do formatowania tekstu, ale spełnia swoje zadanie. Oprócz tego rozwiązywałam zadania z tekstu, a także zajmowałam się layoutem stron internetowych.
Zaznaczam, że nauka programowania poszerzyła moje możliwości i horyzonty: nie tylko mogę pisać programy na zamówienie, ale także zajmuję się projektami dla siebie. Na przykład napisałam mały, ale użyteczny program, który pozwala sprawdzić, czy ktoś psuje moje artykuły na Wikipedii. Program analizuje stronę z artykułem, znajduje datę ostatniej zmiany i, jeśli data nie zgadza się z datą, kiedy ostatnio edytowałam swój artykuł, otrzymuję powiadomienie. Napisałam też program do automatycznego obliczania kosztów specyficznego towaru, jakim jest praca. Graficzny interfejs programu został stworzony za pomocą biblioteki JavaFX. Oczywiście korzystałam z podręcznika, ale algorytm opracowałam samodzielnie, a do jego realizacji wykorzystałam zasady OOP oraz wzorzec projektowy MVC.
Freelancing jest dobry, ale praca w biurze jest lepsza.
Ogólnie rzecz biorąc, bycie freelancerem mi się podobało — można zarabiać, nie wychodząc z domu. Ale tu pojawia się problem z ilością zamówień. Jeśli jest ich wiele, finanse są w porządku, lecz zdarzają się pilne projekty, przy których musiałem pracować do późna w trybie awaryjnym. Gdy zamówień jest mało, odczuwasz potrzebę pieniężną. Główne minusy freelancingu to nieregularny grafik i zmienny poziom dochodu. Wszystko to wpłynęło na jakość życia oraz ogólny stan psychiczny.
Przyszło zrozumienie, że oficjalne zatrudnienie to coś, co pomoże pozbyć się wymienionych problemów. Zaczęłam szukać ofert pracy na wyspecjalizowanych stronach, opracowałam dobre CV (za co dziękuję nauczycielom — często konsultowałam się z nimi na temat tego, co warto umieścić w CV, a co lepiej wspomnieć podczas osobistej rozmowy z potencjalnym pracodawcą). Podczas poszukiwań wykonywałam testowe zadania, niektóre z nich były dość trudne. Wyniki dodałam do portfolio, które ostatecznie stało się dość obszerne.
W rezultacie udało mi się zatrudnić jako tester w firmie, która zajmuje się tworzeniem systemów informacyjnych w służbie zdrowia, mających na celu automatyzację obiegu dokumentów w placówkach medycznych. W znalezieniu pracy pomogło mi wykształcenie wyższe w zakresie „inżynierii biomedycznej”, a także znajomość i doświadczenie w tworzeniu oprogramowania. Zostałam zaproszona na rozmowę kwalifikacyjną i ostatecznie dostałam pracę.
Obecnie moim głównym zadaniem jest sprawdzanie aplikacji napisanych przez naszych programistów pod kątem wytrzymałości. Jeśli oprogramowanie nie przeszło testu — trzeba je poprawić. Ponadto sprawdzam wiadomości od użytkowników systemu mojej firmy. Nad rozwiązaniem różnych problemów pracuje cały zespół, a ja jestem jego częścią. Platforma programowa stworzona przez naszą firmę została wdrożona w szpitalach i przychodniach, jeśli pojawiają się trudności, użytkownicy przesyłają zapytania dotyczące rozwiązania problemu. Te zapytania analizujemy. Czasami sama wybieram zadanie, nad którym będę pracować, a czasami konsultuję się w tej kwestii z bardziej doświadczonymi kolegami.
Po przypięciu zadania, rozpoczyna się praca. Aby rozwiązać problem, ustalam źródło błędu (w końcu zawsze istnieje możliwość, że powód to czynnik ludzki). Po wyjaśnieniu wszystkich szczegółów z klientem, formułuję wytyczne techniczne dla programisty. Po tym, jak komponent lub moduł jest gotowy, testuję je i wdrażam do systemu klienta.
Niestety, większość testów trzeba przeprowadzać ręcznie, ponieważ wdrożenie automatyzacji to skomplikowany proces biznesowy, który wymaga solidnego uzasadnienia i starannego przygotowania. Niemniej jednak, z niektórymi narzędziami do automatyzacji miałam już styczność. Na przykład, biblioteką Junit do testowania dowolnego bloku przez API. Jest także framework twin od ebayopensource, który umożliwia pisanie skryptów imitujących działania użytkownika, bardzo podobny do Selenium, które jest używane w sieci. Dodatkowo opanowałam framework Cucumber.
Moje dochody w nowym miejscu wzrosły w porównaniu z freelancingiem dwukrotnie — prawda, że w dużej mierze dzięki temu, że pracuję w pełnym wymiarze godzin. A propos, według statystyk hh.ru i innych źródeł, wynagrodzenie programisty w Taganrogu wynosi 40-70 tysięcy rubli. Ogólnie rzecz biorąc, dane te odpowiadają rzeczywistości.
Miejsce pracy jest wyposażone we wszystko, co potrzebne, biuro jest przestronne, jest dużo okien, zawsze świeże powietrze. Oprócz tego jest kuchnia, ekspres do kawy i oczywiście ciastka! Zespół również jest świetny, nie ma w tej kwestii żadnych negatywnych aspektów. Dobra praca, koledzy, czego więcej potrzeba testerowi-programiście do szczęścia?
Szczególnie podkreślę, że biuro firmy znajduje się w Taganrogu, moim rodzinnym mieście. Jest tutaj sporo firm IT, więc jest gdzie się rozwijać. W razie chęci można przeprowadzić się do Rostowa — tam jest więcej możliwości, ale jak na razie nie planuję przeprowadzki.
Co dalej?
Na razie podoba mi się to, co mam. Ale nie zamierzam się zatrzymywać — dlatego nadal się uczę. W zapasie mam kurs "JavaScript. Poziom 2", jak tylko znajdę więcej wolnego czasu, na pewno go zacznę. Regularnie powtarzam już przerobione materiały, plus oglądam wykłady i webinaria. Dodatkowo biorę udział w programie mentoringowym w GeekBrains. Tak, dla studentów, którzy pomyślnie ukończyli kursy i podczas realizacji zadań domowych, dostępna jest możliwość zostania mentorem dla innych uczniów. Mentor odpowiada na pytania, pomaga z zadaniami domowymi. Dla mnie to też powtórka i utrwalenie przyswojonego materiału. W wolnym czasie, kiedy tylko mogę, rozwiązuję zadania z takich zasobów, jak ,,.
Zajmuję się także kursem dotyczących rozwoju Androida, który prowadzą wykładowcy ITMO. Te kursy są bezpłatne, a chętni mogą zdać płatny egzamin. Warto zauważyć, że zespół ITMO utrzymuje światowe mistrzostwo w zawodach programistycznych.
Kilka rad dla tych, którzy interesują się programowaniem
Mając już pewne doświadczenie w programowaniu, chciałbym doradzić tym, którzy planują pójść w IT, aby nie skakali na głęboką wodę. Aby stać się dobrym specjalistą, musisz być pasjonatem tego, co robisz. A do tego powinnaś/musisz wybrać kierunek, który naprawdę ci się podoba. Na szczęście w internecie jest mnóstwo recenzji i opisów każdej dziedziny rozwoju, języka lub frameworka.
No i warto być gotowym na ciągły proces uczenia się. Programista nie może się zatrzymać — to jakby umierać, w naszym przypadku nie fizycznie, ale zawodowo. Jeśli jesteś na to gotowy — to do przodu, czemu nie?
Źródło: habr.com
