Jak zdobyć doświadczenie programistyczne?

Doświadczenie odgrywa kluczową rolę na rynku pracy w IT. Dostanie pracy, kiedy nie masz doświadczenia, może być niezwykle trudne. Bardzo często same umiejętności, nawet poparte dyplomem czy certyfikatem, to za mało. Nie wystarczy skończyć studiów, umieścić w CV informację o umiejętnościach nabytych podczas edukacji, a praca sama będzie nas szukać. Pracodawcy oczekują doświadczenia – praktyki. Sama nauka programowania, bez wykorzystania tego, czego się nauczyliśmy, to tylko teoria. Ważne dla pracodawcy jest to, żebyś potrafił przekuć tę teorię, w praktykę.

Czym jest doświadczenie programistyczne?

Odpowiedź na to pytanie wydaje się oczywista. Doświadczenie programistyczne jest to po prostu doświadczenie zdobyte podczas pracy jako programista. Praca nad prawdziwym projektem, często także określana jako programowanie komercyjne. Ale co dokładnie kryje się pod pojęciem „zdobywanie doświadczenia”? Zdobywanie doświadczenia programistycznego to nie tylko pisanie kodu, tworzenie nowych aplikacji, dodawanie nowych modułów do systemu, rozszerzanie funkcjonalności, projektowanie nowych rozwiązań. Bez pracy nad produktem, bez poprawiania błędów, bez pracy nad utrzymaniem aplikacji, kontaktu z testerami, wdrożeniowcami i użytkownikami, bez przejścia przez cały cykl życia oprogramowania – nasza wiedza jest mocno ograniczona. Prawdziwe doświadczenie można zyskać tylko w boju.

Zdobywanie doświadczenia to nie tylko proces tworzenia nowego systemu, ale także wszystko, co dzieje się po jego uruchomieniu. Wdrożenie, przekazanie użytkownikom, reagowanie na błędy i braki funkcjonalności, przygotowywanie poprawek, instalacja, monitorowanie, przywracanie utraconych danych, przełączanie się między różnymi środowiskami, porównywanie danych, analizowanie logów, reprodukcja błędów, rozwiązywanie problemów wydajnościowych, optymalizacja, łatanie dziur i wiele innych czynności, które najczęściej trzeba wykonać na wczoraj.

Skąd wziąć doświadczenie?

Nie ma lepszego sposobu na zdobycie doświadczenia niż praca przy komercyjnym projekcie. Jeżeli dopiero zaczynasz to najlepszym i najłatwiejszym sposobem na zebranie pierwszych doświadczeń i zobaczenie, jak wygląda praca w prawdziwej firmie, jest staż programistyczny. Staż to tymczasowa pozycja w firmie – płatna lub bezpłatna – najczęściej przeznaczona dla studentów ostatnich lat studiów inżynierskich lub magisterskich z kierunków takich jak: informatyka, telekomunikacja, automatyka, robotyka lub pokrewnych. Staż trwa zwykle od 3 do nawet 12 miesięcy i realizowany jest w niepełnym wymiarze godzin (elastyczny czas pracy). W trakcie odbywania stażu osoba zatrudniona ma okazję pracować pod okiem doświadczonych programistów nad projektami klienckimi. Staż nie wymaga zazwyczaj posiadania doświadczenia zawodowego. To jeden z głównych powodów, dla których może być to świetna okazja na samym początku kariery. Brzmi całkiem nieźle, prawda?

Niestety, rzeczywistość może okazać się zupełnie inna. To, co robi stażysta, bywa tak samo różne, jak powody dla których został zatrudniony. Niektóre firmy chcą wydawać się w oczach innych dobre. Inne firmy starają się wyłapać talenty świeżo po studiach. Jeszcze inne firmy szukają sposobów na tanie wykonanie pracy. Niektóre staże wyglądają jak prawdziwa praca, kiedy oczekuje się od osoby zatrudnionej dołączenia do zespołu programistów i wykonywania tego samego rodzaju pracy. Stażysta ma przypisanego mentora, który uczy i pomaga zrozumieć, jak to wszystko działa. W takiej sytuacji staż pozwala firmie zapoznać się z potencjalnym pracownikiem przed jego zatrudnieniem. Staż może być także rodzajem konkursu, w którym firma zatrudnia kilku stażystów, konkurujących ze sobą o przyszły etat. Trafiają się także staże, w ramach których firma realizuje wybrany projekt, na którego realizację nie ma zasobów, więc wykorzystuje się stażystów. W końcu mamy też takie staże, w których niestety zostajesz „chłopcem na posyłki”. Staż tego rodzaju jest z pewnością frustrujący, ponieważ nie tylko nie będziesz pracował nad czymś, do czego przydałyby się Twoje umiejętności programowania, ale możesz wręcz biegać po kawę, nie wspominając o innych rzeczach. Kolejną kwestią, jest samo dostanie się na staż. To, że nie jest wymagane doświadczenie komercyjne, nie oznacza, że nie musisz umieć programować. W końcu to staż programistyczny. Chętnych jest zdecydowanie więcej niż miejsc. Coraz częściej sama umiejętność programowania i znajomość technologii to za mało. Trzeba się jakoś wyróżnić. Pokazać, co możesz zrobić i jaką wartość możesz wnieść do firmy jako stażysta. Pokazać entuzjazm i wielką chęć do nauki. Pokazać, że potrafisz ciężko pracować i nie trzeba Cię pilnować. Należy skupić się na pokazaniu kompetencji związanych z danym stanowiskiem i wymienionych wcześniej cech, a znacznie łatwiej będzie Ci przekonać firmę, że jesteś odpowiednią osobą.

Na rynku IT, i nie tylko, występuje pewien paradoks – bez doświadczenia ciężko jest zdobyć pracę, a bez pracy, ciężko jest zdobyć doświadczenie.

Jeżeli chodzi o „chłopca na posyłki”, to niekoniecznie musi być coś złego. Taka sytuacja również pozwala zdobyć jakieś doświadczenie. Czasami trzeba zacisnąć zęby i wytrzymać ten cięższy początkowy okres. Często pokazanie, że żadna praca nie hańbi i jesteś gotów zrobić wszystko, co trzeba, bywa postrzegana jako dobra cecha charakteru. W takiej sytuacji ważniejsze od samego stażu mogą być referencje od pracodawcy oraz wpis do CV. Zawsze można coś ugrać. Osobiście uważam, że na samym początku nie należy być zbyt wybrednym. Trzeba mierzyć siły na zamiary.

Pozostaje jeszcze kwestia wynagrodzenia za staż. Decydując się na staż, nie powinieneś w ogóle skupiać się na płacy. Powinno interesować Cię szczególnie zdobycie doświadczenia i skorzystanie z nadarzającej się okazji, dzięki czemu później dostaniesz dobrze płatną pracę. Staż nie polega na zarabianiu pieniędzy. Powinieneś raczej myśleć o tym, ile zdobędziesz doświadczenia, które pomoże Ci w dalszej karierze, i ile drzwi później się dla Ciebie otworzy. Jeśli więc możesz zarobić na stażu, to zarabiaj, ale nie pozwól, by wysokość wypłaty była decydującym czynnikiem w jego wyborze.

Zbuduj portfolio

Staże nie odpowiadają każdemu i nie każdy będzie miał możliwość w nich uczestniczyć. Wtedy naukę – zdobycie „prawdziwego doświadczenia” – trzeba rozpocząć w pojedynkę. Jeśli nie masz doświadczenia, jedyną strategią znalezienia pracy jako programista jest udowodnienie, że potrafisz programować i wcale nie są to puste słowa. Bardzo dobrym pomysłem jest stworzenie portfolio z projektami, które wykonałeś, pokazując w ten sposób, że potrafisz programować. Dostarczy ono przy okazji przykłady Twoich umiejętności. Jeśli potencjalny pracodawca może zobaczyć Twoje programy i projekty, zyska większą pewność, że przynajmniej masz jakieś pojęcie o tym, co robisz. Rekomenduję stworzenie kilku małych projektów, kiedy wciąż jeszcze uczysz się programowania, dzięki czemu pokażesz swoje zdolności programowania całych aplikacji od początku do końca. Jest to bardzo istotny element, na który zwraca uwagę wielu pracodawców. Projekty te możesz opublikować za pomocą serwisu GitHub. GitHub to otwarte internetowe repozytorium różnych projektów programistycznych, bazujących na systemie kontroli wersji Git. Swoją drogą obsługa systemu kontroli wersji to również bardzo ważna umiejętność. Nie mając doświadczenia komercyjnego, warto uczynić swój profil na GitHub’ie tak dobrym, jak to tylko możliwe. Zbudować portfolio składające się z przynajmniej 3 – 4 aplikacji lub projektów. Nie muszą być duże, ale też nie powinny być zbyt proste. Idealnie, jeżeli w ten sposób pokażesz swoje umiejętności w zakresie tego, czego wymaga stanowisko, na które kandydujesz. Dobrze jest pokazać umiejętności związane z wykonywaniem zapytań do usług zewnętrznych czy choćby bazy danych. Możesz iść o krok dalej. Dobrym pomysłem jest stworzenie aplikacji mobilnej, którą możesz wprowadzić do jednego z internetowych sklepów z aplikacjami. W ten sposób udostępniasz swoją aplikację do wykorzystania przez prawdziwych użytkowników. Postępując w taki sposób, zobaczysz, co oznacza być programistą. Z czym się to wiąże. Zrozumiesz, w co się pakujesz 🙂 Pochwalisz się „mam doświadczenie” i nikt nie będzie mógł powiedzieć, że to nieprawda.

Podsumowanie

W dzisiejszych czasach firmy nie chcą zatrudniać programistów bez jakiegoś rodzaju doświadczenia. Jeśli masz okazję dostać się na staż, zwłaszcza gdy jesteś dopiero początkujący, to wykorzystaj tę możliwość, nawet jeśli płaca nie jest za wysoka, albo staż jest bezpłatny. Praca za marne grosze na samym początku kariery może się bardzo opłacić w przyszłości. Zademonstruj swoje umiejętności za pomocą portfolio. Własne projekty są niekwestionowanym dowodem na to, że wiesz, o czym mówisz. I na koniec najważniejsze – BĄDŹ WYTRWAŁY. Kiedy nie masz doświadczenia, musisz nadrabiać sprytem, zaangażowaniem i determinacją. To, że dzisiaj mogę wykonywać pracę, którą bardzo lubię i otrzymywać za nią zadowalające mnie wynagrodzenie, zawdzięczam przede wszystkim wytrwałości. To, że dzisiaj jestem w tym miejscu, w którym jestem w życiu, zawdzięczam determinacji. Moje początki nie były łatwe i przyjemne, ale dzięki ciężkiej pracy i systematyczności, dzisiaj mogę cieszyć się z wykonywanej przeze mnie na co dzień pracy. Nie poddawaj się. Dąż do celu. Nie pozwól, żeby przez głowę przechodziła Ci myśl, że kiedyś było łatwiej, bo … Rób to, co robisz, a w końcu się uda.


Bądź na bieżąco!

Dziękuję za przeczytanie tego artykułu i mam nadzieję, że spotkamy się jeszcze na moim blogu. Jednocześnie mam do Ciebie wielką prośbę: jeśli cokolwiek co przeczytasz na tym blogu uznasz za wartościowe, to KONIECZNIE mi o tym napisz (w komentarzu, bądź mailowo). Każdy potrzebuje nieco motywacji i znacznie łatwiej będzie mi usiąść do tworzenia kolejnego materiału wiedząc, że Tobie też się to przydaje. Zachęcam Cię do polubienia strony na Facebooku oraz subskrybowania kanału na YouTube.

Polub stronę na Facebooku

Chcesz otrzymywać powiadomienia o nowych artykułach? W takim razie zapraszam Cię do polubienia strony na Facebooku. Miej pewność, że nie przegapisz kolejnych postów!

Subskrybuj kanał na YouTube

Wkrótce na YouTube pojawią się praktyczne kursy dotyczące programowania aplikacji na platformę .NET.