Lập trình hướng thủ tục là danh sách hoặc tập hợp các hướng dẫn cho máy tính biết phải làm gì từng bước và cách thực hiện từ mã này sang mã tiếp theo. Nó tập trung vào quy trình hơn là dữ liệu .
Một chương trình được viết bằng ngôn ngữ thủ tục là một danh sách các lệnh trong đó mỗi câu lệnh yêu cầu máy tính thực hiện một tác vụ. Một thuật toán là cần thiết để thực hiện tính toán dẫn xuất. Khi chương trình đã viết trở nên lớn hơn, nó được chia thành các hàm (thủ tục), và mỗi hàm có mục đích được xác định rõ ràng. Một nhiệm vụ tiềm năng có thể bao gồm một số bước, chẳng hạn như in và mỗi chức năng hoàn thành một phần cụ thể của nhiệm vụ đó và sau đó chuyển sang giai đoạn tiếp theo.
Các ngôn ngữ lập trình thủ tục bao gồm C, C ++, Go, Fortran, Pascal và BASIC. Không giống như các ngôn ngữ lập trình hướng đối tượng, chia nhỏ tác vụ thành các đối tượng và tập trung vào cấu trúc dữ liệu, các ngôn ngữ lập trình này chia nhỏ các tác vụ thành các hàm và nhấn mạnh quá trình hơn là dữ liệu. Mọi hàm đều có quyền truy cập hoàn toàn vào các biến toàn cục, vì vậy việc giả mạo mã có thể làm hỏng dữ liệu bằng cách tạo một hàm mới. Khả năng tự tạo một kiểu dữ liệu mới được gọi là khả năng mở rộng và các ngôn ngữ lập trình thủ tục không thể mở rộng được.