Careers

Zanim zostaniesz juniorem - jak wykorzystać praktyki do budowy kariery programisty.

Sposobów, by uczyć się programowania na własną rękę jest sporo - kursy na platformach, video na YouTubie, książki… Są jednak rzeczy, których trudno nauczyć się w pojedynkę. Praca w zespole, dotrzymywanie terminów, iteracje produktu zgodnie wymaganiami product ownera - takiego doświadczenia często brakuje początkującym developerom. Dlatego w tym roku Ragnarson zorganizował letnie praktyki Ruby on Rails.
cover-wywiad-praktykanci
Spośród 100 kandydatów, wybrana 9 ukończyła dwumiesięczną symulację projektu komercyjnego. Praktykanci nie tylko uczyli się współpracy w SCRUM-owym zespole, ale również poznali charakter pracy z product ownerem. Grupa została podzielona na 2 zespoły tworzące osobne aplikacje: wirtualną książkę kucharską TastyBook oraz aplikację do tworzenia listy zakupów ShoppingTroll. Ostatecznym wyzwaniem postawionym przed młodymi programistami było skomunikowanie obu aplikacji przy wykorzystaniu udostępnionych API. Po oficjalnym demo finalnego produktu, praktykanci podzielili się z nami swoimi doświadczeniami.
Co sądzicie o Ruby jako języku programowania? Czy dobrze się Wam w nim pracowało?

Karol: Ja już na etapie robienia inżynierki byłem zdecydowany, że chcę iść w Ruby. Wtedy kolega ściągnął mnie do firmy, w której pracował i jakoś przerwałem pracę w innym języku. Teraz chcę wrócić do Ruby. Bardzo mi się podoba to, że ma dużo rozwiązań popakowanych w gemach. Jest dobra dokumentacja, można znaleźć opisy funkcji a jeżeli jest jakiś problem, to rozwiązania są na StackOverflow (zwłaszcza do nowych wersji).

Adam: Wcześniej myślałem “Ale Ruby jest dziwne, jak w tym można pisać. Nie ma tutaj żadnych średników, klamer, żadnych dolarów, co to jest.” Ale gdy zacząłem pisać w Railsach to stwierdziłem, że jest super. Nie trzeba niczego dodatkowego tworzyć, kod fajnie wygląda. Po pewnym czasie postawiłem sobie nawet wyzwanie, by pisać jak najmniej linijek działającego kodu.

Michał Wa.: Miałem wcześniej doświadczenie między innymi z Pythonem. Jak zacząłem praktyki to zobaczyłem, że to co Python robi dobrze, Ruby robi jeszcze lepiej. Preferuje się w nim pisanie czytelnego kodu, który można wręcz przeczytać na głos. Nie to co na przykład PHP.

Bartek: Też podzielam opinię, że jest to język w którym się pisze czytelny kod. Jeżeli chodzi o RoR, to jest bardzo wydajne narzędzie do programowania. Wysoki poziom abstrakcji może ułatwiać dla początkujących kodowanie. Ale z drugiej strony mogą pojawiać się niejasności, bo człowiek uczy się Ruby on Rails, a w innych technologiach tak naprawdę jest to trudniejsze.

Najważniejsza nauka z praktyk?

Grzegorz: Mi się podobało to, że pracowaliśmy w SCRUMie. Bardzo sobie cenię to, że mogłem go dobrze poznać. Techniczne rzeczy też były ważne, jak najbardziej. Ale w przeciwieństwie do umiejętności twardych, których można się nauczyć samemu, do tego zdecydowanie potrzeba ludzi.

Piotr: Przed praktykami w Ragnarson miałem już doświadczenie z Ruby on Rails. Robiłem projekt na uczelni z kilkoma znajomymi. Też korzystaliśmy z Gita i GitHuba, pracowaliśmy zdalnie i zadania w grupie wykonywaliśmy asynchronicznie. Tyle że na praktykach praca była o wiele lepiej zorganizowana. Ktoś kontrolował postępy, robił code review, były testy - nikt nie wierzył tylko “na słowo”, że wszystko będzie działać.

Bartek: Cieszę się, że miałem okazję pracować w grupie. To było moje pierwsze doświadczenie jeżeli chodzi o robienie aplikacji w kilka osób. Uważam, że nabyłem te umiejętności miękkie, których nie miałem szansy się nauczyć wcześniej i dodatkowo poznałem metodykę SCRUM.

Adam: Potwierdzam - praca w zespole była najważniejsza. Każdy na pewno miał już okazję pracować nad czymkolwiek w większej czy mniejszej grupie. Mimo wszystko poziom pracy, z którym ja się spotkałem dotychczas, a to co było na praktykach - niebo a ziemia. Wszystko było zorganizowane, nie było chaosu tylko ktoś nas korygował i pilnował, żeby wszystko szło w dobrym kierunku.

Czy braliście ten symulowany projekt “na poważnie”, czy raczej była to dla Was zabawa?

Damian: Ja chciałbym zaznaczyć, że określenie naszego projektu jako “symulowany” troszkę boli w serduszku. Dla mnie był to bardzo prawdziwy projekt, w który włożyłem serce i traktowałem na poważnie - chciałem zrobić go jak najlepiej i sumiennie wykonać swoje taski.

Michał Wa.: Zdecydowanie projekt traktowałem poważnie. Chciałem udowodnić sobie, że potrafię i oczywiście zaprezentować się jak najlepiej. Jeśli chodzi o komunikację i pracę wspólną, to atmosfera była zdecydowanie rozluźniona i bardzo przyjemnie się w ten sposób współpracowało.

Michał Wi.: Podobało mi się to, że team i mentorzy mieli sporo pomysłów. Ludzie robili wszystko, żeby wpasować nowe zadania i żeby było co robić.

A jak wyglądał mentoring?

Piotr: Od pierwszego spotkania było mówione, że sami decydujemy o tym co robimy, a mentorzy są po to, aby pomagać. Pierwszy tydzień był trochę niejasny, ale gdy oswoiliśmy się z tym modelem pracy, to zaczęliśmy dużo lepiej korzystać z pomocy i uwag mentorów.

Adam: Mentorzy byli codziennie obecni na spotkaniach zespołu, ale parę razy chcieli żebyśmy to my je poprowadzili. Natomiast zazwyczaj była to luźna rozmowa i każdy mówił o tym co udało mu się zrobić i później padało pytanie czy każdy ma co robić. Jak nie było problemów, to po prostu kończyliśmy spotkanie. Przy okazji doceniam, że nasi mentorzy byli zróżnicowani - byli zarówno seniorzy, jak i Nikodem, który jest juniorem. Zwłaszcza dlatego, że czasem ciężko było mi opisać problem, z którym się zmagałem. Często wydawał mi się zbyt prosty, więc na początku głupio mi było pisać do seniora i wolałem zagadać do juniora. Z czasem to się zmieniło i pisałem do wszystkich. Najfajniejsze, że potrafiłem spędzić 2 godziny nad jakimś zagadnieniem, a gdy napisałem do jednego z mentorów to 5 minut później dostałem dwie linijki kodu naprawiające wszystko.

Dawid: Zawsze gdy był problem to mentorzy pomagali, ale nie było to prowadzenie za rączkę.

Michał Wi.: Dla mnie ten mentoring i code review to była dosyć znana sprawa. Kiedy zacząłem się uczyć, korzystałem z pomocy dwóch znajomych programistów. Na praktykach bardzo mi się podobało, że nie musiałem odrywać mentorów od pracy i wiedziałem, że mieli na nas przeznaczony czas. Code review nam się po prostu “należał” - tak jak było umówione :) Jeżeli chodzi o merytoryczną stronę, to nie mogę mieć zastrzeżeń, bo jeśli ktoś czegoś nie wiedział, to zawsze uzyskiwał odpowiedź.

Czy praca zdalna w przypadku praktyk była na plus czy na minus?

Damian: Tak naprawdę najwięcej nauczyłem dzięki recenzjom przy PR’kach. Co do zdalnej formy prowadzenia praktyk, uważam, że dużo przyjemniej by mi się pracowało, gdybym był na miejscu i miał mentora gdzieś obok siebie. Wiadomo, ten kontakt face-to-face jest łatwiejszy kiedy pracuje nad projektem, a mentor ma swoje rzeczy do roboty i nie chce mu zawracać głowy.

Michał Wa.: Ja miałem odwrotne uczucia. Rozumiem, że komunikacja zdalna była rzadsza, natomiast wydaje mi się, że w naszym teamie nie stanowiło to problemu jeżeli chodzi o współpracę. Chat zawsze był otwarty, mentorzy przeważnie byli dostępni, więc moim zdaniem nie wpłynęło to negatywnie na komunikację. A ja osobiście lubię pracować sam zdalnie i w skupieniu.

Adam: Mi zdalna współpraca jak najbardziej pasowała. Zwłaszcza biorąc pod uwagę, że w trakcie praktyk miałem też inną pracę, także mogłem sobie lepiej wydzielić czas. Siadałem sobie i programowałem - czy to dwie godziny rano i potem dwie godziny wieczorem, czy w trakcie jakiegoś okienka w ciągu dnia. Brak natychmiastowej komunikacji mi nawet pasował, bo ja sam nie miałem możliwości odpowiedzieć komuś gdy musiałem coś zrobić w pracy. Dla mnie to było idealne. I nie zdażyło mi się tak, że nikt mi nie odpowiedział na palący problem. Zawsze przynajmniej jedna osoba była w stanie mi pomóc.

Karol: Ja już ponad rok pracuję zdalnie. Wcześniej w ogóle nie miałem takiej możliwości, ale pandemia w tym jednym “pomogła”, więc mi taka praca odpowiada. Oczywiście co jakiś czas przeszedłbym się do biura spotkać i porozmawiać z ludźmi, ale tak ogólnie jest super, bo nie muszę wcześnie wstawać. Wystarczy mi chwila i jestem gotowy do pracy.

Pod koniec praktyk musieliście zintegrować ze sobą obie stworzone aplikacje. Opowiedzcie mi proszę trochę o współpracy międzyzespołowej.

Bartek: Pracowałem nad API z drugim teamem i mogę powiedzieć, że bardzo mi się to podobało. Zwłaszcza ze względu na zdalną i asynchroniczną współpracę. Lubię pracować wieczorem, kiedy mam czas, czasem nawet w nocy. Mogłem napisać na Slacku co zrobiłem i jakie są problemy. Komunikacja była na bieżąco, super się dogadaliśmy i wszystko działało.

Karol: Współpraca była asynchroniczna. Gdy zaczęliśmy robić API, to ustaliliśmy mniej więcej co mamy zrobić. Jak ktoś skończył swoją część, to pisaliśmy, że skończyliśmy i pytaliśmy czy rezultat pasuje.

Michał Wa.: Miałem okazję współpracować nad API z Bartkiem i Karolem. Podzielam ich odczucia - współpraca bardzo sprawnie poszła i nie było żadnych problemów.

Przejdźmy więc do ostatniego wielkiego pytania - jakie plany na przyszłość?

Piotr: Na niedaleką przyszłość - na pewno kontynuacja studiów. Jeśli chodzi o samego Ruby’ego, to jeszcze nie wiem. Na studiach mieliśmy kilka przedmiotów do wyboru, a ja akurat poszedłem na taki gdzie był Ruby. Ale pisałem też w innych językach, np. C#. Ogólnie nie jestem przeciwko web dev, ale też nie widziałem wszystkich opcji w pełnej okazałości.

Damian: Na pewno chciałbym dokończyć studia, bo został mi ostatni semestr. Obecnie piszę projekt inżynierski - aplikację do zarządzania stajnią. Zacząłem go w Django, także trochę nie po drodze z Ruby. Myślę jednak, że fajnie jest znać różne alternatywy. Lubię się uczyć nowych rzeczy i jeżeli miałbym powiedzieć co preferuje, to ciężko byłoby mi na tę chwilę odpowiedzieć. Wszystkie rozwiązania mają swoje plusy i minusy, ale nie miałbym nic przeciwko pracy w Ruby’ego. Railsy bardzo dużo rzeczy ułatwiają, to na pewno.

Adam: Planuję pogłębiać wiedzę z Rails. Wcześniej robiłem trochę w Laravelu i trochę w Expressie. Myślałem “wow, w tym Laravelu jest wszystko co potrzebuje”. Okazuje się, że Rails też jest wszystko, tylko o wiele ładniejsze i jeszcze lepsze. Ponadto zdecydowanie bardziej wolę webówkę aniżeli rypanie C++ w konsoli. Już to przerabiałem w technikum i nie chcę do tego chce wracać. Planuje też zacząć studia od października i mieć pracę na pół etatu. I tak lubię programować w swoim wolnym czasie, więc równie dobrze mogę to robić w grupie, za pieniądze i z osobami, które dadzą mi feedback. Tego najczęściej mi brakowało, kiedy robiłem coś samemu.

Dawid: Ja podobnie jak koledzy, na pewno będę chciał dalej rozwijać się w Ruby. Mam już ten komfort, że pracuje jako PHP’owiec, więc mogę sobie na spokojnie robić kursy. Mocno mi się nie śpieszy, ale finalnie chciałbym kiedyś przejść całkowicie na Railsy.

Bartek: Ja mam w planach dokończyć studia, po czym planuje iść w webówkę. Jeżeli chodzi o Railsy to też mam zamiar pogłębiać swoją wiedzę i dostać pracę.

Karol: Ja chciałbym właśnie iść w Ruby’ego. Teraz jak najszybciej chciałbym zmienić pracę ze swojej aktualnej. Obecnie śledzę błędy bardziej od strony radiowej w logach, więc to coś zupełnie innego niż programowanie. Wolę jednak robić strony i iść w web development aplikacji.

Michał Wa.: Ja w bliskiej przyszłości chce skończyć technikum i zdać maturę. Jeżeli chodzi o zawód, to myślę że Railsy będą mnie interesować. Webówka jest bardzo mainstreamową gałęzią jeżeli chodzi o development.

Grzegorz: Mam jeszcze rok szkoły i maturę, więc będę chciał to ogarnąć. Potem poszedłbym na studia, chociaż to się jeszcze zobaczy. Jeśli już, to wybiorę raczej coś w kierunku informatyki. Jeszcze nie wiem czy będzie to Web development, bo sumie jeszcze zainteresowałem się algorytmami i AI. Nie skupiam się jeszcze teraz na tym co chce robić w przyszłości, żebym później nie żałował decyzji.

Michał Wi.: Ja będę chciał iść całkowicie w Ruby oraz w Railsy. Pewnie będę się douczał JavaScriptu i może jakiegoś frontentowego frameworki, chociaż nie jest to moja pierwsza miłość. Ale chcę przynajmniej mieć pełny ogląd - nawet jeśli nie będę na froncie pracować, to będę wiedzieć co się dzieje, jeśli będzie taka potrzeba.

Jakieś porady dla młodych osób, które chcą spróbować swoich sił w programowaniu?

Adam: Jedynie co mógłbym powiedzieć, to żeby po prostu nie bać się spróbować, bo nigdy nic nie stracimy. Zawsze można zrezygnować. Jednak jak już jesteśmy na takich praktykach, to powinniśmy wyciągać z nich jak najwięcej, bo jest to dla nas. I nie należy bać się pytać. Ja na początku się bałem i wszystko mogłoby szybciej pójść gdybym się nie bał.

Piotr: A ja powiem, żeby nie bać się aplikować, tylko wymaga to trochę pomyślunku. Sam jak to robiłem to miałem pustego GitHuba. Znalazłem więc na szybko jakiś kod ze studiów, włożyłem trochę dodatkowej pracy i wrzuciłem, żeby było. Nie spodziewałem się, że ktoś się odezwie.

Dawid: Podobnie jak koledzy, uważam że praktyki to fajne doświadczenie. Miałem bardzo intensywny miesiąc w pracy, a jednak starałem się uczestniczyć, w szczególności pod koniec. Od każdego indywidualnie zależy ile czasu poświęci. Niezależnie czy jest to dla danej osoby mały wysiłek czy duży, moim zdaniem warto.

Michał Wa.

Michał Wa.

Uczeń technikum informatycznego w Gdańsku z zamiłowaniem do programowania od najmłodszych lat, miłośnik muzyki, od czasu do czasu żeglarz jachtowy.
Adam

Adam

Absolwent technikum informatycznego, stawiający swoje pierwsze kroki w sektorze IT. Ambitny, ciekawy świata, chcący poszerzać swoją wiedzę w wielu dziedzinach. Fan motoryzacji, wolne chwile lubi spędzać na długich spacerach z psem.
Dawid

Dawid

Absolwent Uniwersytetu Wrocławskiego mający już kilkuletnie doświadczenie jako Frontend i PHP developer.
Piotr

Piotr

Student trzeciego roku informatyki. Swoją przygodę z aplikacjami webowymi rozpoczął od poznania Ruby on Rails kilka miesięcy przed praktykami. Miłośnik gier komputerowych, literatury fantasy i muzyki elektronicznej.
Karol

Karol

Człowiek od modemów aspirujący do pracy jako Ruby Developer. Lubi rozwijać się na wielu płaszczyznach. W głębi duszy majsterkowicz i "maniak" sportowy. Uwielbia siatkówkę i biegi z przeszkodami.
Michał Wi.

Michał Wi.

Od kilkunastu lat prowadzi pracownię lutniczą. Nastawiony na ciągłą naukę, rozwój i pracę w zespole.
Damian

Damian

Student Uniwersytetu im. Adama Mickiewicza w Poznaniu. Entuzjasta starochińskiego Weiqi/Baduk/Go, szeroko pojętej grozy i talarków popcornowych.
Grzegorz

Grzegorz

19-letni uczeń technikum zainteresowany web developmentem, sztuczną inteligencją i matematyką. W wolnym czasie chodzi również na siłownię. W przyszłości planuje robić coś w IT, ale nie wie jeszcze dokładnie jaką specyfikację wybierze.
Bartosz

Bartosz

20 letni student informatyki, początkujący programista. W wolnym czasie lubi czytać książki sci-fi i historyczne, oglądać dokumenty historyczne, czytać artykuły o świecie IT/technologiczne oraz jeździć rowerem.
Natalia Krakowiak

Natalia Krakowiak

Absolwentka studiów około-ekonomicznych na Uniwersytecie Łódzkim. Zrezygnowała z doktoratu na rzecz budowania praktycznego doświadczenia w branży IT. W Ragnarson zaczynała jako stażystka w dziale HR i Rekrutacji, obecnie pełni rolę Account Manager oraz Investment Specialist. Fanka gier RPG, kuchni wegańskiej i literatury fantasy.