Programele permit rezolvarea rapidă și eficietă a celor mai diferite probleme. Dar, pentru a crea un program, mai întâi este necesar să fie construită o schemă de rezolvare, care va descrie toate acțiunile ce trebuie să fie executate pentru a obține rezultatul. Această schemă este algoritmul. Despre algoritm se pot afla mai multe în modulul ”Inințiere în Algoritmi”.
Indicațiile din algoritm sunt clare pentru o ființă umană, dar nu și pentru un calculator sau alt dispozitiv digital. Pentru ca dispozitivele digitale să îndeplinească corect o sarcină, algoritmul ei de realizare trebuie descris într-un limbaj special, înțeles de dispozitiv – limbaj al dispozitivului. Acest limbaj mai este numit și cod mașină (în endleză: mashine code sau mashine language).
Astfel, programul este o ”transcriere” a algoritmului într-un limbaj care poate fi interpretat corect de către un dispozitiv digital. De regulă, limbajele utilizate de dispozitivele digitale sunt limbaje binare (care descriu instrucțiunile folosind doar secvențe de 0 și 1). Scrierea unui program în limbaj binar nu este deloc simplă, așa că pentru a face procesul de programare mai eficient și mai prietenos au fost inventate limbajele de programare.