Recursion öğrenme deneyimim bir öğretici videoyu izlemekle değil, terminalin donmasıyla başladı. Programlama öğreniyordum. Konular sırayla geliyordu ve bir gün ders recursion'a geldi. Kavram basit görünüyordu: bir fonksiyon kendini çağırır. Hocam güzel bir örnek verdi, faktöriyel hesabı. Anladım. Test ettim. Çalıştı. "O zaman ben de bir şey yazayım" dedim. Bir sayı listesini tersine çevirmek istedim ama kendi yolumla. Fonksiyonu yazdım, çağırdım ve terminal yanıt vermeyi bıraktı. İşlemci yüzde yüze fırladı. Kapatmak için Ctrl+C bastım. Recursion öğrenme deneyiminde sonsuz döngüye düşmenin sebebi basitti: base case, durma koşulu, yazmamıştım. Fonksiyon kendini sonsuza kadar çağırıyordu. Bunu kafamda tam olarak canlandıramamıştım çünkü okurken mantıklı geliyordu, ama uygulamada eksik bırakmıştım. O hatayı yaptıktan sonra recursion'ı gerçekten öğrendim. Her recursive fonksiyon için şunu soruyorum: "Nerede duracak?" Durma koşulunu yazmadan devam etmiyorum. Recursion öğrenme deneyimi bana şunu da gösterdi: bazı kavramlar anlatınca anlaşılır gibi görünür ama gerçek kavrayış ancak yanlış yapınca gelir. O sonsuz döngü olmasa, fonksiyona neden durma koşulu koyduğumu hiç bu kadar içselleştirmezdim. Şimdi recursion gördüğümde içgüdüsel olarak önce base case'e bakıyorum. Küçük bir panik anından doğan büyük bir alışkanlık.