50 dni z kodem, czyli na półmetku #100DaysofCode

#100DaysofCode

Minęło pięćdziesiąt dni, odkąd zdecydowałam się wziąć udział w wyzwaniu #100DaysofCode. Od tych pięćdziesięciu dni codziennie siadam do kodu (no, prawie codziennie, ale o tym dalej). Co daje mi wyzwanie i czy wytrwam pełne sto dni? Poczytajcie!

O co chodzi w tym wyzwaniu?

Wszystko zaczęło się od tego artykułu, w którym jego autor, Alexander Kallaway, opisuje pomysł na to, by codziennie robić coś “swojego” po pracy. Chce zostać lepszym developerem i się rozwijać. A jak wiadomo, wyzwania mają moc, Alexander postanawia publicznie ogłosić, że będzie kodował przez sto dni. Postępami dzieli na się na Twitterze używając hashtagu #100DaysofCode. Wszystkich chętnych zaprasza na oficjalną stronę wyzwania (znajdziecie ją tutaj).

Artykuł Alexandra powstał w czerwcu 2016, także już sporo czasu temu. Ja sama trafiłam na informacje o tym wyzwaniu czytając artykuł How to Get a Developer Jon in Less than a Year (bardzo Wam polecam go przejrzeć). Potem chciałam poczytać więcej tego samego autora i tak trafiłam na ideę 100 Days of Code. Od początku jednak wydawało mi się, że sto dni plus dość duże obostrzenia to nie dla mnie. Alexander bowiem zakłada, że np. oglądanie tutoriali czy czytanie dokumentacji nie liczy się do wyzwania – liczy się jedynie faktyczne pisanie kodu. I to godzinę dziennie.

Moje zasady wyzwania

Całkiem niedawno znowu trafiłam w sieci na wzmianki o wyzwaniu i pomyślałam, że może teraz jest czas, aby spróbować. Wiedziałam jednak, że zaczerpnę bardziej ideę niż wszystkie zasady określone w oryginalnym wyzwaniu. Biorąc pod uwagę fakt, że jestem na urlopie macierzyńskim i mój dzień potrafi być nieprzewidywalny, postanowiłam kodować minimum 30 minut dziennie, nie godzinę.

Założyłam, że będę się starać faktycznie pisać kod, a nie tylko oglądać kursy online czy video na YT. Jednak dopuściłam opcję obejrzenia czegoś lub przeczytania, jeśli naprawdę będę miała zły dzień. Mam tendencję do stosowania zasady “wszystko albo nic” i bałam się, że jak przez dwa dni będę się gorzej czuła i nie dam rady kodować, po prostu porzucę wyzwanie. A dzięki tej małej furtce z oglądaniem tutoriali czy czytaniem wpisów na Medium, będę mogła wytrwać.

Dodatkowo postanowiłam wliczać przerabianie kursów online do wyzwania. Postawiłam jedynie warunek, że muszę przećwiczyć pokazanie w kursie zagadnienia samodzielnie, a nie tylko obejrzeć. Nie raz zdarza mi się coś oglądać i wydaje mi się, że w sumie to jest proste i logiczne i na pewno to zrobię. A potem siadam do kodu i jednak robienie mi nie wychodzi. Postanowiłam więc działać i wykorzystywać świeżo zdobytą wiedzę od razu w praktyce, choćby pisząc jakiś krótki fragment kodu.

Ale co koduję?

Jako że teraz nie pracuję i nie mam na bieżąco kontaktu z kodem codziennie przez parę godzin, musiałam sama stworzyć bank pomysłów, które pozwolą mi wytrwać w wyzwaniu. Chodziło o to, żebym nie porzuciła wyzwania, bo “nie mam w sumie co robić”.

Mam taką wishlistę z zagadnieniami do sprawdzenia czy opracowania. Jak trafiam na coś niezrozumiałego podczas przerabiania kursu online albo jak jakiś temat chciałabym zgłębić, wrzucam go na tą listę. Kiedyś od razu przechodziłam do tego zagadnienia porzucając oryginaly kurs, przez co szybko wypadałam w kontekstu. A teraz stosuję zasadę zgodną z metodą Getting Things Done. Czyli wyrzucam myśl na listę. Dzięki temu wiem, że mi nie umknie, a mogę kontynuować to, czym się aktualnie zajmuję. Na tej liście są duże tematy (jak np. poczytać o React Suspense i go wypróbować), ale też mniejsze (np. różnią między export a export default). Wrzucając zagadnienie na listę nie zastanawiam się, czy będzie duże czy małe, po prostu pozbywam się go z głowy i wracam do listy co jakiś czas.

Druga baza rzeczy do zrobienia podczas wyzwania to były poprawki do mojej aplikacji, którą pisałam w ramach serii Własne aplikacja krok po kroku, czyli do Habit Trackera. Demo jest jako tako działające, ale jak wiadomo, poprawki są potrzebne zawsze. Mam całkiem sporą listę rzeczy do poprawienia i wprowadzenia do aplikacji i staram się sukcesywnie działać na tym polu.

Kolejny punkt to były kursy online. Trochę mi się ich nazbierało, więc postanowiłam, że podczas wyzwania część z nich przerobię i poćwiczę przedstawione w nich zagadnienia.

I wisienka na torcie – wiedziałam, że może być dzień, w którym nie będę miała ochotę na wprowadzenie poprawek do Habit Trackera czy przerabianie kursu. I wtedy przypomniało mi się Codewars! Postanowiłam wpleść robienie kata w wyzwanie. Jeśli nie wiecie, Codewars polega na robieniu krótkich, programistycznych zadań tzw. kata, w wybranym języku. Zadania mają rożny poziom trudności, a robiąc coraz trudniejsze, zbieramy punkty, dzięki którym przeskakujemy na wyższy poziom.

Podsumowanie 50 dni

Wyzwanie zaczęłam dokładnie 12 października, więc pięćdziesiąt dni minęło 30 listopada. Podczas tych pięćdziesięciu dni miałam tylko trzy takie słabsze, podczas których nie kodowałam, a użyłam mojej furtki z czytaniem artykułów i oglądaniem tutoriali. Tu mały offtop – muszę Wam polecić zobaczenie tego video o tym, jak pisać czystszy kod. Wiem, jest długie, ale warte każdej minuty, naprawdę!

Oprócz tych trzech gorszych dni, codziennie siadałam do kodu, czasem tylko na 30 minut, a czasem na kilka godzin (jak synek i mój poziom energii na to pozwoliły). Od początku wyzwania zrobiłam następujące rzeczy:

  • przerobiłam 19 kata na Codewars, co pozwoliło mi dojść od poziomu początkowego 8kyu do 6kyu; teraz robię zadania na poziomie 6 i 5kyu, aby osiągnąć poziom 5
  • wprowadziłam kilka poprawek/ulepszeń do Habit Trackera – m.in. możliwość dodawania daty początkowej do swojego nawyku; niestety mam problem z deployem najnowszych zmian na Netlify tak, by podlinkować Wam aktualne demo; będę z tym walczyć w najbliższym czasie, więc jak tylko będzie nowe demo, od razu się podzielę; tymczasem kod znajdziecie w tym repo
  • przerobiłam kurs 20 CSS Tricks You Probably Haven’t Used Before ze Skillshare; autorką kursu jest Aga Naplocha z The Awwwesomes i bardzo Wam go polecam; zrobiłam wszystkie ćwiczenia z kursu i wprowadziłam zmiany w CSS testowej stronki zgodnie z instrukcjami; jak nie macie subskrypcji na Skillshare to możecie skorzystać z darmowego miesiąca wchodząc przez mój link referencyjny (jeśli potem kupicie subskrypcję, ja dostaję miesiąc gratis)
  • zapoznałam się z dokumentacją Gatsby.js i przerobiłam podstawowy tutorial z oficjalnej strony
  • postawiłam prostą stronkę korzystając z Gatsby.js, jako projekt posłużył mi gotowy layout z materiałów od The Awwwesomes; niestety nie udało mi się zakodować responsywnej strony do końca, tak jak zakładałam, bo trafiłam na kilka problemów z Gatsby – nie znam go zupełnie i trochę czasu zajęło mi rozgryzienie niektórych kwestii; a że Gatsby to nie jest obecnie dla mnie priorytet, a raczej zajawka, postanowiłam, że poświęcę na tę stronkę tydzień; tydzień minął, część rzeczy rozwiązałam, ale część na razie zawiesiłam, powrócę, jak znajdę więcej czasu; za to jestem dumna, bo fajnie udało mi się używać Flexboxa i CSS grida w layoucie, dobrze było je powtórzyć z okazji tego mini projektu
  • zaczęłam czytać i przerabiać przykłady z serii książek You Don’t Know JS; kiedyś już je czytałam, ale w wersji papierowej, a teraz odkryłam, że najnowsze wersje są dostępne za darmo pod tym linkiem na Githubie; o wiele fajniej się pracuje, jak mogę czytać i od razu próbować kod; na razie jestem w połowie pierwszej części
  • przerobiłam 5 pierwszych modułów z kursu ES6 od Wesa Bosa; dla mnie to była powtórka, bo część rzeczy z ES6 znam i używam, ale odkryłam też kilka niuansów; w dalszej części kursu widzę więcej tematów, z którymi nie miałam do czynienia, więc już się nie mogę doczekać aż do tego usiądę
  • przerobiłam 2 duże moduły z kursu Fullstack Advanced React and GraphQL, także od Wesa Bosa; tu niestety na razie kurs porzuciłam, bo miałam spore problemy z konfiguracją, niby wszystko jest jak w kursie, a nie działa (albo działa losowo); część rzeczy naprawiłam, część wykombinowałam po swojemu, ale że głównym problemem są tutaj setupy dla GraphQL, Prismy itp to na razie dawkuję sobie debugowanie, aby się zupełnie nie zniechęcić;
  • przerobiłam tutorial React + Apollo ze strony How To GraphQL i zbudowałam mini aplikację zgodnie z tutorialem

Uff.. to by było na tyle! Muszę przyznać, że dopiero po spisaniu wszystkiego widzę, ile tego było. Nie spodziewałam się, że to było aż tak pracowite pięćdziesiąt dni. Przyznam, że jestem z siebie bardzo dumna, że codziennie znajduję czas na kod (albo jakiś zamiennik). Wymaga to sporo zaangażowania i często poświęcenia, ale satysfakcja jest naprawdę ogromna. Plus widzę duże postępy, gdy siadam do kodu codziennie. Praca z pierwszymi kata to była katorga, miałam wrażenie, że zapominam najprostszych rzeczy i dosłownie wszystkiego muszę szukać w dokumentacji (a działam tam w czystym JS, więc to nie powinny być dla mnie nowości).

A co z kryzysami?

Nie będę udawać, że podczas tych minionych pięćdziesięciu dni nie miałam kryzysu. Miałam ich wiele, nie tylko jeden! Mniej więcej co drugi dzień wydawało mi się, że to nie ma sensu, nic nie umiem i nie zrozumiem. Szczególnie gdy spędzałam kilka godzin na debugowaniu błędów z Gatsby. Miałam z nim do czynienia po raz pierwszy i musiałam kilkukrotnie czytać dokumentację, a pracowałam na super prostej stronce, więc wydawało mi się, że nie natrafię na problemy. Błędne to było założenie.

Dzieliłam się już tym na Instagramiebardzo pomógł mi odcinek podcastu Syntax pt. How To Get Better At Problem Solving. Zauważyłam, że w zły sposób podchodziłam do debugowania, traktując je z góry jako coś nieprzyjemnego. A przecież to super okazji do nauki! Zmiana podejście naprawdę dużo mi dała. Oczywiście, nie jest zawsze kolorowo, ale wiele się nauczyłam walcząc z problemami, które ostatnio spotkałam w kodzie i postanowiłam o wiele bardziej doceniać taką formę nauki. Jeśli ciekawi Was, jakie główne tematy poruszali prowadzący we wcześniej wspomnianymi odcinku, podzieliłam się notatkami w Stories zapisanym na IG.

Przede mną kolejne 50 dni!

A właściwie kolejne pięćdziesiąt dni już się rozpoczęło, bo ten wpis powstaje 2 grudnia. Aktualnie skupiam się na utrwalaniu ogólnej wiedzy z JS czytając You Don’t Know JS i przerabiając kurs ES6 i robię kata na Codewars. Mam nadzieję, że uda mi się wytrwać do końca wyzwania i spotkamy się we wpisie podsumowującym moje sto dni z kodem!

Jeśli sami chcecie rozpocząć takie wyzwanie, albo może jesteście w trakcie, mocno polecam ustalić sobie zasady, które są realnie do zrealizowania w Waszej aktualnej sytuacji życiowej. Ja nie zakładam codziennie 3 godzin z kodem, bo wiem, że teraz to jest możliwe. Pamiętajcie, że małe kroki także prowadzą do celu! Wyzwanie mocno pomaga też w znajdywaniu priorytetów. Jak mam wolne pół godziny, to najpierw siadam do kodu, a dopiero potem zaczynam się błąkać np. po social media. Stąd mniej mnie ostatnio i na fanpage’u i na IG, ale na dobre mi to wychodzi. Kiedy publikuję coś w social media, są to rzeczy przemyślane i zazwyczaj zaplanowane wcześniej.

Na sam koniec jeszcze prośba – zbliża się styczeń, a ja planuję, w jakim kierunku pójdzie blog w 2020 roku. Jeśli jest coś, o czym chcecie tu poczytać albo po prostu macie ochotę mi coś napisać czy doradzić w kwestii bloga, napiszcie maila na joanna@wakeupandcode.pl.

Po więcej ciekawostek o kodzie i wycinków mojego codziennego życia zapraszam na mój Instagram i na fanpage. I życzę Wam udanego realizowania kodowych wyzwań na koniec roku!

4 Replies to “50 dni z kodem, czyli na półmetku #100DaysofCode”

  1. Gratuluje i powodzenia w następnych 50ciu dniach ! 🙂
    Jak już zrobię inżynierkę również spróbuje 😀

    Mam pytanko co do Habit Trackera – w jaki sposób planujesz projekt ? Zanim zaczęłaś kodować miałaś już cały plan gotowy – co i jak ma działać, jak użytkownik będzie z tego korzystał czy na bieżąco po trochę planujesz i piszesz? 🙂

    Pozdrawiam 🙂

    1. Dzięki! To było moje drugie podejście do Habit Trackera, wcześniej kodowałam go bez większego zastanowienia nad końcowym użytkownikiem, tak typowo dla poćwiczenia kodowania. Teraz w projekcie pomagała mi Zuzia, która zajmuje się UXem, to ona zajęła się badaniem przyszłego użytkownika i zaprojektowała aplikację. Więcej o tym, jak podeszła do projektu poczytasz w tym wpisie. Zuzia zaplanowała sporo wprzód, więc teraz jak chcę dodać coś nowego, zaglądam do naszej korespondencji i makiet, które przygotowała i coś sobie wybieram.

  2. U mnie zapewne już dawno pękło 100 dni 😉
    Aczkolwiek zachęciłaś mnie by podjąć “oficjalnie” to wyzwanie i raportować to w jakiś sposób (celem “dowodu”).
    Biorę wyzwanie na klatę w nowym roku 🙂
    A Tobie Asiu życzę wytrwałości w kolejnych 50-ciu dniach 🙂

    1. Dziękuję! To w takim razie życzę powodzenia w “oficjalnym” odliczaniu 🙂

Dodaj komentarz