Программирование — это процесс написания, тестирования и поддержки компьютерной программы.
Программа написана на языке программирования, хотя с некоторым трудом можно записать ее непосредственно на машинный язык. Различные части программы могут быть написаны на разных языках это и есть основы реального программирования.
Различные языки программирования работают по-разному. По этой причине программисты могут создавать очень разные программы для разных языков; хотя теоретически большинство языков можно использовать для создания любой программы.
В течение нескольких десятилетий обсуждалось, является ли программирование скорее искусством (Дональд Кнут), наукой, математикой (Edsger Dijkstra), инженерией (David Parnas), или же это совершенно новая область.
Алгоритм представляет собой последовательность шагов для выполнения задачи или решения проблемы. В наши дни мы используем алгоритмы для осуществления нашей деятельности, определяя последовательность действий, которые мы должны делать для достижения цели. Простым примером является рецепт. Алгоритм является, в определенном смысле, абстрактной программой — другими словами, программа является алгоритмом. Программы легче воспринимаются как совокупность меньших алгоритмов, объединенных в одну сторону — так же, как дом построен из компонентов.
Таким образом, алгоритм представляет собой пошаговое описание того, как компьютер будет выполнять определенную операцию, например, сортировку. С другой стороны, программа представляет собой объект, который фактически реализует одну или несколько операций таким образом, который полезен для людей, которые его используют.