czwartek, 24 kwietnia 2014

Ile trwa nauka? - wiecznie ...

Miałem taki epizod w moim życiu parę miesięcy temu....


Siedzę w programowaniu webowym od ok. 10 lat i dopadła mnie na początku roku 2014 taka handra, jakaś stagnacja... zauważyłem że mało się rozwijam i się po prostu nudzę programując od jakiegoś czasu ciągle te same rzeczy....

I tu nagle dostałem nową zajawkę! Potrzebowałem do projektu dobrze poznać XSLT. Jakoś zrodziła się nagle u mnie ogromna motywacja i zapał! Myślę sobie: muszę poznać ten język!

Akurat miałem książkę o XSLT (nie jakiś tam "Wstęp do ..." tylko grube 600 str.). Jak się w nią wkręciłem to po 3 godzinach ogarniałem ogólnie całość języka (A). Po prostu znałem rozdziały z książki:
  • to *co się dzieje* w tym języku,
  • jego strukturę porównując do języka jaki znam obecnie,
  • wiedziałem gdzie jest w książce pełna lista funkcji,
  • znałem rozdziały i zakres gdzie znajdę jakby co jakieś przykłady,
  • także określiłem parę rozdziałów które są trudniejsze i na obecną chwilę nie będą mnie interesować,
Poczułem, że ogarniam cały język (no uściślając: ogarniam go w zakresie jaki daje mi ta gruba książka) - fajne uczucie, że jakby znam lub mogę znaleźć wszystko co autor chciał powiedzieć :):)

Teraz zrobiłem ważną rzecz (uważając aby nie wypaść z tej obranej ścieżki w jakieś manowce):

Jak najszybciej przygotowałem sobie środowisko pracy i dążyłem do tego aby zaczął działać mi skopiowany z książki nietrywialny przykład który mnie zaciekawił.... To było ważne aby dział aby się nie zniechęcić... (B)

.. no i zacząłem go modyfikować wymyślając sobie co rusz jakieś drobniutkie cele do osiągnięcia - a tu pętelka jakaś, a tu inna zmienna, a tam jakaś wypatrzona nowa funkcja z pełnej listy funkcji, .... apetyt rósł w miarę kodowania :)

W nocy (po 12 godzinach od startu) już pisałem coś co nie było w żadnym przykładzie.... (czasem nie działało, to unikałem drążenia tematu aby się nie zniechęcić)

Kolejna ważna rzecz to utrzymanie ciągłego zaciekawienia i szukania rozwiązania do wymyślonych sobie drobnym celów.

Ponieważ ciągle potrafiłem przyłapać się na tym że czegoś nie wiem w XSLT (zauważałem że się irytuję coś pisząc i nie działa) - to widząc te emocje od razu zadawałem sobie te innego rodzaju pytania:
  • jak bym to zakodował w języku który znam,
  • może coś zmienie w celu jaki sobie postawiłem (coś ułatwię),
  • może zajrzę do przykładów gdzie występuje funkcja, którą chce użyć to coś mi to zasugeruje,
Czyli nie zadawałem sobie pytań - nie mówiłem sobie: ale ten język XSLT jest głupi, tego nie da się w nim zrobić, kto wymyślił taką składnie ?!? etc .... :) Unikałem straty motywacji jak ognia.

Tak zarwałem kolejne 2 noce (do 5 rano) ciesząc się jak dziecko że piszę jakieś strukturki, pętelki i używając coraz to innych funkcji języka....

Kolejny ważny punkt to zauważenie że czuję iż wiem tyle na obecną chwilę że zacznę coś kreować na poważnie (C).

I tutaj ważne aby mieć w zanadrzu ten nadrzędny cel (nie te malutkie cele wcześniejsze) - moim celem było napisanie dokumentacji do obecnego projektu przy użyciu właśnie języka przekształceń XSLT.

Czyli aby mieć motywację do dalszej nauki potrzebowałem bodźca że będę pisał coś co się przyda realnie (i pewnie na tym zarobię później)

A więc miałem takie etapy:

  • pozbycie się strachu że język XSLT ma nieskończenie wiele nieznanych mi rzeczy (A),
  • pokazanie sobie że mogę pisać kilku linijkowe (małe) rzeczy które działają i że panuję nad tym (B),
  • pisanie czegoś co będzie użyteczne później w projekcie - że będzie to wartościowe zawodowo a nie jakieś tam pitu-pitu do szuflady (C)

Ja uczyłem się 2 dni - potem po tygodniu uznałem że moja dokumentacja działa i ma jakieś znaczenie dla prowadzonego projektu. Mogłem na tamtą chwilę powiedzieć że tu i teraz mam najfajniej napisany kod XSLT na jaki mnie stać (z miarę wiedzy jaką wtedy posiadałem).

Oczywiście każdy zauważy i ja teraz także to wiem że tamten kod dało się napisać prawie w każdym miejscu lepiej, hehe (to lepiej to także subiektywne pojęcie) więc jest jeszcze jedna ważna rzecz (D):

Zdobywanie doświadczenia - to podstawa! - piszę i piszę w tym XSLT i każda linijka kodu to nowe doświadczenie!!
Ja cały czas myślę, że jestem w XSLT masterem , hehe

Ale refaktor kodu potrafię czasami zrobić po całości :) Wszystko napisać inaczej - może lepiej ....

To było 4 i pół miesiąca temu - to ja uczyłem się nowego języka 2 dni, tydzień czy do dzisiaj 4,5 miesiąca ?!?

Jak uważasz??

Brak komentarzy:

Prześlij komentarz