Jak zostać programistą? 7 kroków od zera do pierwszej pracy

21 maja 2021

Zainteresowanie zawodem programisty jest tak duże nie bez powodu. Oprócz mitycznych zarobków i całkiem atrakcyjnych warunków pracy, to przede wszystkim niezła frajda, zwłaszcza dla osób, które lubią logiczne myślenie i tworzenie kreatywnych rzeczy. Nie jest to oczywiście praca dla każdego i ma pewien próg wejścia, którego nie da się przeskoczyć bez sumiennie przepracowanego materiału. Nie lubiąc tego (co jest zupełnie normalne, bo nie każdy musi lubić programowanie – to nie jest zupa pomidorowa) – już sama nauka będzie naprawdę żmudnym i kiepskim procesem.

Zakładając, że chcesz temu dać szansę, zobacz w jaki sposób możesz podejść do tematu w 7 (pozornie) prostych krokach:

1. Dowiedz się, czy masz odpowiednie predyspozycje

Tak jak mówiłem, programowanie to dziedzina nie dla każdego. To, że potrafisz usiedzieć na tyłku osiem godzin to oczywiście duża zaleta, ale to tylko kropla w morzu. Nie mówię, że programiści to jacyś superbohaterowie i musieli się z tym wszystkim urodzić. Oczywiście z odpowiednią motywacją wszystkiego da się nauczyć, jednak bez pewnych predyspozycji będzie to znacznie trudniejsze, a sama praca może nie sprawiać wystarczającej frajdy.

Dobry programista powinien cechować się między innymi:

  • Dobrą znajomością języka angielskiego
  • Sprawnym wyszukiwaniem interesujących go zagadnień w internecie
  • Zdolnością logicznego myślenia
  • Chęcią do ciągłej nauki i robienia postępów
  • Pokorą i otwartością na nowe trendy
  • Cierpliwością do rozwiązywania rozmaitych problemów
  • Umiejętnością pracy w grupie
  • Komunikatywnością

Oczywiście brak którejkolwiek z tych cech wcale nie skreśla Cię na samym starcie. Nadal możesz próbować i zostać naprawdę świetnym w tym zawodzie. Nie zmienia to jednak faktu, że może być Ci ciężej się w tym odnajdywać, a przede wszystkim to polubić. Wbrew pozorom praca umysłowa też potrafi być męcząca i też potrafi wypalać. Nie bez powodu wielu programistów z ugruntowaną, dobrze płatną pracą po jakimś czasie chce się przebranżowić.

2. Wybierz konkretną technologię

Uważam, że język programowania wcale nie jest bardzo wiążącym wyborem. Dobry programista, który przepracował już trochę projektów, ma odpowiedni sposób myślenia i potrafi sprawnie posługiwać się dokumentacją, najprawdopodobniej i tak w dość krótkim czasie nauczy się fundamentów jakiegokolwiek innego języka. Prawda jest jednak taka, że żeby zostać dobrym programistą nie powinniśmy nieustannie skakać “z kwiatka na kwiatek”. Proponuję więc dokonać wyboru świadomie i nie zrezygnować z niego po dwóch tygodniach.

Wybierając język programowania dla siebie, możemy kierować się najróżniejszymi kryteriami. Przede wszystkim, jeśli bardzo zależy nam na pracy etatowej w naszym regionie, możemy zobaczyć, jak dużym zainteresowaniem cieszy się konkretna technologia. W innym przypadku możemy zdać sobie sprawę z tego, że nie znajdziemy pracy w okolicy i bez wyprowadzki/pracy zdalnej/zmiany języka programowania będzie nam po prostu ciężko.

Osobiście sugerowałbym jednak przede wszystkim kierować się tym, do czego chcielibyśmy dany język wykorzystywać. Jeśli marzymy o tworzeniu aplikacji mobilnych, uczenie się języków przeznaczonych głównie do tworzenia programów komputerowych może być średnim posunięciem. Zacząłbym od tego co Was interesuje i w czym z chęcią zrobilibyście własny projekt, nawet jeśli miałby być kiepski i nie przynieść żadnych zysków (większość moich pierwszych projektów też od dawna leży w koszu – to niestety dość częste zjawisko – ale pozwoliło mi się wiele nauczyć).

Dość uniwersalnymi wyborami mogą być języki takie jak np. Python, czy JavaScript.

Warto też postawić coś popularnego. Nie tylko ze względu na mnogość ofert pracy, ale także ze względu na prawdopodobnie szybszy rozwój technologii i więcej problemów… Problemów, na którzy natknęli się inni i już sobie z nimi poradzili. Praca programisty nie polega oczywiście na kopiowaniu, ale czasami Stack Overflow pozwala oszczędzać wielu z nas długie godziny bólu głowy.

3. Doskonal swoje umiejętności

Jeśli udało Ci się wybrać konkretną technologię, możesz zacząć się szkolić. Nauka z dokumentacji konkretnego języka może być dość problematyczna, zwłaszcza dla początkującego. W takim przypadku warto postawić chociażby na jakiś  aktualny kurs wideo. Książki też nie są złym wyborem, ale warto wziąć pod uwagę to, że dość szybko się starzeją.

Nie polecam też przesadnego zgłębiania teorii. Przeczytanie nawet kilku specjalistycznych, grubych książek raczej nie zrobi z nikogo programisty. Materiał warto przepracować, a później kontynuować go realizując analogicznie działające projekty. Staraj się wystrzegać bezmyślnego przepisywania kodu. Lepiej zrobić danego dnia mniej, ale zrozumieć zagadnienie i solidnie je przepracować, niż oszukiwać samego siebie.

4. Realizuj konkretne projekty, przygotuj portfolio

Od dziecka marzyłem o tym, żeby kiedyś zostać programistą, naprawdę. Te marzenia ciągnęły się za mną przez lata, ale nie robiłem żadnego progresu. Starałem się zgłębiać wiedzę z cholernie nudnych książek, ale wydawało mi się to strasznie trudne i niezrozumiałe (miałem wtedy około 13-14 lat i uczyłem się języka PHP).

Powód? Za bardzo skupiałem się na wyżej omawianej teorii i nie próbowałem robić czegoś samemu.

Prawdziwych podstaw języka nauczyłem się dopiero w momecnie, w którym zacząłem na własną rękę przerabiać silnik jakiejś gry przeglądarkowej. Pierw zmieniałem statyczne elementy HTML, a później coraz odważniej próbowałem dopisywać kolejne moduły działające na bazie innych, które były już zaimplementowane przez twórce całego oprogramowania. W ten sposób dowiedziałem się w jaki sposób w praktyce działają chociażby zmienne, czy instrukcje warunkowe… O których oczywiście sporo czytałem, ale bez przeniesienia tego do komputera w tamtych czasach nie byłem w stanie za bardzo tego zrozumieć.

Znałem już podstawy, wiedziałem mniej więcej na czym polega baza danych, aż w końcu przyszło mi zrobić strasznie ambitny (jak na moje niemal zerowe umiejętności projekt). Musiałem napisać coś w rodzaju sklepu internetowego: z czymś na styl koszyka, panelem administratora, wysyłaniem zapytań na e-mail i tego typu rzeczami. Nadal nie uważam się za rewelacyjnego programistę, bo gdzieś w połowie mojej przygody dość mocno odbiłem w kierunku SEO, aczkolwiek wiem, że teraz taki projekt napisałbym z pewnością znacznie lepiej i to w dwa tygodnie – wówczas zajęło mi to co najmniej kilka miesięcy.

Projekt oczywiście miał trochę błędów, ale cholera… Napisałem go samemu i nauczyłem się dzięki niemu mnóstwa fundamentalnych rzeczy! Jeżeli coś mnie blokowało, czegoś nie potrafiłem – spędzałem nad tym mnóstwo czasu i szukałem solucji w internecie. Jeśli nie dało się w jakiś sposób, robiłem to w inny. W ten sposób nauczyłem się nie tylko wielu rzeczy związanych z teorią, ale także odpowiednich sposobów myślenia. Taka nauka poprzez praktykę była już nie tylko żmudnym procesem, do którego musiałem się trochę zmuszać, ale przede wszystkim świetną zabawą i poznawaniem czegoś nowego widząc efekty.

Mając na swoim koncie pewne projekty może nam być znacznie łatwiej przedstawić swoje umiejętności, a także zachęcić innych do współpracy. W branży programistycznej dla wielu rekruterów potrfolio jest wyznacznikiem mającym o wiele większą wagę niż CV. Z tego względu przed ewentualnym szukaniem pracy warto i tak zrealizować jakiś projekt, po to, by móc się nim później dodatkowo pochwalić.

5. Przygotuj się do rozmowy o pracę

Jeśli chcesz pracować etatowo (co wcale nie jest przecież jedyną drogą do zostania programistą), przed przystąpieniem do rozmowy o pracę możesz się do niej odpowiednio przygotować. Przede wszystkim warto wygooglować coś w stylu: [Język programowania] Pytania rekrutacyjne.

Nie jestem co prawda zwolennikiem zadawania zbyt wielu teoretycznych pytań, ale w wielu firmach pewne pytania się powtarzają i warto znać chociażby specyficzną terminologię (zwłaszcza, jeśli aplikujemy na stanowisko wyższe niż tzw. Junior). Wiem, że prawdopodobnie nie była Ci ona wcześniej niezbędna, ale przed pójściem na taką rozmowę warto się z nią zapoznać i tym samym odrobinę zwiększyć swoje szanse.

Warto przygotować się nie tylko pod względem wiedzy, ale także pod kątem mentalnym. Przede wszystkim – nie bój się. Programowanie to bardzo rozległa dziedzina i naprawdę nie ma chyba ludzi, którzy wiedzieliby dosłownie wszystko. Ciągłe przekładanie działania, bo “jesteśmy niewystraczająco dobrzy” to po prostu prokrastynacja. Lepiej to sprawdzić i odnieść ewentualną porażkę będąc świadomym tego, że przynajmniej próbowaliśmy. W przypadku, w którym nie dostalibyśmy żadnej pracy, zakładając że nie zrobilibyśmy na rozmowie niczego głupiego – raczej nie znajdziemy się na jakiejś “czarnej liście”. Zawsze można się trochę douczyć i spróbować ponownie za jakiś czas.

6. Aplikuj na stanowisko

Opracuj CV, przygotuj swoje portfolio i znajdź oferty, które Cię zainteresują. Złóż aplikacje i poczekaj na odzew. Jeśli pomimo rzetelnej pracy i wysłania wielu CV nadal nie otrzymałeś żadnej pozytywnej wiadomości i zaproszenia na rozmowę, być może warto byłoby coś poprawić. Nie jest to jednak powód do załamywania. Rozwijaj się i próbuj dalej!

7. Udało Ci się? Brawo, ale… Nie stój w miejscu

Jeżeli udało Ci się dostać wymarzoną pracę – gratulacje. Musisz jednak pamiętać o tym, że praca programisty wymaga ciągłego rozwoju i ciężko jest osiągnąć taki stan, w którym już nigdy nie będziesz musiał nauczyć się czegoś nowego. Jeżeli chcesz awansować, a co ważniejsze – nie chcesz za kilka lat stracić pracy – powinieneś się rozwijać. Warto uczyć się nowych trendów, śledzić nowo powstające technologie i starać się poprawiać swój kod. Jeżeli jesteś początkujący, powinieneś też zainteresować się rzeczami takimi jak chociażby systemy kontroli wersji, czy testy jednostkowe. Tak jak pisałem od początku: praca programisty to nie tylko niezłe zarobki i siedzenie przed kompem. To przede wszystkim kupa myślenia i konieczność ciągłego rozwijania swoich umiejętności. Między innymi z tych względów nie jest to praca dla każdego, ale… Jeśli to lubisz – z pewnością będzie dla Ciebie idealna – tego Ci właśnie życzę. Powodzenia!