Programın anlaşılması, bir programcının bir bilgisayar programının kaynak kodunun ne yaptığını anlama yeteneğidir. Bilgisayar bilimleri öğretiminde, bir programın anlaşılması, öğretilen bilgisayar dilinin mekaniği ve sözdizimini öğrenmek lehine sıklıkla göz ardı edilmektedir. Bununla birlikte, anlaşılabilir kod yazmak, içinde bulunduğu bilgisayar diline bakılmaksızın evrensel bir ihtiyaçtır. Bir programcı bir kütüphane veya bir kod parçası yazarsa, ancak kimse daha sonra ne yapacağını belirleyemezse, bu kodun arkasındaki algoritma ve mantık kolayca kaybolabilir. Programcıların sıklıkla kendi kodlarını deşifre edememesi sıkça rastlanır, çünkü genellikle açık ve sezgisel bir şekilde yazılmaz.
Programcıların program anlayışını geliştirmek için kullanabilecekleri iki ana strateji vardır ve her birinin kendine göre avantajları ve sakıncaları vardır. İlk yöntem, kod oluşturma sırasında veya sonrasında koda dokümantasyon eklemektir ve ikincisi, yapısını vurgulayarak kod yazmaktadır. Her iki yaklaşımın birleşimi çoğu programcı için yararlıdır, ancak bir stratejiyi diğerine tercih eden bazı kod oluşturucular vardır. Hangi yöntemi kullanacağınız programcı tarafından kişisel tercih meselesidir ve kodu netleştirme girişimi hiç olmamasından çok daha iyidir.
Kodlamaya dokümantasyon eklemek, iki yöntemin daha basittir ve iyi yapıldığında, kodun yazıldığı diline aşina olmayan bir programcı için çok kullanışlı bir koltuk değneği olabilir. Çoğu bilgisayar dili, programın anlaşılmasına yardımcı olmak için özel bir dokümantasyon stiline sahiptir. Kod dokümantasyonu ayrıntılı bir şekilde yazılırsa, yeni bir programcının ilk adımı, programın nasıl çalıştığını, kodu hiç okumaksızın nasıl çalıştığını anlamak için tüm dokümantasyonu ve yorumları okumak olabilir. Programcı kod sözdizimine ve mekaniğine bağımlı olmak yerine, düz metinde ne olduğunu görebilir, ardından metni herhangi bir yerde ne olduğuna dair tam olarak ilişkilendirebilir. Bununla birlikte, koda dokümantasyon eklerken, programcıların dikkatli olması gerekir, çünkü çok fazla dokümantasyon yararlı olmak yerine kafa karıştırıcı ve müdahaleci olabilir.
Bir yapıya vurgu yapan bir kod yazarken, bir programcı, koduna bakan diğer tüm bakımcıların, dilin sözdizimi ve mekaniği hakkında eşdeğer bir bilgiye sahip olacağını varsaymaktadır. Bazen, bu geçerli bir varsayımdır, ancak her zaman güvenilemez. Büyük ölçüde yapıya dayalı program anlama mümkündür, ancak bunu kolaylaştırmak için orijinal programcının parçası üzerinde önemli ölçüde daha fazla çalışma gerektirir. Dilin mekaniği ve sözdizimi tüm stilistik kuralların yanı sıra tam olarak takip edilmeli ve her şey tutarlı olmalıdır. Bu şekilde kod yazarken, bir programcı her zaman kendisi için açık olanın başka bir kişi için net olamayacağının farkında olmalıdır.
Daha sonra programın anlaşılması için bir gözle kod yazarken bile, daha sonra ek belgeler veya yapısal değişiklikler gerekebilir. Bu, kod bakımının doğal bir parçasıdır ve programcının elinde bir arıza değildir. Bir programcının işi mümkün olduğu kadar çok anlama problemini tahmin etmektir, fakat hepsi her zaman yakalanmaz.


