Przejdź do treści

Blog “Zakasane rękawy”

Kiedy należy przestać się uczyć

Data publikacji:

Ile książek masz w kolejce do przeczytania?

Ostatnio dość często trafiałem na blogach na temat materiałów do nauki. “10 książek o programowaniu funkcyjnym które musisz przeczytać przed śmiercią”, “15 darmowych kursów o podstawach HTML-a”, “30 frameworków front-endowych na marzec”, tego typu rzeczy. Niektóre całkiem fajne, może warte sprawdzenia.

Śledzę RSS-a Microsoft Press i zapowiedzi fajnych książek o technologiach które lubię. Czasem wchodzę na recenzję książek o programowaniu, webdeveloperce, IT. Zdarza mi się czasem złapać na tym, że co fajniejsze książki kolejkuję do przeczytania, ale z coraz mniejszym przekonaniem że po nie kiedykolwiek sięgnę.

Zasobów do przeczytania jest zawsze więcej niż czasu który możemy na to poświęcić. Co robić?!

Z nauką też czasem trzeba przystopować

Słuchałem dziś audiobooka Algorithms to Live By: The Computer Science of Human Decisions. Rozdział Explore/Exploit przedstawiał model matematyczny pewnego problemu związanego z podejmowaniem decyzji w sytuacji, gdy nasza wiedza jest ograniczona. Można go łatwo odnieść do pewnych codziennych sytuacji.

Problem w matematyce jest przedstawiany jako multi-armed bandit problem. Wyobraźmy sobie salon gier, w którym mamy wiele różnych automatów typu jednoręki bandyta. Automaty pozwalają nam wygrać z większym lub mniejszym prawdopodobieństwem. Po wejściu do salonu nie wiemy jednak, który automat jest lepszy, a który gorszy.

Załóżmy, że po paru minutach oddawania się rozrywce wiemy już że automat A pozwolił nam wygrać 6 razy i przegrać 4 razy. Natomiast automat B pozwolił wygrać 1 raz i przegrać 1 raz. Którego z nich powinniśmy użyć w kolejnej rundzie?

Można być chytrym i szybko policzyć, że automat A wygrywa w 60% przypadków, natomiast automat B tylko w 50%. Czy to jednak dobra strategia? W końcu w drugim przypadku nasza wiedza jest jednak dość mała i wynika z zaledwie dwóch prób. I co zrobić z automatami o których nic nie wiemy, czyli które dały nam 0 wygranych i 0 przegranych? Nigdy nie użyć? A może któryś z nich zawsze wygrywa, tylko o tym nie wiemy?

Matematycznie zaproponowane rozwiązanie również okazuje się słabe. W przypadku tego problemu nie możemy bazować jedynie na wiedzy którą posiadamy. Aby podejmować najlepsze decyzje, musimy eksplorować. Poszerzać swoją wiedzę, jednocześnie ryzykując straty.

Przykład z życia: recenzent muzyczny

Spróbujmy znaleźć nieco analogii do tego problemu w życiu. Wspomniana książka podaje przykład melomana - osoby która słucha muzyki dla przyjemności, oraz dziennikarza muzycznego.

Obie te osoby łączy wspólna pasja, muzyka. Jednak sposób, w jaki jej słuchają w typowym przypadku dramatycznie się różni. Spójrzmy na to w kryteriach dwóch pojęć:

  • eksploracji - poznawania całkowicie nowych rzeczy
  • eksploatacji - wykorzystywania wiedzy, którą już mamy

Meloman może być osobą, dla której zawód recenzenta muzycznego wydaje się pracą marzeń. Gdyby jednak zamienili się rolami, mógłby być rozczarowany. Słuchanie muzyki dla przyjemności pozwala dowolnie wybrać proporcje pomiędzy słuchaniem tego co już znane, a nowościami. Praca dziennikarza wymusza ciągłe zapoznawanie się z nowościami, eksploracja może sięgać 100% czasu, a słuchanie dla przyjemności starych utworów okazać się niemożliwe.

Przykład z życia: programista

W tym kontekście nasuwają mi się przemyślenia także odnośnie pracy w naszej branży. Nowa wiedza w tej dziedzinie jest tworzona tak szybko, że żadna osoba nie jest w stanie za nią w pełni "nadążyć". Oczywiście, podstawy informatyki się nie zmieniają. Jednak jeśli myślimy o programiście w ekosystemie w którym pracuje, z jego narzędziami, bibliotekami i zmieniającymi się konwencjami, to wszystkie te rzeczy mają charakter nowych informacji, płynących do nas bystrym strumieniem internetowych łączy każdego dnia.

Mamy natomiast w tym zawodzie zwykle pewien stopień swobody, który pozwala nam wybrać w jakim stopniu chcemy eksplorować, a w jakim wykorzystać obecną wiedzę do rozwiązania problemów. Wykorzystując posiadaną wiedzę godzimy się z tym, że być może istnieją prostsze, bardziej eleganckie rozwiązania.

Każdy z nas podejmując decyzję o swojej karierze, ścieżce certyfikacji, miejscu pracy w jakimś stopniu musi się określić pod kątem kryteriów eksploracji i eksploatacji. Zmieniając firmę możemy wybrać zestaw technologii który znamy w 100%, ale może celowo zechcemy zejść z tym współczynnikiem do 60%, żeby w nowym miejscu nauczyć się nowego ORM-a albo frameworka.

Robiąc projekt po godzinach możemy zechcieć nauczyć się nowej technologii i złapać dwie sroki za ogon. Może jednak rozsądniej jest użyć tego co znamy, żeby w najkrótszym czasie stworzyć Minimum Viable Product? Wiele takich decyzji musieli na pewno podjąć uczestnicy Daj Się Poznać 2017 i w tej chwili zapewne widzą ich efekty: dobre, złe, lub zależne od perspektywy (wszak opóźniony projekt może być mniej ważny niż nowa wiedza).

Jaka decyzja jest najlepsza? Które podejście pozwala najwięcej zarobić, a które mieć najwięcej frajdy podczas pracy? Te pytania pozostawiam otwarte.

Rozwiązanie matematyczne tego problemu istnieje. Żeby je poznać trzeba sięgnąć po wspomnianą książkę, albo do Wikipedii. Czy eksploracja tej wiedzy jest warta zachodu? Pozostawiam każdemu decyzję :)

Komentarze