Kompendium IT – jak zacząć i rozwijać karierę programisty

09.10.2017 AUTOR: Daniel Kotliński

Podczas przygotowań do prac nad poniższym opracowaniem, rozmawialiśmy z kilkunastoma przypadkowo wybranymi osobami o tym, jak wyobrażają sobie pracę programisty. Niczym w klasycznym memie “co o mojej pracy myśli ….”, gdzie w miejsce kropek podstawić można “rodzice”, “dziewczyna”, “znajomi”, odpowiedzi wahały się od “pisze algorytmy”, przez “to samo co informatyk” po “zarabia mnóstwo pieniędzy, ale nikt go nie zaprasza na imprezy”. Wspólny mianownik, jedyny dla wszystkich tych wypowiedzi, to fakt, że każda jest nieprawdziwa. Swoisty boom na programowanie, podsycany przez media, wiąże się z rosnącą dezinformacją. Postanowiliśmy wyjść temu na przeciw i uporządkować najbardziej palące kwestie.


 

Programowanie to umiejętność przełożenia abstrakcyjnych ludzkich pomysłów na zrozumiałe dla maszyn komunikaty. Najbardziej uniwersalny język wymyślony przez człowieka – matematyka – już w XIX wieku inspirował do stworzenia automatycznej, programowalnej maszyny. Pierwszym takim projektem była maszyna analityczna, której koncepcję stworzył ojciec informatyki, Charles Babbage.

Co jednak ciekawe, za osobę, która napisała coś, co nazwalibyśmy pierwszym w historii programem komputerowym, uznawana jest Ada Lovelace – brytyjska matematyczka i poetka, córka jednego z największych poetów i dramaturgów europejskiej literatury pięknej, Lorda Byrona.

Program ten miał za zadanie obliczać liczby Bernoulliego. Opublikowany w połowie XIX w. diagram jednak nie został uruchomiony ani razu. Dlaczego? Maszyna analityczna Babbage’a nigdy nie została stworzona. Tym niemniej, jego projekt był rewolucyjny i przybliżył nas do zbudowania pierwszych komputerów na początku lat 50.

W tym, że za autorkę pierwszego programu uważa się poetkę, jest coś głęboko fascynującego. Jej osobiste podejście do nauki miało wymiar metafizyczny; na wysokim poziomie abstrakcji umożliwiło jej połączenie romantycznej koncepcji z twardym językiem liczb.

Ada Lovelace (Public domain), via Wikimedia Commons

 

Dziś, ponad 150 lat później, dzięki “kodowaniu” zyskujemy możliwość materializacji marzeń; doskonalone od ponad półwiecza kolejne języki programowania sprawiają, że bariera wejścia nieustannie się obniża. Żyjemy zarówno w erze geometrycznego rozwoju technologicznego, jak i geometrycznego przyrostu informacji. Dziś niemal każdy może nauczyć się niemal wszystkiego – jeśli tylko posiada dostęp do internetu, czas i determinację.

Ale znaleźliśmy się w punkcie, w którym łatwość w dostępie do informacji może być przytłaczająca. Wymuszony przez tempo współczesnego życia “multitasking” sprawia, że nasza zdolność koncentracji obniża się.

Jednocześnie ciągła obecność w mediach społecznościowych, nastawiona głównie na konsumpcję treści, pod pewnymi względami działa na nasz mózg tak, jak cukier. FOMO, cyferka na czerwonym tle sygnalizująca powiadomienie i natychmiastowa gratyfikacja – mówiąc krótko, mając wszystko na wyciągnięcie ręki, jak nigdy potrzeba sporo samozaparcia, by osiągać zadowalającą produktywność.

Takiego samozaparcia potrzeba szczególnie w przypadku nauki programowania. Zbierając materiał do tego artykułu, rozmawialiśmy także z programistami-samoukami, takimi, którzy kończyli kursy oraz studia. Mimo różnych ścieżek prowadzących ostatecznie do tego samego celu, na pytanie o to, czego potrzeba, by zostać programistą, zawsze słyszeliśmy: cierpliwości.

Jednym z naszych rozmówców był Adrian, 22-letni developer iOS z topowego polskiego software house’u – Netguru. Zapytany o to, co doradziłby osobie marzącej o rozpoczęciu kariery programisty, zwrócił uwagę, że nie istnieje jedna, uniwersalna droga dla każdego. – Każdy ma indywidualne potrzeby, ambicje oraz funkcjonuje w środowisku, które warunkuje pewne wybory – tłumaczył. Do jego fascynującej historii wrócimy w dalszej części artykułu.

Ten artykuł powstał, aby w przystępny sposób uporządkować wiedzę – zarówno z myślą o osobach, które dopiero zaczynają lub chcą zacząć naukę programowania, jak i dla tych, które już od jakiegoś czasu są w zawodzie.

Spis treści:

 

  1. Jak zacząć naukę programowania?

  2. Początkujący programista na rynku pracy
  3. Rynek usług IT w perspektywie pracownika

  4. Jaki język programowania wybrać na początek?
  5. O roli mentora w procesie nauki, Piotr Dobrowolski, front-end developer, Kodilla [WYWIAD]
  6. Praca zdalna - koniec z "9-to-5"?
  7. Praca za granicą - jak szukać, na co uważać?, Piotr Nowosielski, justjoin.it
  8. Rozwijanie pasji i budowanie marki osobistej, Maciej Aniserowicz, devstyle.pl [WYWIAD]
  9. Zmiana pracy - wskazówki dla programisty, Adrian Błaszkowski, HR Generalist, Allegro
  10. Agile - jak robić to dobrze
  11. A może kariera testera? “Miękki start” w IT
  12. Trendy technologiczne 2020 – Sebastian Gilon, dyrektor ds. bezpieczeństwa IT w TestArmy
  13. Trendy w programowaniu – Bartosz Pranczke, Senior Technology Leader w Netguru
  14. Developerze, słowo o ARKit – Adrian Kashivskyy, Senior IOS Developer w Netguru

Ten artykuł powstał dzięki naszym Partnerom

Kodilla to szkoła programowania online, która uzyskała tytuł “Najlepszej szkoły programowania 2016 roku” według portalu edukacyjnego Edutorial. Szkolenia prowadzone są w systemie 1-1 z indywidualnym Mentorem z naciskiem na praktyczną naukę, aby umożliwić kursantom przebranżowienie się i zwiększyć szanse na rynku pracy, który jest coraz bardziej skupiony na nowoczesnych technologiach.

 

W Testuj.pl edukujemy i rozwijamy branżę testerską – działamy w ramach TestArmy Group. Od 2015 roku  prowadzimy szkolenia dla osób, które chcą wejść w zawód testera, zdobyć certyfikaty ISTQB/ IREB lub podnieść swoje kwalifikacje. Jako TestArmy dbamy o jakość, oferując wszystkie rodzaje testów oprogramowania i aplikacji. Prowadzimy testy funkcjonalne, wydajności, użyteczności i bezpieczeństwa. Mamy ponad 7 letnie doświadczenie i ukończyliśmy ponad 500 projektów. Projektujemy indywidualne rozwiązania, dzięki szerokiej ofercie testów, ponad 60 świetnie wyszkolonym specjalistom, testującym na ponad 120 różnych urządzeniach oraz ponad 7000 testerom w 50 krajach na naszej własnej  platformie crowdsourcingowej.

 


Jak zacząć naukę programowania? 

Narracja kreowana przez media popularnobiznesowe zakłada, że praca programisty to “przygoda”, “raj na Ziemi” czy “Eldorado”. Zanim zaczniesz zastanawiać się, czy nadajesz się na programistę, musisz uświadomić sobie, że to ciężka praca – głównie nad własnymi słabościami. Wspominaliśmy o potrzebie samozaparcia, ale co to dokładnie oznacza?

Zasada “10 tysięcy godzin” mówi, że właśnie tyle czasu potrzeba, aby posiąść dowolną umiejętność. Programiści, z którymi rozmawiałem, mówią z przymrużeniem oka, że po takiej ilości spędzonej nad kodem będziemy ledwo za linią startu. To oczywiście anegdotyczny dowód i podobnej natury zasada, ale nikt, kto pracuje w branży, nie zaprzeczy, że nigdy nie kończysz się uczyć.

To natura tego zawodu – większość czasu spędza się na rozwiązywaniu problemów, często w zupełnie autorski sposób. Nie da się tego robić efektywnie, jeśli liczymy na to, że po kilku miesiącach (intensywnej!) nauki będziemy w stanie w pełni samodzielnie budować aplikacje i tworzyć rozwiązania biznesowe. 

Choć pojawienie się języków wyższego rzędu w pewnym sensie “spauperyzowało” programowanie, umożliwiając przyswojenie tej umiejętności także osobom bez ścisłego, technicznego “backgroundu”, to nadal musimy liczyć się z tym, że sprawność w abstrakcyjnym, a zarazem logicznym, myśleniu jest do pewnego stopnia niezbędna.

Mirosław Sadowski, ojciec Michała, współzałożyciela firmy Brand24, oferującej aplikację webową do monitorowania sieci pod kątem wybranych słów kluczowych, w praktyczny sposób opowiedział nam, jak potrzeba ciągłego samodoskonalenia przeplatała się z kontekstem biznesowym.

Gdy zaczęła się era Internetu, „napisałem” stronę dla swojej firmy. By to uczynić, musiałem nauczyć się HTML-a. Potem strona stopniowo ewoluowała, a żeby ją uatrakcyjnić, musiałem poznać Javascript. Następnie przyszedł czas na PHP i AJAX. Po firmowej stronie założyłem kilka stron hobbystycznych. Tam konieczny był już kontakt strony z bazą danych, a więc – nauka SQL-a. (…) Strony które zakładałem, były tylko pretekstem, by poznać następną technologię. Pierwszym zadaniem, jakie dostałem od zleceniodawcy, było napisanie parsera – programu w PHP, który zbierał kursy walut z konkretnych stron i umieszczał je w bazie danych. Po jakimś czasie dostałem propozycję z Brand24, bym zajął się nową, wchodzącą technologią zbierania danych – Apache Nutch. Było to dla mnie zupełnie nowe i bardzo frustrujące, bo przez długi czas sukces nie przychodził. Gdy w końcu udało się przebrnąć przez instalacje, konfiguracje i zaczęły napływać wyniki, okazało się, że z wielu przyczyn… to środowisko nie do końca spełnia nasze oczekiwania. Jako, że nasza firma zdawała sobie sprawę z ogromnej ilości danych, jaką będziemy musieli zarządzać, przydzielono mi zadanie zorientowania się w istniejących bazach NoSQL. Wtedy właściwie był wybór między bazami Mongo DB i H-base. Po krótkim czasie wygrała baza Mongo DB. Kiedy uporałem się w końcu z tą bazą, musiałem ją pozostawić, bo powstał system – ElasticSearch. I ponownie dostałem misję zapoznania się i rozgryzienia tego systemu składowania oraz wyszukiwania danych.

 

Do historii Mirosława jeszcze wrócimy; na razie wystarczy, że zrozumiesz, jak niezbędne jest dotrzymywanie kroku najnowszym trendom. Nie tylko ze względu na osobiste ambicje, ale także z czysto biznesowego punktu widzenia.

Agata Puchała, 33-letnia ex-managerka, opowiedziała nam o tym, jak ważna jest ciekawość i potrzeba “wgryzienia się” w temat. Ona sama w zeszłym roku postanowiła kompletnie zmienić swój zawodowy kurs i zostać programistką.

Jest 2007 r.

Kończąca studia z PR i marketingu na Uniwersytecie Warszawskim, Agata Puchała trafia do Orange na stanowisko młodszego brand managera. Dobrze odnajduje się w swoich obowiązkach, bo już dwa lata później dostaje awans. W międzyczasie na świecie pojawia się jej syn, a ona na chwilę robi przerwę od korporacji, by wrócić do niej w 2012 i zostać na kolejne 5 lat.

 – Zauważyłam, że zaczynam się poruszać utartymi ścieżkami, że mało jest przestrzeni na rozwój. W pewnym momencie zdałam też sobie sprawę, że kompletnie nie interesuje mnie dalsza kariera w korporacji. Jako samodzielny specjalista dużo osiągnęłam, a stanowiska managerskie jakoś mnie nigdy nie pociągały. Potrzebowałam zmiany. Długo zastanawiałam się, w którym pójść kierunku. Zależało mi na zajęciu, które będzie wymagało nieustającego rozwoju, a w przyszłości da mi możliwość bardziej elastycznego zarządzania czasem pracy – tłumaczyła w rozmowie.

 

 

Punkt zwrotny nastąpił, gdy na jednym z portali dla pracujących mam Agata przeczytała historie kobiet, które kompletnie odmienił swoje życie zawodowe.

To ją zainspirowało.

Po wstępnym reaserchu, Agata zdecydowała się na podjęcie nauki w ramach internetowego bootcampu w Kodilla – szkole programowania. –  Jestem mamą 7-latka i nie wyobrażałam sobie spędzać weekendów w szkole kosztem naszego wspólnego czasu. Celowo wybrałam okres wakacyjny – miałam mniej obowiązków związanych ze szkołą, zajęciami dodatkowymi, syn trochę wyjeżdżał. W tej formie nauki najbardziej odpowiadała mi elastyczność, mogłam się uczyć w dowolnym momencie, często późnymi wieczorami. I nawet wtedy, na kodillowym czacie, mogłam liczyć na pomoc mentorów albo bardziej doświadczonych kursantów.

Oczywiście, pewnie byłoby łatwiej mieć nauczyciela na wyciągnięcie ręki, zwłaszcza w momentach, gdy nie bardzo rozumiałam, co autor danego modułu miał na myśli. Wtedy wspólnie z moim partnerem interpretowaliśmy teorię. Olbrzymim plusem bootcampu online jest wsparcie społeczności, z którego nadal korzystam, gdy mam jakieś trudniejsze zadanie w pracy.

Mnie bardzo motywował cel – bardzo chciałam zmienić pracę. Przede wszystkim jednak miałam ogromne wsparcie w ludziach. Na bootcamp zapisał się również mój partner i proszę mi wierzyć, naprawdę jest ciężko nic nie robić, gdy widzę, jak moja druga połowa trzaska zadania. Pisałam swego rodzaju pamiętnik w postaci maili do Agnieszki Czmyr-Kaczanowskiej z MamoPracuj, pomagało samo napisanie, że programowanie jest beznadziejne a Aga zawsze w mig odpisywała, dzieląc się dobrym słowem. Jestem też w grupie wsparcia Programuj Dziewczyno – to tam usłyszałam, żeby na 2 dni nie zaglądać do komputera i zająć się sobą – pomogło!

Po ukończeniu kursu, Agata znalazła pracę jako junior web developer w grupie Infor. Czy kilkumiesięczna edukacja podczas internetowego kursu, wystarczy, aby rzeczywiście realizować cele?

 – Szczęśliwie trafiłam do bardzo wspierającej firmy i mam bardzo wyrozumiałą szefową. Uważam, że dostaję od niej tyle wsparcia, ile rzeczywiście potrzeba. Generalnie, staram się szukać własnych rozwiązań, mając niewielki nawet zasób informacji. Zawsze to większa satysfakcja dotrzeć do pożądanego efektu samodzielnie. Moje błędy są przyjmowane z dużym spokojem, choć “udało” mi się “zepsuć” połowę strony głównej jednego z naszych serwisów. Nie boję się pytać a od szefowej usłyszałam na starcie, że najważniejsze to krzyczeć głośno, gdy mamy już na pokładzie pożar (śmiech) – opowiada.

Agata w rozmowie z nami podkreśla, że jej nauka dopiero się rozpoczęła, ale to właśnie dzięki bardzo praktycznemu podejściu i pracy na rzeczywistych projektach zdobywa zarówno wiedzę, jak i realne doświadczenie.

W tym kontekście nie mniej inspirująca wydaje się historia Adriana Kashivskyy’ego, starszego developera iOS z Netguru, który zainteresował się programowaniem po zetknięciu z flashową grą na urządzenia mobilne. Jego ojciec, doświadczony project manager, szybko dostrzegł potencjał i kupił mu pierwszą książkę do nauki programowania.

Choć motywacja stojąca za wyborem Agaty była zupełnie inna, niż ta, która Adriana pchnęła w świat kodowania, z obu tych historii wyłania się obraz ludzi, którzy nie boją się porażek. Mówi się, że człowiek rozwija się od kryzysu do kryzysu i widać to bardzo wyraźnie u obu naszych rozmówców.

 

Adrian Kashivskyy -Jak zaczęła się Twoja kariera programistyczna?

 

 

Wysokie zarobki i hipotetycznie prosty start w nauce programowania to paliwo dla krzykliwych nagłówków prasowych. Nie da się jednak (na dłuższą metę) programować tylko dlatego, że gdzieś na horyzoncie majaczą pięciocyfrowe kwoty; dojście do takich efektów możliwe będzie tylko wtedy, kiedy naprawdę się temu poświęcisz.

 – Wykonywanie pracy zgodnej z talentem, która jednoczenie jest pasją to marzenie każdego i recepta na sukces firmy która zatrudnia takich ludzi – wyjaśnia Mirosław Sadowski. Jego osobista historia jest o tyle niesamowita, że pokazuje, iż na rozwijanie pasji i naukę w zasadzie nigdy nie jest za późno.

 

Proszę opowiedzieć w technicznym skrócie, czym na co dzień zajmuje się Pan w Brand24.

Mirosław Sadowski: Brand24 rozwija się błyskawicznie i szybko stało się jasne, że taki model, gdzie jedna osoba obsługuje kilka stanowisk, jest nieekonomiczny. Zwiększenie zatrudnienia pozwoliło więc inaczej podzielić kompetencje. Obsługą Elasticsearcha, czyli systemu składowania i wyszukiwania, zajmuję się tylko awaryjnie, a podstawowym moim obowiązkiem jest pisanie parserów zbierających dane z wszelkich for i portali polsko- oraz angielskojęzycznych. Do moich obowiązków należy pisanie nowych i „doglądanie” już działających. 

 
Mirosław Sadowskiarch. własne

 

Czy może Pan opowiedzieć o jednym problemie, którego rozwiązanie przyniosło szczególną satysfakcję?

Na pewno najtrudniejsze, jakie dostałem, czyli rozgryzienie Elasticsearcha. Satysfakcja była duża, ale bardzo rozciągnięta w czasie.

Najtrudniejsze było poznanie i zrozumienie zupełnie nowej filozofii składowania danych, bardzo różniącej się od dotychczasowo znanych baz danych. Tutorial był bardzo ogólnikowy, przykłady były, ale przeważnie nie pasujące do naszych potrzeb. Bardzo pomogło mi wtedy forum Stackoverflow.com.

Kiedy już wydawało mi się, że coś zrobiłem, szef szybko gasił mój zachwyt, dając mi następne cele jakie powinna spełniać nasza „baza danych” – zaczynało się wszystko od początku.

Ale kiedy w końcu wszystko zaczęło działać tak jak chcieliśmy, kiedy działało nawet bardzo wyrafinowane wyszukiwanie i sortowanie, poczułem dumę i satysfakcję.  

Pański wiek w tym szczególnym przypadku wydaje się być inspirującym motywatorem – pokazuje, że nigdy nie jest za późno.

 Jestem pewien, że zdolności programistyczne można w stosunkowo prosty sposób wykryć i wiek nie ma tu żadnego znaczenia. Liczy się tylko nastawienie człowieka – podkreśla.

Programowania lub gry na flecie prędzej czy później można nauczyć każdego, ale by ta iskra spowodowała zapłon, potrzeba już pewnej zdolności. Mówiąc “zapłon”, mam na myśli lawinowy przyrost możliwości po przekroczeniu punktu krytycznego.

Osoby 50+ bez problemu poradzą sobie w tej branży, jeśli mają tą zdolność i, co ważniejsze, nie mają obciążeń psychicznych. To chyba dość nietypowa branża, bo by się w niej utrzymać, wymaga ciągłego douczania. Wiem z autopsji, że zdolność do uczenia się nowych rzeczy z wiekiem spada. Mam wręcz wrażenie, że „mój procesor” pracuje coraz lepiej, tylko ma problemy ze składowaniem danych – przepełnione dyski.

Istotną kwestią, często pomijaną w wyobrażeniach na temat pracy programisty, są także umiejętności miękkie. Choć intuicyjnie każdy z nas wie, czym są, uściślijmy – “miękkie” nie oznacza “opcjonalne”, w przeciwieństwie do “twardych”, czyli konkretnych i niepomijalnych na rynku pracy. Kompetencje miękkie łączy się z tak zwanym “pierwiastkiem ludzkim”, a więc inteligencją emocjonalną.

Popkultura kreuje wizerunek programisty jako samotnego hakera, który całymi dniami i nocami, otoczony pustymi pudełkami po pizzy i napojach gazowanych, rozpracowuje systemy bezpieczeństwa instytucji państwowych albo za pomocą kilku komend przejmuje sygnały satelitarne. To oczywiste uproszczenie ma swój cel, natomiast z rzeczywistością ma niewiele wspólnego.

Bartosz Maligłówka, senior account manager w Hays IT Contracting, zwraca uwagę na istotną zmianę, jaka dokonała się w ostatnich latach na rynku programistycznym. – Nawet jeśli spojrzymy na małe i średnie przedsiębiorstwa zatrudniające programistów, najczęściej praca w nich odbywa się w zespołach. Osoby, które lekceważąco podchodzą np. do umiejętności komunikacji, najczęściej odpadają w procesach rekrutacyjnych – tłumaczy ekspert.

 

“W pracy programisty ponad wszystko cenione są umiejętności twarde”

 

 

Z naszej rozmowy wynika ciekawy wniosek na temat ewolucji rynku – jeśli tylko pracodawca może sobie pozwolić na przyjęcie do pracy osoby bez doświadczenia, ale otwartej, komunikatywnej i nastawionej na rozwój umiejętności, to coraz częściej będzie decydował się na taki krok, zamiast bić się o specjalistów z wieloletnią praktyką, ale utrudniających – czy wręcz uniemożliwiających – “dowożenie” projektów na czas.

 – Rośnie grupa początkujących programistów, po studiach technicznych albo humanistycznych, które kończą dodatkowe kursy kodowania i znajdują sobie miejsce na rynku pracy na stanowiskach juniorskich. Ze swojego doświadczenia wiem, że takie osoby czasem osiągają lepsze wyniki w testach kompetencji twardych niż te, które mają 1-1,5 roku doświadczenia komercyjnego. Ich motywacja i determinacja do tego, żeby się uczyć, często bywa dużo większa – tłumaczy Maligłówka.

 

Czy na rynku pracy jest miejsce dla początkujących programistów?

O wskazówki dla początkujących programistów poprosiliśmy Ewę Słotę, doradcę ds. HR w szkole programowania online Kodilla. W sytuacji, w której niekoniecznie możesz konkurować doświadczeniem (albo też aplikujesz na tzw. juniorship), o zaproszeniu Cię na rozmowę decydować będą szczegóły. Zwróć na nie uwagę!

 

 

Poznaj pracodawcę!

Must have to wiedzieć, czym zajmuje się firma, do której wybierasz się na rozmowę. Jeżeli nic o niej nie wiesz – na 99% skreślą Cię z listy kandydatów. Poza tym dobrze jest sobie odpowiedzieć wcześniej na pytanie: “dlaczego akurat w tej firmie chcę pracować?”. Potencjalny pracodawca nie chce czuć się jako jeden z wielu.

Daj mu odczuć, że został on wybrany jako ten potencjalnie najlepszy. Chyba nie muszę wspominać, że narzekanie na poprzednich pracodawców jest absolutnie niedozwolone? 🙂

 

 

Wytrwałość, zaangażowanie i kreatywność

Wejście do świata IT jako junior jest trudne. Potrzeba dużo samozaparcia i wytrwałości, aby w trakcie poszukiwań tej “idealnej pracy” nie zrezygnować.

Może być tak, że poświęcisz czas na stworzenie CV, odpowiadasz na interesujące Cię oferty pracy, a tu… cisza. To demotywuje, a czasami doprowadza do obniżenia samooceny. Wtedy trzeba podejść do poszukiwań inaczej – np. zrobić mniej typową stronę/aplikację, pokazać siebie w inny sposób, zaskoczyć pracodawcę inicjatywą. Nie poddawaj się! Podejdź do szukania pracy jak do wyzwania. Przy odpowiedniej motywacji i nastawieniu z pewnością osiągniesz swój cel.

 

 

Uśmiechnij się!

Każda rozmowa kwalifikacyjna jest stresująca, ale pamiętaj, aby być na niej po prostu… sobą. Wydaje się to banalne, ale w swojej karierze zbyt często spotykałam się z kandydatami, którzy za wszelką cenę próbowali być “fajniejsi” niż w rzeczywistości. To bez sensu. Naturalność i uśmiech nie zamaskują braków w kompetencjach, ale pomogą, kiedy będzie trzeba dokonać wyboru między dwoma podobnymi kandydatami. Rekruterzy to też ludzie 🙂

 

Rynek usług IT w perspektywie pracownika

Z dotychczasowej lektury mogłeś wywnioskować, że rynek IT jest wyjątkowy pod pewnymi względami. Wynika to głównie z rosnącego z roku na rok niedoboru specjalistów. Z tego powodu firmy coraz chętniej zatrudniają pracowników z minimalną podstawą teoretyczną i inwestują w ich rozwój, a także gotowe są płacić wysokie pensje najlepszym specjalistom.

Tradycyjny model myślenia zakłada, że “specjalistą” zostaje się po uzyskaniu określonego dyplomu. Trend, na który silny wpływ ma niż demograficzny, ukazuje regularnie malejącą ilość absolwentów kierunków informatycznych na przestrzeni ostatnich lat.

 

Ilość absolwentów kierunków informatycznych w Poslce
Infogram

W latach 1983 – 2001 drastycznie spadała liczba urodzeń w Polsce, co obecnie skutkuje małą liczbą 19-latków. W 2006 roku było ich 607 tys., w 2017 – już tylko 395 tys., a prognozując rok 2020, 19-latków – czyli osób mogących zostać studentami – będzie jeszcze mniej, bo zaledwie 368 tys.

Co ciekawe, pomimo że liczba absolwentów studiów informatycznych spada, nadal jest to jeden z popularniejszych kierunków studiów. Od 2006 roku kandydaci chętniej wybierają uczelnie techniczne niż w ubiegłych latach – w 2006 roku studia informatyczne ukończyło 2,36%, w 2017 roku – 2,74, a w 2018 będzie to 3,16% 23-latków.

Jednak, jak prognozuje szkoła programowania online Kodilla, liczba absolwentów do 2020 roku nie przekroczy 13 – 13,5 tys., z racji panującego niżu demograficznego.

Mówiąc krótko – ilość absolwentów nie jest w stanie zaspokoić popytu (określanego w Polsce na 50 tys. wakatów), zaś ci, którzy wychodzą z uczelni, często nie mają praktycznego doświadczenia i ostatecznie i tak lądują na stanowiskach juniorskich, na których muszą być doszkalani lub wręcz od początku uczą się nowych technologii.

Słabością systemu edukacji, nie tylko kierunków technicznych (choć na nich jest to szczególnie widoczne) jest zbyt wolne tempo adaptacji nowości i trendów. W niedawnej rozmowie z web developerem WordPressa z 10-letnim doświadczeniem, ale i krótkim “romansem” na politechnice, padło wprost stwierdzenie, że studia niewiele dają. Pojawia się wiele kwestii, ale traktuje się je pobieżnie. Tylko ci, którzy są tematem naprawdę zainteresowani, rozumieją, że prawdziwa nauka zaczyna się po wyjściu z murów uczelni; i wymaga sporo samodyscypliny oraz proaktywności w zdobywaniu pierwszych szlifów zawodowych.

Jak podaje Stack Overflow w swoim corocznym rankingu, najpopularniejsze technologie używane przez programistów w 2016 to JavaScript, SQL (SQL Server) i Java. Czy w takim razie powininieneś/powinnaś w pierwszej kolejności myśleć o ich nauce? – Niekoniecznie. Wszystko zależy od tego, co chcielibyśmy robić docelowo. Programowanie webowe jest zupełnie inną bajką, niż programowanie mikrokontrolerów czy tworzenie aplikacji desktopowych – wyjaśnia Kuchnik. – Przy czym warto w tym miejscu zwrócić uwagę na powszechny błąd – HTML i CSS nie są językami programowania. To markup language, czyli język znaczników – dodaje mój rozmówca.

Tym niemniej, to właśnie od tych technologii zaczyna się “przygoda” przeciętnego śmiertelnika z pisaniem kodu. To stosunkowo proste narzędzia, które mogą otworzyć drzwi do bardziej skomplikowanych języków.

Jeśli chcielibyśmy kierować się tylko wysokością zarobków (co zdecydowanie odradzamy – najważniejsza jest pasja!), to zdecydowanie warto poświęcić się Javie. To najbardziej uniwersalny język, który można uruchomić na niemal każdej platformie – a jak możemy przeczytać w artykule na stronie Wynagrodzenia.pl, “Senior Java Developer ma realną szansę na pensję w granicach 74 000 – 130 000 USD, przy czym bliżej tej górnej stawki w 2017 roku może znaleźć się aż 90% wszystkich programistów specjalizujących się w tym języku”.

Serwis Challengerocket tak obrazuje zestawienie zarobków w pozostałych technologiach:

 

W Polsce także programiści Java mogą liczyć na najwyższe zarobki, średnio połowa z nich zarabia między 4 200 a 6 231 PLN brutto miesięcznie. Według Komisji Europejskiej do 2020 roku w UE potrzeba będzie około miliona pracowników IT – zwiastuje to najprawdopodobniej dalszy wzrost wynagrodzeń i postępującej dominacji roli pracownika na rynku.

Bartosz Maligłówka z Hays tłumaczy, że dziś programiści nie muszą szukać etatowej pracy – mogą  przyłączać się do firm czy zespołów na okresy 3- lub 6-miesięczne, bo wiedzą, że nie będą mieli większego problemu ze znalezieniem kolejnego projektu.

Taka elastyczność w zatrudnieniu to niezwykła rzadkość na rynku – cenią ją sobie zarówno pracodawcy, którzy w ten sposób optymalizują koszty zatrudnienia, jak i sami programiści, którzy mają szansę pracy przy bardzo zróżnicowanych przedsięwzięciach.

 

Contracting w IT – brak etatu, ale nie freelance:

 

W dalszej części artykułu dowiesz się, jaką ścieżkę – studia, kursy, zajęcia stacjonarne – wybrać, biorąc pod uwagę wady i zalety wszystkich tych rozwiązań.

Od jakiego języka programowania najlepiej zacząć

Jeśli już doszedłeś/doszłaś do wniosku, że mimo wszystko zamierzasz spróbować swoich sił w kodowaniu, zastanawiasz się, jaki język programowania na początek będzie dla Ciebie najlepszy. Żeby nie było jednak za łatwo, odpowiedź brzmi – to zależy.

Bardzo wielu programistów zaczyna swoją przygodę z tworzeniem od web developmentu – czyli budowania stron internetowych. HTML i CSS nie są jednak językami programowania – nie służą do budowania aplikacji i bardziej skomplikowanych projektów. Pozwalają jednak ogólnie zorientować się, jak wygląda praca programisty, a przy tym są stosunkowo proste do opanowania, co wiąże się z – bardzo ważną w procesie nauki – nagrodą w postaci stworzenia czegoś samodzielnie.

Poza tym, jeśli pogłębić znajomość HTMLa o najpopularniejszą platformę blogową, WordPress (mającej ogrom zastosowań!), w krótkim czasie można zacząć rozglądać się za komercyjnymi zleceniami.

Aby pomóc Ci w wyborze właściwej ścieżki, przygotowaliśmy prosty quiz – dzięki niemu określisz, w którą stronę najlepiej pójść, a przy okazji odbierzesz na końcu małą niespodziankę 😉

 

 

 

 

Nie istnieje jedna, uniwersalna droga do zostania programistą – wszystko zależy od twojej determinacji, ale także wieku, zobowiązań zawodowych, rodzinnych. Przygotowaliśmy poniżej zestawienie, dzięki któremu będziesz mógł dobrać sposób do własnych możliwości.

 

  Kursy video (Coursera, Udemy etc.) Studia
informatyczne
Bootcamp
stacjonarny
Bootcamp
online
Samodzielna nauka
Ogólny
opis
Stateczne nagrania online Koncentracja na podbudowie teoretycznej Szkolenie stacjonarne Szkolenie online Książki, blogi, fora – i do pracy 🙂
Czas trwania Kilkanaście-kiladzesiąt godzin 3-5 lat (optymistycznie) 1-2 miesiące z dokładnym planem zajęć 3-6 mies., elastyczny grafik Zależny od samodyscypliny (+6 mies.)
Formuła Oglądanie w stałym tempie nagrań, samodzielna praca Zaplanowany plan zajęć z dużą ilością przedmiotów niezwiązanych z programowaniem Codzienne zajęcia w godz. 9-17 z przydzielonym wykładowcą Statyczne materiały+zajęcia z mentorami online, dostępnymi w różnych godzinach Konieczność ustalenia samodzielnie rytmu i sposobu nauki 
Wsparcie Brak Często teoretycy, bez styczności z branżą IT Jeden wykładowca dostępny dla grupy Indywidualny mentor 1:1, plus inni do pomocy Brak
Grupa Brak/Czasami społeczność na dedykowanym forum Inni studenci Inni uczniowie Inni uczniowie+mentorzy Brak
Zakres Ograniczony, statyczny Szeroki, powierzchowny Ściśle dopasowany do wymagań rynkowych Ściśle dopasowany do wymagań rynkowych Nieograniczony 🙂
Cena Kilkadziesiąt/kilkaset złotych za dostęp do platformy video Stacjonarne – 0 zł, niestacjonarne – 15-30 tys. za licencjat 8-20 tys. PLN 3,5-12 tys. PLN B/O
Szansa na pracę Niewielka, dostępna dla ułamka “absolwentów” Dostępna (studia kończy 2-3% osób) Wsparcie po ukończeniu kursu 75% absolwentów dostaje pracę do 3 mies. od ukończenia kursu (dane: Kodilla) B/O

 

Bez wątpienia, aby stosunkowo szybko uzyskać podstawę do dalszego rozwoju, ale wystarczającą do rozpoczęcia pracy na stanowisku juniorskim, dobrze mieć mentora – kogoś, do kogo możemy zwrócić się z pytaniem lub uzyskać praktyczną pomoc, gdy utkniemy na jakimś zagadnieniu.

Piotra Dobrowolskiego, front-endowca pracującego w Kodilli, takim mentorem był nauczyciel informatyki.   – Poświęcał mi swój wolny czas – był moim mentorem – wyjaśnił w rozmowie.

Dziś Piotrek sam jest mentorem dla uczniów, którzy zdecydowali się na podjęcie edukacji poprzez internetowy bootcamp. Przepytaliśmy go dokładnie, by dowiedzieć się, jaka jest jego rola w procesie nauki, dlaczego zdecydował się na pracę nauczyciela, mimo, że programować nauczył się sam i kim są jego uczniowie.

Choć to pytanie, na które pewnie odpowiadałeś wielokrotnie, muszę je zadać, bo zazwyczaj kryje się za tym ciekawa historia – jak zacząłeś programować?

Piotr Dobrowolski, front-end developer, mentor w Kodilla: 

Jak niemalże  każdy młody chłopak byłem zafascynowany grami MMORPG (gry komputerowe, w których duża liczba graczy może grać ze sobą w wirtualnym świecie). W pewnym momencie jednak zdałem sobie sprawę, że zamiast po prostu grać – można tę grę stworzyć. Korzystając z gotowych rozwiązań zrobiłem prywatny odpowiednik znanej gry sieciowej i zgromadziłem 15 000 graczy z Polski. Ale moja ambicja nie pozwalała mi na to, by mój serwer był jednym z wielu – dlatego zacząłem przerabiać stronę internetową, forum, tekstury i skrypty. Pomagałem także innym twórcom (tak, tak – mojej konkurencji) i można to zaliczyć do moich pierwszych komercyjnych zleceń.

Setki godzin spędzonych nad kodem sprawiły, że w wieku 16-17 lat miałem konkretna wiedzę. Dużo zawdzięczam mojemu nauczycielowi informatyki, który wychwycił mnie z tłumu i ukształtował na front-end developera. Poświęcał mi swój wolny czas – był moim mentorem. Następnie zdecydowałem się nawiązać współpracę z software house’em i tworzyć kolejne, coraz trudniejsze rozwiązania programistyczne. Może to zabrzmi jakbym był coachem (śmiech), ale powyższa historia pokazuje, że ciężką pracą połączoną z pasją można osiągnąć wiele.

 
Piotr Dobrowolski, front-end developer, mentor w szkole programowania online KODILLA

 

Czy każdy programista może być mentorem i dlaczego nie?

Mentoring to duża odpowiedzialność.

Oprócz świetnego przygotowania technicznego mentor musi rozbudzić w kursancie pasję pokazując mu, że programowanie rzeczywiście może początkowo wydawać się wycieczką do bardzo ciemnego lasu, ale jednak jest kolorową i przyjemną drogą w świat bajki, w której my jesteśmy bohaterami i decydujemy o naszych losach.

W nauce programowania bardzo dużo zależy od nastawienia kursanta. Programowanie powinno kojarzyć się z czymś miłym, nie być głównie obowiązkiem i pracą, która tylko przynosi nam dochody. Powinniśmy bawić się kodem i szukać alternatyw do rozwiązań, które już znamy.

Zupełnie inaczej kodujemy gdy MUSIMY, a inaczej kiedy CHCEMY. Zadaniem mentora jest właśnie przekazanie takiego sposobu myślenia osobie zaczynającej przygodę z programowaniem.

Do tego dodałbym cierpliwość, wyrozumiałość, dyspozycyjność oraz indywidualne podejście do kursanta i mamy wzór idealnego mentora. Żeby znaleźć takie osoby przeprowadzamy w Kodilli proces rekrutacyjny podzielony na kilka etapów, w którym sprawdzamy m.in. umiejętności programistyczne, komunikatywność, sposób przekazywania wiedzy.

Czy mentor jest niezbędny do tego, aby w domowym zaciszu nauczyć się programować?

Można nauczyć się programowania samodzielnie, ale rola mentora jest nieoceniona. Programowania nauczyłem się sam, ale zrozumiałem je dopiero przy pomocy osób, które czuwały nad moim kodem. Naprawdę dużo dała mi pomoc starszych kolegów i liderów, których spotkałem na swojej drodze.

Bo kto poza kursantem ma dostęp do nauczyciela-trenera, który sprawdza kod, pokazuje błędy, tłumaczy jakie rozwiązania stosuje się obecnie w firmach IT i motywuje w chwilach kryzysu?

Oczywiście można się bez tego obejść, ale zostawić kogoś samego z nauką np. Javy to tak samo jak wysłać kogoś do biblioteki żeby nauczył się fizyki. Ogrom dostępnej wiedzy nie oznacza, że każdy będzie potrafił z niej skorzystać. Podczas samodzielnej nauki można popełniać błędy i tworzyć złe nawyki kodowania.

Mentor jest po to, aby te błędy skorygować, podpowiadać, wskazywać, radzić i motywować do pracy nad kodem. Bo programowania najlepiej nauczyć się… programując.

Czy możemy ogólnie określić, co łączy waszych kursantów – czy są to osoby młodsze, czy starsze, pracujące, czy studiujące, chcące się przebranżowić, czy po prostu lubiące uczyć się nowych rzeczy?

Nie ma żadnej reguły!

W naszym kursie biorą udział zarówno osoby młode, studenci, absolwenci wyższych uczelni, osoby szukające pracy i pracujący kilka, a nawet kilkanaście lat w swoim zawodzie.

A jeśli chodzi o profesje, mieliśmy m.in. pośredniczkę nieruchomości, motocyklistę ze Szwecji, nauczyciela informatyki, topless waitera…

…?!

…urzędniczkę, operatora dźwigu z Islandii, tłumaczkę języka chińskiego, magazyniera… Każdy z nich jest inny, ma inną historię i przeżycia, dlatego tak ważne jest indywidualne podejście mentora.

A jeśli miałbym określić co jest wspólnym mianownikiem naszych kursantów to chęć zdobycia pracy w branży IT, systematyczność, wytrwałość oraz pasja do programowania, którą odkrywają wraz z mentorem. Nastawienie wyłącznie na wysokie zarobki w branży IT bez starania się o to, niestety, ale może skończyć się porażką – i tak czasem bywa.

Czy decydując się na kurs, faktycznie mam pewność, że dostosujecie się do mojego indywidualnego tempa [i stylu] nauki? A jeśli jest on odmienny od tempa i stylu mojego mentora – co wtedy?

Rzeczywiście można odnieść wrażenie, że Kodilla nigdy nie śpi 😉

W naszym panelu zadania i materiały są dostępne przez cały okres trwania bootcampa za dnia i nocy, żeby kursant mógł uczyć się w dowolnym czasie, z dowolnego miejsca na świecie.

A w przypadku, gdy napotka trudności, na chacie czekają na niego mentorzy, którzy pełnią swoje dyżury tak, aby czas reakcji był jak najszybszy. Mentorzy co prawda pracują do wieczora (22:00 polskiego czasu), ale zdarza się, że można ich spotkać także w nocy. Bywały sytuacje, że dana osoba pisała o swoim problemie o 4. w nocy i kilka minut później z pomocą przychodził mentor.

Czasami nasi kursanci dyskutują ze sobą do późnych godzin wieczornych o zadaniach programistycznych, czy to na czacie publicznym, czy w prywatnych wiadomościach.

Tempo i styl nauki bazuje na naszych obserwacjach. Przystosowaliśmy bootcamp tak, by był przyjazny dla każdego. Oczywiście przewidujemy, że wśród kursantów znajdują się osoby, które szybciej przyswajają wiedzę. Dla nich przewidujemy dodatkowe projekty oraz zadania specjalnie przygotowane przez naszych mentorów.

Piotrze, w naszym artykule wielokrotnie przewija się zdanie, ze na sukces trzeba zapracować. Masz jakieś konkretne przykłady z własnego doświadczenia, potwierdzające tę teorię?

W roli mentora spotkałem się z przypadkami, że kursanci otrzymywali pracę przed zakończeniem szkolenia. Rekordzista otrzymał ją po sześciu tygodniach od rozpoczęcia przygody z programowaniem.Jego wiedza była początkowo znikoma, ale przez ciężką pracę otrzymał stanowisko w Katowicach w software house’ie.

Zgadzam się w stu procentach z powiedzeniem, że na sukces trzeba sobie zapracować. Programistą może być każdy, kto zainwestuje swój czas i serce.

Szkoliłem osoby, które pracowały na dwie zmiany, a pomimo tego jeszcze potrafiły wygospodarować czas na naukę kodowania.Obecnie większość zmieniła branżę na IT, jedna osoba nawet wróciła do Polski ze względu na ofertę poznańskiej firmy.

Jestem zdania, że ile z siebie dasz, tyle dostaniesz. Oczywiście, tu chodzi też o zarobki, ale jeśli zaczynamy swoją karierę w IT kierując się jedynie wysokim wynagrodzeniem, to powinniśmy się zastanowić, czy na pewno wytrzymamy pół życia przed komputerem robiąc na siłę coś, czego wcale nie lubimy.

I trzeba mieć na uwadze, że juniorzy zarabiają mniej od doświadczonych programistów, ale w tej branży wysokość wynagrodzenia rośnie proporcjonalnie do zdobywanych umiejętności.

Najbardziej utkwił mi w pamięci przypadek osoby, która zbliżając się do 40-stki, postanowiła się przebranżowić. Wcześniej zajmowała się marketingiem – była osobą zupełnie nietechniczną, na szkoleniu uczyła się wszystkiego od podstaw, a po bootcampie dostała pracę jako front-end developer w międzynarodowej korporacji z branży IT.

ROZDZIAŁ II

Pracuj zdalnie jako programista

Wspominaliśmy na początku tekstu, że czasy, w których żyjemy, bez wątpienia można nazwać erą informacji. Internet zrewolucjonizował każdy aspekt naszego życia, dając nam możliwość nauki czegokolwiek w dowolny sposób, z dowolnego miejsca na świecie.

Postępująca “Cyfrowa Rewolucja” zbliża nas do problemów, o których dwadzieścia lat temu w dyskursie społecznym w ogóle nie było mowy. I choć to temat na zupełnie osobny artykuł, skoncentrujemy się na jednym aspekcie tej zmiany – sposobu, w jaki wykonujemy swoją pracę.

Cytowane przez Forbesa badania McKinsey wskazują, że już 30% osób w wieku produkcyjnym w USA i Europie pracuje zdalnie. W tym samym artykule, autor zadaje pytanie – dlaczego 40-godzinny tydzień pracy wprowadzony przez Henry’ego Forda w 1926 r. ma nadal rację bytu w świecie, gdzie przy taśmach produkcyjnych stoi zdecydowanie mniej pracowników, niż tych, którzy wykonują obowiązki w sektorze usług?

W tym rozdziale skoncentrowaliśmy się na trzech aspektach – pracy zdalnej, szukaniu pracy za granicą i budowaniu wizerunku przed potencjalnymi pracodawcami.

Gdzie szukać zleceń

 

RemoteOK

 

Jednym z największych job boardów dla tak zwanych digital nomads – pracowników wykonujących swoje obowiązki z dowolnego miejsca na Ziemi – jest RemoteOK. To platforma, na której każdego dnia ukazuje się przynajmniej kilka ofert, często z popularnych startupów czy dużych firm technologicznych z Doliny Krzemowej.

Co ciekawe, twórcą serwisu jest Pieter Levels, programista i seryjny startupowiec (i nie ma w tym określeniu żadnej przesady!), który posiada kilka produktów dla remote workerów – a przede wszystkim hub, NomadList.com. Ta bardzo precyzyjna wyszukiwarka pozwala odnaleźć wymarzone miejsce do pracy, biorąc pod uwagę kilkadziesiąt filtrów (“no zika”, “legal weed” czy “top tinder city” to tylko kilka najbardziej “egzotycznych”).

 
screenshot z NomadList.com

 

Mówiąc hub, mamy na myśli miejsce, w którym skoncentrowanych jest kilka przedsięwzięć, robionych z myślą o podróżujących pracownikach. Forum, społeczność zbudowana wokół specjalnego workspace’a na Slacku, meetupy w różnych zakątkach Ziemi czy udostępniona ostatnio aplikacja Hoodmaps, pokazująca w ciekawy sposób najbardziej hipsterskie czy też ‘normcore’owe’ dzielnice.

Warto też zajrzeć na bloga, na którym publikowane są najbardziej inspirujące historie podróżników – freelancerów, przedsiębiorców czy całych zespołów pracujących w trybie zdalnym.

 

AngelLIST

Choć AngelList.com to przede wszystkim platforma kojarząca startupy z inwestorami, posiada osobną podkategorię z ogłoszeniami o pracę dla osób, które szukają zdalnego zajęcia.

 

 

Wszystkie ogłoszenia posiadają informację o widełkach zarobkowych, przejrzystą informację oraz jak wiele aplikacji zostało wysłanych na dane ogłoszenie, a także dotyczą bardzo zróżnicowanych obszarów.

 

We Work Remotely

WWR to jedno z pierwszych repozytoriów ofert pracy tylko i wyłącznie o charakterze zdalnym. Sponsorowana przez jakiś czas przez autorów książki Remote, a zarazem founderów słynnego 37signals (znanego dziś jako Basecamp), dziś należy do funduszu Tiny, posiadającego m.in. serwis Dribbble.

 

 

Remotive

Remotive to nie tylko tablica z ogłoszeniami, ale także – podobnie jak w przypadku NomadList – prężna społeczność osób pracujących w podobnym charakterze. Twórcy platformy od początku stawiają na komunikację via newsletter, dzięki czemu możesz dosłownie przebierać w interesujących się ofertach.

 

Poza tym, serwis jest świetnie zaprojektowany i naprawdę przyjemnie się go używa 😉

 

O tym, z czym wiąże się praca zdalna w przypadku programisty, porozmawialiśmy z Michałem Molendą, prowadzącym własny software house.

Od jak dawna podróżujesz i pracujesz zdalnie?

Michał Molenda: Cześć! Jako programista pracuje już 10 lat, z czego ponad 4 zdalnie. Wcześniej pracowałem tylko w biurze. Praca zdalna wyszła w sumie dość spontanicznie. Zaczęliśmy z dziewczyną, a obecnie żoną, zastanawiać się nad kredytem na mieszkanie. Stwierdziliśmy jednak, że to jeszcze nie pora i chcemy wcześniej pojeździć trochę po świecie. Dodatkowo, w firmie w której obecnie pracowałem były bardzo duże zwolnienia i obniżki co tylko utwierdziło mnie w tej decyzji.

Praca z dowolnego miejsca na Ziemi, w samodzielnie ustalanych godzinach, łączona z podróżowaniem, poznawaniem nowych ludzi, kultur, smaków – a wszystko dzięki robieniu tego, co się lubi. Dlaczego każdy programista nie pracuje w ten sposób? 😉 

Może to zabrzmi mało wiarygodnie, ale nie każdy programista chce pracować zdalnie. W Code Apps prowadzimy obecnie rekrutację i często spotykamy się z tym, że programista woli pracę stacjonarną.

 Czym innym jest praca w podróży, a czym innym praca z domu. Dużo osób potrzebuje też rozdzielić strefę prywatną od zawodowej, czyli wyjść do pracy, zrobić swoje i wrócić do domu. Pracując z domu to się bardzo łączy i po pewnym czasie może to przeszkadzać.

 Mi ostatnio… ciężko pracuje się z domu. Mam potrzebę pracy stacjonarnej, w biurze. Będąc w podróży mogę pracować gdzie popadnie, na lotnisku, w domku na łóżku itp., ale po powrocie do Polski zawsze wynajmuję biurko w coworkingu.

Interesuje mnie, w jaki sposób pozyskujesz zlecenia. Zajmujesz się sprzedażą samodzielnie? Pracujesz częściej na projektach zagranicznych, czy krajowych?

Część moich klientów jest z polecenia. Obecnie skupiamy się na pozyskiwaniu klientów na długofalowe współprace. Wspieramy kompleksowo firmy od początku do końca.

Oprócz tego współpracuję z firmami, które podzlecają nam projekty, którymi one nie mogą z jakichś powodów się zająć. Większość klientów mamy z Polski, ale trafiają się też zlecenia z USA, Szwecji czy nawet Tajlandii.

Czy możesz podzielić się jakimiś serwisami, jak NomadList.com, które ułatwiają pracę digital nomads? Wszystko, co jest usługą/produktem, a może usprawnić życie osobie w ciągłej podróży.

Tak naprawdę, nie mam listy ulubionych stron dla cyfrowych nomadów. Jest bardzo dużo blogów podróżniczych, które opisują różne kraje i jeśli coś potrzebuję, to na nich szukam informacji. Jeśli chodzi o pracę zdalną, to źródłem cennych informacji jest na pewno blog Cyfrowi Nomadzi oraz grupy na Facebooku zrzeszające osoby zainteresowane tym tematem.

W byciu cyfrowym nomadą najfajniejsze jest to, że po jakimś czasie znasz kogoś kto był w danym kraju lub zna kogoś kto był. Taka rozmowa pomoże dużo bardziej niż czytanie artykułów. 

Czy spotykasz na swoich drogach innych remote workersów? Czy bywasz na jakiś meetupach, szukasz społeczności w danych mieście, czy raczej jesteś samotnym wilkiem?

 Bardzo dużo! Coraz więcej też z Polski. Bez problemu można np. gdzieś w Azji spotkać grafika czy programistę, który żyje w danym miejscu już kilka miesięcy. Byłem na kilku spotkaniach dla cyfrowych nomadów, ale raczej nie chodzę na takie wydarzenia.

 W jakich krajach byłeś? Czy możesz polecić jakiś, który wydaje się szczególnie przyjazny z punktu widzenia pracy programisty?

 Przez 4 lata pracy zdalnej udało mi się odwiedzić 13 krajów. Zarówno w Azji, jak i Europie. Numerem jeden jeśli chodzi o pracę zdalną dla mnie nadal jest Tajlandia. To idealny kraj dla cyfrowych nomadów. Przepiękne widoki, wspaniali ludzie, pyszne jedzenie i dobry internet. Jest to też bardzo przyjazny i bezpieczny kraj. Wielu cyfrowych nomadów zaczyna od Tajlandii i nigdy nie spotkałem się z sytuacją, żeby ktoś żałował.

 Jak ogarniasz kwestie formalno-fiskalno-prawne – masz działalność w Polsce i wszystko idzie tym systemem, czy to bardziej skomplikowane?

Tak, mam działalność w Polsce. Współpracuję z firmą księgową oraz kancelarią prawną, które pomagają mi w tych kwestiach. Nie znam się na tym, dlatego korzystam z usług specjalistów, dzięki czemu mogę spać spokojnie 🙂

Jeżeli chciałbym, jako programista, zacząć takie życie, jak Twoje, to jakie są trzy kroki, które muszę wykonać, zachowując kolejność, którą wymienisz?

 Po pierwsze systematyczność i ciężka praca. Nauka programowania może wydawać się łatwa, ale nie jedna osoba poległa. Trzeba być systematycznym i nie nastawiać się na szybkie efekty.

Po drugie, na początku nie skupiałbym się na pracy zdalnej. Praca w biurze ma dużo plusów. Możemy szybciej się uczyć od doświadczonych kolegów, wyrabia się kontakty itp. Na pracę zdalną jeszcze przyjdzie czas.

Po trzecie, pokora. Przez artykuły typu “ukończ kurs programowania i zarabiaj nawet 10,000 zł” programiści stali się bardzo roszczeniowi. Mamy obecnie sytuację gdzie to firmy starają się o pracowników, a nie pracownicy o pracę i część osób próbuje niestety to wykorzystać.

 

Jak znaleźć pracę za granicą jako programista?

Niezależnie od poziomu zaawansowania, nie ma takiego programisty, któremu przez myśl nie przeszłaby idea pracy za granicą i emigracji. Zmiana klimatu na nieco cieplejszy, pensja w zagranicznej walucie, czy możliwość pracy w siedzibach największych firm technologicznych świata przyciąga wielu.

Pytanie brzmi – jak do tego właściwie podejść i co zrobić, aby dać sobie jak największe szanse na sukces?

Piotr Nowosielski, twórca justjoin.it – pierwszej mapy rynku pracy dla branży IT i największego job boardu dla polskich programistów –  w ramach cyklu “Polscy programiści na świecie” przeprowadził już niemal 20 rozmów z naszymi rodakami: http://event.justjoin.it/ , jedynym tego typu wydarzeniu dla polskiej branży IT.

To osoby kodujące z każdego zakątka naszego globu. To świetni programiści z Doliny Krzemowej, Singapuru, Skandynawii Australii, Nowej Zelandii, Dubaju, Londynu, Nowego Jorku czy Tokio.

Jak sam mówi, to indywidualiści, a historia każdego z nich była zupełnie inna. Niemniej jednak można znaleźć pewną część wspólną, odnośnie tego jak zaczynali i jak zwiększali swoje szanse właśnie na to, aby móc znaleźć pracę w zagranicznych firmach.

Oddajemy klawiaturę Piotrowi:

Poniżej w punktach przedstawię najważniejsze elementy, które powtarzały się przy okazji rozmów z większością z nich, a są to osoby, które pracują obecnie w Facebooku, Google, Microsoft, Stripe, Trivago, Dropbox, VMware czy Lightbend.

Przytoczę poniżej kilka wypowiedzi polskich programistów na świecie, które powinny dać każdemu do myślenia:

  1. Ćwicz skille miękkie – Braki techniczne szybko jesteś w stanie nadrobić, jednak nikt nie zatrudni osoby, z którą nie będzie chciał pracować – Karol Stępniewski  @VMwareSan Francisco,
  2. Specjalizuj się – bądź specjalistą w swojej dziedzinie, a nie klepaczem kodu. Rozwijaj również open-source’owe projekty, którymi będziesz mógł się pochwalić na zewnątrz, – Konrad Malawski z @LightbendTokio, rozwijający bibliotekę Akka i mający swój wkład w JDK9 (najnowszą wersję Javy).
  3. Aplikuj na zagraniczne oferty pracy – nawet jak wydaje Ci się, że jesteś za słaby, najczęściej kandydaci spełniają 70% wymagań – Michał Baranowski @Alef, który po zaledwie 3 latach komercyjnego doświadczenia pracuje w Abu Dhabi
  4. Organizuj społeczność IT w twoim mieście – wykorzystuj meetupy do nawiązywania nowych znajomości, miej swój wkład w community – Dawid Ostrowski, Developer Relationship Program Manager w Google, obecnie mieszkający w Zurychu,

 

Oczywiście możesz też wypracować swoją drogę, jednakże pamiętaj również o powyższych radach, o których bardzo wiele osób zapomina, czy też dewaluuje ich znaczenie, a jak się okazuje, zagraniczne firmy przykładają do tego niebagatelną wagę.

Dotychczasowe live streamy prowadzone w ramach inicjatywy justjoin.it można obejrzeć na YouTube.

 

Rozwijanie pasji i budowanie marki osobistej

Maciej Aniserowicz to programista oraz autor najpopularniejszego bloga o programowaniu i wszystkim, co się z tym wiąże – devstyle.pl. Choć jego styczność z kodowaniem rozpoczęła się – jak sam przyznaje – stosunkowo późno, bo w połowie studiowania informatyki na Politechnice Białostockiej, niemal od razu po uzyskaniu dyplomu i rozpoczęciu kariery zawodowej Maciej wpadł na pomysł założenia bloga.

Niedawno ruszyła także sprzedaż książki Macieja, Zawód: Programista, w której dzieli się 10-letnim doświadczeniem na polskim rynku IT.

Kliknij, aby dowiedzieć się więcej o książce Zawód: Programista

 

Nie jest to typowe wśród programistów – a nawet jeżeli ich internetowe notesy zyskują popularność, często są hermetyczne i dotyczą stricte zagadnień związanych z tworzeniem kodu.

Chcieliśmy porozmawiać z Maciejem o tym, jaką rolę odegrał blog w kontekście jego kariery zawodowej, a także podpytać o wskazówki dotyczące kreowania marki osobistej w sieci.

Pisanie bloga – wszyscy wiemy, że to użyteczne i przydatne, ale w praktyce nawał pracy każdego dnia skutecznie blokuje pewnie sporo developerów przed jego prowadzeniem.

Maciej Aniserowicz, devstyle.pl: Pisanie bloga jest niesamowicie rozwijające i do tego od dawna namawiam dosłownie wszystkich programistów. Ten nawyk ma tyle zalet, że ciężko je wymienić w jednym zdaniu. I nawet nie chcę tego robić, bo te zalety odkrywa się całymi latami. To piękny proces.

Trzeba sobie uzmysłowić, że nie piszemy bestsellerowej książki i nie szkodzi, jeśli tu i ówdzie wkradnie się literówka czy błąd. Nie piszemy pracy naukowej, więc nie każdy tekst ma prowadzić do olśnienia i odkrycia. To jest blog. Blog – internetowy notatnik osobisty.

Jeśli sami zdejmiemy z siebie wygórowane wymagania to okazuje się, że wystarczy dosłownie kwadrans dziennie. 15 minut, konsekwentnie codziennie poświęcane na prowadzenie bloga, wystarczy. Oczywiście to nie będzie blog najpiękniejszy, najczęściej aktualizowany, największy, gdyż wskoczenie na wyższy poziom wymaga większego zaangażowania.

Jednak bardzo wiele można osiągnąć już tym magicznym kwadransem.

Poradzić mogę to, co radzę bardzo często w różnych obszarach: wstań pół godziny wcześniej niż zwykle i jeszcze przed pracą poświęć nieco czasu na bloga. Nawet się przy tym nie zmęczysz, nie zauważysz tej różnicy. A efekty będą zadziwiające.

Jedna, najważniejsza zaleta regularnego blogowania?

Zdecydowanie satysfakcja.

Blogowanie ma wiele zalet, ale robimy to przede wszystkim dla siebie. Samemu trzeba być szczęśliwym, by uszczęśliwiać innych. Mi udzielanie się daje poczucie spełnienia, nadaje sens wielu aspektom mojego życia.

Platforma blogowa typu Medium.com czy własny serwer? Dlaczego?

Ja używam WordPressa na własnym hostingu. Lubię mieć pełną kontrolę nad moim najważniejszym miejscem w sieci. Bez niespodzianek.

Dobrym przykładem na uzależnienie od zewnętrznych dostawców usług jest platforma Disquss – system komentarzy, który można wpiąć we własnego bloga. Przez lata serwis ten zdobywał coraz większą popularność.

Nagle, kilka miesięcy temu, na wszystkich serwisach z niego korzystających zaczęły pojawiać się wielkie brzydkie reklamy. Oczywiście można było je usunąć, przechodząc na model płatny, jednak ta zmiana odbiła się w Internecie głośnym echem.

Nie ufam zewnętrznym dostawcom i coś tak ważnego, jak blog, musi być pod moją kontrolą.

Czy możesz wymienić serwisy, w których programista aktywny na rynku powinien bezwzględnie być?

Nie będzie wielkim zaskoczeniem, jeśli powiem, że GitHub to faktycznie taki must-have dla programisty chcącego pokazać się na rynku jako profesjonalista. To wizytówka, gdzie zamiast opisów doświadczenia i umiejętności znajduje się kod. Kod często mówi więcej niż CV.

Drugim popularnym portalem jest StackOverflow. To największe na świecie forum programistyczne, działające w modelu Q&A, czyli odpowiedzi na pytania – skupione na rozwiązywaniu konkretnych problemów. Bardzo ciężko jest się tam wybić i ja nigdy nawet nie próbowałem, ale przy dużym samozaparciu można postarać się o imponujący ranking poprzez pomaganie innym programistom z całego świata.

Jednak ja zawsze skupiałem się na promowaniu siebie poprzez własną platformę, czyli właśnie blog. Wszystko pozostałe było tylko tłem, uzupełnieniem, które mogłem świadomie zignorować, dostarczając wartość i budując swoją pozycję w kontrolowanym przeze mnie miejscu.

Czy istnieje jakiś bloger/influencer z obszaru IT, który jest dla Ciebie inspiracją – którego regularnie czytasz?

Nie.

Najwięcej satysfakcji daje mi podążanie własną ścieżką. Wymyślam, planuję i realizuję.

Temat “personal brandingu” jest według mnie nieco śliski. Kiedyś, lata temu, próbowałem kreować swój wizerunek w jakiś określony, nieco sztuczny sposób. Było mi z tym źle. Teraz jestem po prostu sobą, niczego nie kreuję, nie oglądam się na “brand”.

Mój przekaz jest szczery, nie do końca okrzesany, czasami nieprzemyślany. Ale dzięki temu pokazuję siebie i nie muszę myśleć o “brandingu”. To ja – prawdziwy ja – jestem moim brandem. Nie potrafiłbym już działać w inny sposób, kontrolując się na każdym kroku albo nieustannie zastanawiając nad potencjalnymi konsekwencjami moich działań.

Jeśli komuś podobam się ja – prawdziwy ja, ze wszystkimi niedoskonałościami – to zapraszam. Jeśli nie, to się rozstajemy. I bardzo dobrze, nie da się dogodzić każdemu.

Oczywiście, czerpię z doświadczeń innych osób. Pat Flynn i jego podcast to kopalnia wiedzy o marketingu. Inspirująca droga Michała Szafrańskiego w dziedzinie self-publishingu pomogła mi napisać i wydać książkę.

Ale staram się zapożyczać od innych tylko pojedyncze rekomendacje, sobie zostawiając przyjemność obmyślania prawdziwej strategii i większych planów. Tak, żeby iść swoją drogą, a nie tylko dreptać po wydeptanych już śladach.

A co myślisz o LinkedIn? Czy tak, wydawałoby się, drobne elementy, jak zdjęcie profilowe czy cover photo mogą zadecydować o tym, że dostaniemy – lub nie – zlecenie/zapytanie od headhuntera?

Traktuję LinkedIn jako kolejny kanał dystrybucji moich treści.

LinkedIn to CV i warto o nie zadbać, jeśli szuka się nowych wyzwań. Jednak jeśli o zainteresowaniu rekrutera osobą programisty ma decydować profesjonalność zdjęcia profilowego czy cover photo to… Ja podchodziłbym do jego ofert dość sceptycznie. Bez przesady. W zawodzie programisty powinny się liczyć przede wszystkim kompetencje.

Ja pierwszą sesję zdjęciową miałem zrobioną w pracy, bo firma chciała pokazać wszystkich swoich pracowników w spójny sposób. Drugiej takiej sesji potrzebowałem, gdy zacząłem oferować firmom usługi marketingowe na moich kanałach.

Jednak w normalnej pracy programisty? Nie chciałbym, by kiedykolwiek taki krok był potrzebny.

 

Wskazówki dla programisty, który planuje zmienić pracę

Autorem poniższego tekstu jest Adrian Błaszkowski, HR Generalist w Grupie Allegro.

Przed rozpoczęciem poszukiwań pracy warto jest określić, czego tak naprawdę potrzebujemy. Im więcej wiemy o sobie i o rynku, tym lepiej dobierzemy dla siebie odpowiednią ofertę.

Powinniśmy wiedzieć:

  1. Jakie są nasze motywatory jeśli chodzi o ofertę pracy. Czy najważniejsze jest wynagrodzenie, dojazd, możliwość rozwoju, wykorzystywane technologie?
  2. Jaka jest minimalna i optymalna kwota, która może przekonać nas do zmiany pracy?
  3. Jaki jest nasz cel zawodowy (zostać liderem, specjalistą, właścicielem startupu etc.). To pytanie i tak pojawi się na rozmowie kwalifikacyjnej. Czy firma do której aplikujemy pomoże nami chociaż częściowo przybliżyć się do tego celu? Która firma ułatwi nam to najszybciej?
  4. Jakie mamy jeszcze braki w wiedzy i umiejętnościach. Bycie obiektywnym i szczerym wobec siebie w tej materii pozwoli nam uniknąć wielu niepowodzeń i straty czasu.
  5. Jaką opinie na rynku mają firmy do których chcemy aplikować. Czy pracuje/pracował tam któryś z naszych znajomych i co może nam na ten temat powiedzieć.
  6. Czy znamy kogoś, kto może nas polecić do tej firmy? Warto też przejść się na meetup lub wykład, który organizuje firma.
  7. Czy mamy przygotowane aktualne CV, czy można nas łatwo znaleźć na portalach social media związanych z karierą?
  8. Kiedy możemy zacząć pracę i/lub jaki mamy okres wypowiedzenia

 

Rola programisty zaczyna niekiedy przypominać rolę konsultanta – umiejętności miękkie wyróżniają dobrych deweloperów. Przykładem jest zespół programistów z serwisu Kayak, którzy … odbierają telefony od użytkowników i świadczą usługę customer service. W ten sposób mogą od razu zająć się poprawianiem bugów i wdrażaniem nowych funkcjonalności.

Jedną z kompetencji, którą warto nabyć jest proaktywność. Możemy ją wykorzystać także w procesie szukania pracy – np. napisać bezpośrednio do rekrutera zamiast czekać na telefon.

Upewnijmy się tylko, czy nasz profil jest kompatybilny z opisem stanowiska. Nie wysyłajmy też CV na każde możliwe ogłoszenie.

Najlepiej prowadzić małą listę. Bardzo łatwo zrazić rekrutera tym, że nie pamiętamy o tym, że aplikowaliśmy do jego firmy, a nawet to czy w ogóle jesteśmy zainteresowani pracą w tym miejscu i na tym stanowisku.

Podczas samej rozmowy odpowiadajmy konkretnie na zadane pytania. Pamiętajmy, że pracodawca zatrudnia nas po to, żeby rozwiązać jego problemy.

Im ogólniejsze są nasze odpowiedzi i tylko powierzchownie stykające się z poruszaną materią, tym gorsze wrażenie; gubi się także sens wypowiedzi.

Warto poczytać o zasadach savoir vivre, żeby uniknąć niefortunnych wpadek. Swój strój dopasujmy do kultury pracy w danym miejscu. Nie musi to być zawsze garnitur!

Jeśli chodzi o rekrutera, to nie powinien on zadawać zbyt prywatnych pytań. O ile, moim zdaniem, pytanie o hobby jest dopuszczalne, o tyle pytanie o poglądy polityczne czy kwestie religijne nie powinno paść na rozmowie.

Dodatkowo, jeśli czujemy, że rekruter zadaje zupełnie absurdalne pytania, np. O znak zodiaku lub ile jest okien w Pałacu Kultury, to proponuję wstać i wyjść 🙂 – ktoś tu nie traktuje nas poważnie.

Rozmowa, jak sama nazwa wskazuje, to nie odpytywanie. Sami też możemy, a nawet powinniśmy, zadawać pytania – w końcu, przy wyborze oferty, będziemy brali pod uwagę uzgodnione wcześniej kryteria.

Tu przechodzimy do momentu, którą ofertę wybrać?

Co ciekawe, możemy zadecydować, używając analityki. Doskonały sposób podaje strona http://www.helpmydecision.com/ . W praktyce wygląda to tak, że zestawiamy ze sobą otrzymane oferty pracy, określamy kryteria wyboru (pomoże nam w tym przygotowanie do szukania pracy, o którym napisałem wcześniej) i to, jak są dla nas ważne w skali 1 – 10.

Następnie porównujemy dane kryterium w obu (lub więcej) ofertach również oceniając dany aspekt w skali 1-10. Mnożymy następnie wagę kryterium z naszą oceną danego aspektu. Na koniec sumujemy wynik wszystkich aspektów danej oferty. Większa liczba wskazuje na lepszą ofertę.

Poniższy przykład może wyjaśnić ten proces:

 

Kryterium

Oferta X

Oferta Y

Wynagrodzenie (7)

6 (7 x 6 = 42)

6 (7 x 6 = 42)

Lokalizacja (4)

10 (4 x 10 = 40)

5 (4 x 5 = 20)

Rozwój (8)

2 (8 x 2 = 16)

4 (8 x 4 = 32)

Atmosfera (5)

7 (5 x 7 = 35)

3 (5 x 3 = 15)

Benefity (2)

2 (2 x 2 = 4)

6 (2 x 6 = 12)

                                                  137                       121

 

Wniosek: Oferta X jest dla mnie bardziej korzystna i to nad jej przyjęciem powinienem się poważnie zastanowić.

 

Agile – jak robić to dobrze

Materiał, nazwany “Kompendium programowania”, nie mógłby się obejść bez poruszenia kwestii organizacji sposobu pracy, a dokładnie – zetknięcia z tematem adaptacyjnego podejścia do realizacji projektów.

Agile, bo o nim mowa, powstał ponad 15 lat temu. Nazwa tej metody, tłumaczona na polski jako “zwinna” – w przeciwieństwie do pracy na bazie sztywnej, skomplikowanej dokumentacji – przejawia się w kilku metodach; w tym jednej najpopularniejszych, nazwanej Scrum. Na blogu Agile247 możemy przeczytać:

Agile’owe metody pracy nie są celem samym w sobie, a jedynie środkiem do celu. Dlatego z powodzeniem można ich używać tam, gdzie liczy się efektywna współpraca, dostarczanie wartościowych rozwiązań, zadowolenie klienta i umiejętność szybkiej adaptacji zmian.(źródło)

Scrum zrobił ogromną karierę w środowisku programistycznym. Prawidłowo realizowany, pozwala elastycznie i szybko adaptować się do otoczenia biznesowo-technologicznego, a także sprawnie dowozić kolejne wersje oprogramowania.

 

Dzięki niemu, małe, samoorganizujące się zespoły koncentrują się na małych krokach prowadzących do wdrożenia funkcjonalnych fragmentów kodu, a dzięki komunikacji wewnątrz zespołowej z oczu nie znika tzw. big picture.

Manifest Agile

 

Problem polega na tym, że jego efektywność zależy zarówno od stopnia zrozumienia samej idei, jak i od tego, czy wykorzystywany jest zgodnie z przeznaczeniem, bez pomijania poszczególnych składowych.

Jak pisze Piotr Romanowski na blogu Speednet.pl, scrum narzuca jedynie konieczność stałego doskonalenia procesów przybliżających do osiągania zamierzonych celów – w naszym przypadku będą to głównie poszczególne funkcje oprogramowania – wytwarzane szybciej, oferujące wyższą jakość.

 

Antywzorce, które utrudniają realizację Scruma

Stosujemy tylko wybrane elementy Scruma

Narzędzia trzeba dostosowywać do własnych potrzeb – to oczywiste. Może się okazać, że podczas pracy w Scrumie, wykorzystujecie elementy z Kanbana (np. ograniczanie wielkości kolejek) – i odwrotnie. Istnieją jednak pewne ramowe ograniczenia, takie jak: jednakowa długość kolejnych iteracji (pozwala ustalić okres kadencji), retrospektywa po prezentacji kodu/wdrożeniu, stały zakres sprintu podczas jego trwania i tak dalej.

 

Michał Pośnik, Project Manager

 

Jeżeli porzucasz którykolwiek z powyższych elementów, może ucierpieć na tym cały proces (choć niekoniecznie); a już na pewno nie powinieneś nazywać takiej organizacji pracy Scrumem i obwiniać Agile o to, że “nie dowozi”.

 

Włączanie Project Managera w trójkąt product owner-scrum master-team

W przeciwieństwie do Kanbana, Scrum w precyzyjny sposób określa role w procesie i zakres obowiązków: product ownera (wizja i priorytety, zarządza backlogiem), zespołu (wdraża kod) oraz scrum mastera (pilnuje procesu).

Problem pojawia się w sytuacji, kiedy dana organizacja częściowo myśli tradycyjnymi metodami realizacyjnymi (np. Waterfall) i do zespołu Scrumowego próbuje włączyć project managera.

Cała idea Scruma polega jednak na tym, że zespół ten nie potrzebuje kierownika – tak jak nie potrzebuje prezesa, dyrektora etc. Siłą tej metodyki jest samoorganizacja, a obowiązki pełnione tradycyjnie przez PMa podzielone zostały między product ownera i scrum mastera.

 

 

PM może przejść do roli product ownera, ale zwolennicy Agile’a stanowczo odradzają łączenie tych dwóch funkcji. Dlaczego? PM w pewnym sensie dba przede wszystkim o interes klienta, zaś product owner – o interes zespołu.

 

Niezrozumienie poszczególnych funkcji Scruma przez zespół

Aby sprawnie realizować Scruma, w zespole powinna być “obsadzona” rola Scrum Mastera – to on dba, aby poszczególne elementy Scruma były zrozumiałe dla wszystkich i realizowane zgodnie z przeznaczeniem.

Może się jednak okazać, że SM sam doprowadza do wypaczenia idei poszczególnych czynności albo niedostrzega, że poszczególni członkowie zespołu developerskiego odmiennie interpretują rolę poszczególnych zdarzeń.

Problem może dotyczyć na przykład Daily – szybkiego spotkania (często prowadzone na stojąco, aby nie przedłużać ;-)) w okresie sprintu, które ma za zadanie upowszechnić informację o statusie. Dzięki daily, w zespole funkcjonuje ciągły przepływ informacji, nadawany jest rytm pracy, która ulega synchronizacji. Każdy członek zespołu formułuje swoją wypowiedź z uwzględnieniem trzech kwestii:

  1. Co zrobiłeś wczoraj?
  2. Co zrobisz dzisiaj?
  3. Jakie przeszkody istnieją na twojej drodze?

Wspomniane wypaczenie może polegać na tym, że z Daily robi się “odpytywanka” i raportowanie stanu pracy przed właścicielem produktu/klientem/szefem etc. Prowadzi to do sytuacji, w której członkowie zespołu koncentrują się na dokładnym opowiedzeniu, czy “wywiązali się ze zobowiązań”, co utrudnia planowanie pracy na kolejne 24h.

Więcej o anty-wzorcach w Scrumie możesz przeczytać na stronie Agile247.

 

Kiedy Scrum nie może działać

Nie istnieje jedna, idealna metoda realizacji projektów, która rozwiązywałaby wszystkie problemy napotykane podczas prac nad tworzeniem oprogramowania. Idea Scruma polega na szablonowym ograniczeniu możliwości, co z jednej strony pomaga “dowozić”, z drugiej – wymusza akceptację tych reguł na końcowym odbiorcy produktu – na kliencie czy managmencie firmy.

 – Jeżeli po stronie klienta będzie “parcie” na harmonogram i sztywne etapy, to realizacja projektu w sposób zwinny będzie ograniczona – tłumaczył Michał Pośnik z 3e Software House. Istnieją też takie organizacje, które wymuszają typowe, kaskadowe podejście do realizacji projektów; dokumentacja analizy, stworzona specyfikacja.

– Działają w ten sposób instytucje publiczne, często również finansowe. W bankach, w których pracowałem, nikt nie zgodził się na wydanie choćby złotówki na implementację, dopóki nie było zaakceptowanej dokumentacji analitycznej. A to wymaga nawet miesięcy pracy – tłumaczył ekspert.

ROZDZIAŁ III

Tester oprogramowania – alternatywa do pracy programisty w sektorze IT

Branża IT to nie tylko programowanie. Zapotrzebowanie na rynku jest ogromne. Już teraz brakuje blisko 40 tysięcy specjalistów w Polsce i 300 tysięcy w Europie.

Na kogo czekają wolne wakaty? Najwięcej ofert pracy zaraz po programistach czeka na testerów i inżynierów oprogramowania.

Jeśli więc nie chcesz od razu skakać na głęboką wodę i uczyć się programować, ale jednocześnie chcesz rozwijać się w obszarze IT – wybierz karierę testera. Testowanie to świetna opcja dla osób, które chcą się przekwalifikować, a nie mają wcześniejszego doświadczenia technicznego.

Kim jest tester oprogramowania?

Tester to osoba, która testuje oprogramowanie np. aplikacje lub strony internetowe, na dedykowanych im urządzeniach (smartfonach, tabletach lub komputerach z różnymi systemami).

Fachowo mówiąc: tester sprawdza, czy oprogramowanie jest zgodne ze specyfikacją, spełnia oczekiwania zlecającego i czy jest przyjazne oraz bezpieczne dla użytkowników. Czynności, które może obejmować testowanie to: pobieranie oprogramowania, instalacja, sprawdzanie poszczególnych funkcji np. logowanie, płatności, wyszukiwanie.

Czy tester tylko „klika”?

Zdecydowanie NIE! Klikanie, czyli wykonywanie testów to tylko część zadań testera i istnieje szereg innych czynności związanych z procesem testowania.

Zanim tester przystąpi do pracy, zapoznaje się z wymaganiami, rozpoznaje biznes klienta, planuje i projektuje testy, w końcu konfiguruje środowisko i testuje na różnych platformach z wykorzystaniem różnych narzędzi.

W międzyczasie raportuje wyniki, zgłasza błędy, dochodzi w jakich sytuacjach się pojawiają, tworzy dokumentację. Nie zapominajmy też o tym, że tester jest w stałym kontakcie z klientem, developerami i zespołem testerskim.

Koniec końców praca testera to przede wszystkim analizowanie i dostarczanie informacji. Wymaga bardzo dużo kreatywności i komunikatywności.

 

Kto nadaje się na Testera Oprogramowania?

Pewnie nieraz słyszeliście stwierdzenie, że testerem może zostać każdy, a w branży tej wiek, zainteresowania czy Twoja dotychczasowa praca nie stanowią żadnej przeszkody. Co jednak sprawia, że masz szansę zostać “testerem idealnym”? Przepis jest prosty – wystarczy, że odnajdziesz w sobie kilka cech i predyspozycji.

Po pierwsze – cierpliwość, która przyda Ci się zarówno podczas pracy, gdy wielokrotnie będziesz musiał zmagać się z tą samą czynnością lub podczas kontaktu z zespołem i klientem, którym ze stoickim spokojem wytłumaczysz gdzie znajduje się błąd i na czym polega.

Nie obejdzie się również bez komunikatywności. To nie tak, że jesteś tylko Ty i Twój komputer, a cała reszta świata może dla Was nie istnieć 😉 Dobry tester potrafi pracować w zespole. Sprawnie komunikuje się zarówno z kolegami i koleżankami w drużynie, ale także bez obaw przekazuje informację o błędach klientowi nie stresując go przy okazji tej czynności.

Zapał do nauki to konieczność. Jako tester możesz zaczynać od zera. Łatwość przyswajania nowych informacji i duża ciekawość pomogą Ci uzupełnić braki i nadążyć za zmieniającymi się technologiami. Poza tym – sprawne posługiwanie się komputerem czy podstawowa wiedza o platformach i systemach, to mus w tym zawodzie.

Dokładność to kolejny składnik super testera. Jak to mówią w branży – nie ma nic gorszego niż niestaranny tester. Praca w pełnym skupieniu i dbałość o szczegóły to chleb powszedni w naszym zawodzie. Czasem niewinny błąd może okazać się czubkiem bug’owej góry. Tylko Twoja skrupulatność pomoże uniknąć katastrofy jak na Titanicu 😉

To logiczne, że przyda Ci się logiczne myślenie, tego chyba nie musimy tłumaczyć, szczególnie jeśli widzisz się w roli testera 😉

Na koniec szczypta obcego języka, nieszablonowego myślenia oraz pasji i jesteś gotowy!  

Jak rozpocząć karierę testera?

Na początek warto zgłębić wiedzę na temat testowania i samego zawodu testera: po co testujemy oprogramowanie, jak wygląda praca testera, jak przebiega cykl życia oprogramowania i jakie umiejętności są ważne na starcie. Wszystkie te informacje bez problemu można znaleźć w Internecie np. oglądając webinary na You Tube.

Dobrym pomysłem jest również dołączenie do społeczności testerskiej. W największych miastach działają i cyklicznie spotykają się takie inicjatywy jak:  Girls who test, PapryQArz, Trójmiejska Grupa Testerska, PTaQ, WrotQA, KrakQA WarszawQA.

 – Tym, którzy na poważnie myślą o karierze testera polecam uzyskanie certyfikatu ISTQB Foundation Level. Certyfikat ISTQB Foundation Level (poziom podstawowy) to międzynarodowy dokument, wydawany przez stowarzyszenie ISTQB i rozpoznawalny na całym świecie. Jest on potwierdzeniem posiadania kwalifikacji zawodowych z zakresu testowania i często jest wymagany na juniorskich stanowiskach testerskich.

Oczywiście, nie jest tak, że sam certyfikat otwiera drzwi do sukcesu. Bardzo ważna jest również samodzielna nauka i zdobywanie doświadczenia poprzez staże w firmach, praktyki i szkolenia, na przykład takie jak Akademia Testowania.

Dzięki praktykom zobaczysz, jak wygląda testowanie na realnych biznesowych projektach, nauczysz się jak poprawnie zgłaszać błędy i jak tworzyć dokumentację testerską “ – mówi Ewa Kienc- Brachmańska, Test Project Manager w TestArmy Group.

Dlaczego testerzy ratują projekty?

Mówi się, że jeżeli “wydaje ci się, że zatrudnienie profesjonalisty jest drogie, szybko przekonasz się, jak kosztowne jest zatrudnienie amatora”. I choć testowanie stanowi tylko część zapewnienia jakości oprogramowania, jest elementem absolutnie niezbędnym w procesie wytwarzania – może zadecydować o “być lub nie być” produktu czy całej firmy.

O roli testów rozmawialiśmy z Łukaszem Pietruchą, Head of QA w Grupie TestArmy.

Zacznijmy od początku. Kim jest tester i jak można nim zostać?

Pozornie rzecz wydaje się łatwa, ponieważ ten zawód uważany jest za “wrota do IT” ze stosunkowo niskim progiem wejścia. O ile faktycznie wymaga troszkę mniejszych nakładów niż start jako np. programista, o tyle rynek nasycił się już początkującymi adeptami sztuki testowania.

Oczywiście, certyfikat ISTQB to wciąż słuszna podstawa, jednak to dopiero potwierdzenie teoretycznej wiedzy – trzeba ją uzupełnić o praktykę. Wciąż mnóstwo jest ofert pracy zdalnej czy zajęć testerskich, które można wykonać “pro publico bono” np. dla lokalnej społeczności (niekoniecznie testerskiej) w ramach różnorakich eventów.

Innym sposobem jest staż bądź praktyki, które pozwalają zapoznać się z narzędziami, trybem pracy, być bliżej cyklu wytwarzania oprogramowania. Obok umiejętności technicznych nie należy też zapominać o rozwoju kompetencji miękkich, gdyż tester w swojej pracy bardzo dużo się komunikuje i powinien to robić efektywnie.

Testowanie stanowi część zapewnienia jakości oprogramowania. Ale czy jest niezbędne? Czy budżetując produkt, zawsze powinniśmy uwzględniać koszt QA?

Bardzo słusznie zauważasz, że zapewnienie jakości to temat dużo szerszy niż tylko testowanie. W dynamicznym świecie aplikacji, gdzie konkurencja jest spora, trzeba się wybić nie tylko pomysłem. Podobnych produktów jest na rynku wiele, dlatego konkuruje się przede wszystkim jakością. Nie wyobrażam sobie, żeby na etapie planowania budżetu zabrakło środków na QA. Bezpiecznym założeniem jest przeznaczenie min. 30% na zapewnienie jakości.

 

Czy możesz opowiedzieć o jakimś przypadku, w którym dana firma nie poświęciła wystarczających zasobów na testy (lub w ogóle je zignorowała), ostatecznie ponosząc zarówno koszty związane ze stratami, jak i wprowadzeniem procesu testowania?

Na wstępie trzeba zaznaczyć, że koszty awarii mogą być bardzo różne: od odrobiny frustracji, gdy zawiesi nam się pasjans, aż po utratę dużych pieniędzy lub wręcz narażenie zdrowia i życia ludzkiego.

Łukasz Pietrucha

 

Podczas prowadzonych przez nas szkoleń bardzo często przytaczamy przykłady spektakularnych katastrof kosmicznych, jak np. przypadek sondy Mars Orbiter, gdzie jedna z firm dostarczających oprogramowanie zastosowała amerykańskie jednostki miar, zamiast standaryzowanych w układzie SI. Nie sprawdzono prawidłowości obliczeń, w efekcie sonda roztrzaskała się o powierzchnię czerwonej planety (w założeniu miała ją tylko okrążyć i zrobić parę zdjęć).

Bardzo mocnym przykładem jest też sytuacja, w której zawiódł system obrony przeciwrakietowej, gdy w konsekwencji śmierć poniosło prawie 30 osób… Te przykłady są już dość wiekowe – obecnie QA stało się tematem popularnym i ważnym, zatem ryzyko, na którym skupiają się firmy dotyczy przede wszystkim możliwości bycia wyeliminowanym przez konkurencję.

Jako specjaliści od zapewnienia jakości zawsze powtarzamy, że nie ma oprogramowania w 100% wolnego od defektów, ale z perspektywy organizacji możemy starać się zbliżać do tej liczby wieloma drogami i na wielu poziomach: wprowadzając odpowiednie procesy i procedury jakościowe lub np. testując oprogramowanie przed wydaniem.

Mówiąc o testach w kontekście działalności Test Army, poruszamy się w trzech obszarach: testowanie funkcjonalne, testowanie użyteczności oraz bezpieczeństwa. Czy możesz przywołać po jednym przykładzie z tych dziedzin, w których Wasze działania przyniosły wymierne skutki?

Jeśli chodzi o testy UX, wsparliśmy w tym zakresie m.in. Empik, po uruchomieniu przez klienta odświeżonego serwisu internetowego – ponad 500 godzin prac zaowocowało ponad setką rekomendacji zmian, w efekcie usprawniona została nawigacja oraz architektura poszczególnych stron, a przejście przez proces zakupowy stało się łatwiejsze i bardziej przyjazne dla użytkowników.

Obracający kryptowalutami z pewnością kojarzą giełdę bitmarket.pl – tutaj z kolei nasz zespół wykonał kompleksowe testy bezpieczeństwa, w efekcie prowadząc do uszczelnienia serwisu.

Przykładem dobrze wykonanych testów funkcjonalnych jest natomiast CinemaCity, dla którego to klienta wykonaliśmy nie tylko testy manualne na platformach webowych oraz mobilnych, ale wspieraliśmy również sam proces testowy, oferując usługi automatyzacji.

Szybkość działania i elastyczność to atuty, które docenił nasz klient, uzyskując przy okazji raport potwierdzający m.in. zgodność dostarczonego produktu z dokumentacją.

Z lektury Waszego case’u dot. YaCap wnioskuję, że zastosowaliście metodę crowdtestingu. Czy mógłbyś opowiedzieć o tym szerzej – czy metoda ta upowszechnia się na rynku w PL? Na co należy zwrócić uwagę, zwracając się do danej firmy oferującej tę usługę?

Crowdsourcing jest już od kilku lat dosyć sprawdzoną metodą pozyskiwania wiedzy czy usług, nie tylko w testowaniu, ale także w innych branżach. Akurat jeżeli chodzi o testowanie ten model jest świetnym rozwiązaniem, ponieważ można bardzo szybko uzyskać feedback od testerów czy zwykłych użytkowników.

Często jest to jedyna metoda na przetestowanie aplikacji (szczególnie na urządzenia mobilne) w realnych warunkach użytkowania – kiedy musimy sprawdzić działanie aplikacji w różnych sieciach komórkowych, krajach, korzystając z GPS itd. staje się ona najbardziej efektywna czasowo i kosztowo. Nie wszystko da się zasymulować, pewne funkcjonalności po prostu muszą być zweryfikowane w realnym świecie.

Jeżeli chodzi o bazę testerów to od kilku lat rekrutujemy do niej specjalistów i użytkowników z różnych części świata, a jeżeli jest potrzeba pozyskania kogoś z konkretnego kraju, to uruchamiamy rekrutację korzystając np. z portali społecznościowych. W zależności od potrzeb odpowiednią grupę testerów jesteśmy w stanie pozyskać w czasie od kilku minut do kilku dni.

Polski rynek zna już dosyć dobrze crowdsourcing, nasza platforma działa w tym modelu już od 7 lat, natomiast często ten sposób testowania jest pewnym uzupełnieniem regularnych testów wykonywanych przez zespół dedykowanych testerów. Takie podejście pozwala klientowi na jeszcze większą pewność, że dostarcza na rynek produkt nie tylko wolny od błędów programistycznych, ale też zgodny z oczekiwaniami użytkowników końcowych.

 

Podstawowy proces testowy – czy mógłbyś z grubsza nakreślić kroki, w ramach których zabieracie się do testów? Czy w czasie ich prac potrzebna jest np. dedykowana osoba po stronie klienta?

Wiele zależy od ustalonego modelu współpracy oraz potrzeb klienta – naszą siłą jest bardzo duża elastyczność w tym zakresie. Jeśli chodzi o samą realizację projektu to może być różnie: począwszy od bardziej ustrukturyzowanej formy (tutaj rozpoczynamy od przygotowania planu testów, następnie przypadków i scenariuszy testowych, dalej wykonanie testów) aż po nieco “luźniejszą”, np. testy eksploracyjne (bazujące na doświadczeniu, wiedzy, intuicji i polegające na jednoczesnym testowaniu i uczeniu się aplikacji, bez potrzeby przygotowywania scenariuszy przed przystąpieniem do prac).

Nad przebiegiem projektu może czuwać nasz PM, bywa też tak, że nasi testerzy stają się członkami istniejących zespołów po stronie klienta, projektowo podlegają PMowi “po tamtej stronie”, uczestniczą na bieżąco w pracach, fizycznie pozostając jednak w siedzibie naszej firmy.

 

Po co mi firma testująca, jeśli mam zespół programistów na pokładzie? Czy oni nie mogą dokonać testów i wprowadzić potrzebne poprawki?

Zapewnienie jakości to skomplikowana i wielopoziomowa tematyka. Na wielu etapach może się pojawić niespodziewany problem. Wielokrotnie zdarza się, że nie wystarczy dobre zrozumienie wymagań czy dobry kod.

Dzisiejsze oprogramowanie nie jest proste – bywa złożone z wielu rozbudowanych systemów, niejednokrotnie rozlokowanych geograficznie daleko od siebie. Wszystkie one muszą się ze sobą porozumiewać – przy tak wielu punktach styku zawsze coś może pójść nie tak.

Dodatkowe spojrzenie specjalisty zmniejsza ryzyko wystąpienia awarii w końcowym produkcie. Jako TestArmy działamy w wielu obszarach zapewnienia jakości (testy funkcjonalne, wydajnościowe, bezpieczeństwo, UX). Doradzamy też naszym klientom jak ułożyć procesy w firmie, oferując QA consulting. Dzięki temu pomagamy spojrzeć na temat szerzej i dostrzegać niedostatki nie tylko w samym produkcie, ale również procesie wytwórczym.

 

Czy mógłbyś wymienić 3 wskazówki dla programistów, dzięki którym zaoszczędzą Wam pracy? ;))

Na pewno dbanie o czystość kodu (np. poprzez stosowanie wzorców czy standardów), ponieważ defekty w nim występujące mogą nie ujawnić się podczas korzystania z aplikacji (przykładem może być tzw. “martw kod”).

Polecamy też podążanie metodyką TDD (z ang. “Test Driven Development”, czyli wytwarzanie sterowane testami), gdzie najpierw powstaje test jednostkowy, a dopiero potem kod, powodujący, że ten test zaczyna zwracać rezultat pozytywny. Pozwala to przemyśleć problem przed przystąpieniem do działania – w efekcie końcowy produkt jest zgrabniejszy :).

Wreszcie ostatnią wskazówką byłoby takie budowanie aplikacji, aby dostęp do poszczególnych elementów jej architektury był łatwy również dla testerów – uzyskujemy w ten sposób coś, co w naszym żargonie nazywamy “testowalnością”.

Czy przy pracy nad testami sklepów internetowych istnieją jakieś klasyczne słabe punkty, od których zawsze zaczynacie pracę? Wąskie gardła? Powszechnie popełniane błędy?

Jednym z najważniejszych elementów sklepów internetowych jest możliwość sprawnego i szybkiego wyszukiwania towarów. W końcu w sklepie stacjonarnym też najchętniej sięgamy po te produkty, które są najbardziej pod ręką, a nie te, po które trzeba sięgać wysoko lub nisko się schylać.

W przypadku aplikacji internetowych dodatkowo dochodzi tutaj możliwość wykorzystania wyszukiwarki do ataków hackerskich – jest to więc niewątpliwie bardzo istotny fragment do sprawdzenia. Drugim bardzo istotnym procesem, na którym mocno skupiamy naszą uwagę jest proces zakupu i płatności.

Nie można sobie tutaj pozwolić na pomyłki, gdyż bezpośrednio dotyczyć one będą klienta końcowego, który będąc niezadowolonym, może ostatecznie zrezygnować z zakupów w naszym sklepie w przyszłości.

Jeśli chodzi o powszechnie popełniane błędy, to najczęściej dotyczą one responsywności strony, czyli dopasowania jej do jak największej ilości możliwych rozdzielczości.

Sporo trafia się nam też defektów, związanych z zapytaniami do systemów podległych (np. baz danych), które na stronie ujawniają się w różnej postaci, np. błędnie sortując czy filtrując produkty, wyświetlając nieprawidłowe ceny, itd.

Case study – testerzy pomagają sklepowi Empik

W marcu 2017 wystartował odświeżony e-sklep Empiku, w którym znalazły się nowe produkty i kategorie. Empik.com znacznie poszerzył swoją ofertę, wprowadzając opcję click & collect.  Według danych sieci, w 2016 roku sklep internetowy Empik.com miał średnio 8,5 mln odwiedzin każdego miesiąca, a współczynnik konwersji wzrósł w ubiegłym roku o ponad 10 procent.

Empik podjął decyzję o wprowadzeniu testów przy projektowaniu nowego wyglądu sklepu już na początkowym etapie całego procesu. Testy UX, które firma przeprowadziła w obrębie strony, miały na celu podniesienie obu tych wskaźników – zarówno ilości odwiedzin, jak i konwersji. Przeprowadzeniem audytu i stworzeniem raportu z testów funkcjonalnych zajęła się firma TestArmy.

     

W przypadku e-commerce’ów bardzo ważne jest zachowanie dobrej reputacji, dzięki zapewnieniu bezproblemowego użytkowania serwisu. Sklepy, w których nawigacja oraz dokonywanie zakupów sprawiają jakiekolwiek trudności tracą klientów, których odzyskanie może być bardzo kosztowne.

Wdrożenie testów użyteczności w momencie planowania nowego systemu znacząco wpływa na efektywność wszystkich późniejszych działań. Umożliwia to uniknięcie wielu błędów już na starcie funkcjonowania serwisu bądź aplikacji oraz rozpoznanie potrzeb i zachowań prawdziwych użytkowników serwisu.

Na proces audytu UX złożyły się trzy kroki:

1. Testy z użytkownikami – na podstawie pierwszych makiet sklepu, przeprowadzono weryfikację ich użyteczności z 32 osobami. Połowa z nich była stałymi klientami, zaś druga – miała styczność ze sklepem Empiku po raz pierwszy.

2. Wsparcie przy projektowaniu – już pierwsze badania pozwoliły na modyfikację poszczególnych ekranów makiety. W dalszej kolejności “pod nóż” poszedł koszyk zakupowy i kolejne kroki prowadzące do finalizacji procesu zakupowego.

3. Końcowe badania z użytkownikami – ponownie 32 osoby, przy udziale moderatora, zostały poproszone o realizację celów w obrębie strony zgodnie z zaplanowanym scenariuszem, zarówno na desktopach, jak i w mobile.

W przypadku nowego serwisu empiku, przeprowadzenie testów funkcjonalnych na wielu urządzeniach z różnymi systemami operacyjnymi i przeglądarkami, na wczesnym etapie funkcjonowania sklepu umożliwiło znalezienie aż 100 błędów, w tym 20 krytycznych.

Serwis, który osiąga ponad 8,5 mln odwiedzin miesięcznie nie może pozwolić sobie na to, żeby na te błędy jako pierwsi natknęli się użytkownicy, ponieważ zwyczajnie stracą oni motywację, żeby z niego dalej korzystać.

 – Nasza współpraca z empik.com trwa cały czas. Zapewnianie jakości systemu sklepowego jest stałym procesem, który powinien towarzyszyć rozwojowi platformy na każdym etapie jej rozwoju – tłumaczył Szymon Chruścicki, Project & Business Manager TestArmy Group.

 

Rozdział IV

Trendy technologiczne – Sebastian Gilon, dyrektor ds. bezpieczeństwa IT w TestArmy

 

Digital Transformation + IoT + Connected Devices:

Na rynku z roku na rok pojawia się coraz więcej tzw. połączonych urządzeń. Szacuje się, że do 2020 liczba IoT (Internet of Things) wzrośnie do 100 mld na całym świecie.

 
Chociaż liczba ta według mnie jest mocno zawyżona, nie ulega wątpliwości, że każdy z nas otacza się nowymi gadżetami w codziennym życiu. Wiele z nich, np. laptopy, smartfony, smartwatches, pralki, tostery, samochody itd, jest ze sobą połączonych oraz zarządzanych przez aplikacje mobilne.
 
Wraz ze wzrostem liczby tych urządzeń cała branża oraz ich użytkownicy zostaną postawieni przed poważnymi wyzwaniami dotyczącymi zapewnienia bezpieczeństwa.
 
Większa liczba połączonych ze sobą gadżetów i urządzeń domowych zwiększa liczbę tzw. punktów styku, na których dojść może do różnego rodzaju błędów i naruszeń bezpieczeństwa i ataków hakerskich.
 
Organizacje muszą przygotować się na zwiększoną liczbę cyberataków, gdyż w grę wchodzi utrata reputacji, wypływ danych klientów oraz wiele innych poważnych konsekwencji, które narazić mogą firmy na zmniejszenie ich wartości oraz nawet konsekwencje prawne.

Kryptowaluty i blockchain:

Wraz ze wzrostem globalnego handlu oraz e-commerców w siłę rosną kryptowaluty, takie jak Bitcoin, cały system blockchain oraz wszystkie aplikacje powiązane, jak: portfele, giełdy, kantory, pośrednicy płatności.

 
Konsumenci oraz firmy coraz chętniej płacą za usługi i produkty wirtualnymi walutami, a to rodzi coraz więcej problemów związanych z ich bezpieczeństwem.
 
Pytaniem pojawiającym się przy tych technologiach jest nie czy i jak się one rozwiną, a to w jaki sposób będzie je można zabezpieczyć. Nowe formy płatności oraz prania pieniędzy mogą umożliwić nowe i wcześniej niewidoczne poziomy aktywności przestępczej, na które firmy będą musiały się przygotować.
 
 

Trendy w programowaniu –

Bartosz Pranczke, Senior Technology Leader w Netguru

GraphQL

GraphQL jest to język zapytań opracowany przez programistów Facebook’a, który adresuje problem setek endpointów API przy projektowaniu dużych serwisów, używając architektury typu RESTful.

Aby aplikacja opierająca się na architekturze RESTful pobrała wszystkie potrzebne dane często potrzebnych jest wiele zapytań do API. Natomiast w przypadku GraphQL zdefiniowana struktura rozwiązuje problem pobierania zbyt małej lub zbyt dużej ilości danych z backendu. Aplikacja kliencka może pobrać wszystkie potrzebne dane wykonując tylko jedno zapytanie do API. Warto rozważyć wykorzystanie GraphQL przy projektowaniu kolejnej aplikacji opartej o API.

PWA

Progressive Web Apps to właściwie zbiór kilku technologii, które połączone zacierają w dużym stopniu różnice pomiędzy natywnymi i webowymi aplikacjami. Pozwala to zaoferować użytkownikom mobilnym znacznie lepsze doświadczenia, mimo że dotychczas aplikacje natywne były zdecydowanie wygodniejsze od przeglądarkowych.

PWA to m.in notifikacje w trybie ‘push’, możliwość dostosowywania w locie funkcjonalności aplikacji w zależności od dostępności połączenia z internetem (np. offline, G3, Wi-Fi) itd. Może to być często lepszy wybór niż pisanie natywnej aplikacji na urządzenia mobilne.

Microsoft Azure i Google Cloud

W środowisku start-upowym dość mocno przodują usługi chmurowe dostarczane przez Amazon (AWS). Jeśli ktoś wie, jak wykorzystać usługi któregoś z dostawców chmurowych, to niedużym nakładem pracy może swoją wiedzę poszerzyć na resztę usług oferowanych przez dużych graczy tego rynku. W praktyce każdy z nich oferuje nieco odmienne usługi i często po bardzo odmiennej cenie, więc nawet ogólna wiedza o usługach może znacznie zmniejszyć koszty infrastruktury kolejnego projektu.

Serverless

Serverless jest to model, który umożliwia wykonywanie programów w chmurze w taki sposób, że programista nie musi przejmować się infrastrukturą serwerową. Dostaje do dyspozycji środowisko uruchomieniowe (np. Node.JS, Go), gdzie wysyła swój kod i całym procesem utrzymania aplikacji zajmuje się ”chmura”.

Być może jeszcze za wcześnie na używanie tego modelu dla całości aplikacji, ale na pewno warto rozpatrzyć przeniesienie niektórych modułów na serverless. Np. mamy moduł przerabiający obrazki wysyłane przez użytkownika, można taki serwis przenieść na serverless i nie trzeba się wtedy przejmować wieloma aspektami bezpieczeństwa, którymi powinniśmy się przejmować, gdy tego typu transformacje dokonywane są bezpośrednio na serwerze produkcyjnym.

ARKit – Adrian Kashivskyy, Senior IOS Developer w Netguru

Apple co rok wydaje nowe wersje iOS, które wnoszą wiele nowych technologii, ale w tym roku rzeczywiście było ich więcej niż zwykle — a jedną z nich był właśnie ARKit. ARKit na pewno spopularyzował AR na iOS.

Opcja implementowania rozszerzonej rzeczywistości na setkach milionów urządzeń umożliwiła wdrożenie wielu pomysłów. Od publikacji pierwszej bety ARKit powstało wiele ciekawych aplikacji, np. mierzenie odległości czy podgląd mebli przed wizytą w sklepie IKEA. Stało się tak w dużej mierze dzięki prostemu interfejsowi, który jest zbawieniem dla developerów oraz zapewnieniu długoterminowego wsparcia, co jest też bardzo ważne z biznesowego punktu widzenia.

Brak wzmianki o VR na tegorocznym WWDC nie jest przypadkiem. Już w 2016 roku Tim Cook, CEO Apple, wyraził jasną preferencję AR nad VR, a prezentacja ARKit to kolejne potwierdzenie tego stanowiska. Dla branży VR niewiele to zmienia – inne wielkie firmy, takie jak Google, nadal wspierają tą egzotyczną technolgię.

Developerom iOS radzę: zainteresujcie się tematem — wdrożenie feature’a w ARKit jest proste, a wasz produkt zyska w ten sposób na wartości. Nawet najmniejsza scena w rozszerzonej rzeczywistości to nie tylko wspaniały gadżet reklamowy, ale i też przydatne użytkownikom urozmaicenie interakcji, które spowoduje, że będą oni wracali do waszej aplikacji.

Do góry!

Polecane artykuły

Zapisz się do naszego newslettera

Wyślij mi newsletter (Możesz się wypisać w każdej chwili).

email marketing powered by FreshMail
 

Subscribe to our newsletter

Send me your newsletter (you can unsubscribe at any time).

email marketing powered by FreshMail
 

Subscribe to our newsletter

email marketing powered by FreshMail