Nu ai crede, dar rățuștele de cauciuc sunt mentori grozavi, motiv pentru care cred că sunt niște prieteni atât de buni pentru programatori.
Nu sunt multe rățuște de cauciuc cu diplome, dar au o superputere foarte utilă: nu înțeleg absolut nimic din bug-urile cu care te confrunți ca developer. Te-ai putea întreba acum: cum ajută asta? La urma urmei, orice obiect static are această calitate.
Lasă-mă să explic. Se numește „Rubber Duck Debugging”. Poate fi orice: o pisică sau chiar o jucărie dintr-un ou Kinder, dacă îți plac dulciurile la fel de mult ca mie. Tot ce trebuie să faci este să îi explici problema raței, iar simplul fapt că descrii, cât mai detaliat, ce ar trebui să facă codul tău face ca, aproape de fiecare dată, să găsești soluția. Rața va sta acolo nemișcată, mulțumită că te-a ajutat în parcursul tău. Acesta este sensul termenului „rubber duck debugging” și își are originea într-o carte de Andrew Hunt și David Thomas, The Pragmatic Programmer. Autorii povestesc despre un programator care purta o rățușcă de cauciuc și își depana codul explicând, linie cu linie, ce se întâmpla în acel cod, raței.
Unele studii sugerează că explicarea verbală a unui concept te ajută să îl înțelegi mai bine. Asta deoarece adesea credem că înțelegem o idee, dar nu reușim să o exprimăm în detaliu. Explicarea ei unei persoane — sau unui obiect — care nu înțelege te obligă să înlocuiești această falsă senzație de înțelegere cu o bază logică și rațională. Odată ce trebuie să explici un concept cuiva care nu știe nimic despre el, încetezi să mai iei lucrurile de-a gata și analizezi problema cu ochi proaspeți.
Un alt motiv pentru care această tehnică este atât de populară este că reduce nevoia de a cere ajutor colegilor, care pot fi ocupați. Rața va asculta răbdătoare și nu are nicio așteptare. Desigur, dacă te blochezi, nu ar trebui să eziți să le ceri ajutor colegilor tăi.
If you get bored with your rubber duck, you can find virtual ones online. Or, you can even become one (without growing a beak) by collaborating with others in real-time and listening to their technical problems.