Компьютерное программирование — это процесс проектирования и создания исполняемой компьютерной программы для достижения определенного вычислительного результата или выполнения определенной задачи. Программирование включает в себя такие задачи, как анализ, генерация алгоритмов, профилирование точности алгоритмов и потребления ресурсов, а также реализация алгоритмов на выбранном языке программирования (обычно называемом кодированием). [1][2 ] Исходный код программы написан на одном или нескольких языках, понятных программистам, а не машинный код, который непосредственно исполняется центральным процессором. Цель программирования — найти последовательность инструкций, которая автоматизирует выполнение задачи (которая может быть такой сложной, как операционная система) на компьютере, часто для решения данной задачи. Таким образом, для профессионального программирования обычно требуются знания в нескольких различных областях, включая знание прикладной области, специализированных алгоритмов и формальной логики.
Задачи, сопутствующие и связанные с программированием, включают тестирование, отладку, обслуживание исходного кода, внедрение систем сборки и управление производными артефактами, такими как машинный код компьютерных программ. Их можно рассматривать как часть процесса программирования, но часто термин разработка программного обеспечения используется для более крупного процесса, а термины программирование, реализация или кодирование зарезервированы для фактического написания кода. Инженерия программного обеспечения сочетает в себе инженерные методы с практикой разработки программного обеспечения. Обратное проектирование — это родственный процесс, используемый дизайнерами, аналитиками и программистами для понимания и повторного создания/реализации. [3]