A programming paradigm is a way of thinking about and structuring a program's functionality.

Programming paradigms differ from one another, for example in how the program's execution and control are defined and what components the programs consist of.

Part of a programmer's growth involves the ability, through experience, to choose the appropriate programming language and paradigm.

The most common programming paradigms today are object-oriented programming, procedural programming, and functional programming.

Object-Oriented Programming

In object-oriented programming, information is represented as classes that describe the concepts of the problem domain and the logic of the application.

Classes define the methods that determine how information is handled.

During program execution, objects are instantiated from classes that contain runtime information and that also have an effect on program execution: program execution typically proceeds through a series of method calls related to the objects.

The program is built from small, clear, and cooperative entities.

One of the major benefits of object-oriented programming is how problem-domain concepts are modeled through classes and objects, which makes programs easier to understand.

In addition, structuring the problem domain into classes facilitates the construction and maintenance of programs.

Procedural programming

Whereas in object-oriented programming, the structure of a program is formed by the data it processes, in procedural programming, the structure of the program is formed by functionality desired for the program.

The program acts as a step-by-step guide for the functionality to be performed.

The program is executed one step at a time, and subroutines (methods) are called whenever necessary.