البرمجة العامة (بالإنجليزية: Generic programming) هي نمط من أنماط البرمجة تُكتب فيه الخوارزميات من حيث أنواع البيانات "يتم تحديدها لاحقًا"، ثم تُنشأ "تجسيداتها" عند الحاجة لأنواع محددة تُمرر كوسيط. هذا الأسلوب، الذي بدأ في لغة البرمجة أم أل عام 1973، يسمح بكتابة دوال أو أنواع بيانات عامة تختلف فقط في مجموعات الأنواع التي تعمل عليها، مما يقلل من تكرار الكود.
دخلت البرمجة العامة إلى التيار السائد مع أيدا في عام 1977. ومع إدخال قوالب في لغة سي++، أصبحت البرمجة العامة جزءًا أساسيًا من تصميم مكتبات برمجية احترافية. وتم تحسين هذه التقنيات لاحقًا مع إدخال "الأنواع المُعاملة" في الكتاب المؤثر أنماط التصميم (بالإنجليزية: Design Patterns) الصادر عام 1994.
وقدّم أندريه ألكسندرسكو تقنيات جديدة في كتابه تصميم C++ الحديث: البرمجة العامة وأنماط التصميم المطبقة عام 2001، ثم طبقتها لغة دي لاحقًا.
تُعرف هذه الكيانات البرمجية باسم "عامّة" (بالإنجليزية: generics) في لغات مثل أيدا، سي شارب، دلفي، إيفل، إف شارب، جافا، نيم، بايثون، غو، رست، سويفت، تايب سكريبت، وفيجوال بيسك دوت نت. وتُعرف باسم "تعدد الأشكال المُعامِل" (بالإنجليزية: parametric polymorphism) في لغات مثل أم أل، سكالا، جوليا، وهاسكل. (تستخدم هاسكل أيضًا مصطلح "عام" لتمييز مفهوم ذي صلة لكنه مختلف بعض الشيء.)
صاغ المصطلح "البرمجة العامة" في الأصل كل من ديفيد مويسر وألكسندر ستيبانوف ليصف نمطًا برمجيًا تُجرد فيه المتطلبات الأساسية لأنواع البيانات من أمثلة واقعية من الخوارزميات وهياكل البيانات، وتُصاغ كمفاهيم. تُنفّذ الدوال العامة بناءً على هذه المفاهيم، باستخدام آليات التعميم المتوفرة في اللغة كما هو موضح أعلاه.