Skoro czytasz ten wpis to najprawdopodobniej znaczy, że chcesz zacząć przygodę z branżą IT i wybrałeś na początek karierę programisty (tutaj poczytasz też o innych rolach w branży IT). Świetnie! Zacznijmy więc od przedstawienia roli programisty w świecie IT :)

Przede wszystkim jak wygląda praca – najczęściej pracuje się przy jednym projekcie, ewentualnie poświęcając część czasu na wsparcie poprzednich projektów czy poprawki i uzupełnienia do nich. Pracuje się w kilkuosobowych zespołach, najczęściej nie ma problemu żeby otrzymać dodatkowy monitor czy inny sprzęt który poprawi nasz komfort pracy. Dodatkowo ponieważ braki kadrowe w zakresie programistów już teraz są szacowane na 20%, w 2020 roku prognozowany deficyt to 50%, programiści to chyba najbardziej dopieszczani pracownicy jako grupa zawodowa :) Najczęściej nie obowiązuje dress code, częstą praktyką jest fundowanie przez firmę przekąsek czy owoców/warzyw w jakiś dzień tygodnia, można liczyć na sporo spotkań integracyjnych przy grach planszowych czy też bardziej tradycyjnych.

W tym miejscu koniecznie należy też wspomnieć o społeczności programistów, nie spotkałem się nigdy z grupą zawodową tak otwartą na wymianę wiedzy i pomoc innym jak programiści. Jeśli pojawia się jakiś problem, można zapytać dowolnego współpracownika i na pewno chętnie podzieli się z nami swoim pomysłem na rozwiązanie lub pomoże nam je znaleźć. Strony takie jak stackoverflow.com pozwalają nam zapytać jednocześnie miliony programistów z całego świata. Często w firmach programiści sami organizują spotkania podczas których na zmianę prezentują ciekwe tematy i nowinki poszerzając swoją wiedzę. Do tego setki wartościowych projektów open-source, z których kodu można się uczyć lub samemu uczestniczyć w ich rozwoju.

Obowiązki programisty

Skoro omówiliśmy już część benefitów czas na obowiązki ;) Tutaj sporo zależy od doświadczenia jakim dysponujemy ale są oczywiście pewne wspólne elementy. Programista z założenia pisze kod, robi to na podstawie dokumentacji projektu (która najczęściej ma formę kilku/kilkunastu plików Word lub PDF z odniesieniami do siebie na wzajem, diagramami) i w razie wątpliwości konsultuje się z Architektem lub Team Leaderem lub Project Managerem (zależy od organizacji projektu i konkretnej firmy). Co dokładnie pisze, zależy od jego wiedzy i roli w projekcie.

Senior developer / tech leader / starszy programista

Starszy programista zajmuje się najcześciej głównie nadzorowaniem prac, wyborem technologii, bibliotek oraz rozwiązań. Pisząc kod skupia się raczej nad wysokopoziomowymi rozwiązaniami i trudniejszymi zadaniami wymagającymi głębszej wiedzy z danego obszaru. W zależności od organizacji projektu/firmy, może być odpowiedzialny za podział prac w zespole i tworzenie zadań. Oczywiście zajmuje się także standardowymi zadaniami. Starszy programista jest także odpowiedzialny za rozwiązywanie problemów, z kórymi nie radzą sobie członkowie zespołu z mniejszym stażem oraz wspieraniem ich w realizacji ich zadań i rozwoju. Osoba na tym stanowisku powinna dysponować dużym doświadczeniem i obyciem z używanymi technologiami, oczekuje się że będzie dysponował specjalistyczną wiedzą (lub będzie w stanie ją pozyskać) w większości obszarów.

Developer / programista

Programista zajmuje się głównie realizowaniem zadań przydzielonych mu przez przełożonego / pobranych z kolejki zadań. W razie problemów konsultuje się ze starszym programistą. Od programisty oczekuje się wiedzy specjalistycznej z pewnych obszarów, oraz braków w innych obszarach, które jednak powinny być sukcesywnie uzupełniane.

Junior developer / młodszy programista

Młodszy programista wspiera resztę zespołu w realizacji zadań, często realizuje zadania które są powtarzalne lub polegają na wzorowaniu się na innych fragmentach/modułach aplikacji. Od młodszego programisty nie oczekuje się posiadania wiedzy specjalistycznej, ale powinien on znać podstawy języka, być w stanie wzorując się na innym kodzie tworzyć własne rozwiązania oraz uzupełniać luki we własnej wiedzy. Stanowisko to jest tymczasowe i powinno być traktowane jako etap nauki / płatne praktyki służące jak najszybszemu pozyskaniu niezbędnej wiedzy i kompetencji.

Od czego zacząć?

Aby zacząć karierę komercyjną jako programista najważniejsza jest znajomość podstaw wybranej technologii / języka programowania. Słowo klucz to podstaw – nikt nie oczekuje, że osoba aplikująca na stanowisko młodszego programisty będzie ekspertem. Ważne jest, żeby była w stanie się uczyć, przyswajać wiedzę i nabywać doświadczenie, a do tego potrzebne są właśnie podstawy. Dlatego pierwszym krokiem jest nauka języka programowania i poznanie kroków i elementów składających się na tworzenie aplikacji. Z mojego doświadczenia wynika, że informacje zawarte w tym kursie są wystarczające aby zacząć pracę jako młodszy programista. Dalszą wiedzę najłatwiej nabywać w praktyce, realizując konkretne zadania.

Co jest ważne w rozwoju kariery programisty?

Co bardzo istotne, bardzo mało firm przywiązuje wagę do formalnego wykształcenia. Brak ukończonych studiów o profilu informatycznym nie jest przeszkodą, o ile osoba posiada wiedzę i kompetencje. Jeśli chodzi o potwierdzenie naszych kompetencji, dla potencjalnego pracodawcy najważniejsze elementy to doświadczenie projektowe (zrealizowane projekty, także te realizowane prywatnie, choć oczywiście na projekty realizowane w zespole pracodawcy patrzą przychylniejszym okiem) oraz certyfikaty branżowe. W Javie uznawaną w branży certyfikację prowadzi firma Oracle.

Doświadczenie projektowe

Najważniejsze w karierze programisty jest doświadczenie projektowe. Liczą się przede wszystkim technologie z jakimi pracowaliśmy (idealnie, jeśli używaliśmy głównie jednej technologii którą wykorzystuje także potencjalny pracodawca oraz zetknęliśmy się z innymi technologiami raz czy dwa dzięki czemu mamy porównanie) oraz to, czy projekt był realizowany komercyjnie (był klient, formalne wymagania, zespół itp) czy nie.

Ścieżka certyfikacyjna

Java-certyfikaty

Firma Oracle organizuje certyfikację w języku Java na kilku poziomach, przedstawionych na grafice powyżej. Aplikując do pierwszej pracy, warto posiadać certyfikat na poziomie Oracle Certified Associate który potwierdza znajomość podstaw Javy lub Oracle Certified Professional, który to pokazuje, że potrafimy w praktyce korzystać z języka Java i znamy jego zawiłości. Przygotowanie do drugiego certyfikatu wykracza jednak znacząco poza ramy kursu na tym blogu, osoby zainteresowane zapraszam do kontaktu, chętnie wskażę materiały, źródła czy podzielę się swoimi doświadczeniami. Koszt każdego certyfikatu można sprawdzić na stronie Oracle Education (np. tutaj informacja o certyfikacie Certified Programmer) (niektóre certyfikaty są kilkuetapowe, wtedy koszt każdego etapu podawny jest osobno). Koszt ten może wydawać się wysoki (ok. 1000zł za certyfikat), jednak zaręczam, że zwraca się on bardzo szybko.

Dodatkowe atuty

Im wyższa rola programisty w projekcie/zespole, tym wazniejsze są jego kompetencje miękkie oraz znajomość metodyk zarządzania projektami. Z czasem absolutnie warto doszlifować swoją wiedzę teoretyczną na temat metodyk zwinnych (np. Scrum) oraz tych na wyższym poziomie abstrakcji (np. Prince2 – w Europie jest to metodyka popularniejsza niż np. PMBOK, która jest częściej spotykana w USA). Także tutaj pomocne są certyfikaty potwierdzające nasze kompetencje (np. Prince2 Foundation czy Certified Scrum Master). Kompetencje miękkie takie jak zarządzanie zespołem, mentoring czy przekazywanie wiedzy można i należy rozwijać we własnym zakresie, w sposób który jest dla nas najbardziej efektywny.

  • 9
  •  
  •  
  • 7
  •