Rozumienie programu to zdolność programisty do zrozumienia, co robi kod źródłowy programu komputerowego. W nauczaniu informatyki zrozumienie programu jest często pomijane na rzecz nauki mechaniki i składni nauczanego języka komputerowego. Pisanie zrozumiałego kodu jest jednak potrzebą powszechną, niezależnie od języka komputerowego, w jakim jest napisany. Jeśli programista pisze bibliotekę lub fragment kodu, ale nikt nie jest w stanie określić, co robi później, algorytm i logikę stojącą za tym kodem można łatwo zgubić. Coraz częściej programiści nie potrafią rozszyfrować własnego kodu, ponieważ często nie jest on napisany jasno i intuicyjnie.
Istnieją dwie główne strategie, które programiści mogą wykorzystać do poprawy zrozumienia programu, a każda z nich ma swoje zalety i wady. Pierwsza metoda polega na dodaniu dokumentacji do kodu podczas lub po stworzeniu kodu, a druga to napisanie kodu z naciskiem na jego strukturę. Połączenie obu podejść jest pomocne dla większości programistów, chociaż niektórzy twórcy kodu wolą jedną strategię od drugiej. Którą metodę zastosować, jest kwestią osobistych preferencji programisty, a każda próba wyjaśnienia kodu jest znacznie lepsza niż żadna.
Dodanie dokumentacji do kodu jest prostszą z dwóch metod, a jeśli zostanie dobrze zrobione, może być bardzo przydatną podporą dla programisty niezaznajomionego z językiem, w którym napisany jest kod. Większość języków komputerowych ma specyficzny styl dokumentacji, który pomaga w zrozumieniu programu. Jeśli dokumentacja kodu jest napisana dokładnie, pierwszym krokiem nowego programisty może być przeczytanie całej dokumentacji i komentarzy, aby zrozumieć, jak działa program, bez konieczności czytania kodu. Zamiast być zależnym od składni i mechaniki kodu, programista może zobaczyć, co dzieje się w zwykłym tekście, a następnie powiązać tekst dokładnie z tym, co dzieje się w danym miejscu. Jednak podczas dodawania dokumentacji do kodu programiści muszą być ostrożni, ponieważ zbyt duża ilość dokumentacji może być myląca i nachalna, a nie pomocna.
Pisząc kod z naciskiem na strukturę, programista zakłada, że wszyscy inni opiekunowie patrzący na jego kod będą mieli równoważną wiedzę na temat składni i mechaniki języka. Czasami jest to uzasadnione założenie, ale nie zawsze można na nim polegać. Zrozumienie programu oparte w dużej mierze na strukturze jest możliwe, ale ułatwienie tego wymaga znacznie więcej pracy ze strony oryginalnego programisty. Mechanika i składnia języka muszą być dokładnie przestrzegane, wszystkie konwencje stylistyczne i wszystko musi być spójne. Pisząc kod w ten sposób, programista musi zawsze mieć świadomość, że to, co jest dla niego jasne, może nie być jasne dla innej osoby.
Nawet podczas pisania kodu z myślą o późniejszym zrozumieniu programu, później może być potrzebna dodatkowa dokumentacja lub modyfikacje strukturalne. Jest to naturalna część obsługi kodu, a nie awaria z rąk programisty. Zadaniem programisty jest przewidywanie jak największej liczby problemów ze zrozumieniem, ale nie wszystkie z nich są wyłapywane.