Początek roku ponownie był dla mnie okresem poszukiwania nowego, głównego kontrahenta. Bazując na doświadczeniach z ubiegłego roku, zdecydowanie mniej obawiałem się tego jak długo będę szukał nowego projektu. To właśnie w tym okresie powstała moja myśl – programistyczna tożsamość, o której chciałbym szerzej opowiedzieć w tym wpisie. Przeglądając różne oferty zacząłem zastanawiać się czym powinien cechować się dobry programista oraz czym może wyróżnić się na tle innych. Właśnie w ten sposób zbudowałem moją definicję programistycznej tożsamości. Składa się z pięciu elementów, które wpływają na pozytywny odbiór podczas rekrutacji.
CV
Dobre Curriculum Vitae to pierwszy krok, by wyróżnić się spośród innych kandydatów na dane stanowisko. Postawmy się w miejscu osób rekrutujących i zastanówmy się co mogą myśleć widząc kolejne takie samo CV, które powstało dzięki generatora lub przy użyciu podstawowych szablonów z Worda. Brzmi nudnie, dlatego moim zdaniem warto poświęcić czas na to by przygotować oryginalne CV. Pamiętajcie, iż to właśnie CV jest bardzo często pierwszym krokiem w procesie rekrutacyjnym, dlatego jest to tak istotna sprawa.
Szukając w Internecie informacji o tym co powinno zawierać dobre CV można gwałtownie dojść do wniosku, iż zależy to od osoby. Wynika to z tego, iż bardzo często artykuły te podają sprzeczne informację. Dla jednej osoby na plus będzie pojawienie się kolorów, a dla drugiej będzie to już minus.
Moim zdaniem najważniejsze jest to, aby zawierało prawdę. jeżeli ostatni raz pisaliście w Javie jeszcze na studiach, a w tej chwili aplikujecie na stanowisko JavaScript Develoepra, to nie musicie tego umieszczać. Chociażby dlatego, iż od Waszego ostatniego kontaktu z tą technologią zostało wprowadzonych wiele zmian wraz z nowymi wersjami Javy, o których najprawdopodobniej nie macie zielonego pojęcia. Dobrze jest także dodać kilka linków:
- GitHub lub inne miejsce z Waszymi repozytoriami,
- portfolio, czyli miejsce w którym osoby zainteresowane będą mogły zobaczyć w jakich projektach braliście udział,
- LinkedIn, czyli link do Waszego profilu, gdzie możecie zamieścić dodatkowe informacje
Wiedza
To kolejny element, który jest sprawdzany podczas rekrutacji. Być programistą, oznacza ciągle się rozwijać, aby być na bieżąco z nowościami wprowadzanymi do technologii. Ale to także znajomość podstawowych zagadnień jakimi są np. DRY, SOLID itp.
Nie wystarczy umieć pisać kod. Trzeba także mieć wiedzę o tym w jaki sposób tworzyć go, by był jak najbardziej optymalny oraz wykorzystywać nowe rozwiązania. Dlatego istnieje podział na Juniorów, Midów (Regularów) oraz Seniorów. Junior to programistyczny adept, który potrzebuje osoby z doświadczeniem, mentora, który zadba o prawidłowy jego rozwój. Mid to osoba, która sam potrafi rozwiązywać problemy i bez wahania bierze na swoją klatę każde z zadań. Senior to mentor, który nie tylko rozwiązuje napotkane problemy, wykorzystując optymalne metody, ale także potrafi w merytoryczny sposób przekazać wiedzę mniej doświadczonym kolegom z zespołu.
Każdy zaczynał od Juniora, nikt nie stał się od razu Seniorem, dlatego warto mieć na uwadze to, iż to pewnego rodzaju droga, którą należy przejść, by pisać najwyższej jakości kod oraz zarabiać upragnione +20tys..
Sposobów na poszerzanie swoich programistycznych horyzontów jest wiele, np. kursy, książki, dokumentacje, jak również kanały na YouTube. Poniżej przedstawiam listę adresów z których sam korzystam do zdobywania nowych umiejętności:
- Hello Roman
- overment
- Przeprogramowani
- WTF: Co ten Frontend?
- Czysty kod. Podręcznik dobrego programisty Robert C. Martin
Projekty komercyjne
Trzecim elementem istotnym podczas rekrutacji są projekty komercyjne, którymi możemy się pochwalić publicznie. Warto mieć takie w swoim portfolio. Projekty te pokazują, iż dana osoba potrafi tworzyć oprogramowanie będące już na produkcji. Pozwalają potencjalnym firmą zapoznać się z tym co programista robił wcześniej, jakie problemy miał do rozwiązania oraz jak finalnie wygląda produkt, który tworzył/współtworzył.
Najczęściej pozwalają jedynie pokazać efekty prac jakie zostały osiągnięte przez dany okres czasu. W przypadku projektów komercyjnych nie mamy możliwości pokazania kodu. Jednak moim zdaniem warto pokazywać efekty swoich pracy, jeżeli jest to tylko możliwe.
Oczywiście zaczynając swoją przygodę z programowaniem, nie można od siebie wymagać, aby mieć już takie projekty. Dlatego warto posiadać również projekty prywatne, które pozwalają nie tylko pokazać wizualne efekty, ale także kod.
Projekty prywatne
To projekty, które powstały z inspiracji kandydata. Ich zadaniem jest przede wszystkim pokazać jak wygląda kod, który wychodzi spod palców danego programisty. Obrazują nie tylko znajomość danej technologii ale także dbanie o szczegóły oraz znajomość innych narzędzi, np. zarządzanie projektami, obsługa Gita czy narzędzia wdrożeniowe CI/CD.
Dobrze mieć choć jeden projekt zrobiony w pełni. By móc to wszystko pokazać oraz by potencjalni developerzy przyglądający się kandydatowi mogli już na starcie mieć o nim nieco więcej informacji oraz lepsze zdanie o jego aktualnych umiejętnościach. Warto by projekt był publicznie dostępny, np. jeżeli jest to aplikacja webowa, to aby była możliwość jej uruchomienia bez klonowania repozytorium. Dobrą praktyką jest także opisanie projektu w README.md. Opisując prywatne projekty zawsze podaje:
- ogólny opis projektu,
- link do demo,
- instalację,
- funkcje utworzonej aplikacji,
- wykorzystane technologie
Profil na LinkedIn
Przez długi czas nie mogłem się przekonać do tego serwisu. w tej chwili nie jest to miejsce do którego zaglądam każdego dnia (w zasadzie w tej chwili do żadnego social media nie zaglądam nałogowo ), ale warto mieć tam konto oraz poprawnie uzupełniony profil, minimum w dwóch wersjach językowych: polskim i angielskim.
Początkowo zastanawiałem się czy w tym serwisie coś się dzieję. gwałtownie przekonałem się, iż jest to miejsce pełne zawodowych treści oraz ogłoszeń o prace, które mogą mnie zainteresować. Gdy szukałem projektu na najbliższe miesiące, to jednym z miejsc, gdzie dostawałem wiele wiadomości o poszukiwaniu Vue Developera był właśnie LinkedIn. To też miejsce za pomocą którego nawiązałem kontakt z obecnym kontrahentem.
Ważnym aspektem jest budowanie sieci kontaktów, która wygląda nieco inaczej niż na innych serwisach społecznościowych, gdzie zaprasza się do grona znajomych osoby, które poznaliśmy w realnym świecie. Tu nie stoi nic na przeszkodzie, aby nawiązywać kontakty z różnymi osobami, zwłaszcza z takimi, które powiązane są z naszą branżą.
Podsumowanie
Przedstawione powyżej elementy potrafią zmienić oblicze rozmów rekrutacyjnych. Sprawić by przebiegały pomyślnie i były pozytywnie rozpatrywane. Mimo to, iż wymagają poświęcenia sporej ilości czasu to uważam, iż warto, ponieważ pozwalają wyróżnić się na tle innych kandydatów od pierwszego etapu rekrutacji.
Chcąc poprawić moją programistyczną tożsamość, postanowiłem zbudować aplikację we Vue 3 oraz Firebase do zarządzania zadaniami. Chciałbym także co jakiś czas dzielić się z postępów prac nad tworzoną aplikacją, tworząc w ten sposób pewnego rodzaju cykl wpisów, skupiający się na budowaniu własnej programistycznej tożsamości.