Jak zbudować swoje portfolio na GitHubie?
Znalezienie pierwszej pracy w IT wbrew pozorom nie jest prostym zadaniem. Aby tego dokonać, przed przyszłym pracodawcą trzeba wykazać się jeszcze przed rozmową rekrutacyjną. Jak tego dokonać? Najlepiej wykorzystując swój profil na GitHubie jako swoje portfolio!
Marcin Kwiatkowski. Full-Stack developer z ponad 12-letnim doświadczeniem komercyjnym w branży IT. Absolwent wydziału ETI na Politechnice Gdańskiej. Człowiek niebojący się wyzwań oraz starszych projektów, z których jeszcze można coś wyciągnąć. W komercyjnych projektach wykorzystywał wiele różnych języków programowania, począwszy od PHP, Delphi czy C# a kończąc na języku Java oraz JS/TS. Ceni sobie pracę zespołową, możliwość dzielenia się nabytą wiedzą i merytorycznymi dyskusjami technologicznymi.
Spis treści
Znalezienie pierwszej pracy w IT nie jest proste
Początki kariery są przeważnie trudne bez względu na branżę. W ciągu ostatnich kilku lat miałem okazję poznać wiele osób, które rozpoczynały swoją przygodę z programowaniem. Na bazie moich obserwacji mogę wyróżnić dwa najczęściej spotykane przeze mnie problemy, z którymi mierzą się juniorzy.
Po pierwsze, znalezienie pierwszej pracy nie jest wcale takie proste, jak jest to opisywane w wielu miejscach w internecie. Trzeba się liczyć z tym, że znalezienie pierwszej pracy wymaga wytrwałości, stalowych nerwów i też mimo wszystko szczęścia.
Drugim dość często spotykanym przeze mnie problemem jest to, że juniorzy, budując swoje portfolio programistyczne nie zawsze mają świadomość tego czy robią to poprawnie. Brak informacji zwrotnej na temat użytych technologii, podejść czy struktur może powodować, że nieświadomie złe praktyki będą powtarzane w kolejnych zadaniach oraz projektach.
Warto w takich przypadkach skorzystać z pomocy starszych stażem osób, które ukierunkują oraz wskażą to, co można poprawić. Jeśli nie w pierwszej pracy, to w lokalnej społeczności można spotkać wielu programistów, którzy zajmują się mentoringiem i którzy są w stanie ukierunkować rozwój na dobry tor. Kluczowe w moim przekonaniu jest to, aby jak najszybciej dowiedzieć się, czego w komercyjnym projekcie robić nie wypada i zrozumieć stojącą za tym argumentację.
Nie samym programowaniem człowiek żyje
Wiele razy prowadziłem rozmowy rekrutacyjne jako osoba techniczna weryfikująca umiejętności kandydata na stanowisko juniora. Nigdy nie oczekiwałem, że otrzymam odpowiedzi na wszystkie pytania. Dużo bardziej interesowało mnie zawsze to, jak w momencie nieznajomości odpowiedzi kandydat się zachowa.
Z pełnym przekonaniem mogę stwierdzić, że dużo ważniejsze są dla mnie predyspozycje kandydata niż jego obecne umiejętności. Programowanie to praca zespołowa, w związku z czym dobrze jest móc współpracować z osobą, która swoją ciekawością, konsekwencją i dociekliwością szybko zaktualizuje swoje ewentualne braki. Mamy tutaj zatem pierwszy aspekt – ogólne podejście do pracy i zdolność do pracy w zespole.
Atrakcyjność kandydata może być również większa, jeśli znajduje również czas na własne inicjatywy takie jak prowadzenie bloga, udział w meetupach organizowanych przez lokalne społeczności lub rozwijanie projektów open source’owych. Pamiętajmy również, że nie tylko programowaniem człowiek żyje. Jeśli można w swoim CV pochwalić się swoimi innymi zainteresowaniami, to jak najbardziej warto to zrobić. Często własne pasje mogą okazać się elementem spajającym rozmowę rekrutacyjną, dzięki czemu ogólna ocena kandydata może być wyższa.
Chwal się swoimi projektami!
Portfolio juniora jest czymś, co zdecydowanie może pomóc w procesie rekrutacji. Przez portfolio rozumiem nie tylko zbiór projektów w repozytorium na GitHubie. Nawet jeśli ktoś opracowywał sklep internetowy z płatnościami dla np. sąsiada rodziców, to jest to coś, co wręcz należy w portfolio umieścić.
W tym przypadku może nie da rady pokazać kodu źródłowego, ale może się okazać, że umiejętność integracji z płatnościami internetowymi będzie stanowiła mocny argument podczas podjęcia decyzji o zatrudnieniu.
W portfolio nie muszą znaleźć się tylko projekty autorstwa jednej osoby. Jeśli jest projekt, przy którym pracowało więcej osób, to również warto o tym wspomnieć. Takie projekty jasno wskazują na pracę zespołową, co już w mojej opinii z założenia jest dużym plusem. Co więcej, uważam, że nawet najmniejsza biblioteka, która była pisana do celów testowych czy poznawczych, może okazać się czymś pasjonującym.
Zdecydowanie odradzam deprecjonowania projektów, mówiąc, że są małe albo niewarte uwagi. Portfolio nie musi przecież zawierać samych skomplikowanych i ambitnych projektów. Jego głównym zadaniem jest pokazanie, że dana osoba coś robi, a nie stoi w miejscu.
Konto na GitHubie jak CV
Uważam, że kluczową rolę na GitHubie pełni sumienność w pracach nad projektami w repozytoriach. Nie jest ważne, ile nowego kodu zostało dodanego w ciągu ostatnich dwóch dni, ale czy sukcesywnie się pracuje, a co za tym idzie – czy rozwijane są umiejętności.
GitHub, jak i wiele analogicznych platform wyświetla w sposób graficzny aktywność danego użytkownika na przestrzeni czasu. Dzięki przejrzystemu schematowi można na pierwszy rzut oka zobaczyć, czy ktoś regularnie pracuje przy projektach znajdujących się w repozytoriach, czy może przygotował parę projektów na szybko przed rozmową rekrutacyjną.
Zdecydowanie polecałbym również zwracać uwagę na opisy i zawartość commitów. Na ich podstawie od razu można zaobserwować, czy ktoś stara się utrzymać porządek podczas pracy albo wręcz o to nie dba, co oczywiście może mieć dalsze przełożenie na jakość w pracy zespołowej.
Na co zwracają uwagę seniorzy, przeglądając GitHuba juniorów?
Muszę przyznać, że bardzo lubię przeglądać portfolio kandydatów przed rozmowami rekrutacyjnymi. Przeważnie staram się dowiedzieć, w jaki sposób znajdujące się w nim projekty były wykorzystane w rzeczywistości.
Nierzadko rozwiązują one problemy lub optymalizują rzeczy związane z zainteresowaniami kandydata, co nadaje projektom oryginalności. Następnie sprawdzam zastosowany dobór technologiczny. Raczej mam pragmatyczne podejście w tego typu zagadnieniach i sądzę, że należy dobrać odpowiednie narzędzia do rozwiązywanego problemu. Czasami nie warto strzelać z armaty do muchy.
W kolejnym kroku zwracam uwagę na to jak szybko zrozumiem, co w danym kodzie się dzieje. Jeśli idzie to w miarę sprawnie, to mogę teoretycznie założyć, że przy późniejszej współpracy kod będzie pisany w sposób zrozumiały. Pomimo faktu, iż jestem zwolennikiem samokomentującego się kodu, doceniam pozostawiane w kodzie komentarze opisujące zastosowane rozwiązanie jeśli jest nietypowe, lub zostało znalezione w sieci (w tym przypadku warto podać link do strony).
Nierzadko zastanawiam się również czy napisany kod teoretycznie jest łatwo rozszerzalny. Nie zawsze jednak tak jest. Zaobserwowałem, iż juniorzy bardzo często zakładają, że elementy systemu są ostateczne i niezmienialne, a jak wiemy – doświadczenie bardzo szybko ten mit obala.
Jak uatrakcyjnić swój profil na GitHubie?
Na GitHubie poza repozytoriami kodu wchodzącymi w skład portfolio, warto zainteresować się również profilem użytkownika. Można dodać tam krótkie bio, login z Twittera, ale także i adres do własnej strony internetowej. Autorzy blogów wręcz powinni tutaj dodać odpowiedni link.
Dodać można również i awatar (ja mam ustawione moje zdjęcie), który będzie widoczny przy dyskusjach w GitHub issues. Uzupełniony profil na pewno zostanie odebrany jako bardziej profesjonalny niż ten, który jest pusty. Warto jednak na każdym kroku pamiętać, że nawet najlepiej przygotowany profil na GitHubie wraz z aktywnymi projektami jest dodatkiem i nie będzie nigdy gwarancją zatrudnienia.
Budowanie marki osobistej – co prócz GitHuba
Uważam, że warto budować swoją markę osobistą, właściwie od samego początku swojej kariery. Portfolio jest z całą pewnością pomocne przy poszukiwaniu pracy, ale rozpoznawalność w branży IT może dawać dużo lepsze efekty.
Warto zainwestować swój czas w zaistnienie w social mediach. Możemy ich nienawidzić, ale ich rola w komunikacji w społecznościach jest niezaprzeczalna. Oczywiście nie trzeba być obecnym wszędzie (Facebook, Twitter, Linkedin…), ale warto wybrać sobie jeden lub dwa kanały, na których można dzielić się swoją wiedzą lub przemyśleniami.
Niektórzy programiści łączą obecność w social mediach z prowadzeniem własnego bloga i dodają w wypowiedziach odnośniki do swoich artykułów. Udział w konferencjach jako prelegent jest również mocną składową w procesie budowania marki osobistej. Pamiętajmy, że nie każda osoba, która ma coś mądrego do powiedzenia, musi być doświadczonym programistą z przynajmniej dziesięcioletnim stażem pracy.
Zdjęcie główne artykułu pochodzi z unsplash.com.