przemuh.dev

10 golden advices for junior developer

9/22/2020

This article has not been translated yet. Here is a Polish version. Stay tuned

Czy ten tytu艂 to clickbait? Oczywi艣cie, 偶e tak. Nie ma na 艣wiecie dw贸ch takich samych os贸b. To co sprawdzi艂o si臋 u mnie niekoniecznie musi si臋 sprawdzi膰 u Ciebie. Tak prawd臋 m贸wi膮c, to tytu艂 tego posta powinien brzmie膰 "Co chcia艂bym przekaza膰 sobie, gdybym dzisiaj mia艂 zaczyna膰 jako junior developer". Ale uzna艂em, 偶e to troch臋 zbyt d艂ugie. Kto wie, mo偶e niekt贸re z poni偶szych wskaz贸wek przydadz膮 si臋 Tobie. Czy niekt贸re z tych rad s膮 kontrowesyjne? Pewnie tak. Ale wszystkie z nich s膮 szczere, i w艂a艣nie takie chcia艂bym us艂ysze膰 gdybym wchodzi艂 jeszcze raz w 艣wiat IT. Traktruj ten wpis, raczej jako taki list Przemka do Przemka :)

TL;RD

  1. nie buduj portfolio
  2. za艂贸偶 konto na Twitterze
  3. uwa偶aj na celebryt贸w-IT
  4. nie kupuj ksi膮偶ek
  5. eksperymentuj, baw si臋 kodem
  6. naucz si臋 艣wiadomie zarz膮dza膰 czasem
  7. zainwestuj w umiej臋tno艣ci mi臋kkie
  8. znajd藕 mentora
  9. kup notatnik
  10. doszlifuj anglielski

Nie buduj portfolio

Kiedy zaczyna艂em szuka膰 swojej pierwszej pracy jako programista (2012 r.) nie wiedzia艂em, 偶e wyl膮duj臋 na frontendzie. Nie mia艂em konta na githubie. Nie mia艂em portfolio. I gdybym dzisiaj mia艂 szuka膰 pracy, to te偶 bym takiego portfolio nie budowa艂. A ju偶 na pewno nie wrzuca艂bym tam aplikacji typu ToDo List, albo Weather App. Nie zrozum mnie 藕le, pisanie takich aplikacji jest jak najbardziej ok. Dzi臋ki temu uczysz si臋 jak sk艂ada膰 dzia艂aj膮c膮 ca艂o艣膰. Ale wrzucanie tego do portfolio jak dla mnie nie ma sensu.

No dobra...ale co zamiast portfolio?

Odpowied藕 jest prosta - Open Source. Na githubie jest mn贸stwo bibliotek, do kt贸rych mo偶esz kontrybuowa膰. Wybierz sobie swoj膮, przeczytaj dokumentacj臋, spr贸buj zbudowa膰 lokalnie, zobacz jak wygl膮da lista Issues - z czym ludzie maj膮 problemy. Dzi臋ki temu nauczysz si臋 o wiele wi臋cej ni偶 przy ToDo czy Weather App. Czytanie cudzego kodu to jedna z najwa偶niejszych umiej臋tno艣ci w byciu programist膮. M贸wi膮c o kontrybucji do Open Source, nie mam na my艣li np. nowych ficzer贸w Reacta (chocia偶 do odwa偶nych 艣wiat nale偶y). Czasami jedna linijka kodu potrafi rozwi膮za膰 czyj艣 problem. Ba! Nie musisz wcale kodowa膰. Pisanie dokumentacji to te偶 cegie艂ka do Open Source. Pierwszy commit Kent C Dodds'a w ramach Open Source to by艂a liter贸wka. Nie wierzysz? - zobacz ten wpis.

Podsumowuj膮c - jedno Twoje zdanie podczas rekrutacji - "aktywnie udzielam si臋 w 艣wiecie Open Source" znaczy wi臋cej ni偶 portfolio z fajerwerkami.

Za艂贸偶 konto na Twitterze, ale ...

Znowu - kiedy zaczyna艂em szuka膰 pierwszej pracy, jedynym portalem typu social media by艂 dla mnie Facebook. Dopiero po czasie zobaczy艂em ile mnie omija. Je艣li chcesz by膰 na bie偶膮co z informacjami dot. technologii to Twitter jest chyba najlepsz膮 opcj膮. Facebook = rodzina i przyjaciele, sprawy for fun, 艣mieszki, heheszki, memy, zdj臋cia. Twitter = nowinki technologiczne, ciekawi ludzie z bran偶y, motywacja, inspiracje. Dlatego, je艣li jeszcze nie masz konta na Twitterze, to czym pr臋dzej je zak艂adaj. Poszukaj kilku os贸b z bran偶y, a potem poszerzaj list臋 obserwowanych. Nie b贸j si臋 r贸wnie偶 usuwa膰 ludzi z listy. To nie s膮 Twoi przyjaciele - nikt si臋 nie obrazi :) Je艣li nie podobaj膮 Ci si臋 tre艣ci, jakie wrzuca obserwowana przez Ciebie osoba - po prostu przesta艅 j膮 obserwowa膰, albo wycisz jej tweety.

Z durgiej strony - nie obra偶aj si臋, jak Tw贸j "idol" wrzuci od czasu do czasu posta niekoniecznie zwi膮zanego z programowaniem. Koniec ko艅c贸w jest to portal typu social media. Zrzut ekranu ze Spotify jeszcze nikomu krzywdy nie zrobi艂 ;)

No ale, co z tym "ale"?

Uwa偶aj na celebryt贸w-IT

pfff "偶e co!?". Wierz mi, albo nie, "kiedy艣 to by艂o". Mo偶e inaczej - kiedy艣 to NIE - by艂o tylu blog贸w, tylu informacji, tylu kurs贸w, tylu "mentor贸w". Z czasem ludzie podchwycili temat pt. "praca w IT = du偶o hajsu". Zacz膮艂 si臋 nap艂yw ludzi do bran偶y, bo to przecie偶 "艂atwe pieni膮dze". Siedzi si臋 tylko i klepie w klawisze. Jak grzyby po deszczu zacz臋艂y wyskakiwa膰 kolejne szko艂y programowania, bootcampy, kursy, mentorzy. Zrobi艂 si臋 z tego niez艂y biznes. Przecie偶 ka偶dy chce zarobi膰 - co nie? - co w tym z艂ego?

Nic. Je艣li masz pieni膮dze to je wydajesz jak chcesz. Gdybym tylko mia艂 sobie dawa膰 w tej kwesti rad臋, to powiedzia艂bym "uwa偶aj na celebryt贸w w IT". Troch臋 takich ludzi szufladkuj臋, sorry. Naczytali si臋 Aniserowicza i Szafra艅skiego, jak to mo偶na zarabia膰 na blogu, kursach itp. Sami ledwo co sko艅czyli bootcamp, lizn臋li pierwszej pracy a ju偶 wydaj膮 sw贸j autorski kurs - "Programowanie w HTML dla zaawansowanych". Brzmi jak dowcip? Niestety. Brzmi jak zazdro艣膰 - kto wie - by膰 mo偶e. Niestety nikt nie uczy tego, jak odfiltrowa膰 dobry content od tego skopiowanego i nastawionego na szybki zysk. Czasami nie jeste艣my w stanie zweryfikowa膰 do艣wiadczenia danej osoby. Kto wie - mo偶e naczyta艂 si臋 pierd贸艂 o 偶abach i teraz na si艂臋 pr贸buje zainteresowa膰 tym innych :) Sam musisz sobie wyrobi膰 czujnik na takie osoby - Przemku.

Dobra wiadomo艣膰 jest taka, 偶e tych dobrych "dusz" jest wi臋cej. A takie celebryto-IT-pijawki zdarzaj膮 si臋 sporadycznie.

PS. Nie zrozum mnie 藕le. Dzielenie si臋 wiedz膮 na blogu, vlogu (whatever) nawet je艣li dopiero co nauczy艂e艣 si臋 "czego艣" jest SUPER! Ale natychmiastowa pr贸ba zarabiania na tym - ju偶 nie - przynajmniej nie dla mnie. Gdy p艂ac臋 za kurs, to chc臋 mie膰 pewno艣膰, 偶e dana osoba "z臋by na tym zjad艂a", a nie naczyta艂a si臋 pierd贸艂 o 偶abach ;)

Nie kupuj ksi膮偶ek

A przynajmniej tych o technologiach. A ju偶 na pewno nie kupuj ich z my艣l膮 "kiedy艣 przeczytam". Ksi膮偶ki o technologiach szybko si臋 starzej膮. Zw艂aszcza te o technologiach frontendowych, o frameworkach itp. Je艣li chcesz mie膰 fajn膮 podstawk臋 pod monitor - spoko, your choice :) Mam takie dwie ceg艂y pt. JAVA ^^ #naP贸藕niej.

Zamiast tego, skup si臋 na ksi膮偶kach ponadczasowych. "Clean Code", "Clean Coder", "Pragmatyczny Programista", "Zaw贸d Programista", "Refaktoryzacja" ... to s膮 ksi膮偶ki, kt贸re si臋 nie starzej膮. Po takie ksi膮偶ki warto si臋ga膰 kilkukrotnie w swojej karierze. Za ka偶dym razem wyci膮gniesz z niej co艣 innego, b臋dziesz mia艂 inny punkt widzenia, inny poziom do艣wiadczenia.

I 偶eby by艂o jasne - nie ma nic z艂ego w ksi膮偶kach o samych technologiach/frameworkach - o ile kupisz aktualn膮 wersj臋 i przeczytasz j膮 zaraz po zakupie. W innym przypadku - "daj se siana" ;)

PS. Je艣li mo偶esz - czytaj w oryginale, inaczej m贸wi膮c - uwa偶aj na t艂umaczenia. Wiem, 偶e orygina艂y s膮 znacznie dro偶sze w por贸wnaniu z wydanymi nad Wis艂膮 "t艂umaczeniami" - ale warto. Obserwuj takie strony jak HumbleBundle, tam cz臋sto pojawiaj膮 si臋 "paczki" ksi膮偶ek np. z wydawnictwa O'Reilly Media i mo偶na je dosta膰 za "艣mieszne" pieni膮dze.

Eksperymentuj, baw si臋 kodem

Cz臋sto na grupach dla pocz膮tkuj膮cych czytam: "najpierw skup si臋 na podstawach, dopiero potem zajmij si臋 Reaktem". Ding-dong - Bullshit detector - Ding Dong. Owszem - podstawy pt. zmienne, p臋tle, funkcje wypada艂oby ogarn膮膰 przed frameworkiem. Ale jak ju偶 艂ykniesz podstawowej sk艂adni to 艣mia艂o wyp艂ywaj na g艂臋bie. Podczas nauki samego Reakta otrzesz si臋 o funkcje wy偶szego rz臋du, kompozycje, destrukturyzacj臋 i to w takiej praktycznej formie. Nie ma sensu czeka膰!

Inny wymiar tej rady m贸wi o tym, 偶e programowanie powinno sprawia膰 Ci frajd臋. Nie b贸j si臋 napisa膰 "brudnego kodu", eksperymentuj, baw si臋. Wykorzystaj r贸偶ne podej艣cia. Sprawd藕 w czym najlepiej si臋 czujesz.

W programowaniu chodzi o rozwi膮zywanie problem贸w. A najpi臋kniejsze w tym wszystkim jest to, 偶e wiele problem贸w mo偶na rozwi膮za膰 na wiele, wiele, wiele r贸偶nych sposob贸w.

I na koniec - je艣li masz ju偶 za sob膮 ci臋偶ki b贸j przez te "podstawy", a pisanie ka偶dej kolejnej linijki sprawia Ci b贸l - to zastan贸w si臋 czy to na pewno dla Ciebie. Praca programisty nie jest us艂ana r贸偶ami, czasami trzeba zanurkowa膰 w niema艂e szambo i nikt Ci臋 za to po plecach nie poklepie. Z drugiej strony - nie samymi programistami IT stoi. Do bran偶y mo偶na wej艣膰 na r贸偶ne sposoby ;)

Naucz si臋 艣wiadomie zarz膮dza膰 czasem

Z niecierpliwo艣ci膮 czekam, a偶 m贸j kolega Radomir, zbierze si臋 w sobie i wyg艂osi prezentacj臋 na temat zarz膮dzania czasem. Sprzeda艂 mi ten temat kiedy艣 przy jakiej艣 kawie. G艂贸wny przekaz jest mniej wi臋cej taki - je艣li jeste艣 na studiach to nawet nie wiesz ile masz wolnego czasu. Dopiero (o zgrozo) po czasie dochodzi do nas, ile cennych minut przepalili艣my. I 偶eby艣my si臋 dobrze zrozumieli - nie ma nic z艂ego w naparzaniu po nocach w Counter Strike'a (gra si臋 jeszcze w to?). Nie ma nic z艂ego w imprezowaniu. Jest taki okres w 偶yciu cz艂owieka - studia - gdzie dopiero poznaje si臋 "co to 偶ycie". Korzystaj p贸ki mo偶esz :) Ale pami臋taj - ju偶 nigdy nie b臋dziesz mia艂 tyle czasu co teraz. Ka偶dy z nas ma tyle samo czasu. Doba ma 24 godziny. R贸偶nimy si臋 tym, jak ten czas wykorzystujemy. Naucz si臋 swoich nawyk贸w. Swojego organizmu. Sprawd藕 kiedy jeste艣 najbardziej produktywny, kiedy najlepiej si臋 uczysz. Wykorzystuj to. Naucz si臋 艣wiadomie zarz膮dza膰 czasem.

Ostatnio na Twitterze napisa艂em, 偶e praca programisty to nieustanna nauka. Tak jest. Na t臋 nauk臋 te偶 trzeba umie膰 znale藕膰 czas. Chcesz prowadzi膰 bloga? Sprawd藕 ile czasu zajmuje napisanie posta. Kana艂 na Youtube? Kurs gita, czy babela nagrywam ju偶 chyba od lutego :) To nie jest proste. Na wszystko trzeba znale藕膰 ten cholerny czas. Dlatego Przemku - naucz si臋 艣wiadomie zarz膮dza膰 czasem.

Zainwesuj w umiej臋tno艣ci mi臋kkie

Do pierwszej pracy dosta艂em si臋 na sta偶. To nawet nie by艂o stanowisko juniorskie. Kiedy艣 sta偶 kojarzy艂 mi si臋 z parzeniem kawy i wpinaniu kartek do segregatora (tak tak, i jeszcze za to Unia p艂aci艂a...ale ciiiiii 馃檴). Ale w Samsungu by艂o inaczej. Konkretny projekt, konkretni ludzie, ogrom wiedzy. Dacie wiar臋, 偶e startowa艂em do zespo艂u C++ (my艣la艂em, 偶e jak kodowa艂em w tym j臋zyku na studiach to si臋 uda) a dosta艂em si臋 do zespo艂u SmartTV, w kt贸rym pisali艣my we frontendowych technologiach? W 偶yciu bym nie powiedzia艂. Dla mnie JS kojarzy艂 si臋 tylko z jQuery i 艣nie偶ynkami na stronach. No ale nie o tym chcia艂em pisa膰.

By艂em zielony - to fakt. Szybko musia艂em nadrobi膰 wiedz臋. Uda艂o mi si臋 to dzi臋ki wspania艂ym ludziom, z kt贸rymi mia艂em okazj臋 pracowa膰 - ale o tym b臋dzie nast臋pna rada. Pomimo braku w wielu kwestiach techniczncyh - dosy膰 szybko awansowa艂em. Dosta艂em te偶 mo偶liwo艣膰 poprowadzenia ma艂ego zespo艂u. M贸j szef co艣 we mnie dostrzeg艂. Od liceum bardzo lubi艂em nawi膮zywa膰 nowe kontakty. Uwa偶a艂em si臋 za dusz臋 towarzystwa. Tu co艣 zagra膰 na gitarce, tu zagada膰, tu si臋 po艣mia膰. Spotka艂em 艣wietnych ludzi na swojej drodze. By艂em szczery, 偶yczliwy, pracowity (teraz te偶 jestem, 偶eby nie by艂o 馃槣). Z perspektywy czasu widz臋, 偶e to w艂a艣nie relacje jakie budowa艂em z lud藕mi pozwoli艂y mi tak szybko awansowa膰, tak szybko stan膮膰 na czele zespo艂u.

Bardzo cz臋sto nie doceniamy umiej臋tno艣ci mi臋kkich w IT (chocia偶 zauwa偶am zmieniaj膮cy si臋 trend). Zdradz臋 Ci teraz pewien sekret - Przemku - pisanie kodu to nie wszystko. Ba! Umiej臋tna komunikacja i zdolno艣膰 do budowania relacji znacz膮 o wiele wi臋cej ni偶 klepanie kodu.

Dlatego - zainwestuj w umiej臋tno艣ci mi臋kkie. Sprawd藕 jak dobrze si臋 komunikowa膰 - bo to wcale nie jest takie 艂atwe.

Znajd藕 mentora

W poprzednim punkcie pisa艂em o 艣wietnych ludziach, z kt贸rymi mia艂em przyjemno艣膰 wsp贸艂pracowa膰. Szymon K., Grzegorz D., Bartek K., Maciej W. (troch臋 jak z krymina艂u :D...no ale nie wiem czy chcieliby si臋 znale藕膰 tu z nazwiska wi臋c dla pewno艣ci zostawiam tak :))...wiele by wymienia膰. Wszysktich ich 艂膮czy jedno - d膮偶y艂em do tego, by by膰 na zbli偶onym do nich poziomie. Nie por贸wnywa艂em si臋, bo to nie ma sensu. Ka偶dy ma swoj膮 drog臋, swoje prze偶ycia, do艣wiadczenia. Ale mo偶emy si臋 inspirowa膰, czerpa膰 wiedz臋, pyta膰 o prze偶ycia i bazowa膰 na do艣wiadzczeniu innych. Dzi臋ki temu zwi臋ksza艂em pr臋dko艣膰 nauki i wchodzenia na wy偶szy level. Dzisiaj nie wyobra偶am sobie pracy w 艣rodowisku, w kt贸rym nie mog臋 uczy膰 si臋 od lepszych od siebie. Zawsze szukam takiej osoby i staram si臋 inspirowa膰.

PS. Pami臋taj, 偶e to mo偶e dzia艂a膰 w dwie strony. U kogo艣 widzisz rzecz, kt贸rej Tobie brakuje...za to ta druga strona widzi w Tobie rzeczy, kt贸re j膮 inspiruj膮 do dzia艂ania. Dzi臋ki temu wzajemnie si臋 nap臋dzacie.

Kup notatnik

Wszyscy m贸wi膮 - za艂贸偶 bloga, za艂贸偶 kana艂 na YT. A ja m贸wi臋 - kup notatnik. Taki zwyk艂y zeszycik A5 mo偶e by膰. Zapisuj tam skrz臋tnie to, czego si臋 nauczy艂e艣. Czytaj膮c ksi膮偶ki, b膮d藕 ogl膮daj膮c kursy - r贸b notatki. Spisuj swoje osi膮gni臋cia. Zapisuj przemy艣lenia. Rysuj mapy my艣li. To pomaga - serio. Pomaga - ale z czasem. Np. podczas rozmowy o podwy偶k臋. Takie rozmowy cz臋sto odbywaj膮 si臋 raz do roku. Czy jeste艣 w stanie z pami臋ci wyrecytowa膰 wszystkie swoje osi膮gni臋cia. Podpowiem Ci - NIE!. Czasami robimy ma艂膮 rzecz dla siebie, ale wielk膮 dla projektu. Zapisuj膮c swoje wszystkie sukcesy i pora偶ki jeste艣 w stanie pop艂yn膮膰 na takiej ocenie rocznej i wywalczy膰 upragnion膮 podwy偶k臋. Ale nie r贸b notatek dla pieni臋dzy :) r贸b je dla siebie i dla swojego m贸zgu, kt贸ry nie zawsze jest w stanie wszystko spami臋ta膰 ;)

PS. Bloga te偶 sobie za艂贸偶 jak chcesz - dziel si臋 tam swoj膮 nowo-zdobyt膮 wiedz膮 i do艣wiadczeniem. Tylko prosz臋 - nie nastawiaj si臋 od pocz膮tku na "zarabianie z bloga". Nie ka偶 mi akceptowa膰 powiadomie艅 i zapisywa膰 si臋 do newslettera :) Na pocz膮tku bloga prowad藕 go dla siebie. S艂awa i splendor przyjd膮 z czasem....albo i nie :P

Doszlifuj angielski

W liceum nie by艂em jako艣 specjalnie zainteresowany angielskim. Tu tr贸jeczka, tam czw贸reczka, tu co艣 艣ci膮gn膮膰, tam zagada膰 i "jako艣 to b臋dzie". Szybko tego po偶a艂owa艂em. I cho膰 nie mia艂em problemu w zrozumieniu s艂owa pisanego (dokumentacja, ksi膮偶ki, maile) to szybko zarobi艂em "plaskacza" w momencie, kiedy mia艂em poprowadzi膰 spotkanie czy prezentacj臋 po angielsku. M贸wi si臋, 偶e podstawowym j臋zykiem programisty jest j臋zyk angielski - to prawda. I chocia偶 coraz wi臋cej publikacji powstaje w j臋zyku polskim, t艂umaczone s膮 dokumentacje (patrz React) to nadal - pos艂ugiwanie si臋 j臋zykiem angielskim to podstawa. Bardzo du偶o daj膮 tzw. English-Days. W Suncrapers, w kt贸rym mia艂em okazj臋 pracowa膰, by艂 taki jeden dzie艅 - chyba czwartek z tego co pami臋tam. W czwartki rozmawia艂o si臋 tylko po angielsku. To nic, 偶e w projekcie sami polacy. Trzeba by艂o t艂umaczy膰 i szprecha膰 po inglishu. Wiadomo - dla ludzi, kt贸rzy du偶o si臋 oczytali, ale ma艂o m贸wili to by艂 problem. Wyt艂umaczenie prostej rzeczy zajmowa艂o x2, x3 albo x4 tyle co po polsku. Z drugiej strony dzi臋ki takim zabiegom p贸藕niej by艂o 艂atwiej :)

Dzisiaj nie mam ju偶 problemu z pos艂ugiwaniem si臋 j臋zykiem angielskim. Ca艂y czas pracuj臋 nad wzbogacaniem s艂ownictwa (aktualnie trenuj臋 z dzie膰mi Ba-Ba-Black Sheep ;))

Dlatego Przemku, je艣li to czytasz i chcesz wej艣膰 do IT - to wiedz, 偶e bez angielskiego - ani rusz!

Podsumowanie

I to by by艂o na tyle. Takie rady da艂bym sobie dzisiaj, gdybym mia艂 zaczyna膰 jeszcze raz w IT. Banalne? Kontrowesyjne? Nudne? Dajcie zna膰 w komentarzach ;)