A procedurális programozás azt a módot jelöli, ahogyan egy számítógépes programozó programot ír. Ez az alkalmazásnak is nevezett szoftverfejlesztési módszer a kód minél tömörebb tartása körül forog. Emellett egy nagyon konkrét, elérendő végeredményre összpontosít. Az imperatív programozás egy másik kifejezés, amelyet a fejlesztés e típusának jelölésére használnak. Amikor egy programnak kötelező bizonyos lépéseket végrehajtania bizonyos eredmények elérése érdekében, akkor azt mondjuk, hogy a kódot procedurális programozás szerint írták.
A szoftverfejlesztők, akik e koncepció szerint programoznak, a tényleges kódírás előtt általában írnak egy előzetes tervet egyszerű nyelven. A procedurális programozást gyakran tanítják a kezdő informatikus hallgatóknak a mögötte álló logika miatt. Arra ösztönzik őket, hogy egy cél eléréséhez szükséges lépések sorozatában gondolkodjanak.
A professzor például arra ösztönözheti az osztályt, hogy írják le a mogyoróvajas-lekváros szendvics elkészítéséhez szükséges műveletek sorát. Úgy téve, mintha nem tudnák, hogyan kell elkészíteni a szendvicset, minden diák megpróbálja lépésről lépésre követni az utasításokat. Megtanulják, hogy ha bármi kimarad, akkor nem azt a végterméket kapják, amit szerettek volna, így megtanulják a pontos utasítások fontosságát. Ez a felismerés a tanulók segítségére szolgál, amikor tényleges kódot kezdenek írni.
A procedurális programozás nem mindig az alkalmazások kódolásának kedvelt módszere. A rendkívül összetett szoftverek szó szerint több ezer sornyi kódot igényelhetnek, ami némileg megnehezíti egy csapatnyi ember munkáját. Egyes programozók azon a véleményen vannak, hogy a rendkívül nagy alkalmazások egy fejlesztő számára nehezen karbantarthatóvá válhatnak.
Néhányan tévesen úgy vélik, hogy procedurális programozási nyelven nem lehet nagyon nagy vagy összetett szoftvereket írni. Bizonyos programok könnyebben írhatók objektumorientált programozással (OOP), de ez nem jelenti azt, hogy nem lehet őket procedurálisan fejleszteni. A Linux kernel, amely egy nyílt forráskódú operációs rendszer magja, procedurális programozással íródott. Más jelentős alkalmazások, például az Apache szerver, a Drupal tartalomkezelő rendszer és a Samba mind ilyen módon íródnak. Ezek az alkalmazások nagyok, és a programozók túlnyomó többsége komplexnek tartja őket.
A létező procedurális programozási nyelvek közül a C, a Fortran és a Python. Számos fontos alkalmazást és segédprogramot kódoltak ilyen nyelveken. Például az Anaconda, a Fedora Linux telepítője Pythonban íródott, akárcsak a különböző szoftverkezelő eszközök.