POIT #219: Jak zostać programistą?

Witam w dwieście dziewiętnastym odcinku podcastu „Porozmawiajmy o IT”. Tematem dzisiejszej rozmowy jest to, jak zostać programistą.

Dziś moim gościem jest Tomasz Woliński – mówi, że prawie już nie pamięta swojego życia bez programowania. Podcaster, vloger, bloger, ale też aktywny trener nauki programowania od podstaw. Znany z bloga stormit.pl, twórca SprawnyProgramista.pl oraz KierunekProgramista.pl. Zawodowo, pełni różne role w IT dla wielu podmiotów biznesowych. W wolnych chwilach miłośnik biegania.

W tym odcinku o zostaniu programistą rozmawiamy w następujących kontekstach:

  • jak zostać programistą?
  • czy trzeba mieć ku temu pasję i predyspozycje?
  • jakie osoby chcą zostać programistą?
  • czy programowanie jest dla każdego?
  • od czego zacząć naukę programowania?
  • czy trudno jest zostać programistą?
  • jak skutecznie uczyć się programowania?
  • jak zwiększyć swoje szanse w procesie rekrutacyjnym?
  • jaki język programowania wybrać?
  • dlaczego ludzie płacą za naukę programowania?
  • jakie są najczęstsze błędy w tym obszarze?

Subskrypcja podcastu:

Linki:

Wsparcie na Patronite:

Wierzę, że dobro wraca i że zawsze znajdą się osoby w bliższym lub dalszym gronie, którym przydaje się to co robię i które zechcą mnie wesprzeć w misji poszerzania horyzontów ludzi z branży IT.

Patronite to tak platforma, na której możesz wspierać twórców internetowych w ich działalności. Mnie możesz wesprzeć kwotą już od 5 zł miesięcznie. Chciałbym oddelegować kilka rzeczy, które wykonuję przy każdym podcaście a zaoszczędzony czas wykorzystać na przygotowanie jeszcze lepszych treści dla Ciebie. Sam jestem patronem kilku twórców internetowych i widzę, że taka pomoc daje dużą satysfakcję obu stronom.

👉Mój profil znajdziesz pod adresem: patronite.pl/porozmawiajmyoit

Pozostańmy w kontakcie:

 

Muzyka użyta w podcaście: „Endless Inspiration” Alex Stoner (posłuchaj)

Transkrypcja podcastu

To jest 219. odcinek podcastu Porozmawiajmy o IT, w którym z moim gościem rozmawiam o tym, jak zostać programistą. 

Notatkę, linki oraz transkrypcję do dzisiejszego odcinka znajdziesz pod adresem porozmawiajmyoit.pl/219. 

Marzysz o byciu liderem albo o zmianie pracy? Myślisz o kroku dalej w swojej karierze zawodowej? A może chcesz budować markę osobistą? Prawda jest taka: aby zarządzać innymi, musisz zacząć od siebie. Wiedza techniczna to jedno, a wiedza o swoich mocnych stronach to już wyższy poziom. 

Samoświadomość wynikająca z wiedzy o tym, jak się komunikujesz, jak reagujesz na stres, jaki jest twój naturalny styl zarządzania, co tak naprawdę siedzi w twoim liderskim DNA, jest niezbędna w zarządzaniu innymi i budowaniu swojej ścieżki kariery w IT. Narzędzie psychometryczne, jakim jest MBTI, pomogło mi kiedyś na mojej drodze zawodowej. Gdy zastanawiałem się wówczas, co dalej z moim rozwojem zawodowym, dzięki poznaniu mocnych stron mogłem nim pokierować w sposób optymalny. Wejdź na leadershiplab.pl/kariera-lidera (link w notatce do odcinka) i umów się na sesję intro z certyfikowanym coachem, aby skorzystać z pełnej mocy tego szanowanego na całym świecie narzędzia. Warto. Polecam.

Podcast Porozmawiajmy o IT jest dostępny zupełnie za darmo. Obowiązuje tylko jedna zasada: jeśli jesteś tu przynajmniej po raz drugi, to po pierwsze rozgość się, a po drugie oddzięcz za te treści, wystawiając ocenę w Twojej aplikacji podcastowej lub polecając odcinek w social media. Dziękuję.

Ja się nazywam Krzysztof Kempiński. Moją misją jest poszerzanie horyzontu w ludzi z branży IT, co realizuję m.in. poprzez ten podcast. A teraz zapraszam Cię już do odcinka.

Odpalamy!

Cześć!

Mój dzisiejszy gość mówi, że prawie już nie pamięta swego życia bez programowania. Jest podcasterem, vlogerem, blogerem, ale też aktywnym trenerem nauki programowania od podstaw. Znany z bloga StormIT.pl, twórca sprawnyprogramista.pl oraz kierunekprogramista.pl. Zawodowo pełni różne role w IT dla wielu podmiotów biznesowych. W wolnych chwilach miłośnik biegania. Moim i Waszym gościem jest dzisiaj Tomasz Woliński.

Cześć, Tomku! Bardzo mi miło gościć Cię w podcaście.

 

Cześć, Krzysztof, dzięki za tak piękne przedstawienie i dziękuję za zaproszenie do podcastu. Naprawdę dla mnie to jest wielki taki „wyrównik” być tutaj po drugiej stronie i móc z Tobą rozmawiać. Pięknie mnie przedstawiłeś. Tak, rzeczywiście lubię o sobie myśleć jako o osobie, która lubi, jak dużo się dzieje, stąd tak dużo tych różnych aktywności. I dzisiaj właśnie porozmawiamy o jednej z tych aktywności związanej bezpośrednio z nauką programowania i z tym, jak ostatnio ludzie chętnie uczą się programowania i zmieniają swoją branżę.

 

No właśnie z tych różnych Twoich doświadczeń również związanych z uczeniem innych programowania dzisiaj skorzystamy. Postawiliśmy sobie dosyć duże i szerokie zadanie, żeby odpowiedzieć na pytanie, jak zostać programistą. Oczywiście zdajemy sobie sprawę, że nawet kilkugodzinna rozmowa nie wystarczyłaby na to, żeby ten temat wystarczająco zgłębić, ale przynajmniej postaramy się dla tych osób, które, tak jak powiedziałeś, myślą o wejściu do tej branży, może chcą się przebranżowić. Postaramy się jakoś podpowiedzieć i pomóc właśnie w tych początkowych krokach.

Ale na początku, Tomku, chciałbym Cię zapytać, czy oprócz tego, że tworzysz podcast, to słuchasz również innych audycji, czego najczęściej?

 

Tak, zdecydowanie słucham. Właśnie jeżeli mowa o podcastach, spędzam naprawdę całkiem sporo czasu, słuchając różnego rodzaju audycji. Aczkolwiek muszę przyznać, że podchodzę do nich trochę tak użytkowo. Tzn. staram się gdzieś wpleść w inne moje aktywności, czyli np. jak gdzieś jedziemy samochodem, czy jak idę na jakiś trening, na siłownię, czy pobiegać. 

Jest to genialna okazja, żeby móc połączyć to z taką dodatkową porcją wiedzy i tutaj też mówiąc o tym, że traktuje je w taki sposób użytkowy trochę, mam na myśli, że podchodzę do tego tak, że jak szukam jakiejś informacji, to lubię np. wejść na portal z różnymi podcastami i wybrać konkretną jedną tematykę, która mnie interesuje i np. poprosić trzech twórców. Ściągam wtedy podcasty właśnie od kilku osób i przesłuchuję je czasami fragmentami, czasami całe odcinki, ale jest to na pewno bardzo fajna forma zdobywania wiedzy.

 

Pewnie, to pochwalisz się co tam najczęściej u Ciebie w słuchawkach gości?

 

Jak najbardziej. Słucham różnych kategorii. Jeżeli chodzi o oprogramowanie, o nowe technologie, to tutaj nie ma co ukrywać, że słucham również Twojego podcastu, czyli Porozmawiajmy o IT, aczkolwiek tutaj również wybieram najczęściej te odcinki, które konkretnie mnie interesują.

Ale jednak więcej niż te nowe technologie, to ostatnio słucham różnego rodzaju materiałów związanych czy to z przedsiębiorczością, czy to z marketingiem, czyli ta moja druga dziedzina wiedzy, którą ostatnio bardzo mocno się interesuje. No i tutaj np. jak jedziemy gdzieś samochodem, kiedy jesteśmy całą rodziną, to staram się wybierać takie trochę delikatniejsze, lżejsze tematy, tak żeby wszystkich członków rodziny nie zanudzić tak naprawdę tym, co konkretnie mnie interesuje.

I tutaj np. świetnie sprawdzają się oba podcasty Macieja Wieczorka, dlatego że one w miarę delikatny sposób przedstawiają te ciekawe dla nas rzeczy. Natomiast jeżeli jestem sam, to ostatnio bardzo dużo czasu spędzam czy to z Mirosławem Skwarkiem, czy również z Rafałem Mazurem od Zen Jaskiniowca. Swoją drogą jest to jeden z niewielu podcastów, który przesłuchałem dosłownie od deski do deski i to nawet po kilka razy. I tu zdecydowanie polecam.

 

Dzięki za te rekomendacje. I co, myślę, że zaczniemy z grubej rury. Zatem Tomek, jak zostać programistą?

 

Tak, piękne pytanie i muszę przyznać, że właśnie dokładnie w takiej formie bardzo często ludzie je zadają. Jest to w pełni uzasadnione, dlatego że jak zaczynamy się interesować jakimś tematem, to jeszcze na tym etapie nie do końca wiemy nawet, jak zadać takie pytanie. I w tym momencie, ja dostając takie pytanie, mając szerszy kontekst, muszę zastanowić się, jakiej odpowiedzi oczekuje ta osoba. Czy jest to osoba totalnie na samym początku swojej drogi i trzeba ją tak na spokojnie wprowadzić, czy wręcz przeciwnie, dostaję takie pytanie od osoby, która już coś tam spotkała się wcześniej z tym tematem.

Można powiedzieć, że ostatnie lata mojego życia bardzo mocno kręcą się właśnie w kontekście tego pytania, dlatego że sam jakiś czas temu, już ładnie kilkanaście lat temu zostałem programistą, więc przeszedłem przez tę drogę. Później pracowałem przez kilka lat na stacjonarnych bootcampach, więc znowu była styczność z tymi osobami, które przechodzą przez tę drogę. Obecnie prowadzę swoją szkołę programowania, więc cały czas pracuję z ludźmi, którzy uczą się programowania i właśnie chcą zostać programistami.

A jak zostać? Myślę, że dzisiejszy podcast w dużej mierze odpowie na to pytanie, natomiast rozbijemy to pytanie na pewno na więcej pomocniczych podpowiedzi.

 

Dokładnie. Chciałbym rozpocząć od swojego rodzaju obawy, mam wrażenie, czy może nawet zarzutu, który gdzieś tam się pojawia w głowach tych osób, które myślą właśnie o zostaniu programistą. Jestem ciekaw, jak Ty patrzysz na taki aspekt predyspozycji, jakiejś pasji, tego, że musimy bardzo szybko zacząć już wdrażać się właśnie w tę dziedzinę ludzkiej działalności, żeby w ogóle w przyszłości móc myśleć o tym, że będę programistą.

Czy te elementy właśnie, tak jak predyspozycja, pasja, jakieś zamiłowanie od najmłodszych lat według Ciebie jest potrzebne w tym zawodzie?

 

Jak najbardziej jest potrzebne, natomiast jest tutaj na pewno taka wielka gwiazdka, dlatego chciałbym to rozwinąć. Dlatego, że obecnie jestem zwolennikiem takiego podejścia, że w branży jest miejsce dla każdego. Ta branża w ostatnich latach bardzo mocno się zmieniła. Ona cały czas ewoluuje, dochodzą nowe osoby, zmieniają się wymagania, ale też moja świadomość tej branży w ostatnich latach się zmieniła.

W momencie kiedy ja zaczynałem, całkowicie inaczej to wyglądało, ale właśnie również moje podejście było inne. Wtedy młody człowiek, dużo wolnego czasu, też ogromna ambicja, chciałem jak najwięcej i jak najszybciej osiągnąć, a to jakby powodowało taką sytuację, że trochę zamykałem się na inne możliwości i skupiłem się bardzo mocno na tym, żeby jak najwięcej czasu spędzić z programowaniem, więc chodziłem do pracy standardowo, 8 godzin, później również nadgodziny, bo trzeba cisnąć, bo trzeba uczyć się tego programowania i po kilkunastu godzinach wracamy do domu – no to co, może właśnie jakiś podcast z nowych technologii, może jakiś własny projekt po godzinach?

Więc ta pasja na pewno była na bardzo dużym poziomie. W tamtym okresie byłem takim zwolennikiem podejścia, że tylko tacy prawdziwi programiści powinni być w tym zawodzie, wszyscy ciśniemy, a pozostałe osoby, które wieczorami nie programują w wolnym czasie, to są tacy programiści, można powiedzieć, trochę z przymrużeniem oka.

Ale nie oszukujmy się, to się zmienia w czasie, nasze podejście też często się zmienia i moja sytuacja również się zmieniła. I w momencie kiedy pojawiła się rodzina, kiedy pojawiły się tak naprawdę też inne obowiązki, zacząłem inaczej patrzeć na to wszystko i na pewno z dużo większym zrozumieniem.

Dzisiaj nie mogę powiedzieć, że nie mam pasji do programowania, natomiast widzę, że są inne możliwości. Okazuję większe zrozumienie dla osób, które chcą przychodzić do pracy jako programista i być w tych standardowych godzinach od 7 do 15, a później realizować się w jakiejś innej pasji, nawet w jakimś innym zawodzie, bo jak najbardziej można ciągnąć więcej niż jedną rzecz jednocześnie.

I mamy to szczęście, że branża IT pozwala nam na tego typu działania. Dlatego, że po godzinach jak najbardziej mamy jeszcze czas, często mamy jeszcze siły, a dodatkowo IT bardzo często daje nam fajne zarobki. To powoduje, że też mamy możliwości, żeby robić coś innego. Więc myślę, że w ten sposób możemy jakby odpowiedzieć na to, czy trzeba mieć tę pasję. Można mieć, na pewno ona pomaga, natomiast nie jest to konieczne.

 

Powiedziałeś, że Twoja świadomość tej branży się zmienia, że coraz bardziej dochodzisz do wniosku, że programowanie jest prawie dla każdego. Ja chciałbym, jak to się ładnie po staropolsku mówi, nieco zchallenge’ować to podejście. Tak samo można by powiedzieć, że to, że prawie każdy może grać w piłkę, nie znaczy, że wszyscy powinni w nią grać i wszyscy zostaną wielkimi, rozpoznawalnymi zawodnikami itd.

Myślę sobie, że podobnie pewnie jest z programowaniem. Myślę, że w toku naszej dzisiejszej rozmowy będziemy też ten temat jeszcze nieraz dotykać, ale teraz chciałbym Cię zapytać o to, jak obserwujesz rynek, jak obserwujesz osoby, z którymi Ty współpracujesz, których uczysz programowania, to jakie osoby najczęściej chcą zostać programistą? Jakie osoby uczą się programowania? Czy jest jakiś profil, czy jest może jakiś zbiór cech, o których możesz tutaj powiedzieć?

 

Jak najbardziej. Możemy wyróżnić kilka takich głównych grup osób, które uczą się programowania. Przede wszystkim trzeba najpierw sobie powiedzieć, że programowanie w tych ostatnich kilkunastu latach, od kiedy ja interesuję się tematem, bardzo mocno się zmieniło. Kiedyś było to coś takiego bardziej ekskluzywnego, mieliśmy stosunkowo niedużo programistów, może ktoś znał kiedyś albo słyszał o jakimś programiście, natomiast w tym momencie, ja to się trochę śmieję, że programowanie weszło już na salony. Dlatego, że prawie wszędzie słyszymy o tym, że możemy zostać programistą, znamy jakąś osobę, która programuje.

To powoduje też, że my mamy dużo większą świadomość jako ludzie, ale też to programowanie zmieniło się pod tym względem, że obecnie jest dużo łatwiej zacząć. Te technologie bardzo mocno się zmieniły. Próg wejścia pod wieloma względami też jest niższy, ale też chociażby pojawiło się wiele firm, które pomagają nowym osobom zostać programistami, co również wpłynęło pozytywnie na te pierwsze etapy, kiedy my nie wiemy, jak zostać tym programistą i szukamy tych wszystkich informacji.

Natomiast jeżeli chodzi już o same grupy osób, które uczą się programowania, to takie, które ja bym teraz wyróżnił, to na pewno dzieci. To jest coś, czego kiedyś tak mocno nie było, dlatego że ja z programowaniem miałem styczność dopiero gdzieś tam w liceum, a z takim prawdziwym programowaniem na poważnie dopiero na studiach, więc bardzo, bardzo późno. Ale jak patrzę na dwójkę moje dzieciaki, to one zaczynały swoją przygodę z programowaniem już we wczesnym przedszkolu, więc całkowicie na innym etapie życia.

Natomiast jeżeli chodzi już o same grupy osób, które uczą się programowania, to takie, które ja bym teraz wyróżnił, to na pewno dzieci. To jest coś, czego kiedyś tak mocno nie było, dlatego że ja z programowaniem miałem styczność dopiero gdzieś tam w liceum, a z takim prawdziwym programowaniem na poważnie dopiero na studiach, więc bardzo, bardzo późno. Ale jak patrzę na dwójkę moje dzieciaki, to one zaczynały swoją przygodę z programowaniem już we wczesnym przedszkolu, więc całkowicie na innym etapie życia.

I te aplikacje, które moje dzieciaki robiły właśnie w zerówce, czy to w przedszkolu, jeżeli chodzi o poziom skomplikowania tego, co te aplikacje dostarczały, można spokojnie porównać z tym, co ja robiłem na studiach. Ale właśnie te technologie się zmieniły, stąd ten próg wejścia jest niższy.

To jest jedna grupa ludzi, druga to na pewno ludzie młodzi, którzy zaczynają dopiero swoją przygodę z pracą. Mamy bardzo dużo studentów, którzy uczą się programowania. Natomiast ta grupa, na której ja bym się przede wszystkim skupił, i grupa, z którą ja współpracuję w ramach swojej szkoły, są to osoby dorosłe, które mają już jakiś zawód, pracowały wcześniej w innej branży, ale chcą się przekwalifikować, chcą nauczyć się programowania.

I to jest bardzo specyficzna grupa osób, dlatego że to jest grupa mocno zmotywowana, oni wiedzą, dlaczego chcą się uczyć programowania, to nie jest tak jak z dziećmi, że my musimy przyjść i musimy motywować te osoby. Nie, oni mają swoje rodziny, oni mają już jakieś swoje doświadczenie i konkretnie wiedzą, po co to robią. I z takimi osobami naprawdę pracuje się dużo lepiej.

Aczkolwiek jest to też grupa, która ma swoją specyfikę, która nie ułatwia im tej nauki. Chociażby właśnie te wspomniane już zobowiązania. Dużo mniej czasu, też jakby inne rzeczy, którymi muszą się zająć. I to powoduje, że trudno jest pod tym względem im skupić się na nauce programowania, nauczenia nowej, bądź co bądź dosyć trudnej dziedziny, ale też takiej czasochłonnej na samym początku.

 

Czyli całe spektrum wiekowe, można powiedzieć.

 

Tak, jak najbardziej.

 

Od przedszkola do emerytury prawie. Teraz już rozumiem, dlaczego mówiłeś, że programowanie może być dla każdego, ponieważ faktycznie na różnym etapie, z różnym stopniem zaawansowania możemy się programowania uczyć. Teraz chciałbym nieco tę optykę odwrócić i zastanowić się może tutaj z Tobą, czy jest coś, co powoduje, że nie będziemy się nadawać do programowania. Czy jakiś zbiór, czy brak jakiejś właśnie umiejętności, jakiejś predyspozycji, może dawać nam jasne sygnały, że to nie jest dobra droga dla nas?

 

Czyli mówimy o takich typowych predyspozycjach. Ja trochę odwrócę to pytanie, bo patrząc na osoby, które właśnie z nami współpracują, nie mogę oprzeć się wrażeniu, że można zostać programistą po dosłownie każdym zawodzie. Mamy taki zwyczaj, że nowe osoby, które do nas dołączają, zawsze mówią, trochę informacji o osobie, o tej swojej dotychczasowej historii. I patrząc na te informacje, można naprawdę dojść do wniosku, że programistą może zostać praktycznie dowolna osoba.

Mamy np. bardzo dużo nauczycieli, mamy też dużo przedsiębiorców. Przedsiębiorca to osoba, która musi rozwiązywać różnego rodzaju problemy, a jednak IT, jednak programowanie to w dużej mierze jest rozwiązywanie problemu, więc jest ta część wspólna. Ale mamy też sporo osób, które gdzieś pracowały, np. na emigracji, gdzie wyjechały za chlebem, i to IT ściąga tego typu ludzi, bo chcą utrzymać swój dotychczasowy komfort życia, a jednak IT tutaj jest bardzo ciekawą alternatywą.

Jeżeli chodzi o predyspozycje, to tutaj na pewno warto przyjrzeć się temu, jak wygląda taki standardowy dzień pracy programisty. Dlatego, że tak jak wspomniałem, my jako programiści często rozwiązujemy problemy. Ktoś do nas przychodzi i mówi mi: Słuchaj, Tomek, moja aplikacja nie działa, mam tutaj jakiś błąd, ale ja nie wiem, o co tutaj chodzi, coś mi wyskoczyło, zrób coś z tym, żeby mi to działało.

Więc co taka osoba techniczna musi zrobić? Ona musi zadawać odpowiednie pytania, ona musi komunikować się z tą osobą, musi zrozumieć, o co jej chodzi, bazując na nie do końca tak naprawdę pełnym obrazie, a kiedy uzyska te wszystkie informacje, musi zagłębić się gdzieś tam w tę technologię i korzystając z tych narzędzi, z języka programowania, rozwiązać ten problem.

Więc na pewno takie predyspozycje musimy mieć, musimy się odnaleźć w tego typu pracy. Ale też kolejną jakby predyspozycją jest to, że po prostu wytrzymamy dłuższy czas przed monitorem, przed komputerem. Aczkolwiek w dzisiejszych czasach też trudno wyobrazić sobie pracę, która nie jest bezpośrednio związana z wielogodzinną pracą przed komputerem, więc tutaj IT, programowanie nie jest jakimś dużym wyjątkiem.

 

Mówiłeś o tym, że to jest też część Twojej działalności, żeby uczyć innych programowania. Mnie się dosyć sporadycznie, ale zdarza też w jakiś sposób pomagać osobom właśnie w tych początkowych krokach. Zazwyczaj to, co słyszę na początku, to, od jakiego języka programowania powinienem zacząć. Jak się już troszkę w tej branży jest, to raczej się wie, że to nie jest dobre pierwsze pytanie. Chciałbym Cię teraz z kolei poprosić, żebyś powiedział, od czego zacząć naukę programowania i dlaczego wybór języka programowania nie jest tym pierwszym pytaniem, które powinniśmy sobie postawić.

 

Tak, pierwszy język programowania jest jednym z tych podstawowych pytań, jakie ludzie zadają, aczkolwiek tutaj znowu trzeba się zastanowić tak naprawdę, czemu my chcemy wybrać ten język programowania, do czego my chcemy tutaj doprowadzić.

Na pewno jedną z pierwszych rzeczy, którą ja bym tutaj zweryfikował, jest odpowiedź na pytanie, czy programowanie, czy IT jest dla Ciebie, dlatego że mówiliśmy wcześniej, o tych różnych predyspozycjach, jakie musimy spełnić, żeby odnaleźć się, żeby być też szczęśliwym po prostu w tym naszym wyborze. I w momencie, kiedy potwierdzimy sobie, że tak, IT jest dla mnie, tak, chcę uczyć się programowania, to teraz trzeba wejść głębiej i zadać sobie np. pytanie, co ja konkretnie chcę w tej nowej branży robić.

Ponieważ dopiero zaczynam swoją przygodę z branżą, to jeszcze nie mam zbyt dużej wiedzy o specjalizacjach, nie wiem nawet, jak wygląda ten standardowy dzień pracy, więc pierwszym krokiem, który powinniśmy tutaj podjąć na pewno, jest poszukanie takich informacji, jak tak naprawdę wygląda ta praca programisty, co konkretnie ten programista robi.

Kiedy zaczniemy sobie odpowiadać na te pytania, to zaczniemy rozróżniać różnych programistów, mamy frontendowca, mamy backendowca, możemy robić też aplikacje mobilne. Nagle okazuje się, że ten świat jest całkiem spory, więc warto w tym pierwszym kroku zaznajomić się z tym wszystkim i podjąć taką już bardziej świadomą decyzję, co ja konkretnie chcę robić, w której dziedzinie bardziej się będę odnajdywał w późniejszym czasie.

I dopiero kiedy odpowiemy sobie na tego typu pytania, to możemy zadać sobie pytanie, jaki język programowania ja chcę wybrać. Bo wiadomo, że niektóre języki programowania dużo lepiej będą np. nadawały się do pisania backendu, inne dużo lepiej, jeżeli chcemy np. pracować z urządzeniami wbudowanymi.

Kiedy odpowiemy sobie na te pytania, wybierzemy nasz język, no to czas zabrać się już za konkretną robotę, za naukę programowania. I to, co na pewno ja tutaj polecam, to zacząć od takiego minimalnego zestawu umiejętności, które na start my jako programiści po prostu musimy posiąść. Więc na pewno będzie to wspomniany już język programowania, jeżeli mówimy o wytwarzaniu aplikacji, to trudno sobie wyobrazić jakąś aplikację, gdzie nie będziemy mieli pewnej bazy danych, no gdzieś te informacje musimy przechowywać.

Tutaj też dochodzą różnego rodzaju rzeczy związane z pracą projektową, czyli takie standardowe narzędzia jak komunikacja z innymi członkami zespołu, jak system do zarządzania z zadaniami, również system kontroli wersji, bo jak będziemy pisali nasze aplikacje, to chcemy trzymać ten nasz kod źródłowy i dostać się do historii.

Tutaj, jeżeli chodzi o języki programowania, z dużym prawdopodobieństwem, jeżeli to będzie nasza pierwsza praca jako programisty, trafimy gdzieś do jakiegoś języka typowo zorientowanego obiektowo. Więc te podstawy obiektowości też powinniśmy tutaj poznać. Więc niby sporo tych wszystkich rzeczy jest, które sobie wymieniliśmy, ale prawda jest taka, że ponieważ jest to nasza pierwsza praca, pracujemy dopiero jako junior, to nie znaczy, że musimy wszystko znać na bardzo wysokim poziomie zaawansowania.

Często wystarczą takie naprawdę podstawy, tak żebyśmy się odnaleźli, ale jednocześnie, żebyśmy byli przydatną osobą w projekcie, bo jednak jak ktoś chce nas zatrudnić, chce nam płacić za wykonywaną pracę, więc musimy być przydatni w tym projekcie.

A jak taką przydatność sprawdzić najłatwiej? Poprzez pisanie jakichś praktycznych projektyów. Więc to jest kolejna rzecz, na której my powinniśmy się skupić, chcąc szukać zatrudnienia późniejszego jako programista – postawić na praktykę, realizować jakieś projekty i w ten sposób budujemy portfolio. Portfolio, które później możemy chociażby przedstawić podczas procesu rekrutacyjnego. I to jest takie praktyczne potwierdzenie naszych umiejętności.

Więc to jest kolejna rzecz, na której my powinniśmy się skupić, chcąc szukać zatrudnienia późniejszego jako programista – postawić na praktykę, realizować jakieś projekty i w ten sposób budujemy portfolio. Portfolio, które później możemy chociażby przedstawić podczas procesu rekrutacyjnego. I to jest takie praktyczne potwierdzenie naszych umiejętności.

 

Chciałbym Cię zapytać, czy poziom wejścia do tej branży, czy zostanie programistą, to jest bardzo duże i angażujące wyzwanie. Bo mam wrażenie, że od powszechnej świadomości tak to właśnie wygląda, że to mityczne osiągnięcie takiego badge’a jestem programistą, wymaga naprawdę niesamowitych umiejętności, niesamowicie dużo poświęconego czasu. 

Czy według Ciebie tak jest, że odpowiednią ilość czasu trzeba poświęcić na praktyczne zapoznanie się z technologiami, czy to, że później trzeba tę pierwszą pracę zdobyć, to wszystko powoduje, że ta poprzeczka jest wysoko, średnio, nisko? Jak to oceniasz w przypadku programistów?

 

Jak zawsze to zależy, czyli można powiedzieć, że tak jest to trudne i jest to łatwe. Bardzo dużo zależy od kontekstu. Tutaj na pewno warto wspomnieć o tym, że jest to nasza pierwsza praca. My uczymy się czegoś całkowicie nowego, robimy to jeszcze dodatkowo pierwszy raz, więc siłą rzeczy musi być to związane z pewnym wysiłkiem. Wiadomo, że za każdym razem jak będziemy szukali kolejnych ofert pracy, będziemy chcieli zmienić zatrudnienie, będzie nam już dużo łatwiej.

I nie jest to związane tylko i wyłącznie z samym IT, z samym programowaniem, ale to jest prawda uniwersalna również w innych branżach. Wystarczy spojrzeć na osoby bardziej doświadczone, które są już trochę w branży, chociażby spojrzeć na nas. Jesteśmy już od kilkunastu lat w branży i nie mamy większego problemu, żeby znaleźć jakiś inny projekt. Wręcz przeciwnie, to raczej pracodawcy w tym momencie zabiegają o osoby z doświadczeniem.

Natomiast, jeżeli chodzi o osoby, które dopiero co zaczynają swoją przygodę z programowaniem, to ten próg wejścia jest na tyle wysoko ustawiony, że jednak potrzebujemy odrobinę czasu, żeby nauczyć się tego. Tylko że też pamiętajmy o tym, że my startujemy na stanowisko takiego typowego specjalisty. Jak porównamy to do jakiegokolwiek innego specjalisty, to nie jest tak, że bierzemy pierwszą, lepszą osobę z miasta z chodnika i mówimy jej: idź, pracuj jako programista, czy idź, pracuj jako lekarz, dentysta, czy jakikolwiek inny specjalista. Nie, potrzebujemy trochę czasu, żeby nauczyć się tej całej specjalizacji. I bardzo podobnie wygląda to właśnie w kontekście programowania.

 

Tak, zainwestowany czas to jest na pewno ważny element całego tego równania, ale myślę, że skuteczność nauki, którą jak chcemy uskutecznić, no też jest ważna. Jeśli, tak jak powiedziałeś tutaj, podchodzimy do nauki programowania może w szkole podstawowej, może w szkole średniej, to tego czasu mamy jeszcze dosyć dużo, możemy popełniać wiele błędów, ta nauka nie musi być taka 100-procentowo efektywna, ale np. jeśli decydujemy się na przebranżowienie i jest to duża zmiana, nie tylko dla nas, ale też dla naszej rodziny, to skuteczność nauki programowania jest, myślę, tutaj jednym z kluczowych elementów.

Jakie rady dałbyś albo jakie wskazówki ku temu, żeby właśnie ta nauka programowania była skuteczna?

 

Jeżeli chodzi o taką skuteczność tego podejścia do całego procesu zmiany branży, to na pewno warto się do tego odpowiednio przygotować. Dlatego, że jeżeli podejdziemy tak sumiennie do całego tego procesu, to jesteśmy w stanie zwiększyć prawdopodobieństwo tego sukcesu.

Co możemy tutaj zrobić? Na pewno taka odpowiednia motywacja, czyli odpowiedzieć sobie na pytanie, po co ja to w ogóle robię. Dlatego, że jeżeli przychodzą do nas np.osoby, które chciałyby się niby pouczyć tego programowania, ale jednocześnie dobrze im jest, jak jest, niekoniecznie czują, po co w ogóle to robią, to w momencie, kiedy pojawią się jakieś trudności, a też nie oszukujmy się, te trudności prędzej czy później po prostu muszą się pojawić, jak będziemy uczyli się programowania, to te osoby nie będą miały wystarczająco siły, żeby przezwyciężyć to wszystko. To jest jedna rzecz.

Kolejna rzecz to sumienność. Czyli niezależnie od tego, czy chce mi się, czy mi się nie chce, ja siadam do tego komputera, robię zadania, gdzieś tam obejrzę kolejne nagranie, wideo, douczę się czegoś z tego. Wiadomo, że na początku motywacja jest na fajnym poziomie, tam myślimy od razu o tych, czy to wysokich zarobkach, czy jakichś fajnych aplikacjach, wyobraźnia działa tutaj cuda. Ale w pewnym momencie, kiedy przychodzi taka szara codzienność, my musimy i tak i tak usiąść do tego programowania i po prostu zrobić swoją robotę. Więc ta sumienność na pewno jest tutaj bardzo ważnym czynnikiem.

Ale to nie jest tak, że zawsze musimy się męczyć przy programowaniu. Dlatego, że jeżeli będziemy wybierali sobie takie fajne, ciekawe zadania, może w jakiś sposób np. zaczniemy programować aplikację, która połączona jest z naszym hobby, to to sprawi, że dużo łatwiej będzie nam i też przyjemniej siadać do tego oprogramowania.

Mieliśmy np. osoby, które łączyły realizację projektu ze swoim hobby. Była osoba, która pisała aplikację do śledzenia wyników sportowych, była zainteresowana sportem, często gdzieś tam chodziła na treningi, a dodatkowo po godzinach jeszcze pisała aplikację, która była z tym związana. Więc łączymy tutaj dwie rzeczy i dużo przyjemniej później siada się do tego projektu. Więc o to też warto zadbać.

Kolejna rzecz, na którą zwróciłbym uwagę, to postarać się zminimalizować ten zestaw wszystkich umiejętności, kompetencji, od których zaczynamy na starcie. To swoją drogą jest jeden z bardzo częstych błędów, jakie ludzie popełniają na początku swojej drogi z programowaniem. Zbyt dużo rzeczy biorą na siebie jednocześnie. Np. takim standardem jest, że ludzie zaczynają naukę od nawet dwóch, trzech języków programowania, co swoją drogą jest ogromnym błędem, bo nauka jednego języka programowania jest już wyzwaniem, a co dopiero więcej niż jednego.

Co jeszcze tutaj warto zrobić? Postawić na praktykę, nie uczyć się teorii, tylko realizować projekty, bo to jest z naszego punktu widzenia najlepsze, co możemy zrobić. Wspierać się nowymi technologiami. Obecnie mamy bardzo rozwiniętą sztuczną inteligencję, która również może być niezwykle pomocna przy nauce programowania, więc nie bać się tych nowych technologii, nie bać się sztucznej inteligencji, ale odwrócić tę całą zależność i wykorzystać sztuczną inteligencję dla nas, niech ona nam pomoże w nauce programowania.

I też nie robić tego tylko i wyłącznie samodzielnie. Znaleźć jakąś grupę wsparcia, znaleźć jakiegoś mentora, który pomoże nam w całym tym procesie. Dlatego, że jeżeli będziemy mieli jakieś wątpliwości i możemy do kogoś odezwać, też zobaczyć jak druga osoba rozwiązuje swoje problemy, to dużo łatwiej przez takie naśladowanie tej osoby będziemy w stanie później realizować nasze projekty.

Warto też otaczać się takimi osobami, które już przeszły tę swoją drogę, czyli właśnie zawodowymi programistami, no bo oni najlepiej wiedzą, jak to wygląda w praktyce, więc zawsze będą w stanie coś nam tutaj doradzić.

Kolejna rzecz to sumienność. Czyli niezależnie od tego, czy chce mi się, czy mi się nie chce, ja siadam do tego komputera, robię zadania, gdzieś tam obejrzę kolejne nagranie, wideo, douczę się czegoś z tego. Wiadomo, że na początku motywacja jest na fajnym poziomie, tam myślimy od razu o tych, czy to wysokich zarobkach, czy jakichś fajnych aplikacjach, wyobraźnia działa tutaj cuda. Ale w pewnym momencie, kiedy przychodzi taka szara codzienność, my musimy i tak i tak usiąść do tego programowania i po prostu zrobić swoją robotę. Więc ta sumienność na pewno jest tutaj bardzo ważnym czynnikiem.

 

Tak, czyli rzetelna praca włożona w naukę, otaczanie się też tymi aspektami związanymi z programowaniem, właśnie tak jak powiedziałeś, zanurzenie się niejako w tym świecie zdecydowanie pomaga.

Ale dla wszystkich tych, którzy myślą o programowaniu jako swojej drodze zawodowej, to zdobycie tej pierwszej pracy jest też nie lada wyzwaniem na ich drodze właśnie do zostania programistą. Zazwyczaj jest tak, że po zdobyciu tej pierwszej czy drugiej pracy, później jest już znacznie łatwiej, zdobywa się doświadczenia, ma się już czym pochwalić kolejnemu pracodawcy, idzie to już troszkę prościej, ale zdobycie tej pierwszej pracy jest swego rodzaju wyzwaniem.

Dlatego chciałbym Cię teraz zapytać, co możemy zrobić, żeby pomóc samemu sobie, co może zwiększyć nasze szanse w tych pierwszych procesach rekrutacyjnych.

 

Jasne. Taką na pewno podstawą podstaw jest to, żebyśmy mieli odpowiednie umiejętności, odpowiednie kompetencje, czyli to, co mówiliśmy sobie wcześniej. Dlatego, że dobry zestaw umiejętności będzie sam siebie bronił w dużej mierze. I jeżeli będziemy mieli fajne projekty, jeszcze dodatkowo właśnie poparte tym, że to my je zrobiliśmy, dokładnie wiemy, co jest w środku, jak to działa, jest to taka podstawa, bez której nie pójdziemy dalej.

Tylko że obecnie rynek jest odrobinę wymagający i nie możemy tak powiedzieć, że ja zrobiłem swoją dobrą robotę, jestem programistą i to od razu firmy będą się o mnie zabijały. Nie, jednak musimy wyjść z tym na wolny rynek i odpowiednio przedstawić naszą kandydaturę. Ja czasami mówię, że musimy w odpowiedni sposób sprzedać te nasze umiejętności.

Jak możemy to zrobić? Na pewno taką podstawą podstaw jest CV oraz dobre portfolio. Tutaj u nas takim wręcz standardem rynkowym jest to, że osoby, które uczą się programowania, przygotowują swoje portfolio, umieszczają te swoje portfolio na GitHubie czy jakimkolwiek innym publicznym repozytorium i w tym momencie my pokazaliśmy w praktyce nasze umiejętności. Ktoś, kto będzie zainteresowany naszą kandydaturą może wejść na naszego GitHuba, może zobaczyć, jak ten mój kod wygląda. Może mu się podobać, może mu się nie podobać, ale to pokazuje moje konkretne umiejętności.

Jeżeli mamy to umieszczone na GitHubie, to warto też rozbudować moje CV o te informacje. Ja tutaj sugeruję bardzo często, żeby dodać np. taką sekcję „zrealizowane projekty” w ramach mojego dokumentu. Ponieważ szukamy pierwszej pracy jako programista, musimy w jakiś sposób udowodnić potencjalnemu pracodawcy, że ja mam konkretne umiejętności, że odnajdę się w tym projekcie. A ponieważ nigdy wcześniej nie pracowałem jako programista, to muszę zaoferować mu coś innego, czyli właśnie te zrealizowane projekty, bo on może wtedy sobie to wszystko zweryfikować.

Kiedy już mówimy o projektach, warto też wspomnieć o tym, żeby ten projekt po prostu był ciekawy. Dużo osób uczy się programowania, dużo też osób realizuje bardzo podobne projekty. Często to jest np. taka nudna, standardowa lista to do czy jakaś prosta aplikacja typu CRUD. I z jednej strony nie ma nic złego w tego typu aplikacjach, bo każdy programista, który przechodzi na początku tę drogę, musi przez podobne aplikacje przejść. Natomiast my chcemy zrobić coś więcej. My nie chcemy być przeciętnym kandydatem, który gdzieś tam jest w połowie tej stawki, czy może nawet dalej, tylko my jednak celujemy w samą górę stawki, chcemy, żeby nas ktoś zatrudnił.

I to, co możemy tutaj zrobić, to postarać się, żeby ten unikatowy biznes, który rozwiązuje nasza aplikacja, przyciągał uwagę potencjalnych firm. Czyli np. zamiast prostej listy to do dorobić do tego jakąś historię. Niech to będzie aplikacja, która rozwiązuje mój konkretny problem. Wspomnieliśmy wcześniej, że można to połączyć z naszym hobby, czyli np. aplikacja do śledzenia postępów sportowych. Ale może ktoś z twojej rodziny ma np. jakiś sklep spożywczy czy sklep z butami. Możemy przygotować aplikację, która będzie rozwiązywała właśnie konkretny taki problem i jest to na pewno już dużo ciekawsze.

To, na co warto też tutaj zwrócić uwagę, to że mamy na rynku totalny wysyp osób, które są po bootcampach, które są po jednym szkoleniu. Tego typu osoby bardzo często mają w swoim portfolio tylko i wyłącznie jeden projekt. I wtedy my jesteśmy taką osobą jednego projektu. Wiadomo, że nie wygląda to najlepiej z punktu widzenia rekrutera, który będzie później przeglądał takie dokumenty, stąd starajmy się po prostu nie pokazywać siebie jako osobę jednego projektu, tylko zróbmy coś więcej, bądźmy tym programistą już prawdziwym z krwi i kości i dopracujmy nasze portfolio.

To jest jedna rzecz, na co na pewno warto zwrócić uwagę. Kolejna rzecz, jeżeli już szukamy pracy, dopracowaliśmy CV, dopracowaliśmy portfolio, jeżeli szukamy firm, do których będziemy aplikowali, starajmy się odzywać się nie tylko do tych firm, które idealnie pasują do naszego profilu. Dlatego, że jak przeglądamy ogłoszenia o pracę, to co znajdziemy w tych ogłoszeniach, ja lubię o tym mówić, że to jest tak zwany opis kandydata idealnego, czyli taka lista życzeń pracodawcy, kogo ja bym chciał konkretnie zatrudnić.

I to jest w pełni zrozumiałe, że my nie do końca będziemy pasowali do tego idealnego wzorca. Może np. będzie nam brakowało jakiejś umiejętności związanej z konkretną biblioteką czy z konkretną bazą danych, ale i tak próbujmy. Oczywiście też nie pobadajmy tutaj w skrajności, jeżeli firma będzie szukała jakiegoś super wyjadacza z dziesięcioletnim doświadczeniem, a my co dopiero zaczynamy, no to i tak nie mamy większych szans, ale jednak próbujmy swojego tutaj szczęścia. Może np. pójdziemy na pewne kompromisy, może będziemy mieli ciekawsze portfolio, może zgodzimy się na odrobinę niższą stawkę i to spowoduje, że i tak, i tak dogadamy się z tą firmą. Może np.dogadamy się na staż czy darmowe praktyki.

Swoją drogą jest to też coś, na co warto zwrócić uwagę, bo wiele osób nie chce iść na staże, bo staże kojarzą się dosyć często z takim wyzyskiem czy w ogóle z tym, że pracujemy tam za darmo, a niekoniecznie tak jest, możemy znaleźć również płatne staże, a to z kolei powoduje, że jak już mamy np. te trzy miesiące doświadczenia na takim stażu, my później już nie konkurujemy z osobami bez doświadczenia komercyjnego, bo my już mamy doświadczenie komercyjne. Więc to powoduje, że na pewno jesteśmy dużo, dużo dalej.

Co jeszcze możemy zrobić? Personalizować nasze dokumenty. Na rynku bardzo często mamy takie wręcz, jak mówię o tym, patologie, że osoby, które zaczynają szukać pracy, jeszcze nie do końca są gotowe na ten proces. Coś już się nauczyły, ale jeszcze nie są w pełni gotowe i wręcz po omacku na ślepo rozsyłają swoje dokumenty do wszystkich firm. Można spotkać się z takimi sytuacjami, że ludzie rozsyłają 200–300 swoich dokumentów, czyli tak wręcz spamują cały rynek swoją kandydaturą. To, co ja tutaj zdecydowanie polecam, to wybrać mniejszą liczbę tych firm, ale odpowiednio spersonalizować te dokumenty.

Jeżeli np. firma szuka programisty Java ze znajomością JavaScriptu, no to niech w moim dokumencie będzie odzwierciedlenie tej informacji i wtedy już jestem dużo lepiej dopasowanym kandydatem do tej firmy, więc jest większe prawdopodobieństwo, że firma zwróci na mnie uwagę.

To i może ostatnia rzecz jeszcze, bo już sporo mamy takich podpowiedzi, to otworzyć się na alternatywne miejsca szukania pracy. Ponieważ mamy sporo potencjalnych kandydatów na rynku, to np. wiele firm nie decyduje się na to, żeby na popularnych portalach z ogłoszeniami o pracę publikować swoje ogłoszenia, bo nie mają takiej potrzeby, tylko np. umieszczą tę informację tylko i wyłącznie na swojej stronie firmowej, a i tak i tak zbiorą odpowiednią ilość potencjalnych kandydatów, więc pamiętajmy o tego typu miejscach, jak szukamy ogłoszeń o pracę, ale też z powodzeniem możemy wykorzystać LinkedIna.

Swoją drogą naprawdę bardzo fajne miejsce do szukania rekruterów i do szukania potencjalnych ofert pracy.

 

Dokładnie, czyli zadbajmy o nasz wizerunek, ten na LinkedInie, ten, który pokazujemy np. w portfolio. Zadbajmy też o zdobywanie doświadczeń.

 

Czyli markę osobistą, tak?

 

Tak, do tego chciałem gdzieś tam nawiązać, ale myślę, że ta marka osobista zawsze musi gdzieś być podszyta tymi konkretami, tą wartością, którą dowozi, doświadczeniem można byłoby powiedzieć. I to jest właśnie teraz taki kluczowy aspekt dla osób początkujących, żeby jak najszybciej to doświadczenie zebrać.

Do tego całego worka różnych możliwości, które tutaj, Tomku, zaprezentowaliśmy, myślę, że dorzuciłbym jeszcze taką opcję, taką możliwość jak realizowanie projektów wolontaryjnie. Jest wiele różnych organizacji, schronisk, tego typu miejsc i instytucji, które nie będą w stanie za to zapłacić, ale jeśli faktycznie np. zrobimy stronę, zrobimy jakąś prostą aplikację, no to jest naprawdę dla pracodawcy, dla rekrutera pokazanie, że zrobiliśmy coś konkretnego, co produkcyjnie jest wykorzystywane i to już jest olbrzymia przewaga dla naszej kandydatury.

 

Tak, niewątpliwie bardzo fajny sposób, bo nie dość, że mamy praktyczne potwierdzenie naszych umiejętności, zrobiliśmy coś dobrego, pomogliśmy komuś innemu, a dodatkowo właśnie ta nasza praca jest wykorzystywana już produkcyjnie w praktyce.

 

Wiesz, myślę sobie, że niezależnie od tego, ile tutaj porad byśmy nie zaprezentowali, to i tak zawsze będzie całkiem duże grono osób, które będzie się pytało, od jakiego języka programowania zacząć, czy może bardziej iść w kierunku backendu, frontendu, DevOpsa, aplikacji mobilnych. Co Ty odpowiadasz osobom, które zadają Ci takie pytania?

 

Jeżeli już pytają mnie ludzie konkretnie, od jakiego języka programowania zacząć, to odsyłam ich najczęściej do jednego z moich materiałów, gdzie mam przygotowaną taką listę standardowych pytań. Można powiedzieć, że ta lista to jest właśnie weryfikacja Twoich preferencji, Twoich możliwości, tego, co konkretnie w Twoim wypadku najlepiej będzie się sprawdzało. Bo wiadomo, że dla mnie idealny pierwszy język to niekoniecznie będzie ten sam język to w Twoim wypadku czy w wypadku jakiejkolwiek innej osoby.

I jest zbiór takich standardowych pytań, na które powinniśmy sobie tutaj na początku odpowiedzieć, wybierając nasz pierwszy język programowania. Więc na pewno będą to nasze predyspozycje, nasze preferencje. Jeżeli np. dużo lepiej odnajdujesz się w przypadku frontendu, to wybierzesz inny język niż jeżeli dużo lepiej odnajdujesz się w świecie algorytmów, w świecie backendu. I tak samo aplikacje mobilne, systemy wbudowane również mają swoje preferowane języki, więc to jest na pewno pierwsza rzecz.

Kolejna rzecz, na którą zwróciłbym tutaj uwagę, to popularność samego rozwiązania. Wiadomo, że mamy technologie, które już od wielu lat nie są zbyt często wykorzystywane, też dużo mniej projektów w tego typu technologiach jest, dużo mniej dokumentacji i raczej nie chcemy w tym momencie uczyć się tego typu rozwiązań, tylko staramy się trzymać tych najpopularniejszych, bo pod wieloma względami będzie nam łatwiej, szczególnie jeżeli jest to nasz pierwszy język programowania.

Kolejna rzecz, na którą warto zwrócić uwagę, to finanse. Nasze zarobki, jednak większość osób, szczególnie tych osób, z którymi ja obecnie współpracuję, uczy się programowania w jednym konkretnym celu. Chcą znaleźć pierwszą pracę jako programista. Więc te zarobki tutaj niewątpliwie mają bardzo duże znaczenie.

I warto tutaj zrobić sobie takie bardzo proste ćwiczenie. Wejść na portale z ogłoszeniami i zobaczyć, na jakie konkretne stanowiska, na jakie konkretne technologie obecnie jest duże zapotrzebowanie. Swoją drogą, jak przejrzymy tego typu ogłoszenia o pracę, to dostaniemy też listę takich umiejętności, których my musimy się nauczyć i później łatwiej będzie nam się do tego wszystkiego odnieść.

Ale przygotowuję tego typu pytania, gdzieś tam odsyłam ludzi do tego, ale wiem, że i tak i tak na końcu zawsze pada pytanie, no dobra, czy np. Java czy Python to jest dobry wybór? Można powiedzieć, że w takim dużym uproszczeniu, jeżeli będziemy trzymali się tych najpopularniejszych języków, czyli właśnie wspomniany Python, wspomniana Java czy [C#? 42:35] z dużym prawdopodobieństwem będzie to dobry wybór. Nie mam pewności, czy będzie to najlepszy wybór w Twoim wypadku, ale z dużym prawdopodobieństwem jest to wystarczająco dobry wybór, żeby móc rozpocząć swoją naukę programowania. Później można zawsze douczyć się innego języka programowania.

Pamiętajmy też o tym, że doświadczeni programiści często znają kilka, czasami nawet kilkanaście różnych języków programowania, ale nie jest to dobra droga dla osób, które dopiero rozpoczynają swoją drogę z IT. Tutaj jednak lepiej skupić się na jednym konkretnym języku.

I warto tutaj zrobić sobie takie bardzo proste ćwiczenie. Wejść na portale z ogłoszeniami i zobaczyć, na jakie konkretne stanowiska, na jakie konkretne technologie obecnie jest duże zapotrzebowanie. Swoją drogą, jak przejrzymy tego typu ogłoszenia o pracę, to dostaniemy też listę takich umiejętności, których my musimy się nauczyć i później łatwiej będzie nam się do tego wszystkiego odnieść.

 

Tak, zdecydowanie. Myślę sobie, że te osoby, które rozpoczynają, nieco przeceniają ten wybór pierwszego języka programowania. Wydaje mi się, że do tej przysłowiowej emerytury będą już mieli z tym językiem do czynienia. Tymczasem to najczęściej jest właśnie tak, jak mówisz, że po pierwsze rozwijamy się w tej branży, po drugie widzimy, co nam się podoba, co nie, douczamy się innych języków, zmieniamy tę naszą karierę w innym kierunku, później jeszcze w innym i najczęściej, tak jak mówisz, po iluś tam latach najczęściej ten nasz wór doświadczeń zawiera już przynajmniej kilka różnych języków, więc oczywiście wybór pierwszego języka jest znaczący, ale to nie jest coś, co absolutnie zdeterminuje Twoją karierę.

Ja teraz chciałbym na chwileczkę wrócić do samej nauki programowania. W internecie mamy mnóstwo materiałów. To są różnego typu książki, tutoriale, różnego typu dema, kanały na YouTube. Naprawdę internet jest przesiąknięty darmową wiedzą potrzebną do nauki programowania.

Jakoś tak się jednak dzieje, że ludzie chcą płacić takim osobom, na przykład jak Ty, mentorom, za to, żeby przejść przez ten proces z nimi, żeby faktycznie był i czuwał nad nim ktoś, kto ten proces wspomoże. Krótkie pytanie: dlaczego?

 

Bo to się po prostu opłaca pod wieloma względami. Mamy bardzo dużo osób, które uczą się programowania. I tak jak powiedzieliśmy sobie wcześniej, dla jednego dane rozwiązanie będzie bardzo dobre, ale dla innej osoby inne rozwiązanie będzie dużo lepsze. Więc to nie jest też tak, że płatna nauka jest idealnym rozwiązaniem dla każdego.

Pamiętajmy, że my zawsze czymś płacimy. Czasami będziemy płacili naszym czasem, czasami będziemy płacili naszym komfortem, a czasami zapłacimy. Płacimy po prostu naszymi pieniędzmi. Stąd, jeżeli nie dysponujemy odpowiednimi funduszami, jak najbardziej możemy znaleźć wszystkie informacje za darmo w internecie. Mamy świetne materiały po angielsku, mamy świetną dokumentację. Tylko że tego wszystkiego jest bardzo, bardzo dużo.

My rozmawiamy już od prawie godziny, odpowiadając na jedno podstawowe pytanie. Jak zostać programistą? A to jest dopiero początek tego wszystkiego. Zawsze można iść gdzieś tam głębiej i dalej i w momencie kiedy uczymy się programowania, takich pytań, takich wątpliwości jest bardzo, bardzo dużo, a ponieważ pierwszy raz przechodzimy przez tę całą drogę, to wiadomo, że będziemy mieli bardzo dużo pytań, też będziemy robili bardzo dużo błędów, często też takich kosztownych błędów.

Prosta rzecz, na początku wiele osób zaczyna naukę programowania dwóch, trzech języków programowania Z ich punktu widzenia wydaje się to jak najbardziej logiczne, bo zwiększają swoją szansę, bo uczą się więcej niż jednej technologii. Natomiast praktyka pokazuje, że przez to wydłużają 2-, a nawet 3-krotnie czas, którego potrzebują, żeby nauczyć się programowania ostatecznie i podjąć pierwszą pracę.

I gdyby w tym momencie zapłacili nawet za godzinę konsultacji z osobą, która przeszła przez tę drogę i niech ta konsultacja będzie naprawdę bardzo droga, to z ich punktu widzenia będzie to ogromna oszczędność czasu, ale również pieniędzy, bo ktoś pokazał im, że są w złym miejscu, że jakby podjęli nie do końca optymalną decyzję, a wiadomo, że takich decyzji gdzieś tam będzie więcej.

Jeżeli chodzi o czas, na przykład bardzo często rozmawiam z potencjalnymi kursantami, którzy od 3 czy 4 lat uczą się gdzieś programowania i uczą się tymi swoimi metodami, ale jednak czegoś tutaj zabrakło. Dalej nie pracują jako programiści. 3–4 lata to jest naprawdę bardzo, bardzo długi okres, gdzie przykładowo nasze materiały są przygotowane obecnie na taki czas mniej więcej od pół roku do roku takiej intensywnej nauki. Jest to okres, w którym jesteśmy w stanie rzeczywiście przeprowadzić taką osobę od początku do końca.

Tutaj dwa, trzy dodatkowe lata, które tak naprawdę zostały, można powiedzieć w pewnym sensie zmarnowane, bo jednak ta osoba nie pracuje jeszcze jako programista. Gdybyśmy policzyli tylko minimalną pensję programisty, to jakby wydatek, który ta osoba poczyniła, nie zarabiając tych pieniędzy, jest naprawdę bardzo duży.

A to są tylko niektóre zalety tego typu zorganizowanej nauki. Wiadomo, że jak dostaniemy dobre materiały, dostaniemy grupę, która nam pomoże, jest na pewno dużo łatwiej, dużo przyjemniej też uczyć się programowania. A przede wszystkim to, co dla nas najistotniejsze, zwiększamy szansę, że cały ten proces zakończy się sukcesem, bo będziemy unikali różnego rodzaju błędów.

 

Uczenie się kilku języków od początku, brak takiej rzetelności w podejściu do tej nauki, to na pewno są przykłady błędów, przed którymi mentor może nas gdzieś tam uchronić. Ale zastanawiam się, jakie jeszcze błędy spostrzegasz wśród ludzi, którzy podchodzą do nauki programowania. Jakie najczęściej przewinienia na tej drodze popełniają?

 

Przede wszystkim warto zaznaczyć tutaj, że to nie jest nic takiego strasznie złego, że te błędy się pojawiają. Chciałbym w pewnym stopniu rozgrzeszyć te osoby, dlatego że w momencie kiedy uczymy się pierwszy raz programowania, my robimy to pierwszy raz. Siłą rzeczy jesteśmy zmuszeni do tego, że będziemy popełniali jakieś błędy. Całkowicie to inaczej wygląda, kiedy przechodzimy przez ten proces dziesiąty, dwudziesty raz. Tak jak ja już ze wszystkimi naszymi kursantami kilkaset razy, całkowicie inaczej się patrzy w tym momencie na ten proces.

Więc na pewno jednym takim bardzo często powtarzanym błędem jest to, że unikamy pomocy innych osób. I wcale nie mówię tutaj tylko i wyłącznie o takiej typowo komercyjnej, płatnej pracy. Dlatego, że w naszej branży często panuje takie właśnie niesłuszne przekonanie, że prawdziwy programista musi nauczyć się wszystkiego samodzielnie. On ma siedzieć po godzinach, siedzieć weekendami, znaleźć wszystko sam w dokumentacji, sam wszystko rozwiązać. A to powoduje często taką frustrację, powoduje też, że cały ten proces nauki bardzo mocno się rozciąga.

A też mówiliśmy sobie wcześniej, że w naszym otoczeniu jest coraz więcej osób, które coś mają wspólnego z programowaniem. I tak jak rozmawiam z naszymi kursantami, okazuje się, że sporo osób gdzieś wśród swoich znajomych, wśród rodziny ma kogoś, kto jest bezpośrednio już związany z programowaniem. Więc warto wykorzystywać tego typu znajomości, warto prosić o pomoc. Nawet na zasadzie takiej prostej, luźnej rozmowy, że coś ta osoba nam podpowie. Więc to na pewno pierwszy błąd, unikanie pomocy innych.

Kolejna rzecz, przeciąganie całego tego procesu. Całkowicie inaczej będzie wyglądała nasza motywacja, jeżeli będziemy uczyli się programowania przez trzy lata, niż gdyby udało nam się to skondensować w pół roku czy w rok. Wiadomo, że po czasie ta motywacja nasza znacząco spadnie, też jeżeli tak długo uczymy się programowania, to ludzie często robią sobie jakieś dłuższe przerwy, a bo wakacje, pojedziemy na dwa tygodnie gdzieś, no przecież nie będę uczył się wtedy programowania, po powrocie trudno jest znowu zabrać się za robotę, to się przeciąga, zapominamy później i ludzie mi mówią, że no oni tak naprawdę po takiej przerwie prawie że od początku musieli wielu rzeczy się uczyć. Więc to jest na pewno bardzo, bardzo duży błąd.

Brak celu takiego, brak skupienia na tym. To, co tutaj mocno polecam, to wręcz wbić sobie w kalendarz konkretne daty. Kiedy ja mam zrealizować ten projekt? Kiedy ja chcę już przygotować moje portfolio? Kiedy ja będę szukał pracy? Oczywiście dać sobie jakieś tam zapasy, dać sobie odpowiedni czas na całe te poszukiwanie pracy, ale niech to już będzie w tym moim kalendarzu i przypominać sobie o tym, wtedy na pewno te przerwy nie będą tak dokuczliwe.

Co jeszcze? Wspomnieliśmy już o tym, że ludzie zbyt ambitnie podchodzą do tego procesu na początku, czyli np. mamy osoby, które uczą się tych dwóch, trzech języków programowania, ale też mamy sporo kandydatów, którzy chcieli od razu uczyć się na full stack dewelopera. Okej, to jest bardzo fajna ścieżka, ale niekoniecznie dobra dla juniora. Dużo lepszym, optymalnym wyborem będzie, jeżeli zaczniemy tylko i wyłącznie od samego backendu, a kiedy będziemy już w branży, dopiero douczyć się frontendu i dopiero wtedy zmienić stanowisko lub nie, bo niekoniecznie będziemy mieli taką potrzebę i taką chęć.

Brak praktyki, ludzie po prostu nagminnie uczą się z książek, bo czytają te książki, więc wydaje im się, że uczą się tego oprogramowania, ale programowania nie nauczymy się, tylko czytając książki, czy nawet oglądając jakieś świetne tutoriale. Trzeba usiąść do komputera, trzeba realizować projekty, trzeba pisać kod, no nie ma tutaj drogi na skróty, tego po prostu nie przejdziemy.

I ostatni taki częsty błąd to wrzucanie na siebie takich bardzo wygórowanych oczekiwań. Przykładowo: Tomek, ja znalazłem swoją pierwszą pracę w cztery miesiące. I ludzie słyszą tego typu rzeczy i później są wielce zszokowani, że jednak w jej wypadku to nie poszło tak gładko, że w jej wypadku trzeba poświęcić więcej czasu, żeby tego wszystkiego się nauczyć, że po drodze pojawiają się jakieś problemy.

Więc nie porównujmy się tutaj tylko i wyłącznie z innymi osobami, ale jednak patrzmy na swoje możliwości, patrzmy na swoje predyspozycje i też dajmy sobie odrobinę czasu. To jest proces, który często wymaga czasu, ale jednak warto zaufać temu procesowi, bo mamy dużo osób, które przeszły przez to wszystko z sukcesem.

 

Czyli mamy całkiem sporo przeszkód, o które łatwo się potknąć na drodze do zostania programistą. Jestem przekonany, że sam przynajmniej lekko się zachwiałeś na jednym z tych właśnie aspektów w swojej drodze. Dlatego jestem ciekaw, czy mając taką wiedzę na temat zostania programistą, jaką masz teraz, czy coś byś zmienił w tym, jak Ty zostawałeś programistą?

 

Tak, niewątpliwie wiele rzeczy bym zmienił. Od momentu kiedy ja zaczynałem uczyć się programowania, minęło już ładnych kilkanaście lat, więc też warto wspomnieć, że wtedy ten rynek wyglądał odrobinę inaczej. Teraz pod niektórymi względami jest łatwiej, ale też pod niektórymi względami jest trudniej.

Na pewno mamy dużo większy dostęp do wiedzy, mamy dostęp do sztucznej inteligencji, mamy też większy dostęp do osób, które przeszły już przez ten proces i to jest na pewno grupa rzeczy, którą bym dużo chętniej, ale też dużo mocniej zaadoptował w moim procesie nauki programowania.

U mnie tego zabrakło. Ja bardzo mocno uczyłem się sam, sam wyważałem te, można powiedzieć, otwarte drzwi i to powodowało, że popełniłem po drodze bardzo dużo błędów. Moje pierwsze rozmowy o pracę wyglądały naprawdę bardzo słabo. To nie było tak, że od razu poszedłem na pierwszą rozmowę i dostałem zatrudnienie. Nie, no też mi firmy odmawiały i to odmawiały tak bardzo mocno, mówiąc, że to zdecydowanie nie jest miejsce dla mnie. Ale jednak gdzieś tam się nie poddałem, tylko przeszedłem przez cały ten proces.

Ale tak jak dzisiaj sobie właśnie mówiliśmy, kiedy robimy coś pierwszy raz, to jest w pełni normalne, że popełniamy te błędy.

Z takich rzeczy, które w moim wypadku bardzo fajnie zagrały, to ja od razu postawiłem na praktykę, więc od razu realizowałem projekty i dalej polecam takie rozwiązanie. Też stosunkowo szybko zacząłem chodzić na rozmowy kwalifikacyjne. Czyli można to trochę podciągnąć właśnie pod praktykę. Dlatego kiedy zderzyłem te moje oczekiwania, ale też moje możliwości z rynkiem, dostałem od razu informację zwrotną i z jednej strony nie dostałem się do firmy, ale od razu uzyskałem informację, czego mi zabrakło, co jeszcze muszę zrobić, i za jakiś czas mogłem spróbować jeszcze raz, oczywiście po nauczaniu się już tego wszystkiego.

 

Myślę sobie, że po przesłuchaniu tego wszystkiego, o czym dzisiaj powiedziałeś, nikt już nie ma wymówki i nie będzie mógł powiedzieć, że nie wie, jak podejść do tego procesu zostania programistą, tak że chciałbym Ci bardzo podziękować za podzielenie się tą wiedzą i zapytać Cię też, gdzie możemy słuchaczy odesłać, gdzie przebywasz w internecie.

Przede wszystkim dziękuję za wspólnie spędzony czas. Jestem przekonany, że jeżeli chcecie uczyć się programowania, to znajdzie się dla Was miejsce w naszej branży. Więc jeżeli szukacie już konkretnych informacji, to zapraszam na nasze strony. Czy to kierunekjava.pl, czy kierunekprogramista.pl. Tam można się zapisać, tam można pobrać darmowe materiały, które właśnie rozszerzą to wszystko, o czym dzisiaj sobie mówiliśmy.

Natomiast, jeżeli chcecie dowiedzieć się czegoś więcej, konkretnie na temat mojego doświadczenia związanego z programowaniem, to również zachęcam do zaproszenia mnie do znajomych, chociażby na LinkedInie, tam macie całe moje doświadczenie typowo komercyjne.

Dzięki!

 

Super, oczywiście wszystkie te linki będą w notatce do odcinka. Tomku, jeszcze raz Ci bardzo dziękuję za rozmowę i pozdrawiam. Cześć!

 

Dzięki, trzymaj się cześć!

 

I to na tyle z tego co przygotowałem dla Ciebie na dzisiaj. Po więcej wartościowych treści zapraszam Cię do wcześniejszych odcinków. A już teraz, zgodnie z tym co czujesz, wystaw ocenę, recenzję lub komentarz w aplikacji, której słuchasz, lub w social mediach.

Zawsze możesz się ze mną skontaktować pod adresem krzysztof@porozmawiajmyoit.pl lub przez media społecznościowe.

Ja się nazywam Krzysztof Kempiński, a to był odcinek podcastu Porozmawiajmy o IT o tym, jak zostać programistą. Zapraszam do kolejnego odcinka już wkrótce.

Cześć! 

 

+ Pokaż całą transkrypcję
– Schowaj transkrypcję
mm
Krzysztof Kempiński
krzysztof@porozmawiajmyoit.pl

Jestem ekspertem w branży IT, w której działam od 2005 roku. Zawodowo zajmuję się web-developmentem i zarządzaniem działami IT. Dodatkowo prowadzę podcast, kanał na YouTube i blog programistyczny. Moją misją jest inspirowanie ludzi do poszerzania swoich horyzontów poprzez publikowanie wywiadów o trendach, technologiach i zjawiskach występujących w IT.