Computer programming (often shortened to 
programming) is 
the comprehensive process that leads from an original formulation of a 
computing problem to executable programs. It involves activities such as
 analysis, understanding, and generically solving such problems 
resulting in an 
algorithm,
 verification of requirements of the algorithm including its correctness
 and its resource consumption, implementation (or coding) of the 
algorithm in a target programming language, 
testing, 
debugging, and maintaining the 
source code, implementation of the build system and management of derived artefacts such as machine code of 
computer programs.
 The algorithm is often only represented in human-parseable form and 
reasoned about using logic. Source code is written in one or more 
programming languages (such as 
C++, 
C#, 
Java, 
Python, 
Smalltalk, 
Javascript,etc.).
 The purpose of programming is to find a sequence of instructions that 
will automate performing a specific task or solve a given problem. The 
process of programming thus often requires expertise in many different 
subjects, including knowledge of the application domain, specialized 
algorithms and 
formal logic.