+48 535377771 biuro@madecki.pl
Zaznacz stronę

Załóżmy, że masz już ustalony cel – chcesz się uczyć frontendu. Tylko co zrobić aby nauka była jak najbardziej efektywna, przynosiła oczekiwane skutki? 

Junior, entry level

Osoby, które dopiero zaczynają przygodę z frontendem, mają z jednej strony proste zadanie – w końcu chodzi o zgłębienie podstaw trzech najważniejszych, w naszym zawodzie języków. Schodki zaczynają się jednak już przy pierwszych próbach zakasania rękawów i wzięcia się do pracy. Sam jeszcze dobrze pamiętam moje początki nauki. Mimo że od tego czasu materiałów w sieci przybyło od groma, to już wtedy nie było większego problemu ze znalezieniem dla siebie np. kursu wideo po Polsku. Coś co jednak cały czas towarzyszyło mojej nauce, to poczucie pewnego ryzyka – czy to czemu poświęcam teraz tyle czasu, faktycznie jest tym, co jest mi potrzebne aby zacząć i rozwijać karierę programisty? Może tylko marnuję energię na naukę czegoś, czego nigdy nie wykorzystam w pracy ani podczas rozmów kwalifikacyjnych?

Kursy wideo

Przy wyborze nagranych kursów wideo (jak na przykład mojego autorstwa, wykonane przy współpracy z wydawnictwem Helion i VideoPoint) warto zwrócić szczególną uwagę na datę publikacji lub ewentualnych aktualizacji. Technologie zmieniają się z roku na rok, programiści co rusz usprawniają procesy dewelopowania. Zdecydowanym marnowaniem czasu (przynajmniej na początku kariery) jest oglądania kursów, które przez więcej niż ostatnie dwa lata nie miały znaczących aktualizacji. Warto również zweryfikować doświadczenie prowadzącego – w końcu w dzisiejszych czasach nie brakuje udawanych ekspertów.

Bootcampy

Najbardziej optymalnym rozwiązaniem dla osób, które planują szybki rozwój kariery jest rozpatrzenie wzięcia udziału w kursach ze wsparciem mentora. Patrząc po kursantach, których miałem okazję uczyć w szkole, aż można im było czasem pozazdrościć. Rzeczy, których się nauczyli pod okiem moim oraz innych mentorów w trakcie raptem 3 miesięcy, były znacznie bardziej imponujące niż moje własne po roku samodzielnej nauki. Wsparcie doświadczonego dewelopera jest o tyle ważne, że pozwala uniknąć olbrzymiej ilości błędów początkujących, skupiając się na najlepszych praktykach. Tutaj niestety również trzeba być mocno czujnym przy wyborze szkoły. Warto sprawdzić czy prowadzi tzw “placement test”, czy bierze wszystkich jak leci (wtedy trzeba zwykle wyrównywać poziom do dołu). Bardzo istotną (jak nie najważniejszą) rolę odgrywa także doświadczenie mentorów – zarówno pedagogiczne, jak i techniczne. 

Niestety spotkałem się parę razy z sytuacją gdy mentorom bardziej zależało na utrzymaniu “autorytetu”, zamiast czuć więź z kursantami, chęci do bycia dobrym przewodnikiem. Duma i pycha wykładowcy, to coś co odbija się na efektywności naszej nauki w bardzo dużym stopniu. Na sam koniec warto sprawdzić jaki jest procent zatrudnienia wśród absolwentów, choć to akurat nie jest jednoznaczna statystyka. Wśród moich uczniów, około 20% z nich deklarowało, że wcale nie planują zostać frontend deweloperami. Po co więc uczestniczyli w bootcampie, który kosztuje parę tysięcy? Z ciekawości, poszukując inspiracji do ewentualnej zmiany zawodu w dalszej przyszłości. Takie osoby więc, siłą rzeczy zaniżą tę statystykę. 

Dobra rada

Jeżeli jesteś juniorem lub osobą, która dopiero zaczyna naukę (entry level), to mam dla Ciebie bardzo ważną radę, Skup się na dogłębnym zrozumieniu mechaniki języków, a nie tylko doprowadzeniu czegoś do etapu, w którym “po prostu działa”. Nie skacz z biblioteki na bibliotekę, bo to w żaden sposób nie przełoży się na większą szansę zatrudnienia. Dużo ważniejsza jest umiejętność wykonywania wąskiego zakresu działań, ale ze świadomością co i dlaczego robimy. To oczywiście zależy od jednostki, ale moim skromnym zdaniem – przez pierwszy rok nauki, pracuj w jednej wybranej konfiguracji (np React, Vue, Angular). 

To doskonale, że ciągnie Cię do poznawania nowych rozwiązań, to naprawdę Ci się przyda. Znam bardzo dużo osób, które piszą we wielu językach, frameworkach, bibliotekach. Znam jednak bardzo mało osób, które w jednym z nich są prawdziwym specjalistą – a to oni są na wagę złota. Chciałbym też podkreślić ważną kwestię – samo interesowanie się różnymi narzędziami, rozwiązaniami jest totalnie OK, nawet na początku. Sedno sprawy tkwi w tym, że powinno być traktowane jako ciekawostki. Nie próbuj ciągnąć wszystkich wron za ogony naraz. 

Mid

Zacznijmy od tego, że mid midowi nierówny. Podobnie jak ma to miejsce w przypadku juniorów, seniorów, tech leadów i całej reszty stanowisk, wszędzie. Ja używam tego określenia do opisania osoby, która:

  • zna już podstawy języków, w których pracuje, wie co i dlaczego się dzieje, zamiast zastanawiać się skąd ta magia
  • realizowała przynajmniej jeden projekt komercyjny, najlepiej w wieloosobowym zespole przy użyciu metodologii zwinnych. 

Możesz być jednak midem na samym początku tej ścieżki, a również takim, który jest już o krok przed wejściem w seniority. Postaram się dać dobre rady dla obu z tych scenariuszy.

CodeWars

Narzędzia do nauki programowania z automatycznym sprawdzaniem ich wykonania to fantastyczna rzecz. Dzięki testom jednostkowym, od razu widzimy gdzie nasze rozwiązanie ma luki, co można usprawnić. Dodatkowo, na CodeWars rozwinięta jest duża społeczność programistów dzielących się swoimi najlepszymi praktykami. Oczywiście możesz skorzystać z dowolnego innego rozwiązania tego typu, to tylko moja propozycja. Warto też podkreślić, że zadania, które tam się znajdują, nie są typowym “codziennych chlebem”. To często łamigłówki wymagające od nas dużej kreatywności i szukania najbardziej optymalnych rozwiązań.

Książki, które absolutnie warto przeczytać choć raz

Absolutnie obowiązkowe lektury, to moim zdaniem Czysty kod oraz Mistrz czystego kodu. Pierwsza z nich omawia typowe technikalia pisania czytelnego, skalowalnego i testowalnego kodu. To istna skarbnica wiedzy, pochodzącej od osób z wieloletnim doświadczeniem i uznaniem w branży. Druga z kolei, choć tytuł tego nie sugeruje, jest bardziej poradnikiem odnośnie tego jak powinniśmy podchodzić do pracy programisty “tak ogólnie”. Na pewno część z rzeczy, które w niej przeczytasz, będą Ci już znane, ale bez wątpienia uwrażliwi Cię ona na najbardziej newralgiczne elementy pracy w naszym zawodzie. Dla osób ambitnych, chcących się rozwijać “na zapas”, dobrą polecenia pozycją będzie Algorytmy, podręcznik ilustrowany. Jest to zbiór najczęściej spotykanych problemów rozwiązywanych za pomocą algorytmów. Książka uczy nas nieszablonowego podejścia i dobrych praktyk. Ma w sobie także sporo ćwiczeń – wszystkie warto przerobić. 

Open Source

Coś, co odkryłem stosunkowo późno, to możliwość brania udziału w projektach na dużą skalę, ale non profit, w ramach społeczności. To genialne miejsce do zdobywania doświadczenia, dzielenia się spostrzeżeniami, zrozumienia procesów wytwarzania oprogramowania oraz odpowiedzialności za niego. Może to być coś tak absurdalnego jak… tworzenie odtwarzacza Winamp w wersji na przeglądarki.

Możesz też oczywiście wpaść samemu na świetny pomysł aplikacji, która rozwiązuje jakieś istotne dla ludzi problemy. Kto wie, może to będzie początek Twojej działalności gospodarczej? Ważne jest aby pamiętać o jednej kwestii – każda minuta poświęcona na taki projekt, to krok w stronę rozwoju, nawet jeżeli początkowo wykonywanie pojedynczego taska zajmuje nam kilka tygodni. 

Senior (lub zaawansowany mid)

Dla osoby, która ma już paroletnie doświadczenie w programowaniu, przeczytała wiele książek o dobrych praktykach i, co ważne, stosuje je, nie jest wcale oczywiste co dalej robić. Tak naprawdę to ta grupa ma najwięcej trudności w opracowaniu strategii rozwoju. Znacznie łatwiej znaleźć kursy “od podstaw” niż dla zaawansowanych. Czytanie w kółko dokumentacji “na zapas” też nie jest czymś, co sprawia specjalną przyjemność. Co więcej, taki senior ma jeszcze większe ryzyko uczenia się czegoś, co może mu się nigdy nie przydać, ponieważ zazwyczaj będzie szukać jakichś specjalizacji.

Mentoring

Moim zdaniem najlepszą formą na oszlifowanie diamentu jest nauczanie innych. Sam byłem w szoku jak dużo nauczyłem się ucząc innych. Osoby, które dopiero zaczynają, bądź są na początku pracy mida, zadają kreatywne, nieszablonowe pytania. Takie, których mogliśmy sobie nigdy nie zadać, ze względu na specyfikę naszych projektów w pracy. To nie musi być praca w szkole lub nauczanie indywidualne. Świetnym sposobem jest udział w ferajnach, meetupach jako prelegent, wzięcie pod skrzydła młodszego stażem kolegi lub koleżanki w biurze, prowadzenie programów stażowych.

Dodatkowy etat

Kiedy jesteśmy już świadomi tego, co robimy z kodem, praca staje się zauważalnie prostsza. Debugowanie, implementacja nowych rozwiązań, to wszystko staje się dużo łatwiejsze. Jeżeli dysponujemy dodatkowym czasem, bardzo rozsądne jest poświęcenie go na dodatkową ¼ bądź ½ etatu. Zaoszczędzone pieniądze można zainwestować w wartościowe certyfikacje, kursy pozwalające na zostanie full-stackiem lub objęcie roli managerskich w firmie (np kurs Scrum Mastera).

Branie udziału w warsztatach programistycznych

Jako senior na pewno masz wystarczające umiejętności aby podjąć się jakichś programistycznych wyzwań, na przykład coding dojo, ping pong, golf. Chociaż na początku może być Ci trudno, to zobaczysz, że po kilku sesjach Twoje umiejętności optymalizacji kodu, TDD i inne wzrosną bardzo mocno, w stosunkowo krótkim czasie.

Szlifowanie umiejętności miękkich

Mówi się, że w tych czasach każdy programista powinien mieć je rozwinięte przynajmniej na średnim poziomie. Na stanowisku seniora jest to must have – Twoją rolą będzie ustalanie kierunku rozwoju aplikacji, podział obowiązków, często Twoje zdanie będzie decyzyjne. Aby wszystkie te obowiązki sprawować przy zachowaniu dobrych relacji ze współpracownikami, warto nie robić tego na ślepo. Jeżeli dobrze Ci pójdą początki zarządzania zespołem, zbliżysz się znacząco do roli tech leada

Podzielcie się proszę swoimi radami

Jak zwykle, to tylko zbiór moich spostrzeżeń. To są rzeczy, które najmocniej odcisnęły się na mojej karierze, takie które ją przyspieszyły lub takie, które dały efekty innym i widziałem to na własne oczy. Człowiek uczy się całe życie więc zarówno ja, jak i inni czytelnicy chętnie poznamy Twoją perspektywę, doświadczenie z rozwojem zawodowym. Dzięki za każdy feedback! Zachęcam Cię również do realizowania ćwiczeń ze mną na moim kanale Madecki, które już wkrótce zaczną się pojawiać. Do zobaczenia!