Procedurální programování je termín označující způsob, jakým programátor píše program. Tento způsob vývoje softwaru, který se také nazývá aplikace, se točí kolem toho, aby byl kód co nejstručnější. Zaměřuje se také na zcela konkrétní konečný výsledek, kterého má být dosaženo. Dalším termínem označujícím tento typ vývoje je imperativní programování. Pokud je povinné, aby program provedl určité kroky k dosažení konkrétních výsledků, říká se, že kód byl napsán podle procedurálního programování.
Programátoři, kteří programují podle této koncepce, obvykle před vlastním psaním kódu napíší předběžný plán v jednoduchém jazyce. Procedurální programování se často učí začínající studenti informatiky kvůli logice, která za ním stojí. Jsou vedeni k tomu, aby přemýšleli v termínech řady nezbytných kroků, které je třeba provést k dosažení cíle.
Příklad profesor může třídu nabádat k tomu, aby sepsala sadu potřebných úkonů, které je třeba provést, aby bylo možné připravit sendvič s arašídovým máslem a želé. Předstírá, že neví, jak sendvič udělat, a každý student se pokusí krok za krokem postupovat podle pokynů. Dozvědí se, že pokud něco vynechají, nebude výsledný produkt takový, jaký chtěli, takže se naučí, jak je důležité dodržovat přesné pokyny. Toto poznání slouží studentům jako pomoc, když začnou psát skutečný kód.
Procedurální programování není vždy preferovanou metodou kódování aplikací. Velmi složitý software může vyžadovat doslova tisíce řádků kódu, což poněkud ztěžuje práci týmu lidí. Někteří programátoři zastávají názor, že extrémně rozsáhlé aplikace se mohou stát obtížně udržovatelné jedním vývojářem.
Někteří lidé se mylně domnívají, že v procedurálním programovacím jazyce nelze napsat velmi rozsáhlý nebo složitý software. Některé programy mohou být snadněji napsány pomocí objektově orientovaného programování (OOP), ale to neznamená, že je nelze vyvíjet procedurálně. Jádro Linuxu, které je jádrem operačního systému s otevřeným zdrojovým kódem, je napsáno pomocí procedurálního programování. Tímto způsobem jsou napsány i další významné aplikace, například server Apache, systém pro správu obsahu Drupal a Samba. Tyto aplikace jsou rozsáhlé a drtivá většina programátorů je považuje za složité.
Mezi existující procedurální programovací jazyky patří C, Fortran a Python. V těchto jazycích bylo nakódováno mnoho důležitých aplikací a utilit. Například Anaconda, instalátor systému Fedora Linux, je napsán v jazyce Python, stejně jako různé nástroje pro správu softwaru.