Jak zostać programistą – Część 1

Co należy zrobić aby zostać programistą? Chyba każdy trudniący się branżą IT słyszy co jakiś czas to pytanie. Jak jednak się należy za to zabrać i co zrobić aby uczynić pierwsze kroki?

Patrząc na rynek pracy w Polsce (jak również poza nią) oraz na średnie zarobki jakie owa ścieżka zapewnia trudno się dziwić tak dużemu zainteresowaniu. Średnia pensja programisty jest wszak dużo większa od średniej krajowej a i zapotrzebowanie na rynku gwarantuje wiele lat zawodowej stabilności. Czy jednak jest to droga dostępna dla każdego?

Ze względu na złożoność tematu podzieliłem ten wpis na dwie części. W pierwszej spróbuję opisać jakie możliwości związane z nauką są do naszej dyspozycji, natomiast w drugiej postaram się doradzić konretniej jakich technologii warto się na początek nauczyć a przy tym wskażę kilka ciekawych stron mogących w tym pomóc.

Sieć jest pełna success stories ludzi którym zaledwie pół roku zajęła ucieczka z krawędzi bezrobocia na łąki cyfrowego dobrobytu. Przyparte do muru brakiem rąk do pracy firmy rekrutują jak szalone co otwiera możliwości przebranżowienia praktycznie dla każdego. Warunkiem są tu pewne predyspozycje i nie mały trud, ale nagrody w zamian bardzo kuszące. Dobry zarobek przyciąga osoby z różnych dziedziń chcące poprawić swój byt. No bo nie oszukujmy się, o ile nie czujemy powołania w swej profesji to własnie pieniądze bedą głównym motorem naszego rozwoju zawodowego. Oprócz tego zyskujemy też stabilność i zwykle bardzo energetyzujące środowisko pracy. Brzmi kusząco, prawda?
Nie znaczy to jednak, że jest to dziedzina dla każdego, a już zdecydowanie nie jest to podróż łatwa. Niektórzy mają do programowania smykałkę, inni muszą nadrabiać ciężką pracą, wszyscy jednak powinni wykazać się stosowną determinacją i odpornością na porażki aby osiągnąć ten cel. Chyba w każdej dynamicznie rozwijającej się branży specjaliści muszą podejmować stały wysiłek aby ich wiedza i umiejętności pozostały aktualne, a trudno obecnie o dziedzinę rozwijającą się szybciej niż technologie informatyczne. Jeśli mamy tego pełną świadomość i dalej trwamy w postanowieniu zmian to pozostaje nam pytanie jak uczynić pierwszy krok?

Szkoła, kursy czy samouk?
Lubię czasem powtarzać, że samemu przebranżowiłem się zanim to było modne – swego czasu przeszedłem ze studiów psychologicznych na informatykę. Często się jednak zastanawiałem czy przebycie pełnej 5 letniej ścieżki magistra inżyniera było warte włożonego czasu i wysiłku. To jest złożone pytanie, tak samo jak złożony jest rynek IT. Firmy szukające specjalistów w branży bardzo dokładnie starają się weryfikować ich wiedzę praktyczną, zatem sam dyplom nic nam nie da jeśli nie stoją za nim konkretne umiejętności, którymi można sie wykazać na rozmowie. Pracodawcy potrzebują ludzi których można szybko „wdrożyć”. Kogoś kto jak najszybciej osiągnie niezależność w wykonywaniu powierzonych zadań. Technologie ewoluują i coś co dziś jest na topie może okazać się reliktem przeszłości już za parę lat. Cenniejszy jest zatem ktoś kto obecnie ma doczynienia z podobnymi zagadnieniami jakimi właśnie zajmuje się potencjalny pracodawca niż ktoś kto uczył się czegoś podobnego kilka lat wcześniej. To logiczne, biorąc pod uwagę szybkie zmiany na rynku. Utrzymywanie się na fali jest poprostu elementem rzeczywistości.
Czy jednak działa to też w drugą stronę i czy osoba będąca na bieżąco z trendami potrzebuje również dokumentu potwierdzającego swoje kwalifikacje? No więc nie raz bywa że jednak tak, szczególnie jeśli nie posiadamy zbyt dużego doświadczenia w naszym cv, które skłoniłoby rekruterów do zaproszenia nas na rozmowę.
Szybki rozwój technoligii ma jednak też drugie oblicze. Skąd brać specjalistów od zagadnień które są zupełnie nowe? Wiele firm w obliczu braku kadr jest gotowa inwestować w edukację swoich pracowników. Przyjmując nową osobę rekruterzy będą zatem zwracać uwagę na doświadczenie, pokazujące, jak kandydat radził sobie w przeszłości. W przypadku gdy ktoś takiego doświadczenia nie posiada jego atutem może być właśnie szkoła. Wyższe wykształcenie techniczne również jest pewnego rodzaju gwarantem kompetencji kandydata, mogącym zachęcić do dania mu szansy. Ponadto w dużych firmach mogących sobie pozwolić na przebieraniu w kandydatach, szkoła bywa jednym z kryteriów wczesnej oceny cv mogącym wyeliminować nas już na początkowym etapie rekrutacji. W wielu zachodnich krajach edukacja jest nadal ważnym czynnikiem i firmy posiadają do niej spore zaufanie. Model ten przenika również i do ich polskich placówek, szczególnie przy zatrudnianiu wysokiej klasy specjalistów. Niektóre firmy uzależniają również swoje widełki płacowe od poziomu wykształcenia.

Szkoły są jednak kosztowne i bardzo czasochłonne. To coś co może być przeszkodą nie do przebycia dla kogoś z pełno etatowymi zobowiązaniami na karku.
Rynek pracownika działa tu jednak na ich korzyść gdyż uczelnie poprostu nie są w stanie sprostać zapotrzebowaniom. Sprawia to, że firmy coraz częściej sięgają po kandyatów nie posiadających formalnego wykształcenia. Zresztą bardzo duża część programistów na całym świecie takiego wykształcenie nie posiada wcale. Szkoła zatem może poszerzyć twoje perspektywy rozwoju i zarobków ale nie jest jedyną bramą do świata IT. Mając umiejętności jest szansa, że znajdziemy w końcu firmę która da nam zatrudnienie na stanowisku juniorskim a tam skolei możemy już zdobywać dalszą wiedzę i doświadczenie. Jeśli jednak mamy czas i środki, jesteśmy młodzi i pozbawieni zobowiązań, wtedy zdecydowanie warto rozważyć wyższą uczelnię jako początek swojej drogi.

Alternatywą studiów są kursy doszkalające. Wiele szkół i firm oferuje obecnie kilku miesięczne kursy programowania w stylu „od zera do bohatera” dające nawet czasem gwarancję zatrudnienia. Kursy są skoncentrowaną formą nauki, skupiającą się na szybkim zdobyciu konkretnych podstaw aby spełniać minimalne wymagania oraz mieć podstawy dalszego rozwoju. Jedną z pierwszych firm na rynku z odnoszącą sukces ofertą szkoleniową było CodersLab. Znam nawet kilku humanistów, którzy po odbyciu tamtejszych kursów piszą teraz kod i skutecznie rozwijają, ucząc kolejnych języków programowania, jak widać więc brak doświadczeń z kierunkami ścisłymi również nie jest tu przeszkodą. Jak ze wszystkim w życiu, jest to kwestia determinacji, pracy i nieraz odrobiny szczęścia. Kursy jednak również kosztują oraz wymagają czasu. Nie tak dużo jak studia, ale trzeba brać to pod uwagę. Tak jak pisałem jednak wcześniej, zawód programisty wymaga ciągłych nakładów pracy i środków aby utrzymać głowę na powerzchni. Warto więc już na tym etapie się z tym poprostu pogodzić. Zachętą niech jednak będzie fakt, że coraz częściej osoby po kursach znajdują zatrudnienie. Jest to też specyfika polskich warunków. Nasz kraj, co pewnie może niektórych zaskoczyć, jest w absolutnej czołówce programistycznej na świecie. To do nas zachodnie firmy przybywają szukając informatycznego zaplecza. Jest to spowodowane oczywiście dobrym stosunkiem ceny do jakości. Jesteśmy z jednej strony bardzo dobrzy ale też i tani. Ta dysproporcja zarobków daje właśnie możliwość świeżo upieczonym kursantom znaleźć zatrudnienie. Na start dostaną pieniądze zwykle nie gorsze niż w poprzedniej pracy, za to pracodawca odczuwa mniejsze ryzyko takiego „strzału w ciemno” niż w krajach zachodnich. Skoro mowa o pieniądzach to też warto nie mieć na początku zbyt dużych oczekiwań. Raczej szukajmy szansy na zmianę niż natychmiastowej poprawy. Jeśli się sprawdzimy, pieniądze też szybko za tym przyjdą. Jeśli nie w pierwszej to w kolejnych firmach.

Wracając jednak do kursów, to nie są konieczne, ale odbycie praktyki pod okiem doświadczonego specjalisty ma swoje plusy gdyż pomoże nam usystematyzować proces nauki oraz nakreśli kolejne kroki. Nasz postęp będzie stale monitorowany i weryfikowany co powinno pomóc w uniknięciu błędów oraz przyspieszeniu postępów.
W pracy programisty bardzo ważne jest coś co bym określił jako „świadomość możliwości”. Wiedza o tym jakie rozwiązania są dostępne, nawet jeśli sami nie umiemy jeszcze ich zastosować. Wiedza o tym, że problem ma jakieś konkretne rozwiązania pozwoli nam później samemu znaleźć drogę do właściwej implementacji (napisania kodu). Praca programisty bardzo często wiąże się z szukaniem porad czy to bezpośrednio u osób z większym doświadczeniem czy też częściej na google, lub innych bardziej specjalistycznych stronach jak chociażby słynny StackOverflow (warto tą nazwę zapamiętać). Ważne jest zatem aby umieć stawiać właściwe pytania. Taką wiedzę o wiele łatwiej zdobyć od doświadczonego praktyka, który też pomoże nam uniknąć nabierania złych nawyków.

Tańszą i mniej czasochłonną formą edukacji są kursy online jak na przykład te oferowane przez Udemy. Kosztują po pierwsze mniej, a po drugie mamy większą swobodę w zarządzaniu czasem. Wymagają za to więszkego zaangażowania z naszej strony. Warto też pamiętać, że system prac domowych, często towarzyszący takim kursom, to pewna namiastka kontaktu z prowadzącym, nie dająca jednak w pełni tych samych korzyści.

Na koniec zostawiłem teoretycznie najtańszy sposób, czyli samodzielną edukację. Nauka na własną rękę czeka nas zresztą niezależnie od tego czy zdecydujemy sie na kursy czy nie. Mnogość źródeł z jakich możemy korzystać jest na szczęście imponująca. Od książek, przez strony z tutorialami po społeczności zrzeszone wokół konkretnych technologii. Te źródła są z drugiej strony tak obszerne, że czasem nie łatwo znaleźć to co nas najbardziej interesuje. Na szczęście nie brak w sieci pmocnych pomocnych dłoni. Kto pyta nie błądzi jak głosi popularne powiedzenie i nigdzie nie jest to bardziej aktualne niż w informatyce. Systemy IT są obecnie bardzo złożone i trudno oczekiwać aby pracujący przy nich ludzie posiadali pełną wiedzę o wszystkich aspektach technologicznych rozwiązań użytych na danym projekcie. Ważniejsza jest umiejętność zadawania właściwych pytań i znajdowania odpowiedzi. Wokół technologii często tworzą się społeczności entuzjastów, mogących pomóc z technicznymi dylematami. Największą i najbardziej szanowaną stroną tego typu jest wspomniany wcześniej StackOverflow. Warto też zapoznać się z GitHubem na którym użytkownicy dzielą się swoimi projektami i poradami na temat implementacyjnych detali. Doświadczenie programistyczne często przekłada się właśnie na tą umiejętność zadawania odpowiednich pytań, o czym już wspominałem powyżej. Im więcej widziałeś tym bardziej świadom jesteś tego co można poprawić i z czego wynika problem. Tą umiejętność nabywa się jednak z czasem, praktykując zdobytą wiedzę.

Jak wspominałem na początku, programiści muszą stale się doszkalać aby być na bierząco, zatem nauka jest częścią zawodu, a sposoby zdobywania wiedzy narzędziami, które mają do dyspozycji. Nie tylko początkujący uczęszczają na kursy. Jest to również w pełni użyteczny sposób zdobywania nowych kwalifikacji dla zaawansowanych specjalistów. Nie brak też osób chcących po paru latach zupełnie zmienić technologie w jakiej pracują. Rynek coraz bardziej więc jest przyzwyczajony do osób stawiających pierwsze kroki na danej ścieżce.

W następnej części skupię się na tym jakie technologiczne trędy widać na horyzoncie oraz które technologie warto z tego powodu rozważyć na start.

Dodaj komentarz

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