fbpx
ArtykułPoradniki

Gumowa kaczka – do czego wykorzystują ją programiści?

Gumowa kaczka jaka jest, każdy widzi. Samo jej przeznaczenie też pewnie nigdy nie budziło w Was wątpliwości. Ale już zestawienie jej z pracą programisty dla większości może wydawać się dość dziwne. I słusznie, bo my programiści to dziwni ludzie. No dobra, żeby nikogo nie obrazić, jesteśmy specyficzni.

Jak pracują programiści?

Zanim zdradzę Wam, do czego wykorzystujemy tę zabawkę, to dosłownie dwa zdania na temat tego jak wygląda praca programisty. W wielkim skrócie: większość dnia spędzamy na tworzeniu nowego kodu i nowych błędów lub na przeglądaniu starego kodu i naprawianiu starych błędów. Ewentualnie na próbie ulepszenia każdego kodu, który wpadnie nam w ręce i oczywiście nie jest nasz (bo, jak wiadomo, nasz już nie może być lepszy). Oczywiście, o ile pisanie nowych skomplikowanych linijek kodu przychodzi nam z wielką przyjemnością i łatwością, to już znajdowanie w nich błędów to zupełnie inna historia. I tu dochodzimy do clou sprawy.

Gdy programista przełknie już pierwszą gorycz porażki, że to jednak on się myli, a nie komputer i kod niekoniecznie jest doskonały, przechodzi do żmudnego szukania winowajcy: błędnej linijki, złego warunku, literówki. Sposobów na to jest przynajmniej kilka. Użycie nieskończonej ilości funkcji print(), writeln(), console() w zależności od języka. Break-pointy i debugger do sprawdzenia i kontrolowania przebiegu programu, aż po… gumową kaczkę. Że co? Kaczkę? Ano właśnie. Nasz nieożywiony przyjaciel, który wybawi nas z opresji.

Kacza odsiecz

Jak to wygląda? Programista, próbując znaleźć błąd w swoim programie, stawia obok monitora wspomnianą gumową kaczkę. Oczywiście skierowaną tak, by widziała nasz piękny kod. Następnie – co ważne – na głos omawia zasadę działania programu, przechodząc linijka po linijce, cały czas tłumacząc poszczególne segmenty kodu i nagle… Eureka! Mamy nasz błąd w postaci np. źle zapisanego warunku. Dziwne? A jednak prawdziwe i bardzo skuteczne.

Tak naprawdę metoda „gumowej kaczuszki” jest implementacją (a programiści lubią implementować) tzw: „myślenia na głos”, czyli udowodnionej metody rozwiązywania problemów i wszechstronnego oraz elastycznego myślenia. Mówienie do siebie – czy też do naszej kaczki – sprawia, że bardziej skupiamy się na omawianym problemie oraz zmniejszamy ilość „szumów i zakłóceń”, które do nas docierają, rozpraszając naszą uwagę, w porównaniu do sytuacji, gdy robimy to w pamięci.

Myślisz o rozpoczęciu nauki?
Sprawdź weekendowy kurs Frontend Developer

Naukowcy z Uniwersytetu w Granadzie oraz Uniwersytetu Andyjskiego w Wenezueli przeanalizowali taki sposób rozwiązywania zadań matematycznych. Wykazali, że osoby rozwiązujące zadania “po cichu” w porównaniu do tych, którzy robili to “na głos” wolniej dochodzili do rozwiązań. Dodatkowo psycholodzy z Uniwersytetu w Wisconsin opublikowali badania, wskazujące, że głośne myślenie pobudza lewy dolny zakręt czołowy. Związany jest on właśnie z rozwiązywaniem problemów, planowaniem i skupieniem uwagi. To wszystko wystarczyło, by programiści, z natury ludzie opierający się na faktach i badaniach, zaimplementowali ten sposób działania w swój jak zwykle niekonwencjonalny i jedynie dla nich zrozumiały format.

Kaczka, nie kaczka – chodzi o zasadę

Zapytacie pewnie, dlaczego akurat kaczka… nie mam pojęcia. Jeśli ktoś z Was zna historię, proszę do nas napisać – do wygrania gumowa kaczka :). Ogólnie, w całej idei nie chodzi tak naprawdę o jakiś przedmiot nieożywiony – w tym przypadku gumową kaczkę. Ale może to być też nasz pies, kot lub, co chyba jednak najczęstsze, nasz kolega lub koleżanka siedzący obok. Muszę przyznać, że w czasie mojej wieloletniej pracy nie widziałem, żeby ktoś wybrał gumową zabawkę zamiast człowieka. Może to kwestia tego, że programiści są teraz bardziej otwarci na ludzi lub… Jest ich po prostu więcej niż w latach 70., w których pojawiały się wzmianki o tej metodzie. Z drugiej też strony nie widziałem przestrzeni programistów, w której nie byłoby jakiejś „maskotki” przeznaczonej do tego typu debugowania. A jak to jest u Was?

Tak czy inaczej, jeśli macie w rodzinie programistę lub programistkę i nie wiecie, co mu kupić na święta, to gumowa kaczka może być niezłym wyjściem.

Przeczytaj także:
UX to nie UI?

Autor: Łukasz Falkowicz
Full-Stack Developer / CTO
Programista praktyk, zaczynał, gdy programy do komputera wgrywało się z taśmy magnetofonowej.
Aktualnie full-stack developer i CTO w startupie. Wychodzi z założenia, że nie ma rzeczy niemożliwych. Rolnik z papierami odpoczywający poza miastem.

Back to top button