Программирование в большей своей части, кроме того что отвечает за тестирование и отладку программного обеспечения ЭВМ, основывается на написании текста будущей программы, то есть ее исходного кода на специальном языке программирования. На все создаваемые исходные тексты, а также исполняемые файлы распространяется как авторское право, так и право интеллектуальной собственности.
Каждому языку программирования соответствует какой-либо стиль программирования, на профессиональном языке – парадигмы программирования. Достаточно сложной и важной задачей, от решения которой зависит результат создания программы, является непосредственно выбор нужного языка программирования. Знание того или иного языка программирования означает, что специалист должен уметь улавливать мельчайшие детали, которые отличают их друг от друга, так как часто программист стоит перед выбором быстрого создания программы или же ее максимальной доступности для потенциального пользователя.
Самый старый язык программирования, который практически отсутствует в арсенале современных программистов – это машинный язык. Сейчас процесс написания программы заключается в создании на одном из языков программирования исходного кода, после чего при помощи компилятора его необходимо будет транслировать в машинный код, или же при помощи интерпретатора – в так называемое промежуточное представление.
Язык Ассемблера, например, имеет мнемонические инструкции, которые могут преобразовываться в инструкции для машинного языка.
Также возможен процесс генерации машинного кода в интерпретируемый двоичный код (байт код) «виртуальной машины». Такой подход может применяться не для всех языков программирования.