Czemu ciągle zapominam metody, których “nauczyłem się” zaledwie kilka dni wcześniej? Czy to możliwe, że mój mózg ma w głębokim poważaniu cały wysiłek, który wkładam w naukę programowania? A tak swoją drogą, dlaczego dopiero po setkach godzin spędzonych przed komputerem jestem w stanie zakodować coś sensownego?

Dwa lata temu te pytania nurtowały mnie każdego dnia. Co gorsza, odpowiedzi otrzymywane od doświadczonych programistów rzadko napawały optymizmem. Zapowiadało się na to, że od biegłości w programowaniu dzieliły mnie tysiące godzin spędzonych przed komputerem.

Oczywiście byłem gotowy zapłacić cenę za realizację swoich marzeń ale nie dałem od razu za wygraną. Wierzyłem, że można zoptymalizować proces dążenia do mistrzostwa.

Brakujący element w nauce opartej o praktykę

Zacząłem rozglądać się za materiałami o tym jak skutecznie się uczyć. Natrafiłem na dr Barbarę Oakley. Możesz ją kojarzyć jako autorkę najpopularniejszego kursu online w dziejach: Learning How to Learn. Ja przeczytałem jej książkę Głowa do liczb. Mój proces nauki programowania uległ rewolucji, kiedy dowiedziałem się czym jest skoncentrowany i rozproszony tryb myślenia, zbrylanie wiedzy, jaki wpływ na przyswajanie informacji mają przerwy, trening i sen.

Przede wszystkim zrozumiałem, że do skutecznego uczenia się potrzebuję:

  • dogłębnego zrozumienia materiału
  • odświeżania wiedzy za pomocą aktywnych powtórek

Te dwie cechy łączy w sobie nauka programowania poprzez praktykę. Proces samodzielnego pisania kodu jest świetnym sposobem na sprawdzenie ile materiału z kursu faktycznie zrozumieliśmy, a jednocześnie mamy ciągłą okazję do powtórek podczas debugowania, czytania oraz dalszej rozbudowy projektu.

Niestety, szybko zauważysz, że ta metoda słabo sprawdza się do opanowania:

  • dobrych praktyk i zasad czystego kodu
  • teorii paradygmatów programowania i działania kompilatora
  • komend gita
  • skrótów klawiszowych w edytorze
  • sposobów rozwiązywania wyzwań algorytmicznych z rozmów kwalifikacyjnych

I tutaj pojawia się kolejny skarb, który poznałem dzięki Głowie do liczb.

Jak zapomnieć o zapominaniu

Pozwól, że opowiem Ci o metodzie, którą przedsiębiorca-milioner Derek Sivers nazywa najskuteczniejszą metodę nauki programowania jaką poznał przez 14 lat. Bloger Jeffrey Shek zawdzięcza jej swoje sukcesy w karierze progamistycznej. Korzystają z niej najlepsi studenci medycyny. Robert Crag zawdzięcza jej zostanie wielokrotnym rekordzistą jednego z najtrudniejszych teleturniejów na świecie Jeopardy.

Ta tajemnicza metoda to aktywne powtórki w interwałach (ang. active spaced repetition).

Jest połączeniem dwóch metod, z którymi miałeś już styczności w przeszłości:

  • Aktywnych powtórek czyli przywoływania wiedzy z pamięci bez zaglądania do materiałów pomocniczych. Robiłeś to przed egzaminem na studiach lub podczas nauki języków przy pomocy fiszek. Ta metoda jest znacznie skuteczniejsza od popularnego pasywnego czytania materiałów. Z badań jasno wynika, że sam akt przywoływania informacji umacnia pamięć i zwiększa szansę, że uda nam się to ponownie w przyszłości.

  • Powtórek w interwałach czyli systematycznego powtarzanie materiału przez wydłużony okres. Nawet jeżeli masz problemy z systematycznością, to na pewno skorzystałeś z tej metody przy nauce do egzaminu teoretycznego z prawa jazdy. Na pewno zauważyłeś, że wraz z każdą kolejną powtórką, coraz łatwiej było Ci udzielić odpowiedzi a ilość opanowanej wiedzy stale rosła.

Skąd skuteczność połączenia tych dwóch metod?

Efektywne uczenie się a krzywa zapominania

Motor skuteczności aktywnych powtórek w interwałach i powód, dla którego wkuwanie nie sprawdza się na dłuższa metę, to krzywa zapominania.

Krzywa zapominania - Wired Źródło: Wired

Od momentu pierwszego zapamiętania informacji z każdą minuta szansa na jej poprawne przywołanie spada. Krzywa jest stroma, po 10 dniach szanse spadają zaledwie do 60 procent. Po dwóch miesiącach szansa na sukces jest bliska zeru. Najlepszym dowodem na taką postać rzeczy, jest zakres wiedzy, który pozostał. w Twojej głowie po latach państwowej edukacji.

Naszym celem jako programistów, którzy chcą się ciągle rozwijać, jest zachowanie wiedzy na lata. Oczywiście zależy nam aby utrzymanie takiego stanu rzeczy wymagało jak najmniejszej inwestycji czasu.

Zgodnie z krzywą zapominania “sweet spot”, łączący skuteczne wydłużenie życia wiedzy w naszej głowie z oszczędnością czasu, to powtórka w momencie gdy mamy 90% szans na jej przywołanie. Co ważne, dzięki magii aktywnych powtórek, z każdym powtórzeniem, w naszej pamięci powstaje efekt kuli śnieżnej. Krzywa zapominania staje się coraz łagodniejsza, stąd mamy większe przerwy pomiędzy kolejnymi powtórkami.

Okej, wszystko fajnie: “jest wykresik, jest jakaś tam metoda ale jak mam to wszystko zastosować w praktyce?:. Skąd mam wiedzieć kiedy przyszedł czas na kolejną powtórkę? Mam sobie wykupić dożywotni zapas kartek samoprzylepnych na fiszki albo ganiać za kolegami, żeby odpytywali mnie z gita w przerwach na lunch?

Na szczęście to kolejny problem, który rozwiązuje za nas oprogramowanie.

Anki czyli praktyczny sposób na aktywne powtórki w interwałach

Zapraszam Cię do obejrzenia filmu, w którym zaprezentuję Ci Anki, program pozwalający na efektywne stosowanie aktywnych powtórek w interwałach. To narzędzie, dzięki któremu znacznie skrócisz czas poświęcany na naukę lub zwiększysz ilość przyswajanych informacji w tym samym czasie.

Obejrzyj proszę ten materiał i widzimy się z powrotem w sekcji Q&A oraz pięciu zasadach efektywnego korzystania z Anki :).

Odpowiedzi na najczęściej zadawane pytania

Pewnie czytając ten artykuł i oglądając film instruktażowy przyszło Ci do głowy kilka słusznych pytań:

Skoro ta metoda jest taka świetna, dlaczego nikt kogo znam z niej nie korzysta?

Powodów jest kilka. Przede wszystkim Anki ma ten sam problem co siłownia: wymaga systematyczności, dyscypliny. Tworzenie talii, tak jak budowanie sylwetki, to proces oparty o oddaloną gratyfikację. Na dodatek chwalenie się 18-godzinnymi maratonami nad kodem/książkami wywołuje więcej podziwu w otoczeniu niż wieść, że jarasz się aplikacją do fiszek, której skuteczność nie jest tak łatwa do wytłumaczenia niewtajemniczonym w arkana aktywnych powtórek w interwałach. Ostatnia sprawa, interfejs graficzny Anki jest dość surowy. To często zniechęca początkujących, którzy myślą, że w ten sam sposób twórcy potraktowali sam algorytm napędzający aplikację.

Czy muszę powtarzać codziennie?

Owszem, jeżeli zależy Ci aby metoda przynosiła maksimum rezultatów. Przy talii 6000 kart, powtórka zajmuje mi 20-30 minut dziennie. Gdy poznasz pięć zasad efektywnego korzystania z Anki, które opisałem w dalszej części artykułu, spokojnie poradzisz sobie z wygospodarowaniem tego czasu każdego dnia, praktycznie tego nie odczuwając.

Czy mogę korzystać z cudzych talii?

Możesz, ale nie powinieneś. Cudze talie siłą rzeczy będą zawierały karty, których nie rozumiesz. Szkoda tracić czas na powtarzanie informacji, z których będziesz w stanie uczynić marny użytek. Co najważniejsze, samodzielny proces tworzenia kart umacnia wiedzę poprzez konieczność formułowania jej za pomocą pytań i odpowiedzi. Sam wielokrotnie dopiero w momencie tworzenia karty przekonałem się, że w moim rozumowaniu istnieje dziura. Gdyby nie to, dowiedziałbym się o tym dopiero dzięki uprzejmności kompilatora wyrzucającego błąd.

Skoro rozbroiliśmy największe przeszkody i wątpliwości, przejdźmy do tego jak robić to dobrze.

Pięć zasad efektywnego korzystania z Anki

Dziele się z Tobą owocami moich 2 lat doświadczenia z Anki. W tym czasie utworzyłem 5859 kart i wykonałem 32737 powtórki. Stosując pięć poniższych zasad wyciągniesz maksimum wartości z tej niesamowitej metody.

1. Jak wyrobić sobie nawyk codziennych powtórek w Anki?

Każdy nawyk opiera się o cykl: wskazówka -> działanie -> nagroda

Pozwól, że przedstawię to na konkretnym przykładzie tworzenia kart w Anki:

Wskazówka: zainteresowany dyskusjami na forach internetowych przeszukujesz internety w poszukiwaniu informacji o TypeScript. W końcu natrafiasz na wiarygodne źródło wiedzy, np. ten materiał ;)

Działanie: podczas oglądania zatrzymujesz materiał i tworzysz karty, np. “Czym jest TypeScript?” | “Superset JavaScriptu pozwalający na statyczne typowanie”.

Nagroda: jedzenie/napój, miła słowa wypowiedziane we własnym kierunku, widok inkrementacji liczby kart oznaczonych jako “New”

Pro tip: W trakcie tego cyklu pojawiają się dwie wskazówki, które mogą rozpocząć cykl na nowo. W definicji TypeScript zawarliśmy dwa złożone sformułowania: “superset” oraz “statyczne typowanie”. To aż prosi się o nowe karty.

Polecam Ci ustalić sobie sobie cel na 5 nowych kart dziennie. Po 20 dniach korzystania z Anki będziesz miał do dospozycji 100 kart. Możesz być pewien, że w tym czasie codzienne korzystanie z Anki wejdzie Ci w nawyk.

2. Kiedy znaleźć czas na powtórki?

Karty znacznie łatwiej tworzy się na desktopie, za to królem powtórek jest wersja mobile. Dzięki niej możesz powtarzać:

  • w komunikacji miejskiej w drodze do pracy (moja metoda)
  • w kolejce do kasy
  • czekając na lekarza
  • w kinie podczas reklam poprzedzających film
  • czekając na spóźnionego znajomego

Takich “martwych chwil” jest w Twoim dniu pewnie jeszcze więcej. W ramach ćwiczenia zastanów się nad jedną, której nie ma na mojej liście.

3. Twórz karty tylko z wiedzy, którą ROZUMIESZ i POTRZEBUJESZ

Inaczej narazisz się na frustrację. Nie dasz rady trwale zapamiętać czegoś co jest dla Ciebie niezrozumiałe. No i po co poświęcać czas na powtarzanie informacji, które nie są Ci potrzebne?

Oczywiście nie zawsze jesteśmy w stanie poprawnie stwierdzić czy wiedza, którą chcemy przekuć na kartę, spełnia dwa powyższe warunki. Coś co wydaje się potrzebne dzisiaj, może okazać się bezużyteczne za miesiąc. Wyczucie wyrobi się z czasem a zbędne karty zawsze możesz usunąć.

4. One deck to rule them all

Tworzymy jedną talię, wspólną dla wszystkich technologii. Taka różnorodność wiedzy ułatwia jej transfer do nowych kontekstów i pozytywnie wpływa na umiejętność rozwiązywania problemów pomiędzy wieloma domenami. Dodatkowo ułatwia to proces powtórek, wystarczy odpalić jedną talię i po sprawie.

5. Traktuj Anki jako swoją bibliotekę aleksandryjską - koniec z notatkami

Wyszukiwarka w Anki to świetny sposób na natychmiastowy dostęp do kluczowej dla Ciebie wiedzy. Sprawdza się dużo lepiej niż Google, nie musimy filtrować informacji. Na dodatek są one przedstawione zrozumiałym dla nas językiem.

Od momentu, w którym postawiłem wszystko na tę kartę (pun intended) i zrezygnowałem z tworzenia tradycyjnych notatek, oszczędzam jeszcze więcej czasu i wzrósł mój entuzjazm do samego tworzenia kart i robienia powtórek.

Podsumowanie

Oczywiście zawsze są alternatywy dla zaprezentowanej w tym artykule metody: kucie się przed rozmową kwalifikacyjnej/egzaminem lub powtarzanie wiedzy na wyczucie. Obydwa z tych sposobów, są kiepską inwestycją najcenniejszego z Twoich zasobów: czasu.

Daj sobie 20 dni i pozwól Anki odmienić Twój proces uczenia się na lepsze.

Jeżeli zapiszesz się do newslettera przeprogramowanych, to na Twoją skrzynkę trafią:

  • moje ustawienia konfiguracyjne optymalizujące działanie Anki, które dodatkowo zaoszczędzą Ci około 60 godzin nauki rocznie
  • lista najlepszych darmowych addonów usprawniających działanie Anki

Masz pytania? Zadawaj je śmiało w komentarzach.

No i koniecznie pochwal się pierwszą kartą, która trafiła do Twojej talii Anki :).