Kirjaoskaja programmeerimine on strateegia, mis toimib alternatiivina struktureeritud programmeerimisele. Seda tüüpi programmeerimise põhiidee on võimaldada arendajatel keskenduda programmide kirjutamisel rohkem loogikale ja oma mõtteprotsesside kulgemisele, selle asemel, et nõuda, et programmeerimine oleks kirjutatud viisil, mille nõuab arvuti, kuhu tarkvara on ette nähtud. kasutamiseks. Selle lähenemisviisi puhul keskendub programmeerija rohkem kõige loogilisemale viisile programmeerimise kirjutamiseks, et see saavutaks soovitud tulemuse, seejärel keskendub sellele, kuidas programmeerida arvutit nii, et tarkvara töötaks korralikult.
Erinevalt struktureeritud programmeerimisest kasutab kirjaoskaja programmeerimine sageli tavakeelt koos lähtekoodiga, mida peetakse traditsiooniliseks. See lähenemisviis võimaldab programmeerijal luua makrosid, mis on kirjeldavad ja selgitavad, tuginedes programmeerija protsessidele. Lõpptulemus on keele loomine, mis katab nende selgitavate fraasidega tõhusalt aluseks oleva programmeerimiskeele. Kirjaoskaja programmeerimise puhul peetakse koodidokumentatsiooni koodi endaga võrdseks, mitte ei ole oma olemuselt lisa- või abistav.
Teine aspekt, mis aitab kirjaoskamist programmeerimist struktureeritud programmeerimisest eristada, on see, kuidas programmide elemendid üksteisega suhtlevad. Struktureeritud programmeerimise olukordades on interaktsioon disainilt vertikaalsem või hierarhilisem. Programmeerimisülesande kirjaoskaja lähenemisega mõeldakse elemente läbi põimunud mosaiigina, milles elemendid on üksteisega enam-vähem võrdsed.
Kirjaoskaja programmeerimise pooldajad väidavad tavaliselt, et see konkreetne lähenemine nõuab, et programmeerijad sõnastaks programmiga seotud mõtteprotsessid. Selle eeliseks on see, et on võimalik täpsemalt tuvastada programmeerija loogika vigu ning rakendada muudatusi või modifikatsioone, mis võimaldavad programmeerimisel täpsemini ja tõhusamalt töötada. Lisaks aitab selle lähenemisviisi olemus luua dokumentide jälje, mis hõlbustab ülesandele rakendatud loogika algusest lõpuni rekonstrueerimist. Seoses koodi kohandamisega lõppkasutajate jaoks konkreetsete rakenduste jaoks hõlbustab see põhiprogrammi loogika voo jälgimist ja punkti tuvastamist, kust konkreetse ülesande täitmiseks hargneda. Sellest hetkest alates saab programmeerija koodi lisada või muuta nii, et olulisi funktsioone ei kahjustataks ja uus funktsioon on hõlpsasti kogu protsessi integreeritav.