Programação Procedural é um termo utilizado para designar a forma como um programador de computador escreve um programa. Este método de desenvolvimento de software, que também é chamado de aplicação, gira em torno de manter o código o mais conciso possível. Ele também foca em um resultado final muito específico a ser alcançado. Programação imperativa é outro termo usado para significar este tipo de desenvolvimento. Quando é obrigatório que um programa complete certos passos para alcançar resultados específicos, diz-se que o código foi escrito de acordo com programação procedural.
Programadores de software que programam de acordo com este conceito geralmente escrevem um plano preliminar em linguagem simples antes de realmente escreverem o código. A programação de procedimentos é frequentemente ensinada a estudantes iniciantes em informática por causa da lógica por trás dela. Eles são encorajados a pensar em termos de uma série de passos necessários que devem ser tomados para atingir um objetivo.
Por exemplo, o professor pode encorajar a classe a escrever um conjunto de ações necessárias para fazer um sanduíche de manteiga de amendoim e geléia. Fingindo não saber como fazer o sanduíche, cada aluno tenta seguir, passo a passo, as instruções. Eles aprendem que se algo for deixado de fora, eles não vão acabar com o produto final que eles queriam, então eles aprendem a importância de instruções precisas. Esta realização serve para ajudar o aluno quando ele ou ela começa a escrever o código real.
Procedimento de programação nem sempre é o método preferido de codificação de aplicações. Software que é altamente complexo pode requerer literalmente milhares de linhas de código, tornando um pouco mais difícil para uma equipe de pessoas trabalhar com ele. Alguns programadores têm a opinião de que aplicações extremamente grandes podem tornar-se difíceis de manter por um programador.
Algumas pessoas acreditam erroneamente que é impossível escrever software muito grande ou complexo em uma linguagem de programação procedural. Certos programas podem ser mais facilmente escritos usando Programação Orientada a Objetos (OOP), mas isso não significa que não possam ser desenvolvidos proceduralmente. O kernel do Linux, que é o núcleo de um sistema operacional open-source, é escrito usando programação procedural. Outras grandes aplicações como o servidor Apache, o sistema de gestão de conteúdos Drupal e o Samba, são todas escritas desta forma. Estas aplicações são grandes e são consideradas complexas pela esmagadora maioria dos programadores.
Dentre as linguagens de programação procedural existentes estão C, Fortran e Python. Muitas aplicações e utilitários importantes têm sido codificados em tais linguagens. Por exemplo, o Anaconda, o instalador do Fedora Linux, é escrito em Python, assim como várias ferramentas de gestão de software.