niedziela, 24 sierpnia 2008

The Unforgiven II

Kontynuując wątek prezentacji Davea Thomasa, którą wczoraj polecałem...
W dalszym ciągu jestem pod wrażeniem... luźna forma, cięty humor, trafność i błyskotliwość przykładów z zachowaniem ogólności... po prostu majstersztyk.

Już chyba sama świadomość rozpoczynającego się dwutygodniowego urlopu odblokowała moją kreatywność więc dopiszę coś jako kontynuację.

Tak jak wspominałem ostatnio przydałoby się poszerzyć rozważania Davea o aspekty typów osobowości (np wg Belbina) i metaprogramów, ale nie będę się póki co wydurniał bo to nie moja profesja (póki co).

Zamiast tego spróbuję "zamapować" fazy Dave na standardowe cztery etapy uczenia się.
Zatem standardowy (nie wspierany przez np. NLP) proces uczenia wygląda jakoś tak:

1. Nieświadoma niekompetencja - spokojnie sobie pracujesz w przekonaniu o własnej wspaniałości i wszechwiedzy. Programujesz tak jak zwykle, projektujesz (albo i nie) wg sprawdzonych nawyków. Nawet nie masz pojęcia, że gdzieś tam w wielkim świecie ludzie podniecają się nowym frameworkiem czy metodyką. Po prostu jest git i nie trza psuć.

Jeżeli jesteś typem innowatora to wrodzona ciekawość każe Ci szukać nowych możliwości. Nie dlatego że potrzebujesz nowego młotka do swej skrzynki z narzędziami, po prostu... robisz to dla czystej przyjemności. Nagle odkrywasz coś, co wg Twojej kobiecej;) intuicji jest lepsze od wszystkiego co do tej pory używałeś. Po prostu czujesz, że to coś zdefiniuje Twoje dotychczasowe nawyki jako nieelegancki czy nawet głupie.

Jeżeli natomiast jesteś np galernikiem i siedzisz w pracy aby mieć kasę na codzienną wegetację może Ci sie przydarzyć przykra sprawa: pewnego pięknego dnia ktoś przychodzi i każe Ci użyć nowego młotka - np jakiegoś Springa czy Qi. Nie jest Ci to na rękę bo wymaga pewnego wysiłku umysłowego (znowu). Co gorsza - ZMIANA. AAAAAA zmiany są takie straszne.

2. Świadoma niekompetencja - Tak czy owak stało się. Stoisz przed czymś nowym i nic nie rozumiesz. Powoli zaczynasz się uczyć, lub uczą Cię (jeżeli masz szczęście - chociaż czasem lepiej nie mieć nauczyciela niż mieć słabego).

W zależności od wypracowanych strategii uczysz się krok po kroku na małych przykładach albo wolisz najpierw objąć ogólną ideę. Masz pecha gdy nauczyciel albo autor materiałów akurat preferuje strategię odwrotną do twojej:/

Używasz tego nowego młotka, ale dobrze wiesz, że jeszcze nie idzie Ci to zbyt dobrze. Coś się nie inicjalizuje, context wyrzuca NullPointerException, widok się nie renderuje.

Wg Davea jesteś Nowicjuszem albo Zaawansowanym początkującym i chcesz po prostu wreszcie zrobić coś co zatrybi (choćby zgrzytając).

3. Świadoma kompetencja - Z czasem stałeś się Kompetentny. Wiesz już jak zrobić aby działało, potrafisz nawet używać bardziej zaawansowanych ficzerów frameworka czy innego narzędzia, rozwiązujesz problemy mniej doświadczonych kolegów. Znowu jest git, jest stabilnie i bezpiecznie.

Ale niektórzy zaczną drążyć głębiej. Zaczną zaglądać pod maskę. Zobaczą tam rzeczy, o których istnieniu nie mieli nawet pojęcia. Z czasem zrozumieją jedno: "wiem, że nic nie wiem". Zaczną zgłębiać teorię stojącą za mechanizmami narzędzia. Staną się Biegli dzięki rozumieniu na wskroś narzędzia, które stanie się przeźroczyste jak szyba. Przykładowo znajomość wzorców projektowych czy struktur architektonicznych przełoży się na kompletne zrozumienie kształtu frameworka, który stanie się wręcz oczywisty.

4. Nieświadoma kompetencja - Z czasem nowa wiedza poszerzona o skojarzenia z innymi dziedzinami, które zostały odkryte podczas jej zgłębiania stanie się zasymilowana do tego stopnia, że przejdzie do różnych obszarów nieświadomości. Po prostu zaczniesz intuicyjnie myśleć w nowy sposób. Np wzorce projektowe staną się naturalnym sposobem myślenia i projektowania. Kształt narzucany przez framework stanie się naturalnym kształtem jaki nadajesz swoim projektom. Jesteś po prostu Ekspertem.

The door is closed, so are you're eyes
But now I see the sun, now I see the sun
Yes now I see it




BTW: Przedstawione kroki można przejść wstecz (4,3,2) w celu oduczenia się niepożądanych nawyków. Np student, który wychodzi z uczelni jako Ekspert programowania proceduralnego może uświadomić sobie własny styl myślenia - przejść z kompetencji nieświadomej do świadomej. Czyli powinien zacząć zastanawiać się co w ogóle robi, po co i jakie to ma konsekwencje. Później już tylko krok do świadomej niekompetencji i poszukiwania alternatyw aby iść znowu do przodu.


//============================
Oczywiście nie ma ważnych rzeczy, o których nie napisałby już Alex:)
Możliwy jest przeskok z drugiego do czwartego etapu Nieświadomej kompetencji: Świadoma kompetencja - czy można ją pominąć?
Uwaga na specjalizację: Generalista, czyli umiejętne zastosowanie Zasady Pareto

Brak komentarzy: