Proceduralno programiranje je izraz koji se koristi za označavanje načina na koji računalni programer piše program. Ova metoda razvoja softvera, koja se također naziva aplikacija, vrti se oko održavanja što je moguće sažetijeg koda. Također se usredotočuje na vrlo specifičan krajnji rezultat koji treba postići. Imperativno programiranje je još jedan izraz koji se koristi za označavanje ove vrste razvoja. Kada je obavezno da program dovrši određene korake kako bi postigao određene rezultate, kaže se da je kod napisan u skladu s proceduralnim programiranjem.
Programeri softvera koji programiraju prema ovom konceptu obično pišu preliminarni plan na jednostavnom jeziku prije nego što stvarno napišu kod. Proceduralno programiranje često se podučava studentima početnicima informatike zbog logike koja stoji iza toga. Potiču ih se da razmišljaju u smislu niza potrebnih koraka koji se moraju poduzeti da bi se postigao cilj.
Na primjer, profesor bi mogao potaknuti razred da zapiše skup potrebnih radnji koje treba poduzeti za izradu sendviča s maslacem od kikirikija i želeom. Pretvarajući se da ne znaju kako napraviti sendvič, svaki učenik pokušava slijediti, korak po korak, upute. Uče da, ako se nešto izostavi, neće završiti s konačnim proizvodom koji su željeli, pa uče važnost preciznih uputa. Ova spoznaja služi kao pomoć učeniku kada on ili ona počne pisati stvarni kod.
Proceduralno programiranje nije uvijek poželjna metoda kodiranja aplikacija. Softver koji je vrlo složen može zahtijevati doslovno tisuće redaka koda, što otežava timu ljudi rad s njim. Neki programeri smatraju da iznimno velike aplikacije može postati teško održavati jedan programer.
Neki ljudi pogrešno vjeruju da je nemoguće napisati vrlo velik ili složen softver u proceduralnim programskim jezikom. Određeni programi bi se mogli lakše napisati korištenjem objektno orijentiranog programiranja (OOP), ali to ne znači da se ne mogu razviti proceduralno. Jezgra Linuxa, koja je jezgra operacijskog sustava otvorenog koda, napisana je pomoću proceduralnog programiranja. Druge velike aplikacije kao što su Apache poslužitelj, Drupal sustav za upravljanje sadržajem i Samba, sve su napisane na ovaj način. Te su aplikacije velike i velika većina programera ih smatra složenima.
Među postojećim proceduralnim programskim jezicima su C, Fortran i Python. Mnoge važne aplikacije i uslužni programi su kodirani na takvim jezicima. Na primjer, Anaconda, instalacijski program za Fedora Linux, napisan je na Pythonu, kao i razni alati za upravljanje softverom.