Programmering innebär att man kan få en maskin att utföra en rad olika saker genom att på förhand genom att på förhand göra upp en lista av instruktioner som maskinen ska följa.
Många förknippar programmering med datorer, men programmera maskiner kan även vara speldosor, vävstolar, etc.
Man kan även likna instruktioner för att göra pannkakor (ett recept) som ett "program" för mänskligt bruk.
En dator är en maskin som utför beräkningar och bearbetar data enligt givna instruktioner. Den är alltså en programmerbar elektronisk "räknare" med minne som kan lagra större eller mindre mängd koder. Exempel på olika datorer är persondatorn, miniräknare, mobiltelefon, läsplatta eller spelkonsol.
En dator består av hårdvara som processor, minneschip och andra elektroniska komponenter.
Den styrs av mjukvara, s.k. program, som kan användas till många olika tillämpningar.
Ett program är en samling instruktioner som en dator kan tolka och utföra. De kan vara mycket enkla, som en enkel miniräknare, till att vara mycket komplexa och innehålla miljontals rader kod, som exempelvis ett ordbehandlingsprogram eller ett kraftfullt spel.
Ett program finns i två format, källkod och maskinkod. Maskinkod är 1-or och 0-or som bara datorn kan förstå. Eftersom det är väldigt jobbigt för oss människor att skapa maskinkod direkt så skrivs program i källkod.
Källkod kan man skriva som vanlig text i en ordbehandlare, rad för rad, i olika stycken (block). Det är viktigt att källkoden skrivs korrekt och med rätt grammatik vilket kallas syntax och som beror på det programmeringsspråk som används.
En kompilator översätter källkod till maskinkod, lagrar den i en exekverbar fil, så att datorn kan tolka instruktionerna och köra programmet (exekvera).
Pythonkod interpretaras istället för att kompileras. Till skillnad från kompilatorn tolkar en interpretator maskinkoden direkt, den läser en instruktion i taget och utför den. Någon maskinkod skapas egentligen inte.
.
Det finns många olika programmeringsspråk; vissa riktar sig mer mot hårdvaran, så kallade lågnivåspråk, andra siktar på att vara enklare att producera och förstå, så kallade högnivåspråk.
Att använda ett lågnivåspråk kräver i allmänhet mer tid och leder lättare till programmeringsfel än om man skulle använda ett högnivåspråk. Fördelen är att programmeraren har god kontroll över hur programmet beter sig, och en duktig programmerare kan då utnyttja den tillgängliga hårdvaran bättre. Exempel på lågnivåspråk är Assembler.
Programmeringsspråk som riktar sig mot många plattformar och har som mål att vara enklare att producera och förstå kallas för högnivåspråk. Python är ett högnivåspråk, liksom Java, C++, C# och Javascript.