La programmazione alfabetizzata è una strategia che funge da alternativa alla programmazione strutturata. L’idea alla base di questo tipo di programmazione è quella di consentire agli sviluppatori di concentrarsi maggiormente sulla logica e sul flusso dei loro processi mentali durante la scrittura dei programmi, piuttosto che richiedere che la programmazione sia scritta in un modo richiesto dal computer a cui è destinato il software per uso. Con questo approccio il programmatore si concentra maggiormente sul modo più logico di scrivere la programmazione in modo da ottenere il risultato desiderato, quindi si concentra su come programmare il computer in modo che il software funzioni correttamente.
A differenza della programmazione strutturata, la programmazione alfabetizzata fa spesso uso del linguaggio comune combinato con il codice sorgente considerato tradizionale. Questo approccio consente al programmatore di creare macro di natura descrittiva ed esplicativa, basate sui processi di pensiero del programmatore. Il risultato finale è la creazione di un linguaggio che copre efficacemente il linguaggio di programmazione sottostante con queste frasi esplicative. Con la programmazione alfabetizzata, la documentazione del codice è considerata uguale al codice stesso, piuttosto che essere di natura sussidiaria o ausiliaria.
Un altro aspetto che aiuta a distinguere la programmazione alfabetizzata dalla programmazione strutturata è il modo in cui gli elementi dei programmi interagiscono tra loro. In situazioni di programmazione strutturata, l’interazione è più verticale o gerarchica nel design. Con l’approccio letterato al compito di programmazione, gli elementi sono pensati nei termini di un mosaico intrecciato, in cui gli elementi sono più o meno uguali tra loro.
I fautori della programmazione alfabetizzata in genere affermano che questo particolare approccio rende necessario per i programmatori articolare i processi di pensiero che entrano nel programma. Questo offre il vantaggio di poter identificare con maggiore precisione le falle nella logica del programmatore, e apportare modifiche o modifiche che consentano alla programmazione di operare con maggiore precisione ed efficienza. Inoltre, la natura stessa di questo approccio aiuta a creare una scia di documentazione che rende più facile ricostruire la logica applicata al compito dall’inizio alla fine. In termini di adattamento del codice per applicazioni specifiche da parte degli utenti finali, ciò rende più semplice seguire il flusso della logica per il programma di base e identificare un punto da cui diramarsi per eseguire un’attività specifica. Da quel momento, il programmatore può aggiungere o modificare il codice in modo che le funzioni essenziali non vengano compromesse e la nuova funzione sia facilmente integrata nel processo complessivo.