Przyszły Programista - Opinia i rozmowa z Oskarem Białkiem, absolwentem Projektu
- Artykuł sponsorowany
- Kategoria: Pozostałe zagadnienia
Rozmowa z Oskarem Białkiem, absolwentem Projektu "Przyszły Programista". W treści rozmowy znaleźć można cenne rady w jakim kierunku rozszerzać swoją wiedzę po ukończeniu studiów ścisłych.
Oskar Białek studiował logistykę na Wojskowej Akademii Technicznej w Warszawie zanim wziął udział w Projekcie "Przyszły Programista". Opinia Oskara zawiera cenne rady i wskazówki odnośnie nauki programowania. Absolwent Projektu opowiedział z jakich powodów zdecydował się zdobyć zawód programisty.
Z wywiadu dowiesz się dlaczego w Projekcie wybrał naukę języka C# na specjalizacji. Poznasz także zadania jakie wykonuje w swojej pracy oraz jego przemyślenia na temat pracy programisty.
W wywiadzie Oskar kilka razy nawiązuje do Artura Nowakowskiego, który jest założycielem Projektu "Przyszły Programista". Gdy Oskar był studentem w Projekcie otrzymywał od Artura cenne rady i wskazówki odnośnie kształtowania swoich kompetencji programistycznych oraz wyboru najlepszej dla siebie ścieżki rozwoju.
Redakcja: Czy po ukończeniu studiów pracowałeś w branży logistycznej?
Oskar Białek: Praca w branży logistycznej w zasadzie znalazła mnie sama - rozpocząłem ją jeszcze w trakcie studiów. W ramach dorywczej, wakacyjnej pracy zostałem zatrudniony w firmie z branży Car Fleet Management, czyli takiej, która zajmuje się leasingiem, wynajmem i zarządzaniem flotą pojazdów. Początkowo zastępowałem jednego z pracowników na czas jego urlopu. Po tym okresie dostałem propozycję stałego zatrudnienia, którą przyjąłem. Pracowałem w tej firmie na różnych stanowiskach przez ponad 4 lata. Kończyłem pracę jako Koordynator ds. Logistyki.
Redakcja: Dlaczego postanowiłeś nauczyć się programowania w Projekcie "Przyszły Programista"?
O. B.: Jestem osobą, która nie lubi się nudzić. Co więcej, za nudne uważam również wykonywanie bez przerwy tych samych czynności w ramach monotonnej pracy, a taką stała się dla mnie moja poprzednia praca. Zacząłem poszukiwać możliwości zmiany tego stanu rzeczy. W rozmowach ze znajomymi pojawił się temat programowania. Najpierw zgłębiłem nieco to zagadnienie samodzielnie. Natomiast, aby ukierunkować i usystematyzować naukę, postanowiłem zasięgnąć wsparcia mentorskiego. Tu wybór nie był prosty – rynek zalała masa kursów dla osób, które chcą zostać programistami. W moim przypadku kurs stacjonarny odpadał ze względu na pracę. Z drugiej strony również szkoda było mi weekendów, aby w całości poświęcić je na kurs z zajęciami weekendowymi. Po dalszych poszukiwaniach zdecydowałem się na propozycję Artura, ponieważ Projekt daje możliwość pogodzenia nauki z pracą i dostosowuje ją do tempa kursanta.
Redakcja: Czy studiowanie logistyki pomaga w nauce programowania?
O. B.: Jeśli chodzi o mnie, to skończyłem logistykę przedsiębiorstw na Wojskowej Akademii Technicznej w Warszawie. Czy studia pomogły mi w nauce programowania ? I tak, i nie – na pewno studia (niezależnie od kierunku) same w sobie uczą tego, w jaki sposób przyswoić dość solidną dawkę wiedzy w ograniczonym czasie oraz tego, jak ją "poukładać" w głowie, żeby zostało z tej wiedzy jak najwięcej na przyszłość (nawet, jeśli jest to tylko nieodległa przyszłość, czyli kolokwium czy egzamin). Tutaj właśnie pojawia się druga strona medalu – studenci często uczą się zagadnień zgodnie z zasadą ZZZ – zakuć, zdać, zapomnieć. Do nauki programowania nie polecam jednak podchodzić w ten sposób, ponieważ większość tematów jest ze sobą powiązana jak elementy układanki – bez opanowania podstaw (czy też po opanowaniu i zapomnieniu o nich) nie będziesz w stanie zgłębić bardziej zaawansowanych obszarów. Z kolei jeśli podstawy będą odpowiednio usystematyzowane, to zdecydowanie łatwiej zrozumieć trudniejsze zagadnienia.
Redakcja: Czy aplikowałeś do Projektu, aby nauczyć się języka C#?
O. B.: Przed przystąpieniem do Projektu samodzielnie próbowałem się uczyć Javy – dużo się o tym języku słyszy, stąd pewnie mój wybór. W trakcie Projektu, przy wyborze specjalizacji odbyłem z Arturem ciekawą wideorozmowę, na której omówiliśmy "za i przeciw" różnych języków. Zbadaliśmy regionalny rynek pracy (mieszkam w Warszawie, stąd czynnik ewentualnego braku ofert był akurat mało prawdopodobny, niezależnie od technologii). Finalnie mój wybór w ukierunkowaniu dalszej nauki padł na język C#.
Redakcja: Czy udział w Projekcie "Przyszły Programista" był dobrą decyzją?
O. B.: Z perspektywy czasu (Projekt zakończyłem pod koniec 2018 r.) mogę śmiało stwierdzić że udział w szkoleniu był dobrą decyzją. Osoba, która staje na początku ścieżki do nauki programowania, może poczuć się przytłoczona ilością dostępnych w Internecie materiałów i źródeł do nauki. Samodzielnie ciężko może być jej również zmotywować się do systematycznej nauki po pracy oraz wybrać spośród źródeł te najbardziej wartościowe i przyswoić je w odpowiedniej kolejności, aby wiedza poukładała się w głowie.
Redakcja: Jak mobilizowałeś się do nauki?
O. B.: Tak jak wcześniej wspomniałem, podczas nauki pracowałem na pełny etat. Dodatkowo, pracowałem w Warszawie, a mieszkałem w oddalonym od niej o kilkanaście kilometrów Piasecznie, stąd codzienne dojazdy do i z pracy również zajmowały sporo czasu. Niemniej starałem się wygospodarować co najmniej godzinę dziennie w dni robocze (zwykle było to jednak nieco więcej, koło 2 h) oraz z 3-4 h w weekend. Warto dodać, że czterogodzinna nauka programowania to nie tylko stukanie przez cztery godziny w klawiaturę, ale również przerobienie kursu online czy przeczytanie książki, mniej lub bardziej technicznej. Głównym czynnikiem motywującym była perspektywa tworzenia ciągle czegoś nowego, w związku z realizacją szeregu własnych projektów podczas trwania kursu. Postawiłem sobie również za cel w przyszłości pracę całkowicie zdalną, z jakiegoś ustronnego miejsca na Ziemi, a programowanie wydawało się idealnym zawodem do znalezienia takiej pracy.
Redakcja: Zanim rozpocząłeś na Specjalizacji naukę C# wcześniej na Fundamencie Projektu uczyłeś się języków C++, PHP, JavaScript i Java. Jak poznawało Ci się C# mając umiejętność programowania w językach poznanych na Fundamencie?
O. B.: Myślę, że było zdecydowanie łatwiej. Ucząc się różnych języków programowania można zauważyć, że mają one wiele cech wspólnych. Po opanowaniu jednego z nich, nauka kolejnego jest już zdecydowanie prostsza – oczywiście nie mówię tu o opanowaniu go w trzy dni do perfekcji. Mam raczej na myśli taki poziom, który pozwoli zacząć pisać pierwsze programy. Według mnie jest on osiągalny zwykle w przeciągu kilku-kilkunastu dni. Prawidłowość tę widać zwłaszcza przy językach obiektowych – po nauce Javy "przesiadka" na C# jest stosunkowo prosta. Przyswajamy nową składnię, czasem instalujemy inne IDE, piszemy pierwsze niekompilujące się dziwolągi, poznajemy konstrukcje specyficzne dla nowego języka, poprawiamy nasze dziwolągi i… bum, działa! W przypadku C# aplikacje webowe, pisane z wykorzystaniem Razora/Blazora korzystają z elementów HTML, stąd wcześniejsze poznanie PHP i innych technologii webowych również znacznie ułatwiło mi naukę.
Redakcja: Dlaczego po ukończeniu Fundamentu Projektu wybrałeś naukę języka C#?
O. B.: Chciałem, żeby był to "nowoczesny" język obiektowy. Dodatkowo niekoniecznie pociągały mnie technologie front-endowe. Stąd obszar mojego zainteresowanie skupił się głównie na Javie i C#. Po wspomnianej wcześniej dyskusji z Arturem, postawiłem na ten drugi język.
Redakcja: Czy podczas udziału w Projekcie miewałeś sytuacje kryzysowe, gdy myślałeś że nie jesteś w stanie nauczyć się programowania?
O. B.: Skłamałbym, gdybym powiedział, że nie doświadczyłem takich chwil – głównie chodzi o sytuacje, gdzie natrafiasz na problem, którego za nic w świecie nie możesz rozwiązać. O ile w aktualnej pracy spotykam się z tym stosunkowo często i stało się to dla mnie normalne, o tyle podczas nauki były to momenty strasznie frustrujące i demotywujące do nauki – czasem ma się wrażenie, że to wszystko jest bez sensu i się do tego nie nadajesz. Jednak nie ma co się załamywać, warto wziąć sobie do serca zasadę, że praktycznie każdy lub podobny problem, na który natrafiłeś – był już rozwiązany przez kogoś innego. Wystarczy – w odpowiedni sposób – wyszukać rozwiązania w Internecie, a w przypadku braku gotowego rozwiązania – zadać rzeczowe pytanie na jednym z popularnych forów lub grup na Facebooku i bez problemu jesteśmy w stanie szybko uzyskać odpowiedź.
Redakcja: Jakie są według Ciebie plusy programowania w języku C#?
O. B.: Największą zaletą, ale i jednocześnie wadą C# jest powiązanie z Microsoft. Aktualnie Microsoft co prawda rozwija tę technologię w stronę multiplatformową (.NET Core), ale np. Visual Studio w wersji na komputery Mac jest dużo bardziej okrojone, niż w wersji na Windows. Z drugiej strony, powiązanie z takim technologicznym gigantem pozwala na bardzo szybki rozwój języka (nowe wersje wydawane są średnio co ok. 2 lata), a także na mocne promowanie go na różnego rodzaju konferencjach. Jeśli chodzi o inne zalety, to wymieniłbym stosunkowo niski próg wejścia, możliwość tworzenia zarówno aplikacji typowo konsolowych, czy serwisów działających wyłącznie w back-endzie, a także lekkich aplikacji webowych w ASP .NET czy .NET Core z wykorzystaniem Blazora, lub full stackowych aplikacji z użyciem frameworków, jak Angular do opakowania aplikacji od strony użytkowej. Dodatkowo przy pomocy języka C# można również tworzyć aplikacje mobilne na platformie Xamarin.
Redakcja: Jak przebiegały Twoje poszukiwania pracy w branży IT?
O. B.: W poszukiwaniu pracy poszedłem trochę na żywioł, ponieważ w poprzedniej firmie złożyłem najpierw wypowiedzenie, a dopiero później zacząłem przeglądanie ofert i aplikowanie na te, które mnie zainteresowały. Miałem 3-miesięczny okres wypowiedzenia i udało mi się znaleźć zatrudnienie dopiero w jego końcówce. Trochę mnie to zaskoczyło zwłaszcza w obliczu powtarzanych wszędzie sloganów, o braku programistów na rynku. Okazało się, że jest to prawda tylko częściowo – to znaczy programistów faktycznie brakuje, ale juniorów jest dość sporo. Warto zatem wyróżniać się spośród nich, a nie liczyć na to, że skoro poznałem podstawy kilku języków programowania, to pracodawcy będą przepychać się w drzwiach z ofertami pracy dla Ciebie.
Byłem na kilku rozmowach, chyba 5 lub 6, na większości z nich rekruterzy twierdzili, że byłem dobrze przygotowany. W firmie, w której aktualnie pracuję, miałem rozmowę techniczną, która poszła mi dobrze. Dodatkowo bardzo dobrze "dogadaliśmy się" z moim obecnym przełożonym. Dzięki temu na rozmowę zaproszony został od razu prezes firmy. Omówiliśmy szczegóły zatrudnienia i podpisałem umowę.
W jednej firmie nie chciałem pracować z własnej woli, ponieważ na rozmowie rekruterka dopiero zaczęła zapoznawać się z moim CV, poczynając od imienia i nazwiska – poczułem się zlekceważony. Na pozostałych, na których nie udało mi się dostać propozycji zatrudnienia przeważnie otrzymywałem informację, że poszukiwali ludzi z doświadczeniem zawodowym.
Redakcja: Jak pracuje Ci się jako programista i czym zajmuje się firma, która Cię zatrudniła?
O. B.: Pracuję w firmie średniej wielkości, która tworzy oprogramowanie dla branży fintech, na stanowisku Software Engineer. Nasz główny produkt to system windykacyjny z możliwością obsługi udzielania pożyczek. W ramach codziennych obowiązków w naszym zespole zajmujemy się częścią pożyczkową systemu. Rozwijamy i utrzymujemy serwisy i usługi w ramach tego modułu, głównie są to elementy napisane w .NET. Część w aplikacji desktopowej w technologii WinForms, a część w aplikacji webowej w .NET Core z wykorzystaniem Blazora. Mocny nacisk stawiamy również na bazy danych (pracujemy z SqlServer) oraz pisanie wydajnych zapytań i procedur składowanych. Przy realizacji projektu dla naszego największego klienta byłem odpowiedzialny za stworzenie dla nich modułu analitycznego – bazy danych oraz odpowiednich struktur na duże ilości danych wraz ze strukturami, na podstawie których klient wykonuje raportowanie. Moją pracę mogę zdecydowanie uznać za satysfakcjonującą i pozwalającą na codzienne wyzwania.
Redakcja: Jak dobrze Projekt "Przyszły Programista" przygotował Cię do pracy jako programista C# oraz czy Twoi przełożeni są z Ciebie zadowoleni?
O. B.: Na rozmowie kwalifikacyjnej w obecnej firmie mój aktualny przełożony był pozytywnie zdziwiony poziomem moich umiejętności, zwłaszcza w obliczu tego, że przebranżowiłem się i nie pracowałem wcześniej jako programista. Jednakże nie ma co ukrywać, że dopiero "prawdziwa" praca daje możliwość szybkiego rozwoju. Myślę, że w ciągu pierwszego pół roku pracy z klientem, uzupełniłem wiedzę zdobytą podczas kursu. Dodatkowo, praca szybko zweryfikowała znajomość zagadnień związanych z bazami danych i zakres omówiony na kursie był zdecydowanie zbyt podstawowy.
Redakcja: Jaki jest według Ciebie poziom Twojej wiedzy po ukończeniu szkolenia w porównaniu do absolwentów informatyki, którzy mają podobne doświadczenie w branży IT?
O. B.: Jeśli chodzi o różnice w wiedzy z zakresu samego programowania czy też znajomości języka C#, to uważam, że istotnych nie było i poziom jest zbliżony. Natomiast absolwenci informatyki zwykle znają ode mnie więcej zagadnień związanych z tematami pobocznymi jak: zarządzanie i administracja serwerami, wcześniej wspomniane bazy danych i niuanse związane z ich wydajnością, a także "starszymi" technologami, których nie poznałem na kursie – jak WinForms, WPF czy WCF. Uczą się również rzeczy, które w obecnym świecie już mało komu są przydatne – jak programowanie w assemblerze i inne tego typu relikty przeszłości.
Redakcja: Jakie są według Ciebie zalety i wady pracy zdalnej?
O. B.: Praca zdalna to coś, co było jednym z motywatorów mojego przebranżowienia się i rozpoczęcia nauki programowania w ogóle. Wolność związana z tym, że codzienne obowiązki możesz wykonywać w zasadzie z dowolnego miejsca na ziemi, gdzie jest dostęp do Internetu jest dla mnie nieocenionym atutem. Aktualnie w związku z pandemią wiele firm, w tym również moja, zdecydowała się na wprowadzenie w całości bądź w dużej części pracy zdalnej. Część z tych firm, jak choćby Twitter, deklaruje, że pracownikom, którym ten sposób pracy przypadł do gustu nie będą robić utrudnień w przejściu w 100% na ten typ pracy. Pisząc te słowa, również pracuję zdalnie od prawie trzech miesięcy i jestem bardzo zadowolony. Wadami takiej pracy jest często to, że inni domownicy nie mogą przywyknąć, że "jesteśmy w pracy" i nie ma teraz czasu na gotowanie obiadu, rozwieszanie prania czy wyjście do sklepu. Koledzy, którzy mają dzieci również czasem narzekają, że nie mogą skupić się, bo maluchy nie rozumieją, że tata czy mama teraz pracuje. Przy dużym obłożeniu pilnymi zadaniami może być również problem z zakończeniem pracy o ustalonej godzinie. Często przychodzi ochota, żeby jeszcze tylko "coś skończyć", co przeciąga się czasem na kilkadziesiąt minut czy nawet kilka godzin.
Redakcja: Czy pracując jako programista znajdujesz czas na swoje hobby oraz na spędzanie czasu ze znajomymi?
O. B.: W piłkę nożną aktualnie grywam razem z kolegami z pracy, raz w tygodniu. Jeśli starcza mi sił i chęci, to również w weekend spotykam się z innymi znajomymi na kilka meczy. Siłownię staram się odwiedzać chociaż 2-3 razy w tygodniu, preferuję godziny poranne 6-7, zatem przed pracą. Pianino i fortepian niestety aktualnie poszły w odstawkę, ponieważ w miejscu mojego zamieszkania nie mam przestrzeni, żeby wstawić instrumenty. Weekendy są przeznaczone w całości dla mnie i bliskich. Zatem jest to czas, który spędzam z rodziną lub ze znajomymi. Wolny czas spędzam również nad rozwojem swoich umiejętności technicznych, przerabiając kursy lub książki z różnych dziedzin wiedzy – ostatnio był to kurs Maćka Aniserowicza i Damiana Widery dbmaster, obejmujący swoim zakresem zagadnienia związane z bazami danych, który to kurs swoją drogą serdecznie polecam.
Redakcja: Z jakich udogodnień możesz korzystać w swojej pracy?
O. B.: Osobiście nie jestem fanem podejścia, żeby przy wyborze pracy kierować się głównie tym, czy w biurze są przynajmniej dwa chillroomy z playstation czy xboxem, piłkarzyki, stół do bilarda, lodówka z zimnym piwkiem, flippery i tego typu rzeczy. Patrząc jednak po całości branży i woli pracodawców do urządzania takich rozrywek u siebie (będąc na rozmowie w firmie pracuj.pl z dumą oznajmili, że mają chillroom z leżakami i piaskiem na podłodze), sądzę, że wielu programistom to chyba pomaga… W mojej firmie jest stół do ping ponga, w którego organizowane są co jakiś czas turnieje, a oprócz tego w cieplejsze piątki robimy wspólnie grilla w ogrodzie przed biurem, a w chłodniejsze – organizujemy firmowe wyjścia np. na kręgle czy gokarty.
Redakcja: Jakich rad udzieliłbyś osobom, które chciałyby pracować w branży IT jako programiści?
O. B.: Doradziłbym chłodną głowę w podejściu tak do nauki, jak i poszukiwania zatrudnienia. Trzeba pamiętać o efekcie Dunninga-Krugera, czyli nie przesadzać z pewnością siebie, zwłaszcza będąc „na początku drogi”. W bardziej przyziemnych kwestiach – nie zniechęcać się brakiem odpowiedzi podczas poszukiwania pracy i przede wszystkim – nie kłamać w CV! Poznanie niewiele więcej niż nazwa danej technologii i wpisanie jej w CV w sekcji "Umiejętności" może nie być zbyt dobrym pomysłem i zostać bardzo szybko zweryfikowane podczas rozmowy technicznej. Pamiętajcie też, że najważniejszym językiem spośród języków programowania jest język… angielski. Warto się go uczyć nie tylko ze względu na komunikację w firmach, które tego wymagają, ale przede wszystkim z uwagi na dostęp do niezliczonej ilości wiedzy, dostępnej głównie za darmo w Internecie czy literaturze, napisanej w języku angielskim właśnie. Zespół tworzący Projekt "Przyszły Programista" stworzył świetną i darmową aplikację do nauki angielskich słówek w branży IT, z której też warto skorzystać: https://fiszki.it/. Na koniec polecę kierowanie się cytatem z Thomas’a Huxley’a – "Try to learn something about everything and everything about something".
Dołącz i Ty do fascynującego świata IT!
Spodobał Ci się powyższy wywiad? Chcesz zostać profesjonalnym programistą dla którego programowanie stanie się pasją? Jesteś inżynierem lub absolwentem studiów ścisłych? Jeśli odpowiedziałeś 3xTAK, to możesz wziąć udział w rekrutacji do Projektu "Przyszły Programista"!
Jeśli przejdziesz wymagającą rekrutację, a następnie ambitne szkolenie, to droga do świata IT stanie przed Tobą otworem! Wejdź teraz na stronę https://rekrutacja.przyszlyprogramista.pl a następnie wyślij swoje CV na dole strony w formularzu i przekonaj się, czy nadajesz się na programistę!
Satysfakcjonujących Wyzwań!
Artur Nowakowski z Zespołem Projektu "Przyszły Programista"
Jeśli natomiast chcesz sprawdzić jak dobrym programistą mógłbyś być, to przejdź na https://raport.przyszlyprogramista.pl i pobierz darmowy raport, który dla Ciebie przygotowano.