Stvaranje programa sadrži u sebi pojedine elemente dizajna, umjetnosti, znanosti, matematike kao i inžinjeringa. Osoba koja stvara program zove se programer.
Programi ili upute za računalo pišu se u programskom jeziku upotrebom odredjene sintakse i pravila koja vrijede za svaki programski jezik (ili tip), koji se potom prevodi u strojni jezik koje je osobito za određeno računalo te je ovisno o njegovoj arhitekturi. Prevođenje s višeg programskog jezika na strojni provodi se putem programa prevodioca (kompajler) ili se naredbe u višem jeziku izravno prevode preko takozvanog p_koda u strojni jezik.
Primjeri programskih jezika:
Assembler, BASIC, Pascal C/C++/C#, Java, Logo, Fortran
Primjer prevoditeljskog (interpretiranog) programskog jezika bio bi Basic (izvršava se unutar posebnog programa tzv. prevoditelja (eng. interpreter) koji stoji između stroja računala i programa). Postoje niži i viši programski jezici.
Npr. assembler ili strojni kod je primjer nižeg programskog jezika (obično se radi o izravnom pozivanju “naredbi centralne jedinice” (CPU) ili instrukcija kao npr. INC (uvećanje), MOV (kopiranje spremnika (registara)) itd.).
Primjer višeg programskog jezika je C koji se mora prvo prevesti, a potom prilagoditi da radi na određenom operacijskom sustavu (eng. compile & link). Postoje drugi oblici klasifikacija i tipovi programskih jezika od čega je vjerojatno bitno spomenuti objektno-orjentirane jezike (C++, Java, …) koji su danas najrašireniji u primjeni koristeći razne mehanizme kakvi nisu bili u uporabi u npr. C-u i Pascal-u.
Najbitniji pojmovi u tom slučaju su objekt, enkapsulacija, nasljeđivanje itd. Pri programiranju se također koriste razne metodologije razvoja software-a (programske podrške) pri kojima je dobro početi od vodopadnog modela, spiralnog, prototypinga i sličnih kao jednostavnih modela razvoja.