Nauka programowania i automatyzacji testów oraz ranking popularności języków 2018. Poradnik dla początkujących

Ostatnio dostaję od czytelników coraz więcej pytań typu: Jak zacząć naukę programowania i automatyzacji? Jakiego języka się uczyć? Wnioskuję z tego, że potrzebujecie w tych tematach nieco wsparcia. Chcę go udzielić właśnie tym nieco dłuższym wpisem, poruszając kilka ważnych wątków, istotnych zwłaszcza na początku nauki.

 

Wartość umiejętności programowania u kandydatów na testerów

Osoby początkujące w branży poszukują swej pierwszej pracy lub stażu najczęściej w obszarze testowania manualnego. Mają nadzieję, że kiedy już tę pracę zdobędą, to będą mogły poznać praktyczne podstawy zawodu testera, a następnie rozwiną swoje umiejętności również o programowanie i automatyzację testów. Ma to sens, wielu znanych mi testerów przechodziło podobną drogę, która wydaje się najbardziej naturalna. Umiejętność kodowania zwykle nie jest warunkiem koniecznym do uzyskania pierwszej posady w testowaniu.

Niestety, przy obecnych uwarunkowaniach rynkowych ten plan staje się coraz trudniejszy do realizacji. Kandydatów na młodszego testera oprogramowania bez doświadczenia jest znacznie więcej niż ofert pracy i, aby zyskać uznanie pracodawcy, trzeba się wyróżnić na plus. Certyfikat ISTQB Foundation przestaje być takim wyróżnikiem. Ale może nim być znajomość podstaw programowania.

 

Co ma wspólnego automatyzacja testów z umiejętnością programowania?

W jednym z wcześniejszych wpisów, w którym wymieniłem typowe obowiązki specjalisty ds. kontroli jakości oprogramowania, wspominałem o testowaniu wspomaganym automatami. Aby to było możliwe, trzeba wcześniej stworzyć, a następnie utrzymywać scenariusze testujące automatycznie. A to z kolei wymaga dobrej znajomości zarówno zagadnień testowania, jak i programowania. Pomijam tutaj narzędzia typu capture/playback, bo mają niewielkie znaczenie ze względu na ich ograniczenia.

Warto jednak pamiętać, że w zawodzie testera jest więcej obszarów, w których możemy wykorzystać znajomość programowania.

    Są nimi przykładowo:

  • przygotowywanie środowisk testowych,
  • przygotowywanie danych testowych,
  • symulowanie określonych warunków, w których powinien być przeprowadzony test,
  • generowanie raportów czy ich fragmentów dla interesariuszy,
  • konsultacje z programistami (wspólny język i lepsze zrozumienie),
  • lepsza identyfikacja potencjalnych obszarów występowania awarii (ryzyk produktu).

Biorąc to wszystko pod uwagę, osobom początkującym w zawodzie testera sugeruję następującą kolejność etapów nauki: testowanie, programowanie, automatyzacja testów.

 

Jakiego języka programowania powinni uczyć się kandydaci na testerów?

Możesz spodziewać się przeróżnych odpowiedzi na to pytanie, podobnie jak przy tym o najlepszy samochód. Aby ułatwić Ci decyzję o wyborze języka do nauki programowania, chcę zwrócić Twoją uwagę na kilka aspektów.

Po pierwsze – weź pod uwagę technologie i języki używane w firmach, do których zamierzasz kandydować (lub w których już pracujesz czy odbywasz staż). Przykładowo: nie warto zaczynać nauki od C#, jeśli w organizacji dominuje Java.

Po drugie – nie ma obecnie większego sensu uczyć się starych języków, gdzieniegdzie wciąż obecnych w tradycyjnym modelu edukacji, jak Pascal, Cobol czy Fortran. Wyjątkiem może być sytuacja, gdy już pracujesz czy będziesz pracować przy utrzymaniu oprogramowania napisanego w tych językach.

Po trzecie – wybierz ten język, przy którym możesz liczyć na największe wsparcie specjalistów z Twojego otoczenia. Jeśli masz bliskie osoby, które znają określoną technologię i mogą od czasu do czasu udzielić Ci konsultacji w trakcie nauki – to rozsądnym będzie z takiej pomocy skorzystać.

Po czwarte – warto przeanalizować najnowsze rankingi popularności języków programowania. Temu tematowi poświęcona jest następna sekcja.

 

Ranking popularności języków programowania w 2018 roku

Przeszukując internetowe zasoby z ostatnich miesięcy natknąłem się na kilka popularnych rankingów. Każdy z nich bierze pod uwagę nieco inne czynniki. Są nimi: zapotrzebowanie pracodawców z ofert pracy (Indeed w opracowaniu Stackify), ankiety wśród programistów (StackOverflow), liczba trafień w wyszukiwarkach (Tiobe) czy też liczba tzw. pull request’ów (GitHub). Dlatego też, aby zestawienie było bardziej miarodajne, postanowiłem przygotować własny ranking, bazujący na czterech wymienionych źródłach.

Jak się okazało, zwycięzcą jest język Java, który otrzymał aż 34 punkty popularności na maksymalnie 40 możliwych do zdobycia. Pierwsza dziesiątka rankingu popularności jest widoczna na grafice poniżej.

 

Ranking popularności języków programowania – lipiec 2018

 

Jak uczyć się programowania?

Oryginalny nie będę – myślę, że najlepsza jest praktyka. Czyli, po poznaniu podstaw teoretycznych, praca przy “prawdziwych” zadaniach i projektach, a nie tylko tych przygotowanych na potrzeby szkolenia. Oczywiście przy asyście i kontroli doświadczonych osób.

Zdaję sobie jednak sprawę, że ten wariant w wielu przypadkach nie wchodzi w grę, zwłaszcza u osób dopiero kandydujących do pracy testerki czy testera. Co więc pozostaje?

    Mamy tu kilka opcji płatnych, takich jak:

  • Szkolenie stacjonarne organizowane przez jedną z firm edukujących programistów i testerów. Czasami są to szkolenia rozłożone w czasie (np. wybrane weekendy czy wieczory), co zwykle jest bardziej skuteczne niż duża, ale jednorazowa dawka wiedzy.
  • Studia. Jest już sporo uczelni oferujących studia podyplomowe z testowania oprogramowania, ale pojawiają się też studia I czy II stopnia. Większość z nich ma w programie nauczania również programowanie i zagadnienia związane z automatyzacją testów.
  • Szkolenia online. Element interakcji zwykle jest tu mniejszy, za to kursanci mają znacznie większą swobodę w wyborze czasu i miejsca edukacji.
  • Książki. Najlepiej wybrać taką, gdzie jest dużo ćwiczeń praktycznych. Zachęcam Cię do przejrzenia kilku pozycji z listy dostępnej na moim blogu.

Są też źródła bezpłatne, na przykład blogi, tutoriale i internetowe samouczki.

Wybór należy do Ciebie. Pamiętaj jednak, że złym rozwiązaniem jest udział w kursie czy szkoleniu, a potem brak używania i szlifowania nabytych umiejętności. To, co rzeczywiście potrafisz, jest ważniejsze niż zaświadczenie lub certyfikat.

 

Podsumowanie

Mam szczerą nadzieję, że w tym wpisie udało Ci się znaleźć wartościowe informacje dotyczące nauki i roli programowania w pracy testerki i testera. A jeśli masz pytania, na które zabrakło odpowiedzi w tym artykule, to zachęcam Cię do pozostawienia komentarza.

Pobierz bezpłatnego e-booka dla początkjącego testera

2 komentarze(-y) do “Nauka programowania i automatyzacji testów oraz ranking popularności języków 2018. Poradnik dla początkujących

  1. Qwerty

    Dzięki za ten artykuł który mnie upewnił że zacząłem naukę właściwych języków. Szkoda że firma w której pracuję nie do końca je wykorzystuje w testowaniu. Mimo wszystko będę kontynuował.

    • I bardzo dobrze Qwerty, że będziesz kontynuował naukę. Nawet jeśli nie wykorzystujesz tej wiedzy teraz, to myślę że będziesz miał taką możliwość w niedalekiej przyszłości. Życzę Ci wytrwałości 🙂

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *