Jak rzucić naukę dla IT i zostać testerem: historia jednej kariery

Jak rzucić naukę dla IT i zostać testerem: historia jednej kariery

Dziś gratulujemy święta ludziom, którzy na co dzień dbają o to, aby na świecie było trochę więcej porządku – testerom. Tego dnia GeekUniversity z grupy Mail.ru otwiera wydział dla tych, którzy chcą dołączyć do grona bojowników przeciwko entropii Wszechświata. Program kursu jest tak skonstruowany, że zawód „Testera oprogramowania” można opanować od podstaw, nawet jeśli wcześniej pracowałeś w zupełnie innej dziedzinie.

Publikujemy także historię studentki GeekBrains, Marii Lupandiny (@mahatima). Maria jest absolwentką nauk technicznych o specjalności akustyka. Obecnie pracuje jako tester oprogramowania w dużej firmie inżynierskiej tworzącej oprogramowanie dla instytucji medycznych.

W moim artykule chcę pokazać możliwość dość drastycznej zmiany kariery. Zanim zostałem testerem, nie miałem zbyt dużego kontaktu z informatyką, poza momentami, które były niezbędne w mojej poprzedniej pracy. Jednak pod presją szeregu czynników, które szczegółowo opisuję poniżej, zdecydowałem się porzucić dziedzinę naukową na rzecz czystej informatyki. Wszystko się udało i teraz mogę podzielić się swoim doświadczeniem.

Jak to się wszystko zaczęło: technologia plus nauka

Po ukończeniu studiów wyższych na kierunku inżynieria biomedyczna dostałem pracę w przedsiębiorstwie przemysłowym na stanowisku inżyniera laboratoryjnego. Jest to dość ciekawa praca, do moich obowiązków należało mierzenie i monitorowanie parametrów produktów przedsiębiorstwa, a także surowców na różnych etapach produkcji.

Chciałem zostać dobrym specjalistą, dlatego stopniowo zagłębiałem się w technologie produkcyjne i opanowywałem specjalizacje z tym związane. Na przykład, gdy zaszła taka potrzeba, studiowałem metodologię przeprowadzania analiz chemicznych w celu kontroli jakości wody, wykorzystując jako źródła normy rządowe i przepisy branżowe. Później uczyłem tej techniki innych asystentów laboratoryjnych.

W tym samym czasie przygotowywałem pracę doktorską, którą obroniłem z sukcesem. Będąc już kandydatem, udało mi się zdobyć duży grant od Rosyjskiej Fundacji Badań Podstawowych (RFBR). W tym samym czasie zostałem zaproszony na uczelnię jako nauczyciel za 0,3 pensji. Prowadziłem prace w ramach grantu, opracowywałem programy nauczania i materiały metodyczne w dyscyplinach dla uczelni, publikowałem artykuły naukowe, prowadziłem wykłady, prowadziłem praktyki, opracowywałem quizy i testy dla systemu e-edukacji. Bardzo lubiłem uczyć, ale niestety kontrakt się skończył, a wraz z nim moja kariera jako pracownika uniwersyteckiego.

Dlaczego? Z jednej strony chciałam kontynuować swoją drogę do nauki, zostając np. adiunktem. Problem w tym, że umowa była na czas określony i nie było możliwości zaistnienia na uczelni – niestety nie zaproponowano im nowego kontraktu.

Jednocześnie odszedłem z firmy, bo stwierdziłem, że trzeba coś zmienić, nie chciałem całe życie spędzić pracując jako inżynier laboratoryjny. Po prostu nie miałam gdzie się rozwijać zawodowo, nie było możliwości rozwoju. Firma jest niewielka, więc o drabinie kariery nie trzeba było mówić. Do braku perspektyw zawodowych dodajemy niskie zarobki, niedogodną lokalizację samego przedsiębiorstwa i zwiększone ryzyko kontuzji na produkcji. Skończyło się na całej gamie problemów, które po prostu musieliśmy przeciąć, niczym węzeł gordyjski, czyli zrezygnować.

Po zwolnieniu przerzuciłem się na darmowy chleb. Opracowałem więc niestandardowe projekty z zakresu radiotechniki, elektrotechniki i akustyki. W szczególności zaprojektowała paraboliczne anteny mikrofalowe i opracowała bezechową komorę akustyczną do badania parametrów mikrofonów. Zamówień było sporo, ale i tak chciałam coś innego. W pewnym momencie chciałem spróbować swoich sił jako programista.

Nowe studia i freelancing

Jakimś sposobem przykuła moją uwagę reklama kursów GeekBrains i zdecydowałem się spróbować. Najpierw wziąłem udział w kursie „Podstawy programowania”. Chciałem więcej, więc zapisałem się także na kursy „Tworzenie stron internetowych”, a to był dopiero początek: opanowałem HTML/CSS, HTML5/CSS3, JavaScript, po czym zacząłem uczyć się Java w „Programista Java" Studia były wielkim wyzwaniem dla moich mocnych stron – nie dlatego, że sam kurs był trudny, ale dlatego, że często musiałam uczyć się z dzieckiem na rękach.

Dlaczego Java? Wielokrotnie czytałem i słyszałem, że jest to język uniwersalny, który można wykorzystać np. przy tworzeniu stron internetowych. Poza tym przeczytałem, że znając Javę, można w razie potrzeby przełączyć się na dowolny inny język. Okazało się to prawdą: kod napisałem w C++ i zadziałało, mimo że nie zagłębiałem się zbytnio w podstawy składni. Wszystko wyszło w Pythonie, napisałem w nim mały parser strony internetowej.

Jak rzucić naukę dla IT i zostać testerem: historia jednej kariery
Czasem musiałam tak popracować – włożyć dziecko do ergo-plecaka, dać mu zabawkę i mieć nadzieję, że to wystarczy na realizację kolejnego zamówienia.

Gdy tylko zdobyłem pewną wiedzę i doświadczenie programistyczne, zacząłem realizować zamówienia jako freelancer, napisałem więc aplikację do prowadzenia księgowości finansów osobistych, edytor tekstu na zamówienie. Jeśli chodzi o edytor to jest prosty, ma kilka podstawowych funkcji formatowania tekstu, ale daje radę. Dodatkowo rozwiązywałem problemy z przetwarzaniem tekstu oraz zajmowałem się układem stron internetowych.

Pragnę zaznaczyć, że studiowanie programowania poszerzyło moje możliwości i horyzonty w ogóle: mogę nie tylko pisać programy na zamówienie, ale także wykonywać projekty dla siebie. Napisałem na przykład mały, ale przydatny program, który pozwala dowiedzieć się, czy ktoś nie psuje Twoich artykułów w Wikipedii. Program analizuje stronę artykułu, znajduje datę ostatniej modyfikacji i jeśli data nie zgadza się z datą ostatniej edycji artykułu, otrzymasz powiadomienie. Napisałem także program automatycznie obliczający koszt tak konkretnego produktu jak robocizna. Interfejs graficzny programu napisano przy użyciu biblioteki JavaFX. Korzystałem oczywiście z podręcznika, ale algorytm opracowałem sam, a do jego implementacji wykorzystano zasady OOP i wzorzec projektowy mvc.

Freelancing jest dobry, ale biuro jest lepsze

Ogólnie podobało mi się bycie freelancerem - bo można zarabiać pieniądze bez wychodzenia z domu. Problemem jest jednak liczba zamówień. Jeśli jest ich dużo, z pieniędzmi wszystko w porządku, ale są pilne projekty, przy których trzeba było siedzieć do późna w nocy w trybie awaryjnym. Jeśli jest niewielu klientów, czujesz potrzebę pieniędzy. Głównymi wadami freelancingu są nieregularne harmonogramy i niespójny poziom dochodów. Wszystko to oczywiście wpłynęło na jakość życia i ogólny stan psychiczny.

Zrozumieno, że oficjalne zatrudnienie pomoże pozbyć się tych problemów. Zaczęłam szukać ofert pracy na specjalistycznych portalach, opracowałam dobre CV (za co dziękuję moim nauczycielom – często konsultowałam z nimi, co powinno znaleźć się w CV, a o czym lepiej wspomnieć w osobistej komunikacji z potencjalnym pracodawcą). Podczas poszukiwań wykonywałem zadania testowe, z których część była dość trudna. Dodałem wyniki do mojego portfolio, które ostatecznie stało się dość obszerne.

Dzięki temu udało mi się dostać pracę na stanowisku testera w firmie tworzącej systemy informacji medycznej służące automatyzacji obiegu dokumentów w placówkach medycznych. Wykształcenie wyższe w zakresie inżynierii biomedycznej oraz wiedza i doświadczenie w tworzeniu oprogramowania pomogły mi w znalezieniu pracy. Zostałem zaproszony na rozmowę kwalifikacyjną i ostatecznie dostałem tę pracę.

Teraz moim głównym zadaniem jest testowanie wytrzymałości aplikacji napisanych przez naszych programistów. Jeśli oprogramowanie nie przejdzie testu, należy je ulepszyć. Sprawdzam także wiadomości od użytkowników systemu mojej firmy. Mamy cały dział pracujący nad rozwiązywaniem różnych problemów, a ja jestem jego częścią. Platforma oprogramowania opracowana przez naszą firmę została wdrożona w szpitalach i klinikach, w przypadku pojawienia się trudności użytkownicy wysyłają prośbę o rozwiązanie problemu. Przyglądamy się tym prośbom. Czasami sam wybieram zadanie, nad którym będę pracować, a czasami konsultuję wybór zadań z bardziej doświadczonymi kolegami.

Po zabezpieczeniu zadania rozpoczyna się praca. Aby rozwiązać problem, dowiaduję się o przyczynie błędu (w końcu zawsze istnieje możliwość, że przyczyną jest czynnik ludzki). Po ustaleniu wszystkich szczegółów z klientem formułuję specyfikację techniczną dla programisty. Gdy komponent lub moduł jest już gotowy, testuję go i wdrażam do systemu klienta.

Niestety większość testów trzeba przeprowadzić ręcznie, gdyż wdrożenie automatyzacji to złożony proces biznesowy, który wymaga poważnego uzasadnienia i starannego przygotowania. Zapoznałem się jednak z niektórymi narzędziami do automatyzacji. Na przykład biblioteka Junit do testowania bloku za pomocą API. Istnieje również bliźniaczy framework z ebayopensource, który pozwala pisać skrypty symulujące działania użytkownika, bardzo podobny do Selenium, który jest używany w sieci. Poza tym opanowałem framework Cucumber.

Moje dochody w nowej pracy podwoiły się w porównaniu do freelancingu – jednak głównie ze względu na fakt, że pracuję na pełen etat. Nawiasem mówiąc, według statystyk hh.ru i innych zasobów pensja programisty w Taganrogu wynosi 40-70 tysięcy rubli. Ogólnie rzecz biorąc, dane te są prawdziwe.

Miejsce pracy jest wyposażone we wszystko, co niezbędne, biuro jest przestronne, jest wiele okien, zawsze jest świeże powietrze. Do tego kuchnia, ekspres do kawy i oczywiście ciasteczka! Zespół jest również świetny, nie ma żadnych negatywnych aspektów w tym względzie. Dobra robota koledzy, czego jeszcze potrzebuje programista testowy do szczęścia?

Osobno chciałbym zaznaczyć, że biuro firmy mieści się w Taganrogu, czyli moim rodzinnym mieście. Firm IT jest tu sporo, więc jest miejsce na rozwój. Jeśli chcesz, możesz przeprowadzić się do Rostowa - tam jest więcej możliwości, ale na razie nie planuję się przeprowadzać.

Co dalej?

Jak na razie podoba mi się to, co mam. Ale nie zamierzam przestać i dlatego kontynuuję naukę. Na stanie - kurs JavaScript. Poziom 2”, gdy tylko będę miał więcej wolnego czasu, na pewno zacznę go opracowywać. Regularnie powtarzam przerobione już materiały, a także oglądam wykłady i webinary. Oprócz tego biorę udział w programie mentorskim w GeekBrains. Zatem dla studentów, którzy pomyślnie ukończyli kursy i odrobili zadania domowe, dostępna jest możliwość bycia mentorem dla innych uczniów. Mentor odpowiada na pytania i pomaga w odrabianiu zadań domowych. Dla mnie to także powtórzenie i utrwalenie przerobionego materiału. W wolnym czasie, jeśli to możliwe, rozwiązuję problemy z zasobów takich jak hackerrank.com, codeabbey.com, sql-ex.ru.

Biorę także udział w kursie dotyczącym programowania na Androida prowadzonym przez nauczycieli ITMO. Kursy te są bezpłatne, ale jeśli chcesz, możesz przystąpić do płatnego egzaminu. Pragnę zauważyć, że zespół ITMO jest mistrzem świata w zawodach programistycznych.

Kilka rad dla zainteresowanych programowaniem

Mając już pewne doświadczenie w programowaniu, chciałbym doradzić osobom planującym karierę w IT, aby nie spieszyły się do puli. Aby zostać dobrym specjalistą, trzeba pasjonować się swoją pracą. Aby to zrobić, powinieneś wybrać kierunek, który naprawdę ci się podoba. Na szczęście nie ma w tym nic skomplikowanego – teraz w Internecie można znaleźć mnóstwo recenzji i opisów na temat dowolnego obszaru rozwoju, języka czy frameworka.

Cóż, powinieneś być przygotowany na ciągły proces uczenia się. Programista nie może przestać – to jak śmierć, choć w naszym przypadku nie fizyczna, ale zawodowa. Jeśli jesteś na to gotowy, śmiało, czemu nie?

Źródło: www.habr.com

Dodaj komentarz