Înțelegerea programului este capacitatea unui programator de a înțelege ce face codul sursă al unui program de calculator. În instruirea informatică, înțelegerea unui program este adesea trecută cu vederea în favoarea învățării mecanicii și sintaxei limbajului informatic predat. Scrierea unui cod inteligibil este însă o necesitate universală, indiferent de limbajul computerizat în care este scris. Dacă un programator scrie o bibliotecă sau o bucată de cod, dar nimeni nu poate determina ce face după aceea, algoritmul și logica din spatele codului se pot pierde cu ușurință. Este din ce în ce mai frecvent ca programatorii să nu-și descifreze propriul cod, deoarece adesea nu este scris clar și intuitiv.
Există două strategii principale pe care programatorii le pot folosi pentru a îmbunătăți înțelegerea programului și fiecare are propriile sale avantaje și dezavantaje. Prima metodă este să adăugați documentație la cod în timpul sau după crearea codului, iar a doua este să scrieți codul cu accent pe structura acestuia. O combinație a ambelor abordări este utilă pentru majoritatea programatorilor, deși există unii constructori de cod care preferă o strategie decât alta. Ce metodă de utilizat este o chestiune de preferință personală a programatorului și orice încercare de a clarifica codul este mult mai bună decât deloc.
Adăugarea de documentație la cod este cea mai simplă dintre cele două metode și, atunci când este făcută bine, poate fi o cârjă foarte utilă pentru un programator care nu este familiarizat cu limba în care este scris codul. Majoritatea limbajelor de calculator au un stil de documentare specific pentru a ajuta la înțelegerea programului. Dacă documentația codului este scrisă temeinic, primul pas al unui programator nou poate fi să citească toată documentația și comentariile pentru a înțelege cum funcționează programul, fără a fi citit deloc codul. În loc să fie dependent de sintaxa și mecanica codului, programatorul poate vedea ce se întâmplă în text simplu, apoi poate lega textul cu exact ceea ce se întâmplă în orice loc dat. Când adaugă documentație la cod, totuși, programatorii trebuie să fie precauți, deoarece prea multă documentație poate fi confuză și intruzivă, mai degrabă decât utilă.
Când scrie cod cu accent pe structură, un programator presupune că orice alți menținători care se uită la codul său vor avea cunoștințe echivalente despre sintaxa și mecanica limbajului. Uneori, aceasta este o presupunere validă, dar nu poate fi întotdeauna bazată pe ea. Este posibilă înțelegerea programului bazată în mare parte pe structură, dar este nevoie de mult mai multă muncă din partea programatorului original pentru a o facilita. Trebuie respectate întocmai mecanica și sintaxa limbajului, precum și toate convențiile stilistice și totul trebuie să fie consecvent. Când scrie codul în acest fel, un programator trebuie să fie întotdeauna conștient că ceea ce este clar pentru el poate să nu fie clar pentru o altă persoană.
Chiar și atunci când scrieți cod cu ochi pentru înțelegerea ulterioară a programului, documentația suplimentară sau modificări structurale pot fi necesare mai târziu. Aceasta este o parte naturală a întreținerii codului și nu un eșec din partea programatorului. Treaba unui programator este să anticipeze cât mai multe probleme de înțelegere, dar nu toate sunt întotdeauna prinse.