Computer programming
Computer programming (often shortened to programming) is a process that leads from an original formulation of a computing problem to executable computer programs.
Contents
Activities
Programming involves activities such as:
- Analysis
- Developing understanding
- Generating algorithms
- Verification of requirements of algorithms including their correctness and resources consumption
- Implementation (commonly referred to as coding) of algorithms in a programming language.
Source code
Source code is written in one or more programming languages (such as JavaScript, PHP, Python, Ruby, etc.).
Automation of tasks and problem solving
The purpose of programming is to find a sequence of instructions that will automate performing a specific task or solving a given problem.
Areas of expertise
The process of programming thus often requires expertise in many different subjects, including:
- Knowledge of the application domain
- Specialized algorithms
- Formal logic
Related tasks
Related programming tasks include:
- Testing
- Debugging
- Maintainenance of source code
- Implementation of the build system
- Management of derived artifacts such as machine code of computer programs
These might be considered part of the programming process, but often the term "software development" is used for this larger process. The terms "programming", "implementation", or "coding" are commonly reserved for the actual writing of source code.
Software engineering
Software engineering combines engineering techniques with software development practices.
Development environment
See Integrated development environment.
Event-driven programming
See Also
- Algorithm
- Autoload
- Boilerplate code
- Code
- Codebase
- Computation
- Computer
- Computer program
- Computer programmer
- Computer programming best practices
- Computer science
- Constant (computer programming)
- Design by contract
- Epigrams on Programming
- Event-driven programming
- Exploit (computer security)
- Free variables and bound variables
- Framework (computing)
- Integrated development environment
- Lexical analysis
- Local variable
- Logic programming
- Library (computing)
- Lint (software)
- Programming paradigm
- Rosetta Code
- Self-reference
- Software development process
- Software engineering
- Standard library
- Subroutine
- The Mythical Man-Month
- Zero-based numbering
External Links
- Computer programming @ Wikipedia
- Formal language @ Wikipedia
- Getting started with programming by Jon Black
- Getting better at programming by Jon Black
- Dev Tube - videos for computer programmers