Zaraz rozpoczyna się kolejny semestr na studiach. Dla wielu będzie to ostatnia przygoda z uczelnią. Dla innych: czas rozmyślań o letnich praktykach, czy może nawet pierwszej pracy. Jak często bywa: pojawi się element paniki: “AAAAAA, RATUNKUUUU, JAKIE MOJE CV JEST PUSTE!!!“.
Refleksje na ten temat to bardzo pozytywny znak. Znak, mówiący: jesteś gotów, by zakasać rękawy i zabrać się do roboty. “Samo się nie zrobi“.
Uwaga! Doczytaj ten tekst do końca, to może być Twoja najważniejsza lektura w tym roku. Serio serio.
Każdy zaczynał z pustym CV
Spokojnie, nie ma się czego bać. Każdy miał kiedyś w CV wpisane tylko liceum i uczelnię. Albo nawet i to nie. To nie powód do rozpaczy, ale… im wcześniej zaczniesz dbać o rozwój swojego resume, tym lepiej dla Ciebie.
Zacznij od tej lektury: “Recenzja CV młodego programisty“. A potem: zapraszam z powrotem.
Już? To jedziemy dalej.
Nie oszukujmy się, pracodawcy poszukujący kandydatów na staż albo stanowisko “junior dev” nie oczekują zbyt wiele. Wiedzą, że przychodzący człowiek będzie wymagał nauki. Inwestycji. Czasami: prowadzenia za rączkę. I bardzo dobrze, gdzieś trzeba zacząć, jesteś w miejscu absolutnie zgodnym z oczekiwaniami rynku.
Jednak to nie powód, by osiąść na laurach. A dlaczego? Dlatego, że takich jak TY są TYSIĄCE. A potrzeba naprawdę niewiele – bardzo niewiele – aby się wyróżnić z tłumu.
Zaczynamy.
Co możesz zrobić JUŻ DZIŚ?
W programistycznym CV powinna znajdować się sekcja “Doświadczenie”. Ale co tam wpisać, jeśli żadnego doświadczenia… nie masz?
BŁĄD! Ty MASZ doświadczenie, ale może nawet nie zdajesz sobie z tego sprawy. Więc po kolei:
1) Zbierasz i przeglądasz CAŁY KOD, jaki do tej pory wypluła Twoja klawiatura.
Serio: cały kod. Wszystkie nieudane eksperymenty z Reactem. Zakończone łkaniem brutalne współżycia z Angularem. Nierówna walka z CSSem. Pierwsza stronka łącząca się z bazką. PeHaPowe potwory na zaliczenie. Wszystkie projekty zrealizowane na potrzeby studiów. Jakiś standardowy “System bankowy” w Javie? Albo “Obsługę pizzerii” w C#? A może “Gabinet weterynaryjny” w Accessie? Może jakaś inżynierka czy magisterka?
WSZYSTKO!!!
Bo chyba MASZ taki kod, prawda? Jeśli nie, to dodajemy punkt “0) Programuj cokolwiek”. Od razu skocz do ostatniego akapitu tego tekstu.
Dla przykładu: u mnie do worka z takim kodem wpadłyby różne zabawy. A to implementacja stosu. A to aplikacja desktopowa ściągająca rozkład jazdy autobusów. A to wygaszacze ekranu. A to klient Gadu-Gadu. A to ohydna strona o wampirach. A to…
Było tego naprawdę sporo. Jeśli interesują Cię moje początki to zapraszam do cyklu Procentografia (a szczególnie do odcinka “Narodziny pasji“). Co prawda ja nie miałem warunków do wykonania kolejnych kroków: w tych czasach nie każdy miał nawet internet :) ). Ale na szczęście TY możesz.
Więc bierzesz cały ten kod. Odcinasz z tego połowę najgorszego, najbrudniejszego szlamu, którego się najbardziej wstydzisz (spoko, każdy ma takie potwory w swoim dev-sejfie).
A co z resztą?
2) Dodajesz do CV sekcję “Zrealizowane projekty”
Wiele osób błędnie uważa, że w takiej sekcji powinny znaleźć się tylko zamówienia komercyjne. BŁĄD!
Do tej sekcji dopisujesz te kilka/kilkanaście najmniej brzydkich projekcików. O każdym piszesz kilka słodko-gorzkich słów. Odpowiadasz proste na pytania: “co ten projekt robi?” i “czego mnie nauczył?“.
Nagle okazuje się, że masz z pół strony (albo i więcej?) doświadczenia! Pokazujesz, czym się bawisz, co robisz. To o wiele lepsze niż cały akapit słów kluczowych, pustych nazw technologii o których wiesz tyle, że “było kiedyś na jednym wykładzie”.
Jeszcze raz podkreślę: to nie musi być kod piękny, kod idealny. Ważne, żeby był. W tym przypadku naprawdę “lepszy rydz niż nic”.
3) Idziesz na GitHub i zakładasz konto
To konto i tak będzie dla Ciebie obowiązkowe, ale do tego dojdziemy za chwilę. Tylko zlituj się, nie wybieraj username w postaci “uroczy_kwiatuszek_98“.
To od tej pory Twój dom. Twój pokój, w którym przyjmiesz gości. Twoja wizytówka. Film dokumentalny o Twojej podróży.
Napisz krótkie bio: 2-3 ładne zdania o sobie. Po angielsku. Wgraj zdjęcie. Nie porównuj się z kontami innych (np. moim). Nie wszystkie są “ładne”. Wiele osób traktuje GH tylko jako backup kodu. Nie muszą się tak starać. Ty: musisz.
4) Uczysz się podstaw Gita i wysyłasz tam swoje projekty…
…a linki do nich dołączasz do CV.
Wyżej napisałem, że GH to film o Tobie. Wyobraź sobie, że nazywa się “Od zera do uber-developera“. Nawet jeśli jesteś bliżej “zera”: TO NIC!
Dzięki temu Twoje CV już od jutra będzie lądowało na górze stosu. Zdeklasujesz konkurencję.
Ale jak to – słaby kod? Przecież mnie wyśmieją!
Jeśli firma wyśmieje Twój kod to wiesz, że nie jest to dobra firma do pracy.
Ale nie wyśmieją. Nawet słaby kod to świetny punkt startowy dyskusji. Dzięki temu zostanie Ci dana okazja, aby poopowiadać co więcej wiesz o danej technologii. Jakie błędy w projekcie zostały popełnione. Jak zrobisz to lepiej w przyszłości?
Jak zawsze: CONTEXT IS KING. I to TY ten kontekst budujesz. Na GitHubie każdy projekt może mieć opis wyświetlany na stronie (plik readme.md). Dodaj taki opis. Napisz kiedy kod powstał i czego cię nauczył. Dzięki temu odwiedzający pokiwa głową i szepnie: “ten koleś dobrze kombinuje!“. Albo: “ta panna nie wstydzi się swojej pracy, szacun!“.
Popatrz po swoim otoczeniu. Jaka jego część pokazuje kod światu?
I zastanów się nad dalszymi konsekwencjami: jak zmieni się Twój sposób pracy, jeśli z założenia cały kod będziesz wysyłać w świat? Prawdopodobnie bardziej się do niego przyłożysz, prawda? A co za tym idzie: Twój skill wzrośnie szybciej niż w Diablo pozostawionym na noc z przyblokowanym LMB.
Po co to wszystko?
Gdy inni nieśmiało skrobią pazurkami w drzwi jak cziłała, któremu pęka pęcherz, ty: napierdzielasz taranem.
Gdy inni rysują serduszka na powiekach, przymykają kusząco oczka i szepczą: “uwierz mi, weź mnie“, ty: przedstawiasz rzeczowe argumenty.
Gdy inni mają w swoim CV tylko ładne słówka, ty: dołączasz DOWODY. Dowody na to, że:
Umiesz Gita
Gita trzeba umieć. Koniec i kropka. Niektórzy umieją go bardzo dobrze, inni – średnio, a jeszcze inni: przenoszą kod DropBoxem, na pendrajwie czy innym TFSem. Napisanie “znajomość Gita” nie jest nawet w 1% tak dobre, jak dodanie linków do swoich repozytoriów.
Znasz GitHuba
Nie BitBucket, nie jakiś podgniły SourceForge, nie zwyrodniały CodePlex. Tylko GitHub. To jest centralne (pun intended) miejsce spotkań programistów z całego świata.
Nie wstydzisz się swojej pracy
Każdy popełnia błędy. Każdy na początku generuje tony nawozu. Ale nie każdy chwali się swoimi postępami, pokazując ewolucję.
Rozwijasz się
Twój kod świadczy o tym, że – z lepszymi bądź gorszymi efektami, wolniej bądź szybciej – idziesz do przodu. A nawet jeśli czasami nie do przodu tylko w bok – to nieważne. Ważne, że nie stoisz w miejscu.
Świadomie oceniasz swoją pracę
Pamiętasz plik “readme.md”? Budowanie kontekstu?
Nie każdy będzie w stanie przyznać się do popełnionych błędów. Sam sobie wytknąć potknięcia i wskazać możliwe rozwiązania.
Taki typowy, zadufany w sobie BOBek – jakich niestety pełno w naszej branży – tego nie potrafi. Jeśli TY potrafisz, to bardzo dobrze nadasz się do pracy w zespole.
Pierwsze kroki za Tobą. Już jesteś tym “juniorem z górnej półki”.
Ale to dopiero początek.
Od jutra…
Poszukaj miejsc, w których inni programiści szukają rozwiązań swoich problemów. Czy to Stack Overflow, forum 4Programmers, forum Pasja Informatyki, a nawet wykop czy programistyczne grupy na fejsie.
Spróbuj komuś pomóc. Rozwiązać cudzy problem. A następnie: napisać mu to rozwiązanie.
To nie koniec Twoich studiów?
To koniecznie przeczytaj tekst: “Czy programiście potrzebne są studia?“.
Nie marnuj czasu na uczelni. Studiowanie jest BARDZO potrzebne, ale nie każdy sposób studiowania jest prawidłowy. Życie masz tylko jedno: wyciągnij z tych lat maximum.
Co dalej?
Działaj! To nie jest łatwe, ale nie jest też mega-trudne.
O wiele więcej informacji na takie tematy znajdziesz w mojej (bestsellerowej zresztą ;) ) książce “Zawód: Programista“. Polecam!