Başkasının kodunu okuma deneyimim bir zorunlulukla başladı. Bir projede acil bir hata düzeltmesi gerekiyordu ve o kodu yazan kişi yoktu. Kod benim elimdeydi ve hiçbir şeyi anlamıyordum. Değişken isimlerine baktım: tek harfli, anlamsız, bağlamsız. Fonksiyon isimleri vardı ama ne yaptıklarını adlarından anlamak imkânsızdı. Yorum satırı yoktu. Girinti tutarsızdı. O an şunu hissettim: Birisinin iç dünyasına izinsiz girmiş ve her şey benim mantığımla zıt bir şekilde dizilmiş gibi. Bir saat sonra küçük bir şey anlamaya başladım. Bir fonksiyonun ne yaptığını, çıktısına bakarak çıkardım. Sonra o fonksiyonu çağıran yere baktım, bağlamı biraz daha netleşti. Başkasının kodunu okuma süreci, arkeoloji gibi hissettirdi: katmanları kazıyorsunuz ve altından her seferinde bir parça daha açığa çıkıyor. O gün hatayı düzelttim. Ama daha değerlisi, başkasının düşünme biçimini anlamak için çabalamak benim kendi kodlarıma dair ciddi sorular sormamı sağladı. Acaba ben de bu kodu yazan kişi gibi yazıyor muyum? Ertesi gün kendi eski bir projeme baktım. Altı ay önce yazdığım bir modül. Yorum yok, değişken isimleri kısaltılmış, mantık takip edilmesi güç bir sırayla ilerliyor. Başkasının kodunu okumuş gibi hissettim, ama o başkası bendim. Başkasının kodunu okuma deneyimi bana şunu öğretti: Kod sadece bilgisayarın okuyabileceği şekilde değil, insanın okuyabileceği şekilde yazılmalı. Çünkü o kodu altı ay sonra okuyacak kişi başkası değil, siz olacaksınız. Ve o an kendinize "bu neden böyle?" diye soruyorsanız, cevabı veremiyorsanız, hata oradadır. Bugün ne zaman kod yazacak olsam aklıma o başkasının kodu geliyor. Değişkene isim koyarken bir saniye duruyorum. Bu isim altı ay sonra da anlamlı olacak mı diye düşünüyorum. Yorumları daha sık ekliyorum. Çünkü başkasının kodu benim için derslik oldu.