jak zostac programista

Jak zostać programistą, moje początki i plan przebranżowienia na IT

8 lat temu podjąłem studia na Śląskiej Polibudzie na Wydziale Budownictwa. Po “wspaniałych” sześciu latach, tracąc po drodze chęć życia, a zyskując ogrom nieprzydatnej dziś wiedzy, w drodze po dyplom ukończenia, uznałem, że fajne było to budownictwo, ale chyba już nie dla mnie. W tamtym czasie zastanawiałem się nad tym, czy powinienem zostać programistą. Niedawno znalazłem pierwszą pracę w IT.

Chciałbym podzielić się z Wami historią o tym jak wyglądały moje początki programowania. Od planu „jak zacząć programować” do realizacji i pierwszej pracy w IT.

przebanżowienie it

Konrad Wandzel. React Developer w Mirit Software House. Piękny, brodaty i jeszcze młody, trwający od jakiegoś czasu w zażyłej relacji z React’em, rowerem i nartami. Świeżak w komercyjnym programowaniu. Swoje początki programowania datuje na wiosnę 2019 roku. Aktualnie React Developer w rozwijającym się Software Housie. Zadeklarowany przeciwnik tworzenia projektów „do szuflady” i entuzjasta robienia „fajnych rzeczy” czymkolwiek by one nie były. 


Początki programowania, czy było z górki?

Jako, że już w trakcie studiów błąkały się po mojej głowie myśli, żeby zacząć programować, to gdy po skończeniu studiów uznałem, że czas skończyć z tym budownictwem, zostało jedynie wcielić pomysł w życie. Dla ustalenia linii czasowej, przyjmijmy że było to w okolicy marca 2019 roku. Po szybkim zapoznaniu się z tematem, na pierwszy ogień poszła Java. Pojęcie frontendu i backendu czekało jeszcze w moim przypadku na odkrycie, więc zainwestowałem 40 zł w kurs na wszyscy wiemy jakiej platformie i zacząłem naukę. Niestety jak to bywa z przełomowymi pomysłami, zacząłem go wcielać w życie w najgorszy możliwy sposób, a mianowicie uznałem, że na kodzenie przyjdzie pora, a najpierw nauczę się teorii. 

Po przesłuchaniu kilku pierwszych rozdziałów, mój zapał delikatnie mówiąc opadł, po czym nastąpiły chłodne dni w relacji z programowaniem, a także jak się potem okazało rozpad “związku” z Javą. 

Jaki język programowania? Moja droga i metoda prób i błędów

Programowanie w Python? Nie, dziękuję

Gdy doszedłem do siebie po przeżyciach z Javą, wyczytałem w internetach, że według niektórych rankingów języków programowania, hitem tej wiosny jest Python. Ale już trochę ogarniałem, co to te frontendy i backendy, więc od razu uderzyłem w Django, czyli frameworka do tworzenia aplikacji internetowych.  

Niestety, w przypadku Pythona samo zainstalowanie go i odpalenie jest już wyczynem, nie pomagał również fakt, że Django do lajtowych frameworków nie należy, więc po zrobieniu formularza o wdzięcznym tytule „sdfvhjdfbvdhjfbvdh” ponownie zgromadziły się mojej głowie chmury zwątpienia i ciemności. Po 15-stym wysypaniu się mojej mini-apki z powodu braku kolejnej zmiennej środowiskowej, stwierdziłem że czas z godnością pożegnać się i z tym tematem, czego skutkiem było wywalenie z kompa owego projektu, a wraz z nim wszystkich innych wężowych rzeczy. Czy się poddałem? Nie, po prostu zastanowiłem się jaki inny język programowania wybrać.

Programowanie w C#? Trochę sukces, trochę porażka

I tak około maja nastąpiła era C#. Wspominałem już, że zdarzyło mi się zabierać do tego w najgorszy możliwy sposób, nie? No to dorwałem książkę z podstawami C# i postanowiłem dwie rzeczy. Pierwsza z nich o dziwo nosiła ślady sensu i logiki, bo założyłem, że tym razem dokończę tę książkę. Ale tutaj dochodzi druga sprawa, która zmieniała obecny bieg wydarzeń o 360 stopni. Zastanawiając się jak zacząć programować w C#, znów postanowiłem najpierw skończyć książkę, a póżniej zacząć kodzić – bo będę wiedział co kodzić. Ma sens, nie?

No otóż właśnie niekoniecznie. Po zmarnowaniu kilkudziesięciu godzin spędzonych na czytaniu, odniosłem sukces i cofnąłem swój błąd, polegającym na złożeniu samemu sobie obietnicy o dokończeniu tej książki. Także trochę sukces, trochę porażka, ogólnie można powiedzieć, że remis. Wtedy zaistniała konieczność zweryfikowania wszystkich moich założeń i planów.

Kojarzysz ten motyw w filmach, że główny bohater najpierw przez 80% filmu zbiera łomot jak Sylvester Stallone blokujacy ciosy przy pomocy głowy, ale potem na koniec pyk pyk pyk i jest już wszystko elegancko? No to jeszcze nie doszliśmy do tego etapu. 

HTML i CSS – pierwszy mały sukces

W sierpniu, przed wyjazdem na urlop, zacząłem naukę HTMLa i CSSa. Tu można by powiedzieć, że następuje odpowiednik miejsca w filmie, gdzie Rocky przestaje blokować ciosy Dolpha Lundgrena za mocą ryja i zaczyna się ten końcowy etap filmu. Nie znaczy to jednak, że o tym powiem, bo u mnie ten moment nastąpił dopiero 1,5 miesiąca później, kiedy to zrobiłem swojego pierwszego commita na GitHubie. 

Przenieśmy się więc do końca września 2019 roku. Tu zaczyna się akcja rozkręcać. Napisałem swoją pierwszą stronę internetową. Nienawidzę robić rzeczy bez celu, więc stworzona strona była takim mini kompendium wiedzy o nartach. Jak mnie ktoś pytał „ej mordo, jak mam sobie narty nasmarować?” to mogłem mu już wysłać linka, a nie tłumaczyć 10 minut na Messengerze. To było fajne. Nawet poszalałem z Javascriptem tworząc prosty kalkulator do obliczania siły wypięcia wiązania, którego później używałem całą zimę. 

Pierwsza praca w IT

Niesiony falą tego sukcesu, wziąłem się za Bootstrapa i Reacta. Pisząc przy ich użyciu stronę z nartami do sprzedania. Wtedy mi się wydawała super, teraz trochę mniej. Oczywiście nie był to projekt do szuflady, bo zdarzyło mi się go podesłać jakiejś tam grupce osób, za co mi trochę wstyd, bo stworzony na szybko design mówiąc krótko: ssał. Chciałem go nawet refaktorować jakiś czas temu, ale to jak z naprawianiem 25-letniego auta z Niemiec. No niby można, ale i tak efekt będzie mocno umiarkowany. W każdym razie, na pisanie tej strony zeszło mi trochę czasu i tak przenosimy się do grudnia 2019 roku. 

Zacząłem także szukać pracy. W sensie rozesłałem parę CV, które jak nietrudno się domyślić nie przyniosły spektakularnych efektów więc uznałem, że może faktycznie trzeba by się jeszcze lekko wykoksić. Przez zimę bawiłem się z trochę z Reactem i Reduxem, trochę z bazą danych w MongoDB i jeszcze jakimiś drobnymi rzeczami, które potem śmieciły na githubie. 

Okres poszukiwania pracy – jak wygląda rozmowa kwalifikacyjna w IT?

Tak przekoczowałem do lutego 2020 roku. Czując się już całkiem średnim kozakiem, rozesłałem kolejne CV, które tym razem dały efekty. Zrobiłem parę zadań rekrutacyjnych, dostałem darmowe gadżety na rozmowie. Jakie to były zadania rekrutacyjne zapytacie? Otóż zdarzały się bardzo różne. Jedno z nich polegało na zrobieniu strony internetowej z galerią zdjęć, opisami, zdjęciami. W zasadzie nawet Javascriptu nie było tam zbyt wiele. Ale zdarzyły się także i takie, gdzie w 3 dni trzeba było napisać w pełni funkcjonalną, fullstackową aplikację z logowaniem, bazą danych, logiką na frontendzie. 

Tutaj już sprawa była trudniejsza, bo jeżeli ktoś nigdy nie robił równie dużego zadania, to szanse miał raczej zerowe na skończenie tego w tak krótkim terminie. Na rozmowach rekrutacyjnych sprawa wyglądała podobnie. Niektórych moich rozmówców interesowało to, jak się uczyłem, gdzie zdobywałem wiedzę czy też jak rozwiązuję problemy, a inni oczekiwali, że będę po prostu znał na pamięć wszystkie CSSy. Czy da się zabezpieczyć na wszystkie te możliwości? Nie, ale też nie ma takiej potrzeby, po prostu trzeba się pogodzić z faktem, że może po prostu to nie ta firma, której szukałeś. W międzyczasie nastał marzec roku obecnego. Co się odwaliło w marcu to wszyscy wiemy, ale wtedy jeszcze żodyn nie wiedział. ŻODYN. 

Ale nie uprzedzajmy historii. Początkiem marca (2020 przypominam jak coś) zostałem zaproszony na dosyć obiecującą rozmowę o pracę na stanowisko frontendowca. Sprawy szły nieźle, ostrzyłem już nieśmiało kły na nową pracę… i nagle przybył koronawirus, rozwalił w mak plany całego świata, w tym także plan na moje zatrudnienie. Pozostało mi dalej rozwijać się na własną rękę. Wiosna i lato upłynęły mi na rozwijaniu projektów i remoncie mieszkania, dzięki czemu w październiku byłem w stanie pochwalić się już większą, fullstackową apką i elegancką ścianą z imitacją cegieł. 

Napisana w React’cie apka, miała backend w Firebase’ie i służyła do obsługi serwisu narciarskiego. Jak wspominałem, nie lubię robić rzeczy tylko do szuflady, więc jako że z nartami jestem związany dosyć mocno, to zrobiłem coś co mogło się, kiedyś przydać. 

W tzw. “międzyczasie” dołączyłem do jednego z projektów OpenSource. Wziąłem także udział w programie „Od Juniora do Seniora” organizowanym przez Just Join IT, gdzie mogłem spotkać się z seniorem i pogadać wspólnie nad tym, co robię dobrze, a co mógłbym poprawić. 

Finał historii i pierwsza praca jako programista

Przechodzimy do kwestii najciekawszej – jak dostałem tę wymarzoną pracę? 

Przypadkiem, co nie jest niczym nowym w moim przypadku, bo moje poprzednie miejsca pracy również trafiały się przypadkiem. Znalazłem ogłoszenie o software house’ie szukającym frontendowca na jednej z grup dla świeżaków. Jako, że poziom dyskusji na tych grupach bywa różny, to moje oczekiwania były żadne i w sumie wysłałem CV tylko po to żeby nie było, że mi się nie chciało. Zdawałem sobie także sprawę, że ilość CV jakie dostają rekruterzy na podobne ogłoszenia, idzie w setki, co tym bardziej nie napawało mnie optymizmem. 

Ku mojemu ogromnemu zdziwieniu, mój obecny już szef, czyli Mateusz z Mirit Software House odpisał mi i poprosił o wyjaśnienie kilku kwestii związanych z projektami na moim GitHubie. W zasadzie chodziło o opowiedzenie o nich, dlaczego akurat takie rzeczy zrobiłem, czemu użyłem tych technologii, nie za szczegółowo, ale konkretnie. Po krótkiej wymianie zdań na Messengerze, umówiliśmy się na dłuższą rozmowę, a jednocześnie dostałem do zrobienia zadanie rekrutacyjne. Było ono raczej z tych trudniejszych, gdzie trzeba było zakodzić nie tylko frontend, ale także bazę danych i oczywiscie wszystko to ze sobą połączyć. 

Dodatkowo w ramach własnej inwencji twórczej dorzuciłem tam rejestrację wraz z logowaniem, co jak się potem okazało, zostało docenione. Sam komponent także nie był łatwy, bo chodziło o wykonanie drag and dropa, który owszem brzmi prosto, ale do momentu aż nie trzeba go mocniej modyfikować. 

Koniec końców zajęło mi ono 2 dni włącznie z nocami, jednak działało tak jak działać powinno. Na szczęście Mateusz wyznaje podobną do mnie zasadę mówiącą, że jak coś można znaleźć w internecie to bez sensu się tego uczyć na pamięć. Obu nam to bardzo odpowiadało i mogliśmy skupić się raczej na tym jak się uczyłem, co sądzę o danych rzeczach i technologiach oraz na jakie kierunki rozwoju zwracam uwagę. 

No i udało się. Niedługo później dostałem zaproszenie do zespołu i od początku listopada pracujemy wspólnie nad projektami. Bywa trudno, ale wspaniale jest w końcu robić to co wiesz, że Cię rozwija i daje frajdę.

Czy jest jakiś pierwszy język, od którego warto zacząć programować?

No i teraz możesz pomyśleć, dobra, też chcę kodzić, ale Panie kochany tam tych języków to jest tyle, że się człowiek czuje jak facet na dziale z damskimi szamponami. No w cholerę tego jest. 

Na frontendzie droga jest w mojej opinii prostsza, na początkowym etapie przynajmniej, bo jako podstawy podstaw to HTML i CSS oraz Javascript. Potem jakiś framework z trójcy Angular, React lub Vue. Który? No to już sam musisz zdecydować, który wydaje Ci się przyjaźniejszy. A jak przebrniesz już przez ten punkt, to poleci samo dalej. 

Troszeczkę gorzej jest z językami backendowymi. W bardzo dużym uproszczeniu można napisać, że jak Cię kręci sztuczna inteligencja czy machine learning to Python. Jak robienie apek internetowych, to może PHP? A może C# Ci bardziej podejdzie? Z popularnych języków mamy jeszcze Javę choć chyba tam konkurencja jest już wystarczająco duża. Polecam po prostu sprawdzić sobie, jakie języki są wymagane na odpowiadające wam stanowisko. 

Jak zacząć programować? Podsumowanie i rady

Co mogę doradzić każdemu, kto jeszcze szuka swojej pierwszej pracy w IT? Najpierw przemyśl czy chcesz to robić. Nie mam zamiaru nikogo przekonywać do tego, że bycie programistą jest super, bo gdy siedzisz 3 dni nad jednym komponentem, a on dalej nie działa nie wiedzieć czemu, to masz tego po prostu dosyć.

A jeśli już uznasz, że chcesz, to mam jedną radę. Rób fajne rzeczy. Zrób coś, co Ci się przyda w życiu. Sam nie masz pomysłu? To spytaj mamy, babci, wujka albo kogoś znajomego “ej stary, nie potrzebujesz apki do katalogowania śrubek w garażu?“. Tylko tak jesteś w stanie się rozwijać, cały czas szukając nowych wyzwań. No i dzięki temu możesz zostać zauważony. Nikogo nie interesuje setna TODO lista.

No chyba, że jedyną motywacją są zarobki w IT i to mityczne 15 koła miesięcznie. To raczej Cię zmartwię, chyba nie da się tyle zarabiać, jeśli nie będziesz czuł w tym frajdy. To raczej Cię zmartwię, małe masz szanse żeby tyle zarabiać, nie czując w tym frajdy. 

Rozwój w IT – moje plany na najbliższą przyszłość

Co w przyszłości? Odespałem już trochę te wszystkie zarwane noce. Także jest czas na zrobienie czegoś fajnego. Poza projektami, z którymi obecnie jestem związany, czyli głównie pracowymi, chciałbym stworzyć swój własny projekt Open Source dotykający pewnych problemów „dnia codziennego”. Poza tym coś związanego z nartami (no jakże by inaczej, cały mój GH jest zawalony nartami), bo muszę sobie ogarnąć kodzenie na mobilki i Node.js’a. Chodzi mi także po głowie zarys projektu pomagającego w rozwoju programistów. Także jakby ktoś chciał się przyłączyć, to zapraszam. 


Ach, no i kręcę sobie filmy, w luźnej formie, trochę gadam o kodzeniu, a trochę jeżdżę na rowerze. A czasem będę cały odcinek jeździł na nartach. Akurat do obiadu po pracy. W najnowszym odcinku jest nawet Pieseł. Także do usłyszenia, gdzieś tam w internetach. 

Gdzie można mnie spotkać:

ZOBACZ TEŻ:  Największy rosyjski bank otworzył darmową szkołę programowania

W każdym wieku możesz zacząć naukę i w każdym wieku osiągać sukcesy. Zobacz historię Jakuba Pawelskiego, który senior developerem został w wieku 19 lat.


Zdjęcie główne artykułu pochodzi z unsplash.com.

Zapraszamy do dyskusji

Patronujemy

 
 
More Stories
Projektowanie systemu. Różnice pomiędzy grafową oraz relacyjną bazą danych