For å få enheten til å fungere som brukeren trenger, må den være programmert riktig (skriv et program for en datamaskin, utvikle en logikkrets for en FPGA, skriv informasjon til ROM osv.). Et stort antall handlinger kan kalles programmering, men i vanlig forstand er det å skrive dataprogrammer.
I smal forstand betyr programmering (eller koding) å skrive programmer (instruksjoner for en datamaskin) på et bestemt programmeringsspråk i henhold til en opprettet algoritme. Vanligvis har de menneskelig lesbar syntaks. Folk som driver med programmering kalles programmerere (kodere eller bare "kodere"), og de som lager algoritmer kalles algoritmer. I bred forstand bør programmering forstås som hele spekteret av aktiviteter som er knyttet til opprettelse og vedlikehold av programvareprodukter (dataprogramvare) i orden. Den mest nøyaktige er det moderne begrepet - "software engineering" (eller bare "software engineering"). Spesialister på dette feltet er engasjert i å sette oppgaver, designe programmer, bygge algoritmer, skrive programtekst, teste, feilsøke, dokumentere og vedlikeholde. Enhver dataprogrammering er basert på bruk av programmeringsspråk. For å kjøre et program på en datamaskin, er det nødvendig å bruke oversettere som vil oversette et menneskelig lesbart språk (et skrevet program) til språket i maskininstruksjonene. Det er to typer oversettere - tolker og kompilatorer. Hovedforskjellen mellom dem er at den første kjører programmet umiddelbart, mens den andre bare oversetter det til språket i maskininstruksjonene, uten å videreføre det. For å kjøre et program, må det først kompileres eller tolkes. Tidligere måtte du skrive programmer og deretter kompilere dem separat, noe som kompliserte test- og feilsøkingsprosessen. For tiden er det forskjellige integrerte utviklingsmiljøer. IDEer inkluderer redaktører for redigering og innføring av programtekster og forskjellige oversettere fra forskjellige språk. I tillegg kan de inkludere forskjellige andre rutiner som letter prosessen med å lage, teste og vedlikeholde programvareprodukter.