Tym razem rozmawialiśmy z Oskarem, który na specjalizacji wybrał kurs C#. Tworzymy wywiady z naszymi absolwentami, aby osoby rozważające dołączenie do Projektu mogły poznać go z perspektywy naszych studentów/absolwentów. Poznaj opinie Oskara oraz dowiedz się, co sądzi na temat nauki C#.
Jeśli interesuje Cię kurs C# oraz zastanawiasz się czy logistyk może zostać programistą, to opinia naszego absolwenta może być dla Ciebie pomocna, ponieważ przed dołączeniem do Projektu Oskar (oskarbialek.it) ukończył studia na kierunku logistyka przedsiębiorstw. Uczył się na Wojskowej Akademii Technicznej w Warszawie.
W wieku 25 lat rozpoczął naukę programowania. W Projekcie na specjalizacji wybrał kurs C#. Dzięki zdobytej wiedzy na fundamencie szkolenia oraz przerobieniu kursu C# w ramach specjalizacji otrzymał pracę w IT jako Inżynier Oprogramowania.
Oskar w rozmowie z Arturem opowiedział m.in. dlaczego wybrał naukę C#, gdzie aktualnie pracuje, jakie są jego wrażenia po ukończeniu kursu C#, ile wolnego czasu ma w tygodniu pracując jako programista. Zachęcamy Cię do przeczytania wywiadu.
Rozmowa z absolwentem Projektu „Przyszły Programista”
Artur Nowakowski: Czy jako logistyk przed rozpoczęciem nauki programowania próbowałeś znaleźć pracę 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.
Dlaczego zdecydowałeś się wziąć udział w Projekcie „Przyszły
Programista”?
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.
Do Projektu zgłaszają się m.in. osoby po takich kierunkach jak: logistyka, zarządzanie logistyczne, transport. Czy według Ciebie studiowanie takich kierunków pomaga w nauce programowania?
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.
Czy do Projektu aplikowałeś z myślą, żeby ukończyć kurs C#, czy zainteresowałeś nauką C# w trakcie szkolenia?
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#.
Jaka jest Twoja opinia o szkoleniu. Czy jesteś zadowolony ze swojej decyzji o dołączeniu do Projektu?
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.
Ile czasu podczas udziału w Projekcie przeznaczałeś zwykle na naukę programowania? Jak motywowałeś się do nauki?
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 2h) oraz z 3-4h 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.
Na pierwszym etapie szkolenia na fundamencie poznałeś takie języki jak C++, Java oraz PHP. Następnie na specjalizacji wybrałeś kurs C#. Czy łatwiej było Ci rozpocząć naukę C# mając za sobą kilka miesięcy nauki tych języków?
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ę.
Jakie języki programowania brałeś pod uwagę przy wyborze specjalizacji oraz czy jesteś teraz zadowolony, że po ukończeniu fundamentu szkolenia wybrałeś kurs C#?
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.
Czy w trakcie szkolenia doświadczyłeś trudnych chwil, gdy zastanawiałeś się, czy nie zrezygnować z nauki programowania, że programowanie nie jest dla Ciebie i jeśli tak, to jak sobie z takimi kryzysami radziłeś?
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ź.
Na Twojej stronie internetowej określiłeś siebie jako „C# hero”. To wskazuje na to, że musisz dobrze czuć się w tym języku. Jakie wymieniłbyś zalety języka C# porównując go z innymi językami, które poznałeś na fundamencie Projektu?
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.
W trakcie szkolenia zrobiłeś przy pomocy frameworka Angular sklep internetowy z suplementami. Skąd pomysł, aby stworzyć sklep internetowy?
Szukałem inspiracji na jakąś lekką aplikację webową, ale w zasadzie nie umiem powiedzieć, dlaczego zdecydowałem się akurat na taki projekt. Chciałem wykonać coś, co każdy, nawet mało techniczny rekruter będzie w stanie otworzyć w przeglądarce, „pokilkać” i sprawdzić, jak to działa.
Jak wyglądały Twoje poszukiwania pracy po ukończeniu Projektu? Powiedz proszę na ilu byłeś rozmowach rekrutacyjnych, ile czasu zajęło Ci znalezienie pracy oraz jaki otrzymałeś feedback od rekruterów? Czy sądzisz, że byłeś dobrze przygotowany do tych rozmów?
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 jakimś doświadczeniem.
W jakiej firmie pracujesz i na jakim stanowisku. Jakie są Twoje obowiązki? Czy ta praca daje Ci satysfakcję?
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.
Jak dobrze kurs C# w ramach Projektu „Przyszły Programista” przygotował Cię do projektowania i tworzenia oprogramowania w technologii .NET i czy Twój przełożony jest zadowolony z Twojego przygotowania do pracy jako programista?
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.
Jak oceniasz swoją wiedzę i umiejętności po ukończeniu szkolenia w porównaniu do osób o podobnym stażu, którzy są absolwentami studiów informatycznych?
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.
Programiści czasem pracują zdalnie, a niektórzy swoje obowiązki stale wykonują w domu. Czy lubisz pracę zdalną? Jakie widzisz pozytywne i negatywne aspekty pracy z domu?
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.
Częścią Twoich zainteresowań są gra na pianinie lub fortepianie, sporty sylwetkowe oraz piłka nożna. Ile wolnego czasu masz w tygodniu pracując jako programista i czy jest to wystarczająca ilość, abyś mógł przeznaczać go na swoje pasje oraz poświęcać czas rodzinie i przyjaciołom?
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.
W branży IT pracodawcom często zależy na tym, aby ich pracownicy mogli pracować w skupieniu i poczuciu komfortu. Starają się zatem, aby programiści zatrudnieni w ich firmach mieli różne udogodnienia. Jak z tą kwestią jest w Twojej firmie?
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.
Co byś powiedział osobom, które rozważają rozpoczęcie nauki
programowania?
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. 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!
Interesujesz się nauką C#? Zastanawiasz się jaki kurs C# wybrać? 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 weźmiesz udział w Projekcie po ukończeniu fundamentu szkolenia pomożemy Ci ukierunkować Twoją ścieżkę kariery w taki sposób, aby była ona najlepiej dopasowana do Twoich potrzeb.
Jeśli przejdziesz wymagającą rekrutację zyskasz m.in. możliwość nauki C# na szkoleniu, a także innych ciekawych języków programowania. 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”
P.S.
Jeśli natomiast chcesz sprawdzić jak dobrym programistą mógłbyś być, to przejdź na stronę: raport.przyszlyprogramista.pl i pobierz darmowy raport, który dla Ciebie przygotowałem.
Sprawdź – Jak dobrym programistą mógłbyś być!