Wybieramy temat kolejnego webinarium! Zagłosuj na interesujące Cię zagadnienie.

Lekcja 1: Kariera w branży IT

Cze 1, 2020

Autor: Tomasz Stelmach ©Wszelkie prawa zastrzeżone.

Chcesz wejść do świata IT? Potrzebujesz do tego wiedzy, umiejętności i doświadczenia. W pierwszej kolejności musisz poznać dostępne kierunki rozwoju. Ocenisz w ten sposób, która dziedzina oferuje Ci najwięcej satysfakcji i możliwości. W trakcie kursu dowiesz się, jak zostać specjalistą, gdzie szukać pracy, na czym polega praca z poszczególnymi systemami i jak wykorzystać dostępne narzędzia. Zapewniamy Ci w ten sposób doskonałe podłoże do rozpoczęcia wspaniałej kariery. Przekonaj się, że nie potrzebujesz wielu lat nauki, by zostać profesjonalnym automatykiem. Wystarczą chęci, zapał oraz dawka wiedzy, która popchnie Cię dalej i nawet nie zauważysz, kiedy samodzielnie będziesz realizować projekty dla swoich klientów lub pracodawców. Kurs „Od laika do Automatyka” to sposób na Twoją przyszłość. Wykorzystaj zawarte w nim informacje najlepiej, jak to możliwe.

Branża IT rozwija się w zawrotnym tempie. Prognozy są zatem klarowne: dla najlepszych specjalistów nie będzie brakować dobrze płatnych zleceń. Na postęp sektora informatycznego w Polsce, duży wpływ mają zwiększające się wydatki firm – głównie związane z innowacyjną technologią pozwalającą na automatyzację, inwestycjami w sektor publiczny i transakcjami zagranicznymi. Masowe migracje działalności biznesowych do sieci to najlepszy dowód na to, że IT to przyszłość, która potrzebuje nowoczesnego podejścia i nowych rozwiązań.

W obliczu pandemii COVID-19, czyli wirusa, który spowodował upadek wielu biznesów stacjonarnych, intensywność internetowych działań biznesowych zaskoczyła nawet wybitnych analityków. Obecność firmy w sieci już nie tylko jest dodatkiem. Staje się wymogiem istnienia na rynku. Wszystkie czynniki powodują, że branża IT ma szansę niebawem stać się jeszcze bardziej potrzebna, zapewniając tym samym dobrze płatne posady większej grupie fachowców.  

Potrzeba jest matką wynalazków. Liczba produktów oraz projektów IT z roku na rok rośnie. Informatyzacja coraz mocniej zakorzenia się w każdą gałąź ludzkiego życia. Nic dziwnego, że w tej branży słowo ‘bezrobocie’ praktycznie nie istnieje. Na rynku pracy od wielu już lat panuje przekonanie, że praca w gałęziach IT to swoiste eldorado –  wymarzony kawałek nieba dla zatrudnionych. 

Czy takie opinie są prawdziwe?

Czy mają odzwierciedlenie w rzeczywistości?

A może jest wręcz przeciwnie?

Zawsze dobrze tam, gdzie nas nie ma. A jeśli jednak to prawda… Jak znaleźć drogę do wymarzonego świata IT?

Są to najczęściej pojawiające się wątpliwości wśród interesantów. Na początek zarysuję faktyczne tło rodzimej branży IT. Spróbuję przedstawić w liczbach kluczowe jej elementy – w końcu liczby nie kłamią.

W branży IT od wielu lat panuje deficyt pracowników. Precyzując użyty przeze mnie termin: deficyt pracowników – mam na myśli doświadczonych specjalistów, z wysokimi umiejętnościami technicznymi. Jest to bardzo ważne, gdyż na rynku panuje pewien dysonans – szczególnie wśród osób spoza branży:

„Ale przecież tak bardzo chcę się przebranżowić, wysyłam CV do dziesiątek firm i nic z tego – żadnej odpowiedzi”.

Z drugiej strony medalu, są setki nowych ofert pracy w popularnych serwisach ogłoszeniowych, czy społecznościowych, jak np. LinkedIn. 

To jak w końcu jest z tą pracą w IT?

Według analiz Komisji Europejskiej na polskim rynku brakuje nawet 50 000 specjalistów IT. Prognozy mówią o znacznym zwiększeniu tej liczby w kolejnych latach. Skoro osadziłem w liczbach popyt, czas przedstawić podaż. Obecnie rocznie studia informatycznie kończy około 13 000-15 000 absolwentów. W tym roku również najczęściej wybieranym kierunkiem studiów była i jest informatyka z liczbą 32 680 złożonych wniosków. Dane pochodzą ze Zintegrowanego Systemu Informacji o Nauce i Szkolnictwie Wyższym “POL-on”.

Jakie można wyciągnąć z tego wnioski?

Deficyt pracowników w branży IT to prawda i nic nie wskazuje na to, by sytuacja w tym zakresie miała ulec poprawie. Omawiany deficyt dotyczy jednak osób wysoko wykwalifikowanych o silnych, często precyzyjnie zdefiniowanych umiejętnościach. W innych branżach ciężko jest szukać relacji pracodawca – pracownik, w której na z góry wygranej pozycji stoi pracownik. To pracodawca za sprawą pakietów benefitów, udogodnień, obietnic rozwoju i ciekawych projektów, stara się zachęcić pracownika do wybrania jego firmy. Jednak na taką sytuację mogą sobie pozwolić tylko doświadczenitechnicznie zaawansowani specjaliści. Na drugim biegunie branży IT są osoby próbujące przełamać jej granice. Starają się oni dostać swoja pierwszą posadę, w tym specyficznym sektorze. Przyjęło się, że takie osoby dostają branżowy stopnie – Junior lub Entry Level. W tym wypadku sytuacja jest zgoła odmienna. Osoby bez doświadczenia lub z małym stażem, nie są już tak rozpieszczane przez pracodawców, jak ich starsi stażem koledzy. Oczywiście taką sytuację dyktuje rynek. Skoro tak wiele osób chce się dostać do IT, to jest w kim wybierać i można sobie pozwolić na nieco większą wybredność podczas rekrutacji.

Wspomniany dysonans opinii i zdań na temat sytuacji rynku pracownika w sektorze informatycznym ma moim zdaniem logiczne uzasadnienie. Punkt widzenia, jak zawsze zależy od punktu siedzenia.

IT to rozległa branża przecięta wieloma gałęziami specjalizacji, na których wyrastają coraz nowsze technologie i rozwiązania. Aktualnie według statystyk Stoackoverflow, najczęściej używanymi technologiami w IT są: 

  • JavaScript

  • HTML/CSS

  • Java

  • Python

  • C++

Nie jest tajemnicą, że to właśnie umiejętności programowania w popularnych językach kodowania, są najbardziej poszukiwanymi kompetencjami przez pracodawców.

Programowanie początkowo może wydawać się tematem nie do opanowania, istnym rocket science. Moim zdaniem jest zupełnie inaczej. To logiczna nauka i na pewno niesie ze sobą ogrom satysfakcji.

Poniżej przedstawię swoją drogę kariery w branży informatycznej. Na jej podstawie postaram się wskazać Ci odpowiedni kierunek, nakreślić azymut i pokazać przed Tobą kilka znaków ostrzegawczych. Mam nadzieję, że w ten sposób pomogę każdemu ominąć kilka przeszkód, które sam musiałem pokonać, by znaleźć się w miejscu, w którym jestem. Ten artykuł to nie zachęta, reklama branży IT lub programowania. To z mojej strony pomocna dłoń dla wszystkich, którzy myślą o poznaniu świata IT lub są już na odpowiedniej drodze – tylko zgubili się i poszukują właściwego kierunku.

Ukończyłem studia wyższe na kierunku Informatyka. Jednak według mnie, nie jest to najważniejszym punktem, bez którego nie mógłbym się znaleźć tu, gdzie teraz jestem.

Lubię liczby, więc znowu się do nich odwołam.

Według analiz internetowych w Polsce około 15% pracowników IT to osoby mające wykształcenie średnie. W krajach zachodnich grupa  takich pracowników według badań jest jeszcze większa. Coraz częściej firmy zatrudniają pracowników technicznych na podstawie ich umiejętności i doświadczenia zawodowego. Papier z uczelni wyższej (w mojej opinii) z roku na rok traci na wartości. Niemniej jednak myślę, że studia informatyczne, mimo często przestarzałego planu nauki, dają pewnego rodzaju pogląd całościowy na świat IT. Zapewniają jednak w ten sposób przydatną wiedzę na późniejszych etapach kariery. Podkreślam jednak, że nawet jeśli nie posiadacie wykształcenia wyższego, to droga do IT nie jest zamknięta.

Skoro nie studia i wykształcenie, to co jest najważniejsze?

Zdecydowanie umiejętności!

„No tak, tylko jak je nabyć. Przecież się z nimi nie rodzimy..”

Zgadzam się. Nic nie przychodzi w życiu samo i wszystko co ma swoją wartość, trzeba okupić pracą i wytrwałością. Tak, wytrwałość to słowo klucz. Ale to tylko piękne słowa, więc przejdę do konkretów.

Wspomniałem już wcześniej i podkreślę to jeszcze raz:  uważam, że podczas nauki i szlifowania umiejętności, pomocna jest rozległa wiedza ogólna z zakresu IT. Co to konkretniej oznacza? Podzieliłbym tą wiedzę na kilka zakresów:

Programowanie

Bez podstawowej wiedzy programistycznej, będzie Ci ciężko wejść w buty testera automatyzującego. Profesjonalna automatyzacja jest oparta na pisaniu skryptów w danym języku programowania. Kiedy nie posiadasz nawet podstawowej wiedzy programistycznej, każde kolejne tematy z automatyzacji testów, będą stawać się dla Ciebie podwójnie skomplikowane.

Dlaczego akurat JAVA? Jest to jeden z najpopularniejszych języków programowania obiektowego. Dzięki temu cieszy się dużą popularnością przy dużych, rozbudowanych projektach. Jeśli to Cię nie przekonało, to powiem tylko tyle, iż najlepiej opłacani są właśnie specjaliści programujący w Javie.

Dodatkowym atutem Javy w kontekście programistów, jest poprawność działania skryptów. Już na etapie kompilacji programu możemy zweryfikować poprawność składniową, co wpływa na większą płynność pracy – szczególnie, gdy nasz kod nie jest najwyższej jakości. Znaczenie ma również organizacja i struktura kodu, która jest po prostu czytelna i relatywnie łatwo przyswajalna.

Jestem obecnie na etapie przygotowywania czegoś specjalnego z myślą o Tobie. Jest to kurs “Programowanie w Javie dla laików”, który będzie świetnym wstępem przygotowującym do pracy z Javą. Pamiętaj jednak, iż nie jest on wymagany, aby rozpocząć już teraz pracę z programowaniem w tym języku. Na chwilę obecną wystarczające jest, że zapoznasz się z jakimkolwiek  podstawowym darmowym kursem Java i na pewno  nie będziesz czuć się zagubiony, realizując kurs “Od laika do Automatyka”.

Dobrym, prostym, zwięzłym i darmowym kursem jest : https://www.learnjavaonline.org/

Na pewno sekcja Learn the Basics  będzie idealna na początek.

Dla wszystkich, którzy wolą uczyć się z książek lub e-booków, szczególnie polecam dwie pozycje:

JAVA Podstawy (najbardziej aktualne wydanie XI) autorstwa: Cay S. Horstmann, https://helion.pl/ksiazki/java-podstawy-wydanie-xi-cay-s-horstmann,javp11.htm#format/d

Jest to kompendium wiedzy – można powiedzieć biblia Javy. Książka ma grubo ponad 800 stron, więc na pierwszy rzut oka może raczej odstraszać, niż przyciągać. Trzeba jednak pamiętać o tym, że nie jest to jedna z tych książek, które czyta się od deski do deski. Mam tę pozycję (niższe wydanie) w swojej bibliotece i na pewno polecam ją osobom, które chcą dokładnie poznać podstawy Javy. Dużo przykładów, długie, wyczerpujące opisy oraz kod omawiany linia po linii sprawiają, że mimo ogromu informacji w niej zawartych, czytelnik nie powinien czuć się zagubiony.

Zadania z programowania z przykładowymi rozwiązaniami. Wydanie II autorstwa Mirosław J. Kubiak

https://helion.pl/ksiazki/java-zadania-z-programowania-z-przykladowymi-rozwiazaniami-wydanie-ii-miroslaw-j-kubiak,javaz2.htm#format/d

Wiele fajnych i kreatywnych ćwiczeń, które zostały szczegółowo opisane i wytłumaczone. W sam raz do samodzielnej pracy.

Uważam, że niewielkie znaczenie ma to, czy uczymy się z kursów wideo, stron www, czy książek. Najważniejsze jest, żeby nie poprzestawać na biernej formie zdobywania informacji w postaci przyglądania się skryptom i konstrukcjom programistycznym. Nieodzowne jest samodzielne pisanie kodu. Każda próba (nawet nieudana) rozwiązania jakiegoś zdania/problemu niesie ze sobą ogromne korzyści i wymusza progres naszych umiejętności. Każda godzina spędzona nad próbami napisania czegoś samodzielnie, będzie mocno wpływała na Twój rozwój.

Sieci, wirtualizacja

Ten temat jest bardzo rozległy i bywa uważany za jedną z trudniejszych dziedzin IT.

Wiedza z tego obszaru przyda się każdemu testerowi automatyzującemu, gdyż profesjonalna automatyzacja wymusza pracę w rozproszonych  infrastrukturach i w środowiskach zwirtualizowanych. Udrożnienie ruchu sieciowego, bezpieczeństwo połączeń i praca na maszynach wirtualnych – to wszystko jest codziennością budowy procesu automatyzacji testów.

Bazy danych

Wszystkie aplikacje (a w szczególności aplikacje webowe) wykorzystują bazy danych.

Tematy związane z tworzeniem danych, przechowywaniem ich, manipulacją i obróbką, są codziennością pracy testera automatyzującego. Dlaczego? Ponieważ lokowane są w nich dane testowe potrzebne do realizacji przypadków testowych i artefakty z przebiegu testów. Umiejętności pracy z bazami, sprawiają, że nasza praca przebiega sprawniej i efektywniej.

Testowanie oprogramowania

Jest to kolejny kluczowy zakres wiedzy. Ogólna znajomość zagadnień z zakresu testowania jest szalenie istotna – głównie w kontekście komunikacji oraz zrozumienia założeń projektowych.

Współpraca testerów automatycznych skupia się głównie wokół dwóch grup – deweloperów tworzących system oraz testerów, którzy dbają o odpowiednią jakość produktu. Okazuje się, że to właśnie kontakt z testerami/analitykami może być kluczowy do osiągnięcia sukcesu.

Dlaczego? Ponieważ to zwykle testerzy/analitycy dostarczają scenariusze testowe do zautomatyzowania. To oni również przekazują wiedzę w kontekście zadań i miejsc do automatyzacji. Warto więc rozmawiać wspólnym językiem. Powszechnie używane terminy stosowane często podczas testowania oprogramowania, np. smoke testy, testy funkcjonalne, czy regresja, powinny być znane i rozumiane właściwie przez obie strony.

Do tego powinna dołączyć także znajomość najpopularniejszych narzędzi wspomagających proces automatyzacji testów i wytwarzania skryptów testowych. Mam na myśli narzędzia typu: GIT, Jenkins, biblioteki raportowe itp. Wszystkie wyróżnione narzędzia zostaną oczywiście szczegółowo opisane w kursie.

Wskazuję w tym artykule konkretne narzędzia, technologie i rozwiązaniaJednak moim zdaniem w dłuższej perspektywie nie należy zamykać się na wąskie spektrum narzędziowe. Warto chociaż podstawowo, zorientować się w wielu rozwiązaniach oferowanych przez rynek. Wybór narzędzi i technologii powinien być stricte podyktowany potrzebami i celami realizowanego projektu. Należy zatem znać chociaż główne założenia, zalety i wady kilku różnych narzędzi – nawet gdy teoretycznie są one stworzone do tych samych typów zadań. Z mojego doświadczenia mogę przytoczyć sytuację, która utwierdza mnie w tym przekonaniu. Od wielu już lat korzystałem z biblioteki raportowej o nazwie Extent Reports. Jest to ciekawe rozwiązanie, które generuje z testów szczegółowe, interaktywne raporty oraz zestawienia – głównie w formacie html. Biblioteka w pełni (tak mi się wydawało) spełniała swoje zadania. Przez długi okres nie obserwowałem nawet innych tego typu rozwiązań. Był to jednak błąd, gdyż dopiero po zapoznaniu się z inną biblioteką raportowa (Allure) dostrzegłem, że raporty Extent Reports mogę jeszcze bardziej udoskonalić pewnymi funkcjami i możliwościami, które podpatrzyłem z Allura.

Branża IT bardzo dynamicznie przeobraża się na naszych oczach. Aby dotrzymać jej kroku, również musimy działać dynamicznie i dostosowywać się do otoczenia – niczym kameleon.

Droga rozwoju – od laika do Automatyka

Jak wygląda dalsza część wspinaczki po drodze kariery?

Oczywiście w miarę  zdobywania doświadczenia i postępu skillsów technicznych, przechodzimy przez kolejne szczeble:

  • junior

  • mid

  • senior

Będąc Senior Testerem Automatyzującym, myślę, że realnie zarysowują się 3 kolejne drogi dalszego rozwoju. Generalizując, są to 3 formalne stanowiska:

Developer/programista

Wielu doświadczonych testerów automatyzujących, po kilku latach spędzonych nad programowaniem, przechodzi do działów developmentu (produkcji oprogramowania). Dzieje się tak, ponieważ, zdobyte doświadczenie i umiejętności programowania sprawiają, że taka osoba jest idealnym kandydatem do pracy w działach deweloperskich. Przy dzisiejszym deficycie programistów, specjaliści kuszeni są dużymi pieniędzmi i benefitami. Pokłosiem tej sytuacji jest ogromny problem z zatrudnianiem wysoko wykwalifikowanych, doświadczonych testerów automatyzujących. Na szczęście rynek zareagował na taką sytuację, podwyższając i zbliżając (a nawet często przebijając) zarobki doświadczonych testerów automatycznych względem programistów. 

Team Leader, Kierownik Automatyzacji Testów

Kierowanie zespołem testerów automatyzujących jest  naturalną ścieżką dla osoby, która ma bardzo wysokie umiejętności techniczne. Najlepiej, jeśli jest ono poparte bogatym doświadczeniem wypracowanym przez uczestnictwo w wielu projektach. Lider musi posiadać również pewne cechy przywódcze oraz wysoko rozwinięte umiejętności interpersonalne. Jest to kolejny szczebel kariery w automatyzacji testów.

Architekt, DevOps, TestOps

Moim zdaniem jedna z ciekawszych możliwości rozwoju testera automatyzującego.

Jeśli oprócz programowania i wiedzy czysto testerskiej, posiadasz rozległą wiedzę z takich zakresów jak: architektura IT, wirtualizacja i sieci, możesz bez trudu zostać architektem devOpsem. Jest to ciekawa droga dla osób, które kochają tajniki techniczne. Perspektywa zaprojektowania i zbudowania architektury, np. dla automatyzacji testów jest bardzo kusząca i wielowymiarowa. Dobór skali, zakresu, technologii, narzędzi i stosowanych rozwiązań jest interesującym aspektem pracy, a efekt działającego zintegrowanego środowiska, gwarantuje bardzo dużo satysfakcji.

Kończąc wstęp  do mojego autorskiego kursu „Od laika do Automatyka”, chcę zostawić Cię z moim ulubionym cytatem, który idealnie podsumowuje moje dzisiejsze przemyślenia. Jest on także dobrym prologiem do dalszych części kursu:

„Potrzeba pasji i zaangażowania, żeby naprawdę dogłębnie coś zrozumieć, przeżuć, a nie tylko szybko przełknąć. Większość ludzi nie poświęca na to czasu.”

Wciąż zastanawiasz się, czy świat IT jest odpowiednią ścieżką kariery dla Ciebie? Przejdź do kolejnych modułów i przekonaj się o tym na własne oczy. Gwarantuję, że w najgorszym przypadku zyskasz nową wiedzę, umiejętności i doświadczenie, które może przydadzą Ci się w przyszłości. Jeżeli jednak okaże się, że programowanie jest dla Ciebie alternatywą na poprawę jakości życia i rozwój, znajdziesz to, czego inni szukają przez całe życie. Nie marnuj więc swojej szansy i wykorzystaj ją w pełni! Zapraszam serdecznie i mam nadzieję, że znajdziesz w tym kursie odpowiedzi na wszystkie swoje pytania!

Pozostałe:

Lekcja 3: Testowanie aplikacji webowych

Autor:Tomasz Stelmach ©Wszelkie prawa zastrzeżone.   Często korzystamy z Internetu, chętnie opieramy na nim swoje działania, także w rutynowym posługiwaniu się telefonem komórkowym, jednak czy aby na pewno potrafimy jasno zdefiniować niektóre elementy, jakie są...

Lekcja 1: Bazy danych – wprowadzenie

Autor:Tomasz Stelmach ©Wszelkie prawa zastrzeżone. Czym tak naprawdę jest baza danych? Baza danych to uporządkowany zbiór informacji (danych)  przechowywany w formie elektronicznej. Bazą danych zarządza zwykle system zarządzania bazami...