To trzeci odcinek cyklu Nawyki Profesjonalnych Programistów Java. Trzecią część poświęciłem rozwojowi, który szczególnie w tej branży jest niezwykle istotny. Czasy naszych rodziców, w których zdobywało się zawód na dziesięciolecia, minęły. Jak to mawia Vladmir „Świat zmienia się szybciej niż myślisz”. Ten wstęp, którym zawsze wita swoich słuchaczy, idealnie opisuje to, jakie są realia, w których przyszło nam żyć. Podcast i blog to moje ostatnie odkrycie. Serdecznie polecam Ci go jeżeli tylko interesują Cię tematy o uczeniu maszynowym i sztucznej inteligencji.
Początkowo miał to być jeden wpis z listą wszystkich punktów. Z racji na dużą ilość treści, jaką chciałem w nim zawrzeć, zdecydowałem się na architekturę mikro wpisową.
O wszystkich nawykach przeczytasz tutaj:
1. Bądź odpowiedzialny
2. Komunikuj się efektywnie
3. Dbaj o swój ciągły rozwój
Dbaj o swój ciągły rozwój
Ludzie rozpoczynający swoją przygodę w świecie IT, a w szczególności Ci, którzy zmieniają branżę, są często zaskoczeni. Dziwi ich, że w tej branży, trzeba cały czas się uczyć. W trakcie warsztatów stacjonarnych często spotkałem się z następującym schematem myślowym. Wiele osób przed rozpoczęciem nauki, wyobrażało sobie zawód programisty jako zdefiniowane rzemiosło. Analogicznie do np. zawodu kierowcy, gdzie wystarczy zdać egzamin. Swoją cegiełkę w takiej wizji dokłada sprytny marketing niektórych szkół bootcampowych. Obiecują złote góry po X godzinach wysiedzianych w ławach uczelnianych. Na pewno nie jest, aż tak różowo. Ilość pracy, jaką muszą włożyć w cały proces, jest ogromna, a pamiętajmy, że to dopiero początek.
Twój rozwój jest równie istotny na dalszym etapie kariery, wystarczy proste porównanie. Spoglądając na dzisiejsze oferty pracy rynku IT, a te sprzed 5 czy 10 lat, zauważymy dużą rozbieżność. O ile dzisiaj niemal standardem stają się wymogi związane z chmurą publiczną. O tyle kilka lat temu dotyczyło to zaledwie małej grupy ofert. Zmiany w drugą stronę, są również widoczne. Dziś w niewielu ofertach wymaga się od nas znajomości serwerów aplikacyjnych. Dużo cenniejszym jest stack związany z architekturą mikroserwisową i cloud native typu Spring Boot.
To wszystko powoduje, że tak istotne jest rozsądne planowanie twojego rozwoju. W trakcie kariery może się bowiem okazać, że postawiłeś na niewłaściwego konia. Twoja ekspertyza w danym obszarze może z czasem być już niewiele warta. To powinno skłaniać nas do przemyśleń, że:
- Warto uważać na to czego się uczymy,
- nie powinniśmy osiadać na laurach.
Mimo że ten fakt jest wielu osobom znany, to nie każdy przykłada do tego odpowiednią wagę. Żyjemy w ciekawych czasach, w których dostęp do wartościowych informacji, jeszcze nigdy nie był tak łatwy. Z drugiej strony dostęp, do szumu informacyjnego, jest jeszcze łatwiejszy.
Celem tego artykułu jest przede wszystkim pokazanie, z jakich opcji na dzień dzisiejszy możesz korzystać. Postaram się przybliżyć Ci, czym każda z nich się charakteryzuje i jakich technik użyć, aby wycisnąć z tego jak najwięcej. Jest dużo pytań, których z pewnością ten krótki artykuł nie wyczerpie np:
Jak wdrożyć u siebie sprawdzone nawyki uczenia się?Czego warto się uczyć, a czego nie?(tutaj z pomocą może przyjść darmowa książka mojego autorstwa Poradnik Junior Java Developera na rok 2021)Ile czasu powinniśmy na to poświęcić i kiedy?
Adresuje za to:
- Przegląd najpopularniejszych sposobów na poszerzanie wiedzy,
- Serię praktycznych porad, opierając się na doświadczeniu moim oraz moich kolegów z branży,
- Odnośniki do dobrych źródeł związanych z wartościowymi blogami czy konferencjami.
Na początek rzućmy okiem na przegląd wszystkich technik przy pomocy jednego z popularniejszych modeli.
Jak istotna jest metoda nauki?
Zanim wspólnie przejdziemy przez wszystkie metody pozyskiwania wiedzy, w pierwszej kolejności przybliżę Ci pewien model. Opisuje on, ile ludzie są w stanie zapamiętać treści w zależności od formy, w której ta treść została im zaserwowana. Za tę ideę odpowiedzialny jest Edgar Dale. Edgar był amerykańskim nauczycielem znanym z zaangażowania w projekty audio wizualne na przełomie XX wieku. W 1946 stworzył pojęcie stożka doświadczenia, czasem znanego również jako piramida nauki.
W oryginalnym projekcie Edgara, stożek nie posiadał wartości liczbowych. Niezmienne było jednak samo uszeregowanie wybranych technik od tych najmniej efektywnych do tych, które są najskuteczniejsze. Chciałbym abyś nie przywiązywał się aż tak bardzo do wartości, a bardziej zapamiętał, w jaki sposób najlepiej się uczyć i jak mieszać różne techniki, aby stawały się komplementarne.
Sam model i sposób, w jaki jest rozpropagowany dzisiaj, doczekał się też krytyki, o której możesz przeczytać np. tutaj https://www.worklearning.com/2006/05/01/people_remember. Autor zwraca tam między innymi uwagę na to skąd w piramidzie wzięły się liczby, oraz odnosi się do pewnych paradoksów.
Na potrzeby tego wpisu skupię się na typach przyswajania informacji. Rozbiję je na części składowe, opowiem Ci o ich dobrych i złych stronach, a piramida posłuży nam za pewnego rodzaju mapę, po której będziemy się poruszać. Startujemy od samego wierzchołka.
Czytaj, ale rozważnie
No to zaczynamy od szczytu piramidy i pierwszego sposobu zdobywania wiedzy. To chyba jedna z popularniejszych metod. Często jestem pytany o to jaka książkę poleciłbym do nauki X. Spory udział w tym może mieć szkolnictwo, które w największej mierze bazuje na książkach. Jak sugeruje piramida, jest to również technika najmniej efektywna. Czy aby na pewno? A może są jakieś sposoby, aby wycisnąć z niego nieco więcej?
Czy czytanie to dobra metoda nauki?
Częsty błąd niedoświadczonych polega na kupnie obszernej pozycji i czytaniu jej od deski do deski. Gdybyśmy zbadali efektywność takiego podejścia, okaże się, że ta wartość nie będzie zbyt wysoka. Przypomnij sobie jakąkolwiek książkę o programowaniu i spróbuj przypomnieć, sobie co zawierała. To nie takie proste, zgodzisz się? W najlepszym wypadku będziemy pamiętali esencję, jakiś motyw przewodni, czasem jakąś historię, która wryła nam się w pamięć. Ilość rzeczy, jakie jesteśmy w stanie zapamiętać, bazując tylko i wyłącznie na lekturze ma szczególnie ogromne znaczenie w przypadku technicznych pozycji, które bez praktyki są tylko suchą teorią. Z mojego doświadczenia jest ona jeszcze trudniej przyswajana. Niestety, ja sam nie miałem takiej świadomości na początku mojej kariery i zaczytywałem się w grubych książkach, wyciągając mniej niż gdybym ten czas poświęcił na inne formy nauki lub przynajmniej sprytnie je łączył. Lubię jeden z cytatów, który brzmi mniej więcej tak:
Lepsze dla twojej kariery będzie pisanie kodu przez 5 minut, niż czytanie o kodzie przez 50 minut.
Po latach podpisuję się pod powyższym i zachęcam: kodujmy! 🙂 Do dołu piramidy jeszcze dojdziemy, pozostańmy jeszcze przez kilka akapitów przy czytaniu.
Jak dobierać tematykę?
Jeżeli chodzi o wybór tematyki, to jestem ogromnym fanem pozycji, które się nie dezaktuzliują zbyt szybko, są krótkie, a jednocześnie treściwe. Świetnym przykładem takiej książki jest JavaScript Good Parts.
Zamiast pozycji na temat najnowszej odsłony frameworka w wersji 3 lepiej kupić książkę omawiającą ogólne koncepcje na jakiś wybrany temat. Moją półkę nadal zdobi kilka pozycji, których nie zdarzyłem przeczytać. To głównie pozycje opisujące jakieś frameworki lub biblioteki w danej wersji. Oczekiwały na swoją kolej i aż przyszła aktualizacja i sprawiła, że książka zdążyła się przeterminować, niczym ryba kupiona w promocji 🙂 (dobrym przykładem może być np. książka od Angulara). Dzisiaj jedynym ich zastosowaniem, może być robienie za podstawkę pod monitor. Do dzisiaj w mojej piwnicy, leży kilka książek, których jestem pewny, że już nigdy się nie pozbędę, bo któż chciałby kupić wiedzę o prehistorycznej technologii?
Są jednak pozycje, które jeszcze długo będą cieszyły się zainteresowaniem, kilka lat po swoich premierach. Domain Driven Design, Clean Code czy Refactoring Fowlera są pozycjami, do których nawet po kilku latach z pewnością wrócisz i odkryjesz coś nowego.
Odstępstwem od tej reguły i sytuacją, w której bardzo specyficzna pozycja może okazać się przydatna, jest porządkowanie wiedzy, zalepianie dziur wiedzowych. W takim wypadku mówimy o idei Just in time learning.
Just in time learning
Pozwolę sobie zrobić pewną dygresję i przybliżyć Ci tę ideę. W obecnych czasach ten punkt jest szczególnie ważny. Im szybciej uświadomisz sobie, że nie warto, a nawet nie powinniśmy się uczyć wszystkiego, tym lepiej. To samo tyczy się nauki na zapas. Czas jest bardzo cenną walutą i należy wykorzystać go jak najefektywniej.
Nawyk ten sprowadza się do nauki w momencie, w którym nowe umiejętności są Ci najbardziej potrzebne. Przykładowo załóżmy, że twoje nowe zadanie, wymaga zdobycia całkiem nowych dla Ciebie skilli. Niech będzie to automatyzacja w Jenkinsie i zapoznanie się z podstawami Grooviego, który wymagany jest do napisania skryptów. W myśl przytoczonej tutaj zasady to będzie najlepszy moment, aby rozpocząć naukę w tym obszarze. To będzie dobry moment na kupno kursu, czy poszukanie materiałów w sieci o tej tematyce. Nie będzie nim natomiast moment, w którym zapłonem do nauki będzie promocja na kurs na Udemy („promocja” ² ha ha). Z reguły przebywamy w miejscu pracy aż 1/3 naszego dnia i dobrze gdyby chociaż część z tego dnia można poświęcić na zdobywanie nowych umiejętności.
Pierwsza praca to taka, w której możliwości rozwoju powinny być stawiane na piedestał, ponad wszystkie inne benefity. To możliwości rozwoju, a nie owocowe środy czy kilkaset złotych wyższa wypłata będą najlepszym zwrotem z inwestycji w dłuższej perspektywie.
Podzielę się, jeszcze z Tobą przykładem z mojego podwórka. Takim przykładem będzie szereg umiejętności, które musiałem poznać, tworząc tego bloga:
- jak obsługiwać wordpressa,
- jak skonfigurować listy mailowe,
- praktyczne zastosowanie marketingu tak, aby wspomóc promocję bloga
- i inne, które dopiero przede mną…
We wszystkich przytoczonych kategoriach tuż przed rozpoczęciem pracy nad tym blogiem, moja wiedza była niemal zerowa. Ba.. po kilkunastu wpisach nadal nie jest oszałamiająca. Mimo to stosując przytoczoną zasadę „Just in time learning”, jestem w stanie realizować swoje cele i blog nadal istnieje i powoli się rozwija.
Ebooki czy papier?
Koniec dygresji, wracajmy do czytania i książek. Wiesz już, że z reguły nie warto czytać książki, które mają krótki terminu spożycia, co przy technicznych pozycjach wcale nie jest takie trudne. Wyjątkiem są takie pozycje, które są nam potrzebne w tym momencie, w myśl przytoczonej w poprzednim akapicie zasady. A co z formą? Tutaj zdecydowanie polecam Ci książki w formie elektronicznej i zainwestowanie w czytnik. Czemu? Głównie ze względu na:
- Możliwość robienia notatek
- Możliwości wygodnego przeszukiwania książki
- Łatwiejszą formę dystrybucji i szybsze momenty wypuszczenia na rynek względem papieru
- Z szacunku dla drzew i miejsca w domu 😉
To co z tymi notatkami?
Notatki to naturalny sposób na zapamiętanie większej ilości informacji. Same notatki, jeszcze pojawią się kilkakrotnie w ramach tego wpisu jak i innych wpisach, ponieważ to często klucz do nauki. Całkiem niedawno byłem świadkiem ciekawej dyskusji na Linkedin, gdzie Tomek Dziurko (twórca https://jvm-bloggers.com/) opisywał, jaki jest jego pomysł na notatki.
Ja notatki robię na Kindle’u, zaznaczając fragmenty, które są dla mnie interesujące. Potem po skończeniu książki, przerzucam je do Evernote, porządkuję i tak już leżą docelowo. Z papierowymi książkami mam zawsze problem, więc skuszę się na testy Google Keep 🙂
Tutaj, w fajny sposób widać przewagę elektronicznego podejścia nad klasycznym. Nie muszę dodawać, że taka elektroniczna esencja daje ogromne możliwości późniejszego przeszukiwania tych notatek.
Blogi
Jak już jesteśmy przy Tomku, to jakoś naturalnie nie sposób, nie wspomnieć o blogach.
W świecie Javy świetnym rozwiązaniem jest platforma stworzona przez Tomka Dziurko, która agreguje wiele Polskich blogów w jednym miejscu, dostarczając co tydzień porcję ciekawych artykułów publikowanych w Polsce.
https://jvm-bloggers.com
Jak znaleźć czas na czytanie?
Ja czytałem najwięcej podczas podróży. Zaczęło się od umilania sobie niemal godzinnej podróży na uczelnię. Autobusy stojące w wiecznych korkach, człapiące się ślimaczym tempem przez rozkopane miasto, pomagały w pochłanianiu kolejnych pozycji. Ten sam nawyk przeniosłem na drogę do mojej pierwszej pracy. Co prawda tam już było zdecydowanie bliżej, ale nadal, był to czas, który można było sensownie wykorzystać i zadbać o regularny nawyk. W którymś momencie zmieniłem środek lokomocji na rower i klasyczne czytanie książek stało się niemożliwe*.
Hackuj swój czas dzięki audiobookom
Audiobooki czyli jak czytać 2 – 3 a nawet 4 razy więcej książek?
* Stało się niemożliwe, dopóki nie odkryłem audiobooków 🙂 Od tamtego momentu ilość pochłanianych pozycji wzrosła wielokrotnie. Chyba z największych plusów słuchania książek jest możliwość robienia tego w trakcie innych nieangażujących intelektualnie czynności:
- Idziesz na zakupy,
- kosisz trawnik,
- karmisz dziecko,
- sprzątasz,
- jedziesz gdzieś autem?
Dla każdej z tych czynności możesz zadbać o wartościowe tło, które umili Ci czas i spowoduje, że czas stanie się bardziej produktywny. To właśnie, ta specyfika takiego „czytania” powoduje, że książki niemal pochłania się w zastraszającym tempie, a twoja doba potrafi trwać dłużej, bo robisz kilka rzeczy na raz (swoją drogą to jeden z nielicznych przykładów efektywnej pracy równoległej, która działa). Nie ma jednak róży bez kolców i jest kilka elementów, które są gorsze od standardowej lektury:
Wady audiobooków
- Po pierwsze, nie każda pozycja nadaje się do słuchania, a w szczególności do tej grupy kompletnie nie nadają się pozycje mocno techniczne, wypełnione kodem. Nie zmienia to jednak faktu, że istnieją dobre książki dla programistów, w których nie ma nawet jednej linijki kodu. Mam w planach taki wpis. Kiedy go skończę, z pewnością umieszczę do niego link.
- Drugim minusem jest potrzeba ciągłego skupienia. Czasem podczas słuchania, łatwo odpłynąć gdzieś na chwilę myślami i przegapić jakiś fragment. Podczas czytania klasycznych książek, to również się zdarza, ale z mojego doświadczenia przewijanie jest bardziej upierdliwe, od przeskoczenia wzrokiem na początek kartki. Co więcej, przy klasycznych lekturach łatwiej się zatrzymać i dać sobie chwilę na przemyślenie pewnego fragmentu.
- Ostatnim minusem, jaki zauważam, to mniejsza ilość materiału, który możemy zapamiętać niż w klasycznym podejściu. Dzieje się tak, ponieważ brakuje momentów na wspomniane refleksje. Z reguły kiedy słuchasz podczas jakiejś innej czynności, nie będziesz też robił wtedy notatek, co również obniży końcową wartość, tego ile zapamiętamy. Swoją drogą, jeżeli ktoś rozwiązałby ten problem, wróżę mu niezłe pieniądze z takiego biznesu. Roboczo nazwałby to notatkami dla audiobooków. Chyba że znacie coś takiego i możecie się podzielić, dajcie znać w komentarzu 🙂
Wrócę jeszcze na chwilę do wspomnianej wcześniej dyskusji na Linkedin i kolejnej serii rad z tego samego wątku. Wiktor Żołnowski odnosi się tam, poruszając temat audiobooków:
… doszedłem do wniosku że trzeba połączyć przyjemne z pożytecznym. Np. bieganie z słuchaniem książek i podcastów, albo jazdę samochodem…
To też zaczęło działać w drugą stronę – ciekawe książki zaczęły być motywacją do dalekich wypraw, odwiedzin rodziny czy też spacerów po okolicy…
A i pro-tip: po przesłuchaniu audiobooka czytam streszczenie – koniecznie. Inaczej pewnie max 3% bym zapamiętał.
Nauka przy efektach audiowizualnych
Schodzimy piętro niżej, po czytaniu i słuchaniu, czas na formę łączoną, która w główniej mierze zarezerwowana jest dla wykładów, nagrań video, konferencji. Zacznę od meetupów, czyli specjalnego rodzaju wydarzeń.
Uczęszczaj na lokalne meetupy
W swojej dotychczasowej karierze wziąłem udział w kilkuset meetupach, głównie tych łódzkich. To lokalne spotkania nonprofit organizowane w twoim mieście, skupiające zainteresowanych tą samą tematyką. W kontekście Javy prym wiodą spotkania Java User Groups Lista polskich miast dostępna jest na stronie https://www.java.pl/polskie-jugi i prezentuje się następująco:
- Bydgoszcz
- Kielce
- Kraków
- Lublin
- Łódź
- Opole
- Poznań
- Rzeszów
- Silesia
- Szczecin
- Tarnów
- Toruń
- Trójmiasto
- Warszawa
- Wrocław
- Zielona Góra
Wystarczy szybka rejestracja i wypatrywanie najbliższego spotkania, na którym możemy się pojawić.
Myślę, że to rewelacyjny sposób pozyskiwania wiedzy z kilku powodów:
- temat takich prezentacji w znacznej większości wypadków będzie prowadziła osoba z bogatszym doświadczeniem od naszego (czasem wręcz, o temacie nie wiemy nic – jeszcze lepiej!),
- gdybyśmy sami chcieli pozyskać informacje na ten temat, niejednokrotnie musielibyśmy poświęcić dużo więcej niż ta godzina skondensowanej wiedzy w trakcie prezentacji,
- networking, nawet jeśli nie należysz do grona dusz towarzyskich, to z czasem podczas takich spotkań zaczniesz poznawać wiele ciekawych osób, może nawet samych prelegentów,
- to nie powinien być główny cel takich wykładów, ale czasem można zgarnąć ciekawą nagrodę podczas losowania, np. licencje do InteliJ, książkę lub nawet latawiec
Czy wiesz, że oprócz lokalnych meetupów istnieją też wirtualne odpowiedniki?
Świetnym przykładem jest Virtual Java User Group
Co ważne wspomniany wyżej meetup istniał długo przed całym zamieszaniem z pandemią. Aktualnie wiele lokalnych inicjatyw została zmuszona do działania w sieci (np. edycja Warszawska JUG’a)
W ramach łódzkiej edycji JUG’a powstały dwa sezony poświęcone Javie (drugi dotyczył Springa). Jeżeli nie miałeś okazji ich obejrzeć, polecam Ci to nadrobić w wolnym czasie. Link do artykułu ze wszystkimi nagraniami pierwszego sezonu, znajdziesz tutaj https://kodujmy.pl/a-gdyby-tak-zrobic-serial-o-javie/
Pojedź na konferencje
Kolejną formą, która jest wyjątkowo bliska mojemu sercu i za którą, wyglądam z utęsknieniem, po paskudnym roku 2020, są konferencje branżowe. Tego typu eventy, najczęściej jedno lub kilkudniowe składają się z serii wykładów i/lub warsztatów tematycznych. Nierzadko organizatorzy przygotowują kilka ścieżek, w ramach których uczestnicy mają wybór, jaką prezentację chcą oglądać. Cennik tego typu wydarzeń jest bardzo szeroki i zaczyna się od całkowicie darmowych (najczęściej sponsorowanych przez jedną z firm) po takie, które kosztują nawet kilka tysięcy złotych.
Tak jak jvmbloggers zbierał w jedno miejsce blogi w Polsce, tak odpowiednikiem dla meetupów, konferencji jest platforma Crossweb. To świetne miejsce do śledzenia, co ciekawego w niedługim czasie będzie odbywało się w twoim mieście.
https://crossweb.pl/wydarzenia/
Kilka zalet konferencji
Nie będę wymieniał części zalet tego typu formy pozyskiwania wiedzy, bo w wielu wypadkach będzie podobna do lokalnych meetupów tylko w większej skali i zaserwowanych w l.epszym opakowaniu Skupię się natomiast na dodatkowych aspektach:
- Konferencje to świetne okazje do networkingu. Każda przerwa pomiędzy prelekcjami to okazja do poznania ciekawych osób i dyskusji.
- Jeżeli poszukujesz nowego pracodawcy, to w trakcie większości konferencji, roi się od stoisk, na których można bliżej poznać daną firmę, zostawić CV lub po prostu rozejrzeć się jak aktualnie wygląda rynek w danym mieście.
- Przy wspomnianych stoiskach, często organizowane są różnego rodzaju konkursy z nagrodami i rozdawane gadżety. Do dziś pamiętam, obchód po stoiskach przez moich kolegów z pierwszej pracy, którzy kompletowali wyprawki dla swoich pociech 🙂
- Z czasem można zamienić się rolami i spróbować swoich sił po drugiej stronie sceny, jako prelegent. To raczej temat na osobny wpis, ale z mojego skromnego doświadczenia, jeszcze ciekawsze przeżycie i zupełnie inny sposób na doświadczanie konferencji 🙂
Jak z konferencji wycisnąć ile się da?
Na koniec tego rozdziału podzielę się jeszcze z Tobą serią porad, którą stosuję przy okazji uczestnictwa w tego rodzaju spotkaniach. Aby jak najwięcej zapamiętać z ciekawych prezentacji, rozszerzam swoją ulotną pamięć poprzez robienie zdjęć co ciekawszym slajdom i spisuję notatki. W obecnej firmie w TomTomie wyskalowaliśmy nawet tę metodę do grupy osób. Działa to tak, że uczestnicząc w większej grupie, na konferencji jesteśmy w stanie obejrzeć więcej wykładów, odwiedzając kilka ścieżek równolegle. Każdy z nas robi notatki i wyciąga esencję z wykładów, które szczególnie przypadły mu do gustu. Po powrocie z konferencji robimy spotkanie, na którym wymieniamy się wiedzą, co wartościowego było na danej konferencji. Działa to zaskakująco dobrze. Jesteśmy w stanie dowiedzieć się nieco więcej o wykładach, których sami nie widzieliśmy, przypomnieć sobie istotne elementy widzianych prezentacji i zlokalizować perełki, które powinniśmy nadrobić w wolnej chwili.
Nagrania video
Wypadałoby, by jeszcze rozszerzyć poprzedni punkt o konferencje online, które przedefiniowały cały rynek konferencyjny w roku 2020. Połączę je z punktem ogólnych nagrań dostępnych w sieci. To bardzo podobna metoda do oglądania na żywo, ma jednak szereg plusów w stosunku do poprzednika:
Zalety nagrań
- Z reguły większość nagrań publikowanych po premierze jest darmowa. To ogromna zaleta dla wielu osób, które nie stać na wyjazd konferencyjny. Większość takich wyjazdów oprócz samych kosztów wydarzenia, pochłania koszta w postaci noclegu, transportu… i alkoholu wypitego w pubie 🙂
- Nagrania to ogromna oszczędność czasu. Po pierwsze, nie musimy ufać ślepemu losowi, większość z wydarzeń publikowanych w sieci jest już oceniona. Zarówno te dobre opinie jak i te złe rozchodzą się z reguły bardzo szybko.
- Mamy pełną kontrolę. Możemy daną prezentację zatrzymać, przyspieszyć, w przeciwieństwie do wykładu na żywo. Co więcej, polecam oglądanie prezentacji w trakcie biegów na bieżni lub jazdy rowerem stacjonarnym. To fantastyczne połączenie i hackowanie czasu 🙂
Jest też druga strona medalu:
Minusy w porównaniu do występów na żywo
- Oglądając nagrania w sieci, a nie na żywo tracimy sporo z klimatu danej imprezy oraz kontaktów socjalnych z innymi uczestnikami.
- Nagrania z reguły są publikowane z pewnych opóźnieniem, więc jeżeli należysz do grupy early adopterów, obejrzenie premiery na żywo może być dla Ciebie ważniejsze.
- Z reguły w trakcie żywych wydarzeń dochodzą dodatkowe bodźce, które powodują, że ilość zapamiętywanych szczegółów jest większa niż podczas oglądania video w domu.
Jeżeli szukasz dobrych nagrań, z których można pozyskać wartościowe informacje na tematy programowania w Javie i nie tylko. Stworzyłem wpis, który przybliża sylwetki 10 absolutnie rewelacyjnych mówców polskiej sceny konferencyjnej. Każdy rozdział został opatrzony przykładowym nagraniem, które gorąco Ci polecam.
10 najlepszych prelegentów Java w Polsce, których warto śledzić
Kodujmy!
Dotarliśmy do podstawy naszej piramidy. To właśnie tutaj dzieje się magia i właśnie od tego poziomu powinniśmy zaczynać naszą przygodę z nauką. Ale rozpocznijmy od pewnego podejścia, jakie powinno nam przyświecać podczas pracy.
Eksperymentuj i nie bój się próbować
Nie bój się eksperymentować, to sprawdzony i dobry sposób na pozyskiwanie nowej wiedzy w bardzo praktyczny i sprawdzony sposób. Nie bójmy się ponosić porażki. Jeden z moich ulubionych cytatów mówi
Ekspert to osoba, która w wąskiej dziedzinie popełniła wszystkie możliwe błędy.
Miej odwagę do tego, aby próbować nowych rzeczy. Usłyszałeś o dobrej praktyce, wdróż ją w życie i podziel się nią z innymi. Nie sprawdzi się? Trudno, zdobędziesz bezcenną wiedzę. Czasem małe zmiany, mogą zmienić bardzo wiele i nie nie chodzi mi wcale o ten commit z pierwszego artykułu 🙂 Wszelkie zmiany wymagają od nas odwagi zmierzenia się z konsekwencjami. Dlatego dobrze już na starcie nazywać coś eksperymentem, bo eksperymenty z założenia są czymś, co może się nie udać.
Przykłady eksperymentów:
- zamiana JUnit i Mockito na Spocka,
- podbicie Javy do nowszej wersji w projekcie,
- napisanie pierwszych testów end to end, pozwalających na wyłapanie regresji,
- stworzenie pierwszych metryk biznesowych,
- usprawnienie zasad robienia review w twoim zespole
Zdobywaj praktyczną wiedzę na warsztatach
Mimo, że same meetupy to również nierzadko spotkania w formie warsztatów, zdecydowałem się na poświęcenie im osobnego punktu. To fantastyczna okazja do bliższego zapoznania się z technologią/metodyką/językiem od bardziej praktycznej strony. Dziś warto nie zamykać się na samą Javę i śledzić również warsztaty na innych grupach poświęconych zwinnym metodykom, chmurze czy innym przydatnym elementom w naszej codziennej pracy. Poniżej kilka przykładów:
- https://www.meetup.com/pl-PL/aws-polska/ – tutaj prym wiedzie Tomek Stachlewski przygotowujący co jakiś czas rewelacyjne całodniowe warsztaty z chmury AWS. Znajomość chmury w dzisiejszych czasach to bardzo atrakcyjny dodatek (a niedługo wręcz wymóg), wyróżniający nas na tle wielu innych programistów. Ta forma organizowana przez Tomka zasługuje na najwyższe uznanie.
- https://stacja.it/ – inicjatywa organizowana przez firmę Sages. Są to całodniowe warsztaty poświęcone wybranemu zagadnieniu. Brałem udział w kilku, tych darmowych, płatnych i z czystym sumieniem mogę polecić taką formę nauki. Za nieduże pieniądze, jesteśmy w stanie poznać interesujące nas zagadnienia od strony czysto praktycznej.
- https://codepot.pl/ – to przykład całodniowej konferencji, w której samemu układaliśmy agendę, składającą się z różnych warsztatów. Z łzą w oku piszę o tym konkretnym przykładzie, bo inicjatywa chyba nie zostanie reaktywowana, a szkoda, bo była rewelacyjna. To tutaj niemal 6 lata temu pierwszy raz dotykałem chmury AWS, pisałem system wielowątkowy oparty na aktorach, które prowadził nie kto inny a sam Venkat Subramaniam, czy miałem okazję poznać czym jest Lean Startup Canvas na warsztacie u Pawła Wrzeszcza. Polecam wypatrywać podobnych inicjatyw poświęconych w całości warsztatom.
Certyfikacje
Przechodzimy do dosyć kontrowersyjnego tematu, ponieważ zdania na temat certyfikacji bywają bardzo podzielone. Grono przeciwników jako jeden z głównych zarzutów, jakie stawia to, że certyfikacje zabierają sporo czasu, który mógłby zostać poświęcony na bardziej praktyczne umiejętności. Zwolennicy będą natomiast zdania, że certyfikaty to bardzo dobra okazja, do tego, aby zdobyć wiedzę, która jest ustandaryzowana.
Według mnie prawda leży gdzieś pośrodku. Miałem okazję zdawać kilka egzaminów certyfikujących i muszę przyznać, że to zgoła inna forma nauki, niż taka nastawiona na praktyczne rozwiązywanie problemów. Pamiętaj jednak, że czysto praktyczne podejście, generuje dziury wiedzy, których możemy nigdy nie zalepić, ponieważ poziom, który osiągnęliśmy, jest wystarczający do wykonywania powierzonych nam zadań. Czy to problem? To zależy. Jeżeli np. w przyszłości chcemy kogoś nauczać, dogłębne poznanie danego tematu może okazać się dla nas wymogiem.
Certyfikaty mogą również niewątpliwie pomóc podczas procesu rekrutacji, ponieważ potwierdzają twoją wiedzę, którą przytoczyłeś w swoim CV. Dla przykładu popularne certyfikaty chmurowe w dzisiejszych czasach cieszą się dużym uznaniem wśród wielu firm i taka inwestycja może być bardzo opłacalna, podczas ubiegania się o pracę. Tutaj artykuł na temat, tego dlaczego warto zainwestować w tę formę zdobywania wiedzy: https://chmurowisko.pl/10-powodow-dla-ktorych-powinienes-miec-certyfikat-amazon-web-services/
Ewenementem na skalę światową jest dla mnie Konrad Clapa, który zdobył wszystkie dostępne 11 certyfikacji chmury publicznej Google. Do takiego wyczynu bez wątpienia wymagana jest niesamowita dawka samozaparcia. Konrad jest współautorem książki, w której rozwija temat samej certyfikacji i dzieli się wiedzą jak podejść do tego tematu.
Kursy online
To jeden z moich ulubionych punktów z tej listy. Łączy cechy praktycznej nauki, niższych kosztów (niż np. wspomniane wyżej warsztaty) i uporządkowanej wiedzy. Jest wiele dobrych platform, które oferują swoje usługi i pozwalają na szybkie zbudowanie nowej odnogi cenionych umiejętności.
Po raz kolejny posłużę się własnym przykładem. Myśląc o założeniu bloga, mogłem szukać na własną rękę materiałów w sieci, po drodze popełniać błędy i liczyć, że z czasem osiągnę upragniony efekt lub zakupić kurs, który przeprowadzi mnie przez cały proces za rękę i pokaże sprawdzoną ścieżkę jak stworzyć blog na miarę 2021 roku. Wybór był dosyć prosty. Liczę, że podobnie jak ja rozumiesz, jak cenną walutą jest czas, którego nie da się w żaden sposób odzyskać. W takim wypadku, wydanie nawet kilkuset złotych za kurs online nie wydaje się być złą inwestycją.
Czasem jestem świadkiem dyskusji w sieci, w których ktoś zarzuca komuś innemu, że ktoś ma czelność pobierać pieniądze, za swój kurs. Jak często argumentują to wtedy te osoby, serwowana wiedza w kursie jest przecież dostępna za darmo w sieci i w książkach. Niestety, osoby te nie mają najczęściej świadomości ukrytego kosztu, jakim jest czas zdobywania tej wiedzy na własną rękę.
Powyżej wspominam, że kursy kosztują i to często niemałe pieniądze. Nie jest to jednak regułą i jest wiele rewelacyjnych platform udostępniające solidne kursy za darmo. Wystarczy wymienić tutaj Courserę, EDX czy Harvard, który jakiś czas temu udostępnił zapisy na ciekawe kursy.
Pet Projects
Zbliżamy się do fundamentu piramidy i sposobów, które z jednej strony wymagają naszego największego zaangażowania, z drugiej strony w zamian oferują największą dawkę wiedzy i umiejętności, która jesteśmy w stanie przyswoić. „Pet Projects” tak potocznie nazywamy poboczne projekty, które możesz prowadzić po godzinach. Cele takich projektów mogą być różne:
- Zdobycie nowych umiejętności na bazie praktycznego projektu
- Hobystyczny projekt starający się rozwiązać jakiś problem
- Wzbogacenie swojego portfolio
Niekiedy udaje się łączyć wszystkie powyższe, dając podwaliny pod nowy projekt open source’owy. Z mojego doświadczenia ta metoda daje ogromnego kopa motywacyjnego i niczym kula śniegowa rozwija w nas umiejętności pozyskiwania praktycznych umiejętności i ich szybkiego przyswajania.
Myślę, że kiedyś zrobię osobny wpis poruszający tę tematykę i listę rzeczy, o których powinniśmy pamiętać, realizując tego typu projekty. Mam doświadczenie prowadzenia i nadzorowania sporej ilości projektów przez moich podopiecznych i chętnie podzielę się praktyczną wiedzą na ten temat.
Czy jest coś jeszcze lepszego od praktyki?
Mógłbyś pomyśleć, że praktyka to ostatni, najbardziej efektywny sposób na zdobywanie wiedzy. Jest jednak jeszcze jeden stopień ponad tym wszystkim. Elementem, który w najlepszy sposób pozwala nam poznać pewne zagadnienia to nauczanie innych. Myślę, że dzieje się tak z kilku powodów.
W trakcie przygotowywania materiałów dydaktycznych, z reguły chcemy poznać temat dogłębniej. Co innego skorzystać z wiedzy, którą posiadamy, czasem z pewnymi brakami, a co innego wytłumaczyć coś komuś w taki sposób, aby ktoś to dobrze zrozumiał.
Jak mawiał, Richard Feynman jeżeli nie potrafisz komuś wytłumaczyć czegoś w prostych słowach, to znaczy, że tego w pełni nie rozumiesz.
Poprzez naukę innych, naturalnie zapamiętujemy więcej i utrwalamy sobie znany materiał.
Ten punkt może przybierać różne formy:
- Piszesz na blogu,
- prowadzisz szkolenia,
- prezentujesz coś,
- sam fakt, że robisz dobre review innym, również da się podciągnąć pod ten punkt.
Rzeczy, które powinieneś wynieść z tego wpisu
Aby nauczyć się jeździć samochodem, najlepszą metodą będzie studiowanie atlasu drogowego. Chcąc poprawić, swoje zdolności kulinarne, musisz degustować drogich dań w dobrych restauracjach. Chcąc malować piękne obrazy, powinieneś kupić karnet do pobliskiej galerii.
Ok, mam nadzieję, że czujesz, że to wszystko nie ma sensu. Każdy praktyczny fach, da się opanować tylko i wyłącznie poświęcając na niego odpowiednią ilość praktyki, kropka. Nie inaczej jest z zawodem programisty.
Chcąc nauczyć się programować! Powinieneś więcej kodować!
Co w takim razie z całą resztą porad, zawartych w tym artykule? O ile programowanie to zdecydowanie najbardziej efektywną metodą pod względem polepszenia swoich umiejętności, o tyle jest szereg dodatkowych sposobów, o których warto nie zapominać. Warto nimi żonglować w zależności od okoliczności, łączyć je i wykorzystywać tam, gdzie mają sens. Po pierwsze poszerzają nasze horyzonty, zalepiają dziury wiedzy i pozwalają na lepsze wykorzystanie czasu, w końcu nie zawsze mamy czas i odpowiednią ilość skupienia, aby poświęcić ją na pisanie kodu.