O ile przekonanie o tym, że programowanie otwiera wiele zawodowych możliwości jest dziś powszechne, o tyle nie każdy wie, co tak naprawdę kryje się pod tym enigmatycznym pojęciem – co to znaczy być programistą, jakie predyspozycje są potrzebne, by nim zostać, oraz jakie wyzwania czekają na kandydata na specjalistę IT na jego nowej zawodowej drodze. I oczywiście, ile kroków dzieli nas od ukończonego kursu do tego, by nową pracę móc spakować do plecaka i ruszyć w świat.
Pisząc ten artykuł, przejrzałam wiele materiałów na temat przygotowania się do zawodu programisty i wykonałam kilka dostępnych online testów badających predyspozycje do tego zawodu. Wszystkie wykazały, że takie predyspozycje w mniejszym lub większym stopniu posiadam. Ale co mogę dalej z nimi zrobić?
Programista to bardzo ogólne pojęcie, tak samo jak lekarz czy nauczyciel. To, co faktycznie należy od razu brać pod uwagę, to właściwa specjalizacja, bo tak samo jak praca chirurga różni się od pracy psychologa, tak samo back-end development różni się od front-enda. Za chwilę przyjrzymy się im dokładniej.
Ponieważ IT można podzielić na wiele różnych specjalizacji, wybór kierunku czy też kursu powinien być uzależniony od naszych predyspozycji – każda z nich różni się od siebie pod względem wymagań i umiejętności, a nawet wymaga innego charakteru.
Poprzednie doświadczenie zawodowe nie jest wyznacznikiem naszego sukcesu. Szkoły programowania widziały w swoich ławach reprezentantów najmniej oczekiwanych zawodów, wykładowców nie dziwią dotychczasowi marynarze, kierowcy tirów czy górnicy. Znaczenie mają przede wszystkim predyspozycje kandydata i wybór specjalizacji względem nich.
Przyjrzyjmy się bliżej poszczególnym specajlizacjom, ich specyfice oraz umiejętnościom sprzyjającym rozwojowi zawodowemu w każdej z nich:
Co robi: tester oprogramowania sprawdza, czy aplikacje napisane przez programistów nie mają błędów. Testerzy dzielą się na manualnych (sprawdzają aplikacje ręcznie) i automatycznych (piszą programy, które sprawdzają, czy w kodzie nie ma błędów).
Co się liczy: systematyczność, skrupulatność, odporność na monotonię, cierpliwość do powtarzalnych procedur, umiejętność wczucia się w użytkownika.
Co robi: dba o wygląd strony internetowej lub aplikacji webowej (front-end to ta część strony internetowej lub aplikacji, którą widzimy na monitorze). Tutaj przydaje się znajomość CMS-ów, takich jak WordPress. Programowanie sensu stricto jest tu nieco mniej istotne, a główne języki, jakie bierze się pod uwagę, to HTML i CSS.
Co się liczy: dbałość o szczegóły, kreatywność, wyczucie estetyczne.
Co robi: JavaScript to język programowania z pogranicza front-endu i back-endu. Tworzymy w nim zarówno portale od strony wizualnej, jak i wchodzimy w mechanikę ich działania. JavaScript developer zwykle bazuje na jednym z najpopularniejszych frameworków dla języka: React, Angular, VueJS. Istnieją również frameworki, które pozwalają budować back-end, a znający je programiści stają się samowystarczalnymi full-stackami. Przykładem jest node.js, jednak jest to technologia dla osób bardziej zaawansowanych, które już pracują w zawodzie.
Co się liczy: umiejętność logicznego myślenia, wyczucie estetyczne, umiejętność rozwiązywania problemów, samodzielność.
Co robi: Back-end to ta część aplikacji, która działa „z tyłu” strony wyświetlanej w przeglądarce, czyli na serwerze. Jest odpowiedzialna za logikę systemu oraz to, aby część front-endowa dostała odpowiednie informacje do wyświetlenia. Do języków back-endowych należą: PHP, Ruby, Java i .Net oraz Phyton.
Co się liczy: analityczne podejście do problemów, systematyczność oraz umiejętność logicznego myślenia. Zajęcie odpowiednie dla osób, które lubią konkretne, zero-jedynkowe zadania i dobrze czują się w samodzielnej, indywidualnej pracy.
Co robi: To osoba, która zarówno zna języki front-end, jak i back-endowe. Samodzielnie potrafi stworzyć całą aplikację lub stronę webową. Przynajmniej w teorii powinna ona sobie samodzielnie poradzić z projektowaniem, kodowaniem, debugowaniem, wdrażaniem oraz utrzymaniem kompletnej aplikacji webowej.
Co się liczy: bardzo duża wszechstronność – połączenie umiejętności front-endowych z back-endowymi, duża chęć do nauki.
Co robi: .NET to technologia programowania wspierana przez Microsoft wykorzystywana głównie przez korporacje. Język .NET został stworzony jako konkurencja dla języka Java i odpowiada na te same problemy. Za jego pomocą można tworzyć aplikacje typu stand alone, systemy bankowe i korporacyjne oraz aplikacje natywne np. na Windowsa. Język ten najczęściej możemy spotkać w korporacjach i firmach outsourcingowych.
Co się liczy: tak jak w Javie, bardzo ważne jest analityczne myślenie, umiejętność rozwiązywania problemów i samodzielność.
Co robi: praca programisty aplikacji mobilnych znacząco różni się od standardowego programowania. Tutaj, oprócz znajomości języków programowania, np. Java, PHP czy C++, ważne jest wyczucie aktualnych trendów i potrzeb użytkowników smartfonów. Programiści aplikacji mobilnych to zawód, na który w ostatnich trzech latach zapotrzebowanie zwiększyło się o 30%, a programiści aplikacji mobilnych plasują się w czołówce najlepiej opłacanych zawodów technicznych.
Co się liczy: analityczny umysł, umiejętność rozwiazywania problemów logicznych, zmysł estetyczny, znajomość trendów na rynku aplikacji mobile, wyczucie potrzeb użytkownika.
Czy ktoś, kto nigdy nie miał do czynienia z zawodami technologicznymi, może zostać programistą? Wnioskując z relacji znajomych, którzy zdecydowali się na kurs programowania, dochodzę do wniosku, że tak, o ile posiada się odpowiednie predyspozycje poparte motywacją i determinacją.
Dla kogoś, kto nigdy nie miał do czynienia z zawodami analitycznymi, programowanie może wydawać się czymś bardzo enigmatycznym. W praktyce okazuje się jednak, że ten zawód przeważnie niewiele ma wspólnego z monotonią i słynnym „klepaniem kodu”, z jakim się obiegowo kojarzy.
Od doświadczonych programistów częściej usłyszymy, że programowanie polega przede wszystkim na umiejętności rozwiązywania problemów, wyszukania rozwiązań, myślenia „out of the box”. Tak jak można wywnioskować z powyższych wymagań, przydają się do tego kreatywny umysł i zdolności analityczne, wytrwałość w szukaniu rozwiązań.
Dla osób, które charakteryzują się takimi cechami, zawód programisty ma szansę stać się nie tylko rozwojową pracą, ale i pasją. A to już pierwszy krok, by stać się w nim naprawdę dobrym – pasja to idealne paliwo do tego, by stawiać sobie poprzeczkę coraz wyżej i szybko piąć się do góry na zawodowej drodze.
Wiedząc, która specjalizacja IT najlepiej łączy się z naszymi predyspozycjami, czy nawet typem charakteru i temperamentem, mamy co najmniej dwie możliwości: pierwsza – spróbowanie swoich sił na bezpłatnych kursach online i samodzielny dobór programu nauki; druga – wybór profesjonalnego kursu, np. intensywnego bootcampu, którego program został stworzony w taki sposób, byśmy po jego zakończeniu, po około trzech miesiącach intensywnej nauki (co odpowiada około 18 miesiącom samodzielnej, dobrze poprowadzonej pracy) gotowi byli podjąć pierwszą pracę.
Decydując się na naukę programowania, warto być świadomym, że wybór zawodu nie jest jednorazowym wydarzeniem, po którym następuje kurs, i żaden, nawet najlepszy kurs, nie zwolni nas z konieczności dalszego rozwijania się.
Do wyboru programowania jako nowego zawodu warto podchodzić jak do wyboru ścieżki zawodowej – i zdecydowanie jest to ścieżka wymagająca. Miej pewność, że nie będzie łatwo.
Niepodważalną zaletą ukończenia intensywnego kursu programowania jest fakt, że szkołę opuścimy z własnym portfolio, nad którym od początku pracowaliśmy pod okiem mentora. Portfolio to potwierdzenie naszych umiejętności, ważniejsze nawet od certyfikatu ukończenia kursu.
Po kursie powinniśmy przygotować się na kilkutygodniowy okres rozmów o pracę. Z reguły nawet już początkowi programiści prowadzą rozmowy z kilkunastoma firmami jednocześnie. W znalezienie zatrudnienia angażują się również same szkoły, które łączą świeżo upieczonych absolwentów z pracodawcami w Polsce i za granicą.
Na tym etapie czeka nas minimum rok pracy stacjonarnej, w biurze. Jednak jeśli za zdobytą wiedzą i umiejętnościami idzie również dobra znajomość języka angielskiego, szanse na pracę za granicą są całkowicie realne. Oznacza to, że zamiast w Polsce doświadczenie możemy zdobywać na przykład w Wielkiej Brytanii, Kanadzie, Skandynawii czy Australii.
Po około roku możemy zacząć rozglądać się za ofertami pracy zdalnej dla zagranicznych klientów. Ich liczba nieustannie rośnie, wraz z oferowanymi benefitami i stawkami. Wiele firm będzie jednak wymagało od nas przebywania w podobnej strefie czasowej.
Zdalnego zatrudnienia możemy szukać zarówno w korporacji, software housie, firmie outsourcingowej albo agencji marketingowej czy w studiach gier. Swoich sił można próbować też jako freelancer poprzez portale, takie jak Toptal czy Upwork. Gdy zdobędziemy kilka lat doświadczenia dalsze możliwości rozwoju zawodowego zwiększają się. Istnieje możliwość ewolucji do team leadera, project managera czy product ownera.
Sam rynek pracy w środowisku programistycznym jest dużo bardziej dynamiczny w porównaniu z zawodami nieinformatycznymi. Po pierwsze, firmy, które wymagają od pracowników IT spędzenia jedynie 50% czasu pracy w biurze, dziś już nikogo nie dziwią. Po drugie, branża IT charakteryzuje się większą rotacją pracowników i częste zmiany zatrudnienia są na porządku dziennym – większą uwagę przykłada się do zdobytego doświadczenia niż do ciągłości pracy.
Oczywiście im wyższy stopień zaawansowania na zawodowej ścieżce, tym większe możliwości pracy zdalnej. Zwłaszcza wśród senior developerów częstą praktyką jest praca projektowa, na kontraktach w międzynarodowych projektach, gdzie fizyczna obecność nie jest wymagana.
Fot. Coders Lab.